From a4019a85addeec0e880f1bbc482de0adb45b41a2 Mon Sep 17 00:00:00 2001 From: Giuseppe Careri Date: Thu, 28 Sep 2017 17:51:39 +0200 Subject: [PATCH] Built motion from commit de2cb856.|2.0.31 --- apidoc/api_data.js | 2 +- apidoc/api_data.json | 2 +- apidoc/api_project.js | 2 +- apidoc/api_project.json | 2 +- package.json | 2 +- public/app/main/apps/chat/i18n/en.json | 16 +- public/app/main/apps/contactmanager/i18n/en.json | 3 +- public/app/main/apps/contactmanager/i18n/it.json | 3 +- public/app/main/apps/dashboards/i18n/en.json | 3 +- public/app/main/apps/dashboards/i18n/it.json | 3 +- public/app/main/apps/motiondialer/i18n/en.json | 2 + public/app/main/apps/motiondialer/i18n/it.json | 2 + public/app/main/apps/sms/i18n/en.json | 15 +- public/app/main/apps/sms/i18n/it.json | 15 +- public/app/main/apps/staff/i18n/en.json | 3 +- public/app/main/apps/staff/i18n/it.json | 3 +- public/app/main/apps/tools/i18n/en.json | 1 + public/app/main/apps/tools/i18n/it.json | 1 + public/index.html | 2 +- public/scripts/app.2de74318.js | 1 - public/scripts/app.3e914f3e.js | 1 + server/api/action/action.attributes.js | 2 +- server/api/action/action.controller.js | 2 +- server/api/action/action.model.js | 2 +- server/api/action/action.rpc.js | 2 +- server/api/action/index.js | 2 +- .../analyticCustomReport.attributes.js | 2 +- .../analyticCustomReport.controller.js | 2 +- .../analyticCustomReport.model.js | 2 +- .../analyticCustomReport.rpc.js | 2 +- server/api/analyticCustomReport/index.js | 2 +- .../analyticDefaultReport.attributes.js | 2 +- .../analyticDefaultReport.controller.js | 2 +- .../analyticDefaultReport.model.js | 2 +- .../analyticDefaultReport.rpc.js | 2 +- server/api/analyticDefaultReport/index.js | 2 +- .../analyticExtractedReport.attributes.js | 2 +- .../analyticExtractedReport.controller.js | 2 +- .../analyticExtractedReport.model.js | 2 +- .../analyticExtractedReport.rpc.js | 2 +- server/api/analyticExtractedReport/index.js | 2 +- .../analyticFieldReport.attributes.js | 2 +- .../analyticFieldReport.controller.js | 2 +- .../analyticFieldReport.model.js | 2 +- .../analyticFieldReport/analyticFieldReport.rpc.js | 2 +- server/api/analyticFieldReport/index.js | 2 +- .../analyticMetric/analyticMetric.attributes.js | 2 +- .../analyticMetric/analyticMetric.controller.js | 2 +- server/api/analyticMetric/analyticMetric.model.js | 2 +- server/api/analyticMetric/analyticMetric.rpc.js | 2 +- server/api/analyticMetric/index.js | 2 +- .../analyticTreeReport.attributes.js | 2 +- .../analyticTreeReport.controller.js | 2 +- .../analyticTreeReport/analyticTreeReport.model.js | 2 +- .../analyticTreeReport/analyticTreeReport.rpc.js | 2 +- server/api/analyticTreeReport/index.js | 2 +- server/api/authGoogle/authGoogle.controller.js | 2 +- server/api/authGoogle/index.js | 2 +- server/api/authLocal/authLocal.controller.js | 2 +- server/api/authLocal/index.js | 2 +- server/api/automation/automation.attributes.js | 2 +- server/api/automation/automation.controller.js | 2 +- server/api/automation/automation.model.js | 2 +- server/api/automation/automation.rpc.js | 2 +- server/api/automation/index.js | 2 +- server/api/campaign/campaign.attributes.js | 2 +- server/api/campaign/campaign.controller.js | 2 +- server/api/campaign/campaign.model.js | 2 +- server/api/campaign/campaign.rpc.js | 2 +- server/api/campaign/index.js | 2 +- server/api/cannedAnswer/cannedAnswer.attributes.js | 2 +- server/api/cannedAnswer/cannedAnswer.controller.js | 2 +- server/api/cannedAnswer/cannedAnswer.model.js | 2 +- server/api/cannedAnswer/cannedAnswer.rpc.js | 2 +- server/api/cannedAnswer/index.js | 2 +- server/api/cdr/cdr.attributes.js | 2 +- server/api/cdr/cdr.controller.js | 2 +- server/api/cdr/cdr.model.js | 2 +- server/api/cdr/cdr.rpc.js | 2 +- server/api/cdr/index.js | 2 +- .../chatApplication/chatApplication.attributes.js | 2 +- .../chatApplication/chatApplication.controller.js | 2 +- .../api/chatApplication/chatApplication.model.js | 2 +- server/api/chatApplication/chatApplication.rpc.js | 2 +- server/api/chatApplication/index.js | 2 +- .../chatDisposition/chatDisposition.attributes.js | 2 +- .../chatDisposition/chatDisposition.controller.js | 2 +- .../api/chatDisposition/chatDisposition.model.js | 2 +- server/api/chatDisposition/chatDisposition.rpc.js | 2 +- server/api/chatDisposition/index.js | 2 +- server/api/chatEnquiry/chatEnquiry.attributes.js | 2 +- server/api/chatEnquiry/chatEnquiry.controller.js | 2 +- server/api/chatEnquiry/chatEnquiry.model.js | 2 +- server/api/chatEnquiry/chatEnquiry.rpc.js | 2 +- server/api/chatEnquiry/index.js | 2 +- .../chatInteraction/chatInteraction.attributes.js | 2 +- .../chatInteraction/chatInteraction.controller.js | 2 +- .../api/chatInteraction/chatInteraction.model.js | 2 +- server/api/chatInteraction/chatInteraction.rpc.js | 2 +- server/api/chatInteraction/index.js | 2 +- server/api/chatMessage/chatMessage.attributes.js | 2 +- server/api/chatMessage/chatMessage.controller.js | 2 +- server/api/chatMessage/chatMessage.events.js | 2 +- server/api/chatMessage/chatMessage.model.js | 2 +- server/api/chatMessage/chatMessage.rpc.js | 2 +- server/api/chatMessage/chatMessage.socket.js | 2 +- server/api/chatMessage/index.js | 2 +- .../chatProactiveAction.attributes.js | 2 +- .../chatProactiveAction.controller.js | 2 +- .../chatProactiveAction.model.js | 2 +- .../chatProactiveAction/chatProactiveAction.rpc.js | 2 +- server/api/chatProactiveAction/index.js | 2 +- server/api/chatQueue/chatQueue.attributes.js | 2 +- server/api/chatQueue/chatQueue.controller.js | 2 +- server/api/chatQueue/chatQueue.model.js | 2 +- server/api/chatQueue/chatQueue.rpc.js | 2 +- server/api/chatQueue/index.js | 2 +- server/api/chatReport/chatReport.attributes.js | 2 +- server/api/chatReport/chatReport.controller.js | 2 +- server/api/chatReport/chatReport.model.js | 2 +- server/api/chatReport/chatReport.rpc.js | 2 +- server/api/chatReport/index.js | 2 +- .../chatSessionReport.attributes.js | 2 +- .../chatSessionReport.controller.js | 2 +- .../chatSessionReport/chatSessionReport.model.js | 2 +- .../api/chatSessionReport/chatSessionReport.rpc.js | 2 +- server/api/chatSessionReport/index.js | 2 +- server/api/chatVisitor/chatVisitor.attributes.js | 2 +- server/api/chatVisitor/chatVisitor.controller.js | 2 +- server/api/chatVisitor/chatVisitor.model.js | 2 +- server/api/chatVisitor/chatVisitor.rpc.js | 2 +- server/api/chatVisitor/index.js | 2 +- server/api/chatWebsite/chatWebsite.attributes.js | 2 +- server/api/chatWebsite/chatWebsite.controller.js | 2 +- server/api/chatWebsite/chatWebsite.model.js | 2 +- server/api/chatWebsite/chatWebsite.rpc.js | 2 +- server/api/chatWebsite/index.js | 2 +- .../chatWebsiteField.attributes.js | 2 +- .../chatWebsiteField.controller.js | 2 +- .../api/chatWebsiteField/chatWebsiteField.model.js | 2 +- .../api/chatWebsiteField/chatWebsiteField.rpc.js | 2 +- server/api/chatWebsiteField/index.js | 2 +- server/api/cmCompany/cmCompany.attributes.js | 2 +- server/api/cmCompany/cmCompany.controller.js | 2 +- server/api/cmCompany/cmCompany.model.js | 2 +- server/api/cmCompany/cmCompany.rpc.js | 2 +- server/api/cmCompany/index.js | 2 +- server/api/cmContact/cmContact.attributes.js | 2 +- server/api/cmContact/cmContact.controller.js | 2 +- server/api/cmContact/cmContact.model.js | 2 +- server/api/cmContact/cmContact.rpc.js | 2 +- server/api/cmContact/index.js | 2 +- .../api/cmCustomField/cmCustomField.attributes.js | 2 +- .../api/cmCustomField/cmCustomField.controller.js | 2 +- server/api/cmCustomField/cmCustomField.model.js | 2 +- server/api/cmCustomField/cmCustomField.rpc.js | 2 +- server/api/cmCustomField/index.js | 2 +- server/api/cmHopper/cmHopper.attributes.js | 2 +- server/api/cmHopper/cmHopper.controller.js | 2 +- server/api/cmHopper/cmHopper.model.js | 2 +- server/api/cmHopper/cmHopper.rpc.js | 2 +- server/api/cmHopper/index.js | 2 +- .../api/cmHopperBlack/cmHopperBlack.attributes.js | 2 +- .../api/cmHopperBlack/cmHopperBlack.controller.js | 2 +- server/api/cmHopperBlack/cmHopperBlack.model.js | 2 +- server/api/cmHopperBlack/cmHopperBlack.rpc.js | 2 +- server/api/cmHopperBlack/index.js | 2 +- .../api/cmHopperFinal/cmHopperFinal.attributes.js | 2 +- .../api/cmHopperFinal/cmHopperFinal.controller.js | 2 +- server/api/cmHopperFinal/cmHopperFinal.model.js | 2 +- server/api/cmHopperFinal/cmHopperFinal.rpc.js | 2 +- server/api/cmHopperFinal/index.js | 2 +- .../cmHopperHistory/cmHopperHistory.attributes.js | 2 +- .../cmHopperHistory/cmHopperHistory.controller.js | 2 +- .../api/cmHopperHistory/cmHopperHistory.model.js | 2 +- server/api/cmHopperHistory/cmHopperHistory.rpc.js | 2 +- server/api/cmHopperHistory/index.js | 2 +- server/api/cmList/cmList.attributes.js | 2 +- server/api/cmList/cmList.controller.js | 2 +- server/api/cmList/cmList.model.js | 2 +- server/api/cmList/cmList.rpc.js | 2 +- server/api/cmList/index.js | 2 +- server/api/condition/condition.attributes.js | 2 +- server/api/condition/condition.controller.js | 2 +- server/api/condition/condition.model.js | 2 +- server/api/condition/condition.rpc.js | 2 +- server/api/condition/index.js | 2 +- server/api/dashboard/dashboard.attributes.js | 2 +- server/api/dashboard/dashboard.controller.js | 2 +- server/api/dashboard/dashboard.model.js | 2 +- server/api/dashboard/dashboard.rpc.js | 2 +- server/api/dashboard/index.js | 2 +- .../api/dashboardItem/dashboardItem.attributes.js | 2 +- .../api/dashboardItem/dashboardItem.controller.js | 2 +- server/api/dashboardItem/dashboardItem.model.js | 2 +- server/api/dashboardItem/dashboardItem.rpc.js | 2 +- server/api/dashboardItem/index.js | 2 +- server/api/faxAccount/faxAccount.attributes.js | 2 +- server/api/faxAccount/faxAccount.controller.js | 2 +- server/api/faxAccount/faxAccount.model.js | 2 +- server/api/faxAccount/faxAccount.rpc.js | 2 +- server/api/faxAccount/index.js | 2 +- .../faxApplication/faxApplication.attributes.js | 2 +- .../faxApplication/faxApplication.controller.js | 2 +- server/api/faxApplication/faxApplication.model.js | 2 +- server/api/faxApplication/faxApplication.rpc.js | 2 +- server/api/faxApplication/index.js | 2 +- .../api/faxAttachment/faxAttachment.attributes.js | 2 +- .../api/faxAttachment/faxAttachment.controller.js | 2 +- server/api/faxAttachment/faxAttachment.model.js | 2 +- server/api/faxAttachment/faxAttachment.rpc.js | 2 +- server/api/faxAttachment/index.js | 2 +- .../faxDisposition/faxDisposition.attributes.js | 2 +- .../faxDisposition/faxDisposition.controller.js | 2 +- server/api/faxDisposition/faxDisposition.model.js | 2 +- server/api/faxDisposition/faxDisposition.rpc.js | 2 +- server/api/faxDisposition/index.js | 2 +- .../faxInteraction/faxInteraction.attributes.js | 2 +- .../faxInteraction/faxInteraction.controller.js | 2 +- server/api/faxInteraction/faxInteraction.model.js | 2 +- server/api/faxInteraction/faxInteraction.rpc.js | 2 +- server/api/faxInteraction/index.js | 2 +- server/api/faxMessage/faxMessage.attributes.js | 2 +- server/api/faxMessage/faxMessage.controller.js | 2 +- server/api/faxMessage/faxMessage.model.js | 2 +- server/api/faxMessage/faxMessage.rpc.js | 2 +- server/api/faxMessage/index.js | 2 +- server/api/faxQueue/faxQueue.attributes.js | 2 +- server/api/faxQueue/faxQueue.controller.js | 2 +- server/api/faxQueue/faxQueue.model.js | 2 +- server/api/faxQueue/faxQueue.rpc.js | 2 +- server/api/faxQueue/index.js | 2 +- server/api/faxReport/faxReport.attributes.js | 2 +- server/api/faxReport/faxReport.controller.js | 2 +- server/api/faxReport/faxReport.model.js | 2 +- server/api/faxReport/faxReport.rpc.js | 2 +- server/api/faxReport/index.js | 2 +- .../faxSessionReport.attributes.js | 2 +- .../faxSessionReport.controller.js | 2 +- .../api/faxSessionReport/faxSessionReport.model.js | 2 +- .../api/faxSessionReport/faxSessionReport.rpc.js | 2 +- server/api/faxSessionReport/index.js | 2 +- server/api/intDeskAccount/index.js | 2 +- .../intDeskAccount/intDeskAccount.attributes.js | 2 +- .../intDeskAccount/intDeskAccount.controller.js | 2 +- server/api/intDeskAccount/intDeskAccount.model.js | 2 +- server/api/intDeskAccount/intDeskAccount.rpc.js | 2 +- server/api/intDeskConfiguration/index.js | 2 +- .../intDeskConfiguration.attributes.js | 2 +- .../intDeskConfiguration.controller.js | 2 +- .../intDeskConfiguration.model.js | 2 +- .../intDeskConfiguration.rpc.js | 2 +- server/api/intDeskField/index.js | 2 +- server/api/intDeskField/intDeskField.attributes.js | 2 +- server/api/intDeskField/intDeskField.controller.js | 2 +- server/api/intDeskField/intDeskField.model.js | 2 +- server/api/intDeskField/intDeskField.rpc.js | 2 +- server/api/intFreshdeskAccount/index.js | 2 +- .../intFreshdeskAccount.attributes.js | 2 +- .../intFreshdeskAccount.controller.js | 2 +- .../intFreshdeskAccount.model.js | 2 +- .../intFreshdeskAccount/intFreshdeskAccount.rpc.js | 2 +- server/api/intFreshdeskConfiguration/index.js | 2 +- .../intFreshdeskConfiguration.attributes.js | 2 +- .../intFreshdeskConfiguration.controller.js | 2 +- .../intFreshdeskConfiguration.model.js | 2 +- .../intFreshdeskConfiguration.rpc.js | 2 +- server/api/intFreshdeskField/index.js | 2 +- .../intFreshdeskField.attributes.js | 2 +- .../intFreshdeskField.controller.js | 2 +- .../intFreshdeskField/intFreshdeskField.model.js | 2 +- .../api/intFreshdeskField/intFreshdeskField.rpc.js | 2 +- server/api/intSalesforceAccount/index.js | 2 +- .../intSalesforceAccount.attributes.js | 2 +- .../intSalesforceAccount.controller.js | 2 +- .../intSalesforceAccount.model.js | 2 +- .../intSalesforceAccount.rpc.js | 2 +- server/api/intSalesforceConfiguration/index.js | 2 +- .../intSalesforceConfiguration.attributes.js | 2 +- .../intSalesforceConfiguration.controller.js | 2 +- .../intSalesforceConfiguration.model.js | 2 +- .../intSalesforceConfiguration.rpc.js | 2 +- server/api/intSalesforceField/index.js | 2 +- .../intSalesforceField.attributes.js | 2 +- .../intSalesforceField.controller.js | 2 +- .../intSalesforceField/intSalesforceField.model.js | 2 +- .../intSalesforceField/intSalesforceField.rpc.js | 2 +- server/api/intSugarcrmAccount/index.js | 2 +- .../intSugarcrmAccount.attributes.js | 2 +- .../intSugarcrmAccount.controller.js | 2 +- .../intSugarcrmAccount/intSugarcrmAccount.model.js | 2 +- .../intSugarcrmAccount/intSugarcrmAccount.rpc.js | 2 +- server/api/intSugarcrmConfiguration/index.js | 2 +- .../intSugarcrmConfiguration.attributes.js | 2 +- .../intSugarcrmConfiguration.controller.js | 2 +- .../intSugarcrmConfiguration.model.js | 2 +- .../intSugarcrmConfiguration.rpc.js | 2 +- server/api/intSugarcrmField/index.js | 2 +- .../intSugarcrmField.attributes.js | 2 +- .../intSugarcrmField.controller.js | 2 +- .../api/intSugarcrmField/intSugarcrmField.model.js | 2 +- .../api/intSugarcrmField/intSugarcrmField.rpc.js | 2 +- server/api/intZendeskAccount/index.js | 2 +- .../intZendeskAccount.attributes.js | 2 +- .../intZendeskAccount.controller.js | 2 +- .../intZendeskAccount/intZendeskAccount.model.js | 2 +- .../api/intZendeskAccount/intZendeskAccount.rpc.js | 2 +- server/api/intZendeskConfiguration/index.js | 2 +- .../intZendeskConfiguration.attributes.js | 2 +- .../intZendeskConfiguration.controller.js | 2 +- .../intZendeskConfiguration.model.js | 2 +- .../intZendeskConfiguration.rpc.js | 2 +- server/api/intZendeskField/index.js | 2 +- .../intZendeskField/intZendeskField.attributes.js | 2 +- .../intZendeskField/intZendeskField.controller.js | 2 +- .../api/intZendeskField/intZendeskField.model.js | 2 +- server/api/intZendeskField/intZendeskField.rpc.js | 2 +- server/api/intZohoAccount/index.js | 2 +- .../intZohoAccount/intZohoAccount.attributes.js | 2 +- .../intZohoAccount/intZohoAccount.controller.js | 2 +- server/api/intZohoAccount/intZohoAccount.model.js | 2 +- server/api/intZohoAccount/intZohoAccount.rpc.js | 2 +- server/api/intZohoConfiguration/index.js | 2 +- .../intZohoConfiguration.attributes.js | 2 +- .../intZohoConfiguration.controller.js | 2 +- .../intZohoConfiguration.model.js | 2 +- .../intZohoConfiguration.rpc.js | 2 +- server/api/intZohoField/index.js | 2 +- server/api/intZohoField/intZohoField.attributes.js | 2 +- server/api/intZohoField/intZohoField.controller.js | 2 +- server/api/intZohoField/intZohoField.model.js | 2 +- server/api/intZohoField/intZohoField.rpc.js | 2 +- server/api/integration/index.js | 2 +- server/api/integration/integration.attributes.js | 2 +- server/api/integration/integration.controller.js | 2 +- server/api/integration/integration.model.js | 2 +- server/api/integration/integration.rpc.js | 2 +- server/api/integrationReport/index.js | 2 +- .../integrationReport.attributes.js | 2 +- .../integrationReport.controller.js | 2 +- .../integrationReport/integrationReport.model.js | 2 +- .../api/integrationReport/integrationReport.rpc.js | 2 +- server/api/interval/index.js | 2 +- server/api/interval/interval.attributes.js | 2 +- server/api/interval/interval.controller.js | 2 +- server/api/interval/interval.model.js | 2 +- server/api/interval/interval.rpc.js | 2 +- server/api/jira/index.js | 2 +- server/api/jira/jira.controller.js | 2 +- server/api/jscriptyAnswerReport/index.js | 2 +- .../jscriptyAnswerReport.attributes.js | 2 +- .../jscriptyAnswerReport.controller.js | 2 +- .../jscriptyAnswerReport.model.js | 2 +- .../jscriptyAnswerReport.rpc.js | 2 +- server/api/jscriptyProject/index.js | 2 +- .../jscriptyProject/jscriptyProject.attributes.js | 2 +- .../jscriptyProject/jscriptyProject.controller.js | 2 +- .../api/jscriptyProject/jscriptyProject.model.js | 2 +- server/api/jscriptyProject/jscriptyProject.rpc.js | 2 +- server/api/jscriptyQuestionReport/index.js | 2 +- .../jscriptyQuestionReport.attributes.js | 2 +- .../jscriptyQuestionReport.controller.js | 2 +- .../jscriptyQuestionReport.model.js | 2 +- .../jscriptyQuestionReport.rpc.js | 2 +- server/api/jscriptySessionReport/index.js | 2 +- .../jscriptySessionReport.attributes.js | 2 +- .../jscriptySessionReport.controller.js | 2 +- .../jscriptySessionReport.model.js | 2 +- .../jscriptySessionReport.rpc.js | 2 +- server/api/license/index.js | 2 +- server/api/license/license.attributes.js | 2 +- server/api/license/license.controller.js | 2 +- server/api/license/license.model.js | 2 +- server/api/license/license.rpc.js | 2 +- server/api/mailAccount/index.js | 2 +- server/api/mailAccount/mailAccount.attributes.js | 2 +- server/api/mailAccount/mailAccount.controller.js | 2 +- server/api/mailAccount/mailAccount.model.js | 2 +- server/api/mailAccount/mailAccount.rpc.js | 2 +- server/api/mailApplication/index.js | 2 +- .../mailApplication/mailApplication.attributes.js | 2 +- .../mailApplication/mailApplication.controller.js | 2 +- .../api/mailApplication/mailApplication.model.js | 2 +- server/api/mailApplication/mailApplication.rpc.js | 2 +- server/api/mailAttachment/index.js | 2 +- .../mailAttachment/mailAttachment.attributes.js | 2 +- .../mailAttachment/mailAttachment.controller.js | 2 +- server/api/mailAttachment/mailAttachment.model.js | 2 +- server/api/mailAttachment/mailAttachment.rpc.js | 2 +- server/api/mailDisposition/index.js | 2 +- .../mailDisposition/mailDisposition.attributes.js | 2 +- .../mailDisposition/mailDisposition.controller.js | 2 +- .../api/mailDisposition/mailDisposition.model.js | 2 +- server/api/mailDisposition/mailDisposition.rpc.js | 2 +- server/api/mailInteraction/index.js | 2 +- .../mailInteraction/mailInteraction.attributes.js | 2 +- .../mailInteraction/mailInteraction.controller.js | 2 +- .../api/mailInteraction/mailInteraction.model.js | 2 +- server/api/mailInteraction/mailInteraction.rpc.js | 2 +- server/api/mailMessage/index.js | 2 +- server/api/mailMessage/mailMessage.attributes.js | 2 +- server/api/mailMessage/mailMessage.controller.js | 2 +- server/api/mailMessage/mailMessage.model.js | 2 +- server/api/mailMessage/mailMessage.rpc.js | 2 +- server/api/mailQueue/index.js | 2 +- server/api/mailQueue/mailQueue.attributes.js | 2 +- server/api/mailQueue/mailQueue.controller.js | 2 +- server/api/mailQueue/mailQueue.model.js | 2 +- server/api/mailQueue/mailQueue.rpc.js | 2 +- server/api/mailReport/index.js | 2 +- server/api/mailReport/mailReport.attributes.js | 2 +- server/api/mailReport/mailReport.controller.js | 2 +- server/api/mailReport/mailReport.model.js | 2 +- server/api/mailReport/mailReport.rpc.js | 2 +- server/api/mailServerIn/index.js | 2 +- server/api/mailServerIn/mailServerIn.attributes.js | 2 +- server/api/mailServerIn/mailServerIn.model.js | 2 +- server/api/mailServerIn/mailServerIn.rpc.js | 2 +- server/api/mailServerOut/index.js | 2 +- .../api/mailServerOut/mailServerOut.attributes.js | 2 +- .../api/mailServerOut/mailServerOut.controller.js | 2 +- server/api/mailServerOut/mailServerOut.model.js | 2 +- server/api/mailServerOut/mailServerOut.rpc.js | 2 +- server/api/mailSessionReport/index.js | 2 +- .../mailSessionReport.attributes.js | 2 +- .../mailSessionReport.controller.js | 2 +- .../mailSessionReport/mailSessionReport.model.js | 2 +- .../api/mailSessionReport/mailSessionReport.rpc.js | 2 +- server/api/memberReport/index.js | 2 +- server/api/memberReport/memberReport.attributes.js | 2 +- server/api/memberReport/memberReport.controller.js | 2 +- server/api/memberReport/memberReport.model.js | 2 +- server/api/memberReport/memberReport.rpc.js | 2 +- server/api/migration/index.js | 2 +- server/api/migration/migration.attributes.js | 2 +- server/api/migration/migration.controller.js | 2 +- server/api/migration/migration.model.js | 2 +- server/api/migration/migration.rpc.js | 2 +- server/api/network/index.js | 2 +- server/api/network/network.attributes.js | 2 +- server/api/network/network.controller.js | 2 +- server/api/network/network.model.js | 2 +- server/api/network/network.rpc.js | 2 +- server/api/openchannelAccount/index.js | 2 +- .../openchannelAccount.attributes.js | 2 +- .../openchannelAccount.controller.js | 2 +- .../openchannelAccount/openchannelAccount.model.js | 2 +- .../openchannelAccount/openchannelAccount.rpc.js | 2 +- server/api/openchannelApplication/index.js | 2 +- .../openchannelApplication.attributes.js | 2 +- .../openchannelApplication.controller.js | 2 +- .../openchannelApplication.model.js | 2 +- .../openchannelApplication.rpc.js | 2 +- server/api/openchannelDisposition/index.js | 2 +- .../openchannelDisposition.attributes.js | 2 +- .../openchannelDisposition.controller.js | 2 +- .../openchannelDisposition.model.js | 2 +- .../openchannelDisposition.rpc.js | 2 +- server/api/openchannelInteraction/index.js | 2 +- .../openchannelInteraction.attributes.js | 2 +- .../openchannelInteraction.controller.js | 2 +- .../openchannelInteraction.model.js | 2 +- .../openchannelInteraction.rpc.js | 2 +- server/api/openchannelMessage/index.js | 2 +- .../openchannelMessage.attributes.js | 2 +- .../openchannelMessage.controller.js | 2 +- .../openchannelMessage.events.js | 2 +- .../openchannelMessage/openchannelMessage.model.js | 2 +- .../openchannelMessage/openchannelMessage.rpc.js | 2 +- .../openchannelMessage.socket.js | 2 +- server/api/openchannelQueue/index.js | 2 +- .../openchannelQueue.attributes.js | 2 +- .../openchannelQueue.controller.js | 2 +- .../api/openchannelQueue/openchannelQueue.model.js | 2 +- .../api/openchannelQueue/openchannelQueue.rpc.js | 2 +- server/api/openchannelReport/index.js | 2 +- .../openchannelReport.attributes.js | 2 +- .../openchannelReport.controller.js | 2 +- .../openchannelReport/openchannelReport.model.js | 2 +- .../api/openchannelReport/openchannelReport.rpc.js | 2 +- server/api/openchannelSessionReport/index.js | 2 +- .../openchannelSessionReport.attributes.js | 2 +- .../openchannelSessionReport.controller.js | 2 +- .../openchannelSessionReport.model.js | 2 +- .../openchannelSessionReport.rpc.js | 2 +- server/api/pause/index.js | 2 +- server/api/pause/pause.attributes.js | 2 +- server/api/pause/pause.controller.js | 2 +- server/api/pause/pause.model.js | 2 +- server/api/pause/pause.rpc.js | 2 +- server/api/pm2/index.js | 2 +- server/api/pm2/pm2.controller.js | 2 +- server/api/reportAgentPreview/index.js | 2 +- .../reportAgentPreview.attributes.js | 2 +- .../reportAgentPreview/reportAgentPreview.model.js | 2 +- .../reportAgentPreview/reportAgentPreview.rpc.js | 2 +- server/api/rpc/index.js | 2 +- server/api/rpc/rpc.controller.js | 2 +- server/api/schedule/index.js | 2 +- server/api/schedule/schedule.attributes.js | 2 +- server/api/schedule/schedule.controller.js | 2 +- server/api/schedule/schedule.model.js | 2 +- server/api/schedule/schedule.rpc.js | 2 +- server/api/setting/index.js | 2 +- server/api/setting/setting.attributes.js | 2 +- server/api/setting/setting.controller.js | 2 +- server/api/setting/setting.model.js | 2 +- server/api/setting/setting.rpc.js | 2 +- server/api/smsAccount/index.js | 2 +- server/api/smsAccount/smsAccount.attributes.js | 2 +- server/api/smsAccount/smsAccount.controller.js | 2 +- server/api/smsAccount/smsAccount.model.js | 2 +- server/api/smsAccount/smsAccount.rpc.js | 2 +- server/api/smsApplication/index.js | 2 +- .../smsApplication/smsApplication.attributes.js | 2 +- .../smsApplication/smsApplication.controller.js | 2 +- server/api/smsApplication/smsApplication.model.js | 2 +- server/api/smsApplication/smsApplication.rpc.js | 2 +- server/api/smsDisposition/index.js | 2 +- .../smsDisposition/smsDisposition.attributes.js | 2 +- .../smsDisposition/smsDisposition.controller.js | 2 +- server/api/smsDisposition/smsDisposition.model.js | 2 +- server/api/smsDisposition/smsDisposition.rpc.js | 2 +- server/api/smsInteraction/index.js | 2 +- .../smsInteraction/smsInteraction.attributes.js | 2 +- .../smsInteraction/smsInteraction.controller.js | 2 +- server/api/smsInteraction/smsInteraction.model.js | 2 +- server/api/smsInteraction/smsInteraction.rpc.js | 2 +- server/api/smsMessage/index.js | 2 +- server/api/smsMessage/smsMessage.attributes.js | 2 +- server/api/smsMessage/smsMessage.controller.js | 2 +- server/api/smsMessage/smsMessage.model.js | 2 +- server/api/smsMessage/smsMessage.rpc.js | 2 +- server/api/smsQueue/index.js | 2 +- server/api/smsQueue/smsQueue.attributes.js | 2 +- server/api/smsQueue/smsQueue.controller.js | 2 +- server/api/smsQueue/smsQueue.model.js | 2 +- server/api/smsQueue/smsQueue.rpc.js | 2 +- server/api/smsReport/index.js | 2 +- server/api/smsReport/smsReport.attributes.js | 2 +- server/api/smsReport/smsReport.controller.js | 2 +- server/api/smsReport/smsReport.model.js | 2 +- server/api/smsReport/smsReport.rpc.js | 2 +- server/api/smsSessionReport/index.js | 2 +- .../smsSessionReport.attributes.js | 2 +- .../smsSessionReport.controller.js | 2 +- .../api/smsSessionReport/smsSessionReport.model.js | 2 +- .../api/smsSessionReport/smsSessionReport.rpc.js | 2 +- server/api/sound/index.js | 2 +- server/api/sound/sound.attributes.js | 2 +- server/api/sound/sound.controller.js | 2 +- server/api/sound/sound.model.js | 2 +- server/api/sound/sound.rpc.js | 2 +- server/api/squareOdbc/index.js | 2 +- server/api/squareOdbc/squareOdbc.attributes.js | 2 +- server/api/squareOdbc/squareOdbc.controller.js | 2 +- server/api/squareOdbc/squareOdbc.model.js | 2 +- server/api/squareOdbc/squareOdbc.rpc.js | 2 +- server/api/squareProject/index.js | 2 +- .../api/squareProject/squareProject.attributes.js | 2 +- .../api/squareProject/squareProject.controller.js | 2 +- server/api/squareProject/squareProject.model.js | 2 +- server/api/squareProject/squareProject.rpc.js | 2 +- server/api/squareRecording/index.js | 2 +- .../squareRecording/squareRecording.attributes.js | 2 +- .../squareRecording/squareRecording.controller.js | 2 +- .../api/squareRecording/squareRecording.model.js | 2 +- server/api/squareRecording/squareRecording.rpc.js | 2 +- server/api/squareReport/index.js | 2 +- server/api/squareReport/squareReport.attributes.js | 2 +- server/api/squareReport/squareReport.controller.js | 2 +- server/api/squareReport/squareReport.model.js | 2 +- server/api/squareReport/squareReport.rpc.js | 2 +- server/api/squareReportDetail/index.js | 2 +- .../squareReportDetail.attributes.js | 2 +- .../squareReportDetail.controller.js | 2 +- .../squareReportDetail/squareReportDetail.model.js | 2 +- .../squareReportDetail/squareReportDetail.rpc.js | 2 +- server/api/system/index.js | 2 +- server/api/system/system.controller.js | 2 +- server/api/tag/index.js | 2 +- server/api/tag/tag.attributes.js | 2 +- server/api/tag/tag.controller.js | 2 +- server/api/tag/tag.model.js | 2 +- server/api/tag/tag.rpc.js | 2 +- server/api/team/index.js | 2 +- server/api/team/team.attributes.js | 2 +- server/api/team/team.controller.js | 2 +- server/api/team/team.model.js | 2 +- server/api/team/team.rpc.js | 2 +- server/api/template/index.js | 2 +- server/api/template/template.attributes.js | 2 +- server/api/template/template.controller.js | 2 +- server/api/template/template.model.js | 2 +- server/api/template/template.rpc.js | 2 +- server/api/trigger/index.js | 2 +- server/api/trigger/trigger.attributes.js | 2 +- server/api/trigger/trigger.controller.js | 2 +- server/api/trigger/trigger.model.js | 2 +- server/api/trigger/trigger.rpc.js | 2 +- server/api/trunk/index.js | 2 +- server/api/trunk/trunk.attributes.js | 2 +- server/api/trunk/trunk.controller.js | 2 +- server/api/trunk/trunk.model.js | 2 +- server/api/trunk/trunk.rpc.js | 2 +- server/api/user/index.js | 2 +- server/api/user/user.attributes.js | 2 +- server/api/user/user.controller.js | 2 +- server/api/user/user.events.js | 2 +- server/api/user/user.model.js | 2 +- server/api/user/user.rpc.js | 2 +- server/api/user/user.socket.js | 2 +- server/api/userChatQueue/index.js | 2 +- .../api/userChatQueue/userChatQueue.attributes.js | 2 +- server/api/userChatQueue/userChatQueue.model.js | 2 +- server/api/userChatQueue/userChatQueue.rpc.js | 2 +- server/api/userFaxQueue/index.js | 2 +- server/api/userFaxQueue/userFaxQueue.attributes.js | 2 +- server/api/userFaxQueue/userFaxQueue.model.js | 2 +- server/api/userFaxQueue/userFaxQueue.rpc.js | 2 +- server/api/userMailQueue/index.js | 2 +- .../api/userMailQueue/userMailQueue.attributes.js | 2 +- server/api/userMailQueue/userMailQueue.model.js | 2 +- server/api/userMailQueue/userMailQueue.rpc.js | 2 +- server/api/userOpenchannelQueue/index.js | 2 +- .../userOpenchannelQueue.attributes.js | 2 +- .../userOpenchannelQueue.model.js | 2 +- .../userOpenchannelQueue.rpc.js | 2 +- server/api/userSmsQueue/index.js | 2 +- server/api/userSmsQueue/userSmsQueue.attributes.js | 2 +- server/api/userSmsQueue/userSmsQueue.model.js | 2 +- server/api/userSmsQueue/userSmsQueue.rpc.js | 2 +- server/api/userVoiceQueue/index.js | 2 +- .../userVoiceQueue/userVoiceQueue.attributes.js | 2 +- server/api/userVoiceQueue/userVoiceQueue.model.js | 2 +- server/api/userVoiceQueue/userVoiceQueue.rpc.js | 2 +- server/api/userVoiceQueueRt/index.js | 2 +- .../userVoiceQueueRt.attributes.js | 2 +- .../userVoiceQueueRt/userVoiceQueueRt.events.js | 2 +- .../api/userVoiceQueueRt/userVoiceQueueRt.model.js | 2 +- .../api/userVoiceQueueRt/userVoiceQueueRt.rpc.js | 2 +- .../userVoiceQueueRt/userVoiceQueueRt.socket.js | 2 +- server/api/variable/index.js | 2 +- server/api/variable/variable.attributes.js | 2 +- server/api/variable/variable.controller.js | 2 +- server/api/variable/variable.model.js | 2 +- server/api/variable/variable.rpc.js | 2 +- server/api/version/index.js | 2 +- server/api/version/version.controller.js | 2 +- server/api/voiceAgentReport/index.js | 2 +- .../voiceAgentReport.attributes.js | 2 +- .../voiceAgentReport.controller.js | 2 +- .../api/voiceAgentReport/voiceAgentReport.model.js | 2 +- .../api/voiceAgentReport/voiceAgentReport.rpc.js | 2 +- server/api/voiceCallReport/index.js | 2 +- .../voiceCallReport/voiceCallReport.attributes.js | 2 +- .../voiceCallReport/voiceCallReport.controller.js | 2 +- .../api/voiceCallReport/voiceCallReport.model.js | 2 +- server/api/voiceCallReport/voiceCallReport.rpc.js | 2 +- server/api/voiceChanSpy/index.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.attributes.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.controller.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.model.js | 2 +- server/api/voiceChanSpy/voiceChanSpy.rpc.js | 2 +- server/api/voiceContext/index.js | 2 +- server/api/voiceContext/voiceContext.attributes.js | 2 +- server/api/voiceContext/voiceContext.controller.js | 2 +- server/api/voiceContext/voiceContext.model.js | 2 +- server/api/voiceContext/voiceContext.rpc.js | 2 +- server/api/voiceDialReport/index.js | 2 +- .../voiceDialReport/voiceDialReport.attributes.js | 2 +- .../voiceDialReport/voiceDialReport.controller.js | 2 +- .../api/voiceDialReport/voiceDialReport.model.js | 2 +- server/api/voiceDialReport/voiceDialReport.rpc.js | 2 +- server/api/voiceDisposition/index.js | 2 +- .../voiceDisposition.attributes.js | 2 +- .../voiceDisposition.controller.js | 2 +- .../api/voiceDisposition/voiceDisposition.model.js | 2 +- .../api/voiceDisposition/voiceDisposition.rpc.js | 2 +- server/api/voiceExtension/index.js | 2 +- .../voiceExtension/voiceExtension.attributes.js | 2 +- .../voiceExtension/voiceExtension.controller.js | 2 +- server/api/voiceExtension/voiceExtension.model.js | 2 +- server/api/voiceExtension/voiceExtension.rpc.js | 2 +- server/api/voiceMail/index.js | 2 +- server/api/voiceMail/voiceMail.attributes.js | 2 +- server/api/voiceMail/voiceMail.controller.js | 2 +- server/api/voiceMail/voiceMail.model.js | 2 +- server/api/voiceMail/voiceMail.rpc.js | 2 +- server/api/voiceMailMessage/index.js | 2 +- .../voiceMailMessage.attributes.js | 2 +- .../voiceMailMessage.controller.js | 2 +- .../api/voiceMailMessage/voiceMailMessage.model.js | 2 +- .../api/voiceMailMessage/voiceMailMessage.rpc.js | 2 +- server/api/voiceMusicOnHold/index.js | 2 +- .../voiceMusicOnHold.attributes.js | 2 +- .../voiceMusicOnHold.controller.js | 2 +- .../api/voiceMusicOnHold/voiceMusicOnHold.model.js | 2 +- .../api/voiceMusicOnHold/voiceMusicOnHold.rpc.js | 2 +- server/api/voiceQueue/index.js | 2 +- server/api/voiceQueue/voiceQueue.attributes.js | 2 +- server/api/voiceQueue/voiceQueue.controller.js | 2 +- server/api/voiceQueue/voiceQueue.model.js | 2 +- server/api/voiceQueue/voiceQueue.rpc.js | 2 +- server/api/voiceQueueReport/index.js | 2 +- .../voiceQueueReport.attributes.js | 2 +- .../voiceQueueReport.controller.js | 2 +- .../api/voiceQueueReport/voiceQueueReport.model.js | 2 +- .../api/voiceQueueReport/voiceQueueReport.rpc.js | 2 +- server/api/voiceQueuesLog/index.js | 2 +- .../voiceQueuesLog/voiceQueuesLog.attributes.js | 2 +- .../voiceQueuesLog/voiceQueuesLog.controller.js | 2 +- server/api/voiceQueuesLog/voiceQueuesLog.model.js | 2 +- server/api/voiceQueuesLog/voiceQueuesLog.rpc.js | 2 +- server/api/voiceRecording/index.js | 2 +- .../voiceRecording/voiceRecording.attributes.js | 2 +- .../voiceRecording/voiceRecording.controller.js | 2 +- server/api/voiceRecording/voiceRecording.model.js | 2 +- server/api/voiceRecording/voiceRecording.rpc.js | 2 +- server/api/voiceTransferReport/index.js | 2 +- .../voiceTransferReport.attributes.js | 2 +- .../voiceTransferReport.controller.js | 2 +- .../voiceTransferReport.model.js | 2 +- .../voiceTransferReport/voiceTransferReport.rpc.js | 2 +- server/app.js | 2 +- server/components/auth/service.js | 2 +- server/components/dashboards/run.js | 2 +- server/components/dialer/insert.js | 1 + server/components/export/csv.js | 2 +- server/components/export/pdf.js | 2 +- server/components/export/xls.js | 2 +- server/components/extensions/rewrite.js | 2 +- server/components/integrations/configuration.js | 2 +- server/components/license/service.js | 2 +- server/components/parsers/qs.js | 2 +- server/config/environment/development.js | 2 +- server/config/environment/index.js | 2 +- server/config/environment/shared.js | 2 +- server/config/express.js | 2 +- server/config/license/hardware.js | 2 +- server/config/license/index.js | 2 +- server/config/license/util.js | 2 +- server/config/local.env.js | 2 +- server/config/logger.js | 2 +- server/config/pm2/config.js | 2 +- server/config/pm2/index.js | 2 +- server/config/schedule/index.js | 2 +- server/config/seed.js | 2 +- server/config/seedContact.js | 2 +- server/config/seedDB/analyticReports.js | 2 +- server/config/seedDB/analyticTreeReports.js | 2 +- server/config/seedDB/chanspy.js | 2 +- server/config/seedDB/companies.js | 2 +- server/config/seedDB/contacts.js | 2 +- server/config/seedDB/index.js | 2 +- server/config/seedDB/intervals.js | 2 +- server/config/seedDB/jscriptyProjects.js | 2 +- server/config/seedDB/lists.js | 2 +- server/config/seedDB/mailAccounts.js | 2 +- server/config/seedDB/pauses.js | 2 +- server/config/seedDB/report/default.js | 2 +- server/config/seedDB/report/fields.js | 2 +- server/config/seedDB/report/index.js | 2 +- server/config/seedDB/sounds.js | 2 +- server/config/seedDB/squareOdbc.js | 2 +- server/config/seedDB/squareProjects.js | 2 +- server/config/seedDB/tags.js | 2 +- server/config/seedDB/teams.js | 2 +- server/config/seedDB/tree/index.js | 2 +- server/config/seedDB/trunks.js | 2 +- server/config/seedDB/users.js | 2 +- server/config/seedDB/variables.js | 2 +- server/config/seedDB/voiceContexts.js | 2 +- server/config/seedDB/voiceExtensions.js | 2 +- server/config/seedDB/voiceMusicOnHold.js | 2 +- server/config/seedDB/voiceQueues.js | 2 +- server/config/seedUsers.js | 2 +- server/config/socketio.js | 2 +- server/config/utils.js | 2 +- server/errors/index.js | 2 +- server/files/chat/iframe.js | 65 +- server/migrations/2.0.12.js | 2 +- server/migrations/2.0.13.js | 2 +- server/migrations/2.0.14.js | 2 +- server/migrations/2.0.15.js | 2 +- server/migrations/2.0.16.js | 2 +- server/migrations/2.0.17.js | 2 +- server/migrations/2.0.18.js | 2 +- server/migrations/2.0.19.js | 2 +- server/migrations/2.0.20.js | 2 +- server/migrations/2.0.21.js | 2 +- server/migrations/2.0.22.js | 2 +- server/migrations/2.0.23.js | 2 +- server/migrations/2.0.24.js | 2 +- server/migrations/2.0.25.js | 2 +- server/migrations/2.0.26.js | 2 +- server/migrations/2.0.27.js | 2 +- server/migrations/2.0.28.js | 2 +- server/migrations/2.0.29.js | 2 +- server/migrations/2.0.30.js | 2 +- server/migrations/2.0.31.js | 1 + server/mysqldb/index.js | 2 +- server/routes.js | 2 +- server/rpc/index.js | 2 +- server/services/agi/channel.js | 2 +- server/services/agi/error.js | 2 +- server/services/agi/graph/index.js | 2 +- server/services/agi/index.js | 2 +- server/services/agi/mailRpc/index.js | 2 +- server/services/agi/reply.js | 2 +- server/services/agi/rpc/index.js | 2 +- server/services/agi/scripts/index.js | 2 +- server/services/agi/server.js | 2 +- server/services/agi/vertices.js | 2 +- server/services/ami/acw/index.js | 2 +- server/services/ami/ami.js | 2 +- server/services/ami/client.js | 2 +- server/services/ami/dialer/action.js | 2 +- server/services/ami/dialer/agentComplete.js | 2 +- server/services/ami/dialer/final.js | 2 +- server/services/ami/dialer/hangup.js | 2 +- server/services/ami/dialer/history.js | 2 +- server/services/ami/dialer/index.js | 2 +- server/services/ami/dialer/queueCallerAbandon.js | 2 +- server/services/ami/index.js | 2 +- server/services/ami/model/agent.js | 2 +- server/services/ami/model/campaign.js | 2 +- server/services/ami/model/channel.js | 2 +- server/services/ami/model/deskAccount.js | 2 +- server/services/ami/model/freshdeskAccount.js | 2 +- server/services/ami/model/queueReport.js | 2 +- server/services/ami/model/salesforceAccount.js | 2 +- server/services/ami/model/sugarcrmAccount.js | 2 +- server/services/ami/model/telephone.js | 2 +- server/services/ami/model/template.js | 2 +- server/services/ami/model/trunk.js | 2 +- server/services/ami/model/voiceQueue.js | 2 +- server/services/ami/model/voiceTrigger.js | 2 +- server/services/ami/model/zendeskAccount.js | 2 +- server/services/ami/model/zohoAccount.js | 2 +- server/services/ami/preview/action.js | 2 +- server/services/ami/preview/db.js | 1 - server/services/ami/preview/index.js | 2 +- server/services/ami/preview/rpcDb.js | 2 +- server/services/ami/preview/util/util.js | 2 +- server/services/ami/properties.js | 2 +- server/services/ami/realtime/index.js | 2 +- server/services/ami/report/index.js | 2 +- server/services/ami/report/userReport.js | 2 +- server/services/ami/report/voiceAgentReport.js | 2 +- server/services/ami/report/voiceCallReport.js | 2 +- server/services/ami/report/voiceDialReport.js | 2 +- server/services/ami/report/voiceQueueReport.js | 2 +- server/services/ami/rpc/agentReportPreview.js | 2 +- server/services/ami/rpc/campaign.js | 2 +- server/services/ami/rpc/cmHopper.js | 2 +- server/services/ami/rpc/cmHopperBlack.js | 2 +- server/services/ami/rpc/cmHopperFinal.js | 2 +- server/services/ami/rpc/cmHopperHistory.js | 2 +- server/services/ami/rpc/integrations/desk.js | 2 +- server/services/ami/rpc/integrations/freshdesk.js | 2 +- server/services/ami/rpc/integrations/salesforce.js | 2 +- server/services/ami/rpc/integrations/sugarcrm.js | 2 +- server/services/ami/rpc/integrations/zendesk.js | 2 +- server/services/ami/rpc/integrations/zoho.js | 2 +- server/services/ami/rpc/memberReport.js | 2 +- server/services/ami/rpc/template.js | 2 +- server/services/ami/rpc/trigger.js | 2 +- server/services/ami/rpc/trunk.js | 2 +- server/services/ami/rpc/user.js | 2 +- server/services/ami/rpc/voiceAgentReport.js | 2 +- server/services/ami/rpc/voiceCallReport.js | 2 +- server/services/ami/rpc/voiceDialReport.js | 2 +- server/services/ami/rpc/voiceQueue.js | 2 +- server/services/ami/rpc/voiceQueueReport.js | 2 +- server/services/ami/rpc/voiceQueueRt.js | 2 +- server/services/ami/rpc/voiceRecording.js | 2 +- server/services/ami/rpc/voiceTransferReport.js | 2 +- server/services/ami/server/index.js | 2 +- server/services/ami/trigger/index.js | 2 +- server/services/ami/trigger/integration/desk.js | 2 +- .../services/ami/trigger/integration/freshdesk.js | 2 +- server/services/ami/trigger/integration/index.js | 2 +- .../services/ami/trigger/integration/salesforce.js | 2 +- .../services/ami/trigger/integration/sugarcrm.js | 2 +- server/services/ami/trigger/integration/util.js | 2 +- server/services/ami/trigger/integration/zendesk.js | 2 +- server/services/ami/trigger/integration/zoho.js | 2 +- server/services/ami/trigger/urlforward/index.js | 2 +- server/services/email/index.js | 2 +- server/services/email/lib/email.js | 2 +- server/services/email/lib/imap.js | 2 +- server/services/email/lib/smtp.js | 2 +- server/services/express/index.js | 2 +- server/services/routing/client.js | 2 +- server/services/routing/index.js | 2 +- server/services/routing/lib/rule-engine.js | 2 +- server/services/routing/model/agent.js | 2 +- server/services/routing/model/chatQueue.js | 2 +- server/services/routing/model/interval.js | 2 +- server/services/routing/model/openchannelQueue.js | 2 +- server/services/routing/realtime/index.js | 2 +- server/services/routing/rpc/chatInteraction.js | 2 +- server/services/routing/rpc/chatQueue.js | 2 +- server/services/routing/rpc/interval.js | 2 +- .../services/routing/rpc/openchannelInteraction.js | 2 +- server/services/routing/rpc/openchannelQueue.js | 2 +- server/services/routing/rpc/user.js | 2 +- .../services/routing/server/applications/agent.js | 2 +- .../services/routing/server/applications/close.js | 2 +- .../services/routing/server/applications/gotoif.js | 2 +- .../services/routing/server/applications/gotop.js | 2 +- .../services/routing/server/applications/noop.js | 2 +- .../services/routing/server/applications/queue.js | 2 +- .../routing/server/applications/strategy/agent.js | 2 +- .../server/applications/strategy/beepall.js | 2 +- .../routing/server/applications/strategy/index.js | 2 +- .../server/applications/strategy/rrmemory.js | 2 +- .../routing/server/applications/strategy/util.js | 2 +- server/services/routing/server/index.js | 2 +- server/services/routing/server/interval.js | 2 +- snippet/assets/images/avatars/agent0.png | Bin 0 -> 5172 bytes snippet/assets/images/avatars/customer0.png | Bin 0 -> 3439 bytes snippet/assets/images/avatars/robot0.png | Bin 0 -> 3252 bytes snippet/assets/images/logos/whisker_32x32.png | Bin 0 -> 2456 bytes .../images/ng-emoji-picker/IconsetSmiles.png | Bin 0 -> 6975 bytes .../images/ng-emoji-picker/IconsetSmiles_1x.png | Bin 0 -> 3283 bytes snippet/assets/images/ng-emoji-picker/IconsetW.png | Bin 0 -> 26483 bytes .../assets/images/ng-emoji-picker/IconsetW_1x.png | Bin 0 -> 12961 bytes snippet/assets/images/ng-emoji-picker/blank.gif | Bin 0 -> 49 bytes .../ng-emoji-picker/emoji_emoticon_black.png | Bin 0 -> 356 bytes .../images/ng-emoji-picker/emoji_spritesheet_0.png | Bin 0 -> 739663 bytes .../images/ng-emoji-picker/emoji_spritesheet_1.png | Bin 0 -> 543573 bytes .../images/ng-emoji-picker/emoji_spritesheet_2.png | Bin 0 -> 978984 bytes .../images/ng-emoji-picker/emoji_spritesheet_3.png | Bin 0 -> 411864 bytes .../images/ng-emoji-picker/emoji_spritesheet_4.png | Bin 0 -> 544234 bytes snippet/fonts/materialdesignicons-webfont.eot | Bin 0 -> 292776 bytes snippet/fonts/materialdesignicons-webfont.svg | 6150 +++ snippet/fonts/materialdesignicons-webfont.ttf | Bin 0 -> 292556 bytes snippet/fonts/materialdesignicons-webfont.woff | Bin 0 -> 144072 bytes snippet/fonts/materialdesignicons-webfont.woff2 | Bin 0 -> 109248 bytes snippet/index.html | 70 + snippet/scripts/app.a926a3b0.js | 286 + snippet/scripts/vendor.d8450845.js |40098 ++++++++++++++++++++ snippet/styles/app.22f48eff.css | 422 + snippet/styles/vendor.9da1d79c.css |35592 +++++++++++++++++ 946 files changed, 83642 insertions(+), 920 deletions(-) delete mode 100644 public/scripts/app.2de74318.js create mode 100644 public/scripts/app.3e914f3e.js create mode 100644 server/components/dialer/insert.js create mode 100644 server/migrations/2.0.31.js delete mode 100644 server/services/ami/preview/db.js create mode 100644 snippet/assets/images/avatars/agent0.png create mode 100644 snippet/assets/images/avatars/customer0.png create mode 100644 snippet/assets/images/avatars/robot0.png create mode 100644 snippet/assets/images/logos/whisker_32x32.png create mode 100644 snippet/assets/images/ng-emoji-picker/IconsetSmiles.png create mode 100644 snippet/assets/images/ng-emoji-picker/IconsetSmiles_1x.png create mode 100644 snippet/assets/images/ng-emoji-picker/IconsetW.png create mode 100644 snippet/assets/images/ng-emoji-picker/IconsetW_1x.png create mode 100644 snippet/assets/images/ng-emoji-picker/blank.gif create mode 100644 snippet/assets/images/ng-emoji-picker/emoji_emoticon_black.png create mode 100644 snippet/assets/images/ng-emoji-picker/emoji_spritesheet_0.png create mode 100644 snippet/assets/images/ng-emoji-picker/emoji_spritesheet_1.png create mode 100644 snippet/assets/images/ng-emoji-picker/emoji_spritesheet_2.png create mode 100644 snippet/assets/images/ng-emoji-picker/emoji_spritesheet_3.png create mode 100644 snippet/assets/images/ng-emoji-picker/emoji_spritesheet_4.png create mode 100644 snippet/fonts/materialdesignicons-webfont.eot create mode 100644 snippet/fonts/materialdesignicons-webfont.svg create mode 100644 snippet/fonts/materialdesignicons-webfont.ttf create mode 100644 snippet/fonts/materialdesignicons-webfont.woff create mode 100644 snippet/fonts/materialdesignicons-webfont.woff2 create mode 100644 snippet/index.html create mode 100644 snippet/scripts/app.a926a3b0.js create mode 100644 snippet/scripts/vendor.d8450845.js create mode 100644 snippet/styles/app.22f48eff.css create mode 100644 snippet/styles/vendor.9da1d79c.css diff --git a/apidoc/api_data.js b/apidoc/api_data.js index 4f41fc1..6e5c37e 100644 --- a/apidoc/api_data.js +++ b/apidoc/api_data.js @@ -1 +1 @@ -define({ "api": [ { "type": "delete", "url": "/api/actions/{id}", "title": "Deletes a Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteActions", "group": "Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "put", "url": "/api/actions/{id}", "title": "Update an existing Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateActions", "group": "Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "post", "url": "/api/analytics/custom_reports", "title": "Creates a new Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "delete", "url": "/api/analytics/custom_reports/{id}", "title": "Deletes a Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports", "title": "Gets a list of Analytic Custom Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/custom_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/custom_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/custom_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/custom_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/custom_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}", "title": "Gets a single Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "put", "url": "/api/analytics/custom_reports/{id}", "title": "Update an existing Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "post", "url": "/api/analytics/default_reports", "title": "Creates a new Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "delete", "url": "/api/analytics/default_reports/{id}", "title": "Deletes a Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports", "title": "Gets a list of Analytic Default Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/default_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/default_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/default_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/default_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/default_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}", "title": "Gets a single Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "put", "url": "/api/analytics/default_reports/{id}", "title": "Update an existing Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "post", "url": "/api/analytics/extracted_reports", "title": "Creates a new Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "savename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "startDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"manual\"", "\"scheduled\"" ], "optional": false, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "delete", "url": "/api/analytics/extracted_reports/{id}", "title": "Deletes a Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports", "title": "Gets a list of Analytic Extacted Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/extracted_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/extracted_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/extracted_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/extracted_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/extracted_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}", "title": "Gets a single Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}/download", "title": "Download Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "put", "url": "/api/analytics/extracted_reports/{id}", "title": "Update an existing Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/create_many", "title": "Creates many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/destroy_many?ids={ids}", "title": "Deletes many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports", "title": "Creates a new Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/{id}", "title": "Deletes a Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports", "title": "Gets a list of Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/field_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/field_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/field_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/field_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/field_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports/{id}", "title": "Gets a single Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/{id}/create_many", "title": "Rewrite fields set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id}/create_many -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addFields", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "put", "url": "/api/analytics/field_reports/{id}", "title": "Update an existing Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/metrics", "title": "Creates a new Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Metric", "group": "Analytic_Metrics", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "metric", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "delete", "url": "/api/analytics/metrics/{id}", "title": "Deletes a Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics", "title": "Gets a list of Analytic Metric", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/metrics?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/metrics?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/metrics?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/metrics?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/metrics?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics/{id}", "title": "Gets a single Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "put", "url": "/api/analytics/metrics/{id}", "title": "Update an existing Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "post", "url": "/api/analytics/tree_reports", "title": "Creates a new Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "tree", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "delete", "url": "/api/analytics/tree_reports/{id}", "title": "Deletes a Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports", "title": "Gets a list of Analytic Tree Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/tree_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/tree_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/tree_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/tree_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/tree_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports/{id}", "title": "Gets a single Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "put", "url": "/api/analytics/tree_reports/{id}", "title": "Update an existing Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "post", "url": "/api/auth/google", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authGoogle/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authLocal/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/automations", "title": "Creates a new Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAutomations", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "delete", "url": "/api/automations/{id}", "title": "Deletes a Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations", "title": "Gets a list of Automations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -v -u {name}:{password}", "type": "json" } ], "name": "GetAutomations", "group": "Automations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/automations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/automations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/automations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/automations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/automations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}", "title": "Gets a single Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addActions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/conditions", "title": "Creates new conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConditions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/actions", "title": "Gets Automation Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/conditions", "title": "Gets Automation Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConditions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "put", "url": "/api/automations/{id}", "title": "Update an existing Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/campaigns/{id}/blacklists", "title": "Add blacklists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns/{id}/lists", "title": "Add lists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns", "title": "Creates a new Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCampaigns", "group": "Campaigns", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ivr\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "limitCalls", "description": "

Max 200 calls.

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}", "title": "Deletes a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacklists", "title": "Get campaign blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns", "title": "Gets a list of Campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "GetCampaigns", "group": "Campaigns", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/campaigns?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/campaigns?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/campaigns?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/campaigns?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/campaigns?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/finals", "title": "Gets campaign hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hopper_histories", "title": "Gets campaign hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hoppers", "title": "Gets campaign hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/lists", "title": "Get campaign lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/blacklists", "title": "Remove blacklists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/lists", "title": "Remove lists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}", "title": "Gets a single Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacks", "title": "Gets campaign hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "put", "url": "/api/campaigns/{id}", "title": "Update an existing Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/canned_answers", "title": "Creates a new Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCanned_Answers", "group": "Canned_Answers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "key", "description": "" }, { "group": "Body", "type": "Text", "optional": false, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/canned_answers/{id}", "title": "Deletes a Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers", "title": "Gets a list of Canned Answers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -v -u {name}:{password}", "type": "json" } ], "name": "GetCanned_Answers", "group": "Canned_Answers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/canned_answers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/canned_answers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/canned_answers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/canned_answers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/canned_answers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers/{id}", "title": "Gets a single Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "put", "url": "/api/canned_answers/{id}", "title": "Update an existing Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/chat/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "get", "url": "/api/chat/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "put", "url": "/api/chat/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "post", "url": "/api/chat/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Chat_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "get", "url": "/api/chat/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "put", "url": "/api/chat/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/enquiries/{id}", "title": "Deletes a Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "get", "url": "/api/chat/enquiries/{id}", "title": "Gets a single Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "put", "url": "/api/chat/enquiries/{id}", "title": "Update an existing Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "post", "url": "/api/chat/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "delete", "url": "/api/chat/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Chat_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "put", "url": "/api/chat/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Chat_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "delete", "url": "/api/chat/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Chat_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "put", "url": "/api/chat/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "post", "url": "/api/chat/proactive_actions", "title": "Creates a new Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProactive_Actions", "group": "Chat_Proactive_Actions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "delete", "url": "/api/chat/proactive_actions/{id}", "title": "Deletes a Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "get", "url": "/api/chat/proactive_actions/{id}", "title": "Gets a single Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "put", "url": "/api/chat/proactive_actions/{id}", "title": "Update an existing Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "post", "url": "/api/chat/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Chat_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Chat_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "put", "url": "/api/chat/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"", "\"requester\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "abandon", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "post", "url": "/api/chat/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/visitors/{id}", "title": "Deletes a Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "get", "url": "/api/chat/visitors/{id}", "title": "Gets a single Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "put", "url": "/api/chat/visitors/{id}", "title": "Update an existing Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "delete", "url": "/api/chat/website_fields/{id}", "title": "Deletes a Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "get", "url": "/api/chat/website_fields/{id}", "title": "Gets a single Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "put", "url": "/api/chat/website_fields/{id}", "title": "Update an existing Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "post", "url": "/api/chat/websites", "title": "Creates a new Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateWebsites", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mapKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remote", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "animation", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rounded\"", "\"squared\"" ], "optional": true, "field": "header_shape", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "start_chat_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_offline", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "download_transcript", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultWhiteLabel", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "onlineForm", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "offlineForm", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "delete", "url": "/api/chat/websites/{id}", "title": "Deletes a Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites", "title": "Gets a list of Websites", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -v -u {name}:{password}", "type": "json" } ], "name": "GetWebsites", "group": "Chat_Websites", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/websites?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/websites?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/websites?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/websites?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/websites?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}", "title": "Gets a single Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Creates new Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addProactiveActions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/applications", "title": "Gets Website Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/dispositions", "title": "Gets Website Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/interactions", "title": "Gets Website Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/online_fields", "title": "Gets Website Online Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/online_fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getOnlineFields", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Gets Website Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getProactiveActions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/snippet", "title": "Gets Website Snippet", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/snippet -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSnippet", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/websites/{id}", "title": "Update an existing Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/cm/companies", "title": "Creates a new Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCompanies", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "companyId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "website", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailDomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sStreet", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sPostalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCountry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/companies/{id}", "title": "Deletes a Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies", "title": "Gets a list of Companies", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -v -u {name}:{password}", "type": "json" } ], "name": "GetCompanies", "group": "Cm_Companies", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/companies?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/companies?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/companies?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/companies?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/companies?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}", "title": "Gets a single Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "post", "url": "/api/cm/companies/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/companies/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "put", "url": "/api/cm/companies/{id}", "title": "Update an existing Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/contacts/{id}", "title": "Deletes a Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/describe", "title": "Gets table info about Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts", "title": "Gets a list of Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Cm_Contacts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/contacts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/contacts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/contacts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/contacts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/contacts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/finals", "title": "Gets contact hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hopper_histories", "title": "Gets contact hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hoppers", "title": "Gets contact hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '[{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}]' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/jscripty_sessions", "title": "Gets contact hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getJscriptySessions", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}", "title": "Gets a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X GET", "type": "json" } ], "name": "show", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "put", "url": "/api/cm/contacts/{id}", "title": "Update a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -d '{\"fullName\": \"John\", \"lastName\": \"Doe\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "delete", "url": "/api/cm/custom_fields/{id}", "title": "Deletes a Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields", "title": "Gets a list of Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields -v -u {name}:{password}", "type": "json" } ], "name": "GetCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/custom_fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/custom_fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/custom_fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/custom_fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/custom_fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields/{id}", "title": "Gets a single Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "put", "url": "/api/cm/custom_fields/{id}", "title": "Update an existing Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "post", "url": "/api/cm/hopper", "title": "Creates a new Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateHopper", "group": "Cm_Hopper", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "scheduledat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countbusyretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countcongestionretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countnoanswerretry", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ContactId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ListId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "UserId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "VoiceQueueId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "CampaignId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/describe", "title": "Gets table info about Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper", "title": "Gets a list of Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper", "group": "Cm_Hopper", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/{id}", "title": "Gets a single Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "delete", "url": "/api/cm/hopper_black/{id}", "title": "Deletes a Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/describe", "title": "Gets table info about Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black", "title": "Gets a list of Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_black?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_black?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_black?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_black?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_black?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/{id}", "title": "Gets a single Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "put", "url": "/api/cm/hopper_black/{id}", "title": "Update an existing Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_final/describe", "title": "Gets table info about HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final", "title": "Gets a list of HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_final?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_final?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_final?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_final?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_final?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final/{id}", "title": "Gets a single HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "put", "url": "/api/cm/hopper_final/{id}", "title": "Update a single hopper final", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_final/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_history/describe", "title": "Gets table info about HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history", "title": "Gets a list of HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_history?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_history?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_history?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_history?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_history?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history/{id}", "title": "Gets a single HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "put", "url": "/api/cm/hopper_history/{id}", "title": "Update a single hopper history", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_history/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "delete", "url": "/api/cm/hopper/{id}", "title": "Delete Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroy", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/preview", "title": "Gets Preview Dialer Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getPreview", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "put", "url": "/api/cm/hopper/{id}", "title": "Update an existing Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "post", "url": "/api/cm/lists", "title": "Creates a new List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateLists", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}", "title": "Deletes a List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/users", "title": "Gets agents from list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists", "title": "Gets a list of Lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Cm_Lists", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/lists?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/lists?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/lists?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/lists?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/lists?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}/users", "title": "Removes agents from a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}", "title": "Gets a single List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/users", "title": "Adds agents to a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/fields", "title": "Creates a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addCustomField", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/lists/{id}/dispositions", "title": "Creates a new sub disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/lists/{id}/disposition -d '{\"name\": \"SATISFIED\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/fields", "title": "Gets Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getCustomFields", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/dispositions", "title": "Gets Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts/csv", "title": "Gets CSV List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts/csv -v -u {name}:{password} -X GET", "type": "json" } ], "name": "grunt", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "put", "url": "/api/cm/lists/{id}", "title": "Update an existing List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/conditions/{id}", "title": "Deletes a Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "put", "url": "/api/conditions/{id}", "title": "Update an existing Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "post", "url": "/api/cm/custom_field", "title": "Create a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_field -d '{\"name\": \"mycf\", \"type\": \"text\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCustomField", "group": "Custom_Fields", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Custom_Fields" }, { "type": "delete", "url": "/api/dashboards/items/{id}", "title": "Deletes a Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "get", "url": "/api/dashboards/items/{id}", "title": "Gets a single Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "put", "url": "/api/dashboards/items/{id}", "title": "Update an existing Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "post", "url": "/api/dashboards", "title": "Creates a new Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDashboards", "group": "Dashboards", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "delete", "url": "/api/dashboards/{id}", "title": "Deletes a Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards", "title": "Gets a list of Dashboards", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -v -u {name}:{password}", "type": "json" } ], "name": "GetDashboards", "group": "Dashboards", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/dashboards?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/dashboards?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/dashboards?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/dashboards?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/dashboards?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}", "title": "Gets a single Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "post", "url": "/api/dashboards/{id}/items", "title": "Creates new item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -d '{\"type\": \"counter\", \"...\": \"...\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addItem", "group": "Dashboards", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/run", "title": "Run dashboard widgets queries", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "put", "url": "/api/dashboards/{id}", "title": "Update an existing Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/items", "title": "Gets items", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getItems", "group": "Dashboars", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboars" }, { "type": "post", "url": "/api/integrations/desk/accounts", "title": "Creates a new Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Accounts", "group": "Desk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"basic\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tokenSecret", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "delete", "url": "/api/integrations/desk/accounts/{id}", "title": "Deletes a Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts", "title": "Gets a list of Desk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}", "title": "Gets a single Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "put", "url": "/api/integrations/desk/accounts/{id}", "title": "Update an existing Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/configurations", "title": "Creates a new Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Configurations", "group": "Desk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "delete", "url": "/api/integrations/desk/configurations/{id}", "title": "Deletes a Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations", "title": "Gets a list of Desk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}", "title": "Gets a single Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "put", "url": "/api/integrations/desk/configurations/{id}", "title": "Update an existing Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/fields", "title": "Creates a new Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Fields", "group": "Desk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "delete", "url": "/api/integrations/desk/fields/{id}", "title": "Deletes a Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields", "title": "Gets a list of Desk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Fields", "group": "Desk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields/{id}", "title": "Gets a single Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "put", "url": "/api/integrations/desk/fields/{id}", "title": "Update an existing Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "post", "url": "/api/fax/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ecm", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "headerinfo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "minrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "maxrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "modem", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "gateway", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "faxdetect", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "t38timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SIP\"", "\"IAX\"", "\"DADHI\"", "\"KHOMP\"" ], "optional": true, "field": "tech", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Fax_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"sendSms\"" ], "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/applications", "title": "Gets account pplications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "put", "url": "/api/fax/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "get", "url": "/api/fax/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "put", "url": "/api/fax/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "post", "url": "/api/fax/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Fax_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "delete", "url": "/api/fax/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Fax_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "put", "url": "/api/fax/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "post", "url": "/api/fax/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Fax_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "delete", "url": "/api/fax/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "get", "url": "/api/fax/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "put", "url": "/api/fax/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "post", "url": "/api/fax/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "delete", "url": "/api/fax/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Fax_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "put", "url": "/api/fax/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Fax_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "delete", "url": "/api/fax/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Fax_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "put", "url": "/api/fax/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "post", "url": "/api/fax/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Fax_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Fax_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "put", "url": "/api/fax/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Fax_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "delete", "url": "/api/fax/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Fax_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "put", "url": "/api/fax/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "post", "url": "/api/fax/sessions/reports", "title": "Creates a new Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSession_Reports", "group": "Fax_Session_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "delete", "url": "/api/fax/sessions/reports/{id}", "title": "Deletes a Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "put", "url": "/api/fax/sessions/reports/{id}", "title": "Update an existing Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts", "title": "Creates a new Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "apiKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "delete", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Deletes a Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts", "title": "Gets a list of Freshdesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Gets a single Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "put", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Update an existing Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations", "title": "Creates a new Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "delete", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Deletes a Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations", "title": "Gets a list of Freshdesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Gets a single Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "put", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Update an existing Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/fields", "title": "Creates a new Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Fields", "group": "Freshdesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "delete", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Deletes a Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields", "title": "Gets a list of Freshdesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Gets a single Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "put", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Update an existing Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "post", "url": "/api/integrations/reports", "title": "Creates a new Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntegration_Reports", "group": "Integration_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "integration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "eventChannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exitStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ticketId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "integrationId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contacts", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interface", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcalledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentconnectAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "holdtime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentcomplete", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcompleteAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "talktime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentacw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentringnoanswer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentringnoanswerAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentdump", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentdumpAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastevent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "destchannelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destlanguage", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destpriority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "projectId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "delete", "url": "/api/integrations/reports/{id}", "title": "Deletes a Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/describe", "title": "Gets table info about Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports", "title": "Gets a list of Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/{id}", "title": "Gets a single Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "put", "url": "/api/integrations/reports/{id}", "title": "Update an existing Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "post", "url": "/api/intervals", "title": "Creates a new Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntervals", "group": "Intervals", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "delete", "url": "/api/intervals/{id}", "title": "Deletes a Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals", "title": "Gets a list of Intervals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -v -u {name}:{password}", "type": "json" } ], "name": "GetIntervals", "group": "Intervals", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/intervals?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/intervals?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/intervals?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/intervals?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/intervals?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}", "title": "Gets a single Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals", "title": "Creates a new sub interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -d '{\"interval\": \"00:00-08:30,mon-fri,*,*\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInterval", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals/create_many", "title": "Create new sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}/sub_intervals", "title": "Get sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "put", "url": "/api/intervals/{id}", "title": "Update an existing Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/jira", "title": "Creates a new issue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jira -d '{\"key\": \"Bug\", \"description\": \"I can't do it!\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Creates_Issue", "group": "Issue", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"Bug\"" ], "optional": true, "field": "issuetype", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "summary", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jira/index.js", "groupTitle": "Issue" }, { "type": "post", "url": "/api/jscripty/answers/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyAnswerReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "delete", "url": "/api/jscripty/answers/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyAnswerReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/answers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/answers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/answers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/answers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/answers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "put", "url": "/api/jscripty/answers/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "post", "url": "/api/jscripty/questions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyQuestionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "delete", "url": "/api/jscripty/questions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyQuestionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/questions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/questions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/questions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/questions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/questions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "put", "url": "/api/jscripty/questions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "post", "url": "/api/jscripty/sessions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptySessionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "starttime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "delete", "url": "/api/jscripty/sessions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptySessionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "put", "url": "/api/jscripty/sessions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "post", "url": "/api/jscripty/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Jscripty_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "formData", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "delete", "url": "/api/jscripty/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Jscripty_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}/sessions", "title": "Gets jscripty project sessions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id}/sessions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSessions", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "put", "url": "/api/jscripty/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/license", "title": "Gets License Info", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license -v -u {name}:{password} -X GET", "type": "json" } ], "name": "index", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "put", "url": "/api/license/{id}", "title": "Update an existing License", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLiense", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "post", "url": "/api/mail/accounts/{id}/in_servers", "title": "Creates a new IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddImap", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "ssl", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"UNSEEN\"" ], "optional": true, "field": "filter", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"IMAP\"", "\"POP3\"" ], "optional": true, "field": "protocol", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"CONNECTING\"", "\"CONNECTED\"", "\"DISCONNECTED\"", "\"ERROR\"", "\"UNKNOWN\"" ], "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "connTimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "authTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "keepalive", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/out_servers", "title": "Creates a new SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSmtp", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "signature", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Mail_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/in_servers", "title": "Gets account IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetImap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/out_servers", "title": "Gets account SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/in_servers", "title": "Removes IMAP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveImmap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/out_servers", "title": "Removes SMTP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"replyMail\"", "\"sendSms\"" ], "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '{\"name\": \"vip\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '[{\"name\": \"vip\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -d '[{\"subject\": \"My printer is on fire!\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/send", "title": "Send new mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/send -d '{from: '\"John Doe\" '}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "sendMail", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "put", "url": "/api/mail/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/verify", "title": "Verify mail account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/verify -v -u {name}:{password} -X GET", "type": "json" } ], "name": "verifySmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "get", "url": "/api/mail/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "put", "url": "/api/mail/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "post", "url": "/api/mail/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Mail_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "domain", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "size", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "delete", "url": "/api/mail/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Mail_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "put", "url": "/api/mail/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "post", "url": "/api/mail/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Mail_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "delete", "url": "/api/mail/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "get", "url": "/api/mail/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "put", "url": "/api/mail/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "post", "url": "/api/mail/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "delete", "url": "/api/mail/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Mail_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/interactions/{id}/messages", "title": "Creates new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -d '[{\"to\": \"sales@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "put", "url": "/api/mail/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Mail_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "delete", "url": "/api/mail/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Mail_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "put", "url": "/api/mail/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "post", "url": "/api/mail/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Mail_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Mail_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "put", "url": "/api/mail/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Mail_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "get", "url": "/api/mail/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Mail_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "post", "url": "/api/mail/out_servers", "title": "Creates a new SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSMTPs", "group": "Mail_SMTP", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "delete", "url": "/api/mail/out_servers/{id}", "title": "Deletes a SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers", "title": "Gets a list of SMTPs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -v -u {name}:{password}", "type": "json" } ], "name": "GetSMTPs", "group": "Mail_SMTP", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/out_servers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/out_servers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/out_servers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/out_servers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/out_servers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers/{id}", "title": "Gets a single SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "put", "url": "/api/mail/out_servers/{id}", "title": "Update an existing SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/members/reports/describe", "title": "Gets table info about Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports", "title": "Gets a list of Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetMember_Reports", "group": "Member_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/members/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/members/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/members/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/members/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/members/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports/{id}", "title": "Gets a single Member Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/migrations", "title": "Gets a list of Migrations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/migrations -v -u {name}:{password}", "type": "json" } ], "name": "GetMigrations", "group": "Migrations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/migrations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/migrations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/migrations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/migrations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/migrations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/migration/index.js", "groupTitle": "Migrations" }, { "type": "post", "url": "/api/voice/networks", "title": "Create a new network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Networks", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "delete", "url": "/api/voice/networks/{id}", "title": "Deletes a network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Networks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks", "title": "Gets a list of Networks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks -v -u {name}:{password}", "type": "json" } ], "name": "GetNetworks", "group": "Networks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/networks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/networks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/networks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/networks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/networks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks/{id}", "title": "Gets a single Network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowNetworks", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "put", "url": "/api/voice/networks/{id}", "title": "Update an existing network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "post", "url": "/api/openchannel/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "replyUri", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "delete", "url": "/api/openchannel/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Openchannel_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/interactions", "title": "Gets Openchannel Account Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteractions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/applications", "title": "Creates a new Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateApplications", "group": "Openchannel_Applications", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "delete", "url": "/api/openchannel/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications", "title": "Gets a list of Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -v -u {name}:{password}", "type": "json" } ], "name": "GetApplications", "group": "Openchannel_Applications", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/applications?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/applications?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/applications?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/applications?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/applications?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "put", "url": "/api/openchannel/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "post", "url": "/api/openchannel/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Openchannel_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "delete", "url": "/api/openchannel/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "get", "url": "/api/openchannel/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "put", "url": "/api/openchannel/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "post", "url": "/api/openchannel/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "delete", "url": "/api/openchannel/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Openchannel_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "put", "url": "/api/openchannel/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Openchannel_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "delete", "url": "/api/openchannel/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Openchannel_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "put", "url": "/api/openchannel/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "post", "url": "/api/openchannel/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Openchannel_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Openchannel_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "put", "url": "/api/openchannel/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/reports", "title": "Creates a new Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateOpenchannel_Reports", "group": "Openchannel_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "delete", "url": "/api/openchannel/reports/{id}", "title": "Deletes a Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports", "title": "Gets a list of Openchannel Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports/{id}", "title": "Gets a single Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "put", "url": "/api/openchannel/reports/{id}", "title": "Update an existing Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "post", "url": "/api/pauses", "title": "Creates a new Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreatePauses", "group": "Pauses", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "delete", "url": "/api/pauses/{id}", "title": "Deletes a Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeletePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses", "title": "Gets a list of Pauses", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -v -u {name}:{password}", "type": "json" } ], "name": "GetPauses", "group": "Pauses", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/pauses?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/pauses?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/pauses?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/pauses?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/pauses?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses/{id}", "title": "Gets a single Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowPauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "put", "url": "/api/pauses/{id}", "title": "Update an existing Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updatePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pm2/{id}", "title": "Gets a single pm2 process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Process", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/pm2", "title": "Gets pm2 processes", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2 -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Processes", "group": "Pm2", "description": "

Motion returns the pm2 processes list.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "put", "url": "/api/pm2/{id}", "title": "Update an existing Process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -d '{\"status\": \"online\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProcesses", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/rpc/campaigns/", "title": "Gets a list of campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "Campaigns", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime campaigns parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/agents", "title": "Gets a list of RTAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/agents -v -u {name}:{password}", "type": "json" } ], "name": "RTAgents", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime agents parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound/channels", "title": "Gets a list of RTOutboundChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTOutboundChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/telephones", "title": "Gets a list of RTTelephones", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/telephones -v -u {name}:{password}", "type": "json" } ], "name": "RTTelephones", "group": "RPC_Realtime", "description": "

Motion will return a list of telephones parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/trunks", "title": "Gets a list of RTTrunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/trunks -v -u {name}:{password}", "type": "json" } ], "name": "RTTrunks", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime trunks parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}", "title": "Gets a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannel", "group": "RPC_Realtime", "description": "

Motion will return a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/hangup", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/hangup -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelHangup", "group": "RPC_Realtime", "description": "

Motion will hangup a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten}", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelRedirect", "group": "RPC_Realtime", "description": "

Motion will redirect a specific realtime voice queue channel to a specific extension.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/preview/{id}", "title": "Gets a single preview contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/preview/{id} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuePreview", "group": "RPC_Realtime", "description": "

Motion will return a specific preview contact.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound", "title": "Gets a list of RTOutbound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues", "title": "Gets a list of RTVoiceQueues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels", "title": "Gets a list of RTVoiceQueuesChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuesChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "post", "url": "/api/integrations/salesforce/accounts", "title": "Creates a new Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Accounts", "group": "Salesforce_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "securityToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "delete", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Deletes a Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts", "title": "Gets a list of Salesforce Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Gets a single Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "put", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Update an existing Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/configurations", "title": "Creates a new Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Configurations", "group": "Salesforce_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "delete", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Deletes a Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations", "title": "Gets a list of Salesforce Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Gets a single Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "put", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Update an existing Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "post", "url": "/api/integrations/salesforce/fields", "title": "Creates a new Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Fields", "group": "Salesforce_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "delete", "url": "/api/integrations/salesforce/fields/{id}", "title": "Deletes a Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields", "title": "Gets a list of Salesforce Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields/{id}", "title": "Gets a single Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "put", "url": "/api/integrations/salesforce/fields/{id}", "title": "Update an existing Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "post", "url": "/api/schedules", "title": "Creates a new Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSchedules", "group": "Schedules", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "cron", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "startAt", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "endAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "subtractNumber", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"years\"", "\"quarters\"", "\"months\"", "\"weeks\"", "\"days\"", "\"hours\"", "\"minutes\"" ], "optional": false, "field": "subtractUnit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"custom\"", "\"default\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "sendMail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "delete", "url": "/api/schedules/{id}", "title": "Deletes a Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules", "title": "Gets a list of Schedules", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -v -u {name}:{password}", "type": "json" } ], "name": "GetSchedules", "group": "Schedules", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/schedules?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/schedules?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/schedules?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/schedules?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/schedules?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules/{id}", "title": "Gets a single Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "put", "url": "/api/schedules/{id}", "title": "Update an existing Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/settings", "title": "Gets a list of Settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings -v -u {name}:{password}", "type": "json" } ], "name": "GetSettings", "group": "Settings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/settings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/settings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/settings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/settings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/settings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}", "title": "Gets a single Setting", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSettings", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "put", "url": "/api/settings/{id}", "title": "Update settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo", "title": "Add logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo_login", "title": "Add logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo", "title": "Get logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo_login", "title": "Get logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/sms/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"twilio\"", "\"skebby\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"basic\"", "\"classic\"", "\"classic+\"" ], "optional": true, "field": "smstype", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remote", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "delete", "url": "/api/sms/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Sms_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"" ], "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "delete", "url": "/api/sms/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "get", "url": "/api/sms/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "put", "url": "/api/sms/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "post", "url": "/api/sms/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Sms_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "delete", "url": "/api/sms/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "get", "url": "/api/sms/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "put", "url": "/api/sms/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "post", "url": "/api/sms/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "delete", "url": "/api/sms/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Sms_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "body", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "errorcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "skebby_message_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "res_data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "put", "url": "/api/sms/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Sms_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "body", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "errorcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "skebby_message_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "res_data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "delete", "url": "/api/sms/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Sms_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "put", "url": "/api/sms/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "post", "url": "/api/sms/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Sms_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Sms_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "put", "url": "/api/sms/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountaddress", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "post", "url": "/api/sms/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountnumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sounds", "title": "Gets a list of Sounds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -v -u {name}:{password}", "type": "json" } ], "name": "GetSounds", "group": "Sounds", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sounds?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sounds?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sounds?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sounds?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sounds?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}", "title": "Gets a single Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSounds", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/sounds", "title": "Create a new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "delete", "url": "/api/sounds/{id}", "title": "Deletes a sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroySound", "group": "Sounds", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}/download", "title": "Download Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "put", "url": "/api/sounds", "title": "Update an existing new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -d '[\"name\": \"sound_name\", \"description\": \"sound_desc\"]' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/square/details/reports", "title": "Creates a new Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Detail_Reports", "group": "Square_Details_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "node", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "delete", "url": "/api/square/details/reports/{id}", "title": "Deletes a Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/describe", "title": "Gets table info about Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports", "title": "Gets a list of Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/details/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/details/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/details/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/details/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/details/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/{id}", "title": "Gets a single Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "put", "url": "/api/square/details/reports/{id}", "title": "Update an existing Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "post", "url": "/api/square/odbc", "title": "Creates a new ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateODBCs", "group": "Square_ODBC", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dsn", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "delete", "url": "/api/square/odbc/{id}", "title": "Deletes a ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc", "title": "Gets a list of ODBCs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -v -u {name}:{password}", "type": "json" } ], "name": "GetODBCs", "group": "Square_ODBC", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/odbc?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/odbc?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/odbc?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/odbc?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/odbc?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}", "title": "Gets a single ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}/test", "title": "Test Odbc", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id}/test -v -u {name}:{password} -X GET", "type": "json" } ], "name": "test", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "put", "url": "/api/square/odbc/{id}", "title": "Update an existing ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "post", "url": "/api/square/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Square_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "notes", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "preproduction", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "production", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "delete", "url": "/api/square/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Square_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "put", "url": "/api/square/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "post", "url": "/api/square/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Square_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "saveName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "savePath", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "delete", "url": "/api/square/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Square_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "put", "url": "/api/square/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "post", "url": "/api/square/reports", "title": "Creates a new Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Reports", "group": "Square_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "network", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "network_script", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "request", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "version", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingani2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callington", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingtns", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rdnis", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "enhanced", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "threadid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "delete", "url": "/api/square/reports/{id}", "title": "Deletes a Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/describe", "title": "Gets table info about Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports", "title": "Gets a list of Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Reports", "group": "Square_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/{id}", "title": "Gets a single Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "put", "url": "/api/square/reports/{id}", "title": "Update an existing Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "post", "url": "/api/integrations/sugarcrm/configurations", "title": "Creates a new SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "delete", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Deletes a SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations", "title": "Gets a list of SugarCRM Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Gets a single SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "put", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Update an existing SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts", "title": "Creates a new Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "delete", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Deletes a Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts", "title": "Gets a list of Sugarcrm Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Gets a single Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "put", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Update an existing Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/fields", "title": "Creates a new Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Fields", "group": "Sugarcrm_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "delete", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Deletes a Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields", "title": "Gets a list of Sugarcrm Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Gets a single Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "put", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Update an existing Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/system", "title": "Gets system information", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/system -v -u {name}:{password}", "type": "json" } ], "name": "GetSystemInformation", "group": "System_Information", "description": "

Motion returns the system information.

", "version": "0.0.0", "filename": "server/api/system/index.js", "groupTitle": "System_Information" }, { "type": "post", "url": "/api/tags", "title": "Creates a new Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTags", "group": "Tags", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "delete", "url": "/api/tags/{id}", "title": "Deletes a Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTags", "group": "Tags", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags", "title": "Gets a list of Tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -v -u {name}:{password}", "type": "json" } ], "name": "GetTags", "group": "Tags", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/tags?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/tags?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/tags?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/tags?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/tags?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags/{id}", "title": "Gets a single Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "put", "url": "/api/tags/{id}", "title": "Update an existing Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "post", "url": "/api/teams/{id}/queues", "title": "Add queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams", "title": "Creates a new Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTeams", "group": "Teams", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}", "title": "Deletes a Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/users", "title": "Gets agents from team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams", "title": "Gets a list of Teams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Teams", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/teams?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/teams?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/teams?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/teams?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/teams?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/users", "title": "Removes agents from a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/queues", "title": "Remove queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel=voice&ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/mail/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/sms/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/chat/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/voice/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/fax/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}", "title": "Gets a single Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams/{id}/users", "title": "Adds agents to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "put", "url": "/api/teams/{id}", "title": "Update an existing Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/templates", "title": "Creates a new Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTemplates", "group": "Templates", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "delete", "url": "/api/templates/{id}", "title": "Deletes a Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates", "title": "Gets a list of Templates", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -v -u {name}:{password}", "type": "json" } ], "name": "GetTemplates", "group": "Templates", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/templates?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/templates?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/templates?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/templates?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/templates?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates/{id}", "title": "Gets a single Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "put", "url": "/api/templates/{id}", "title": "Update an existing Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "post", "url": "/api/triggers", "title": "Creates a new Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTriggers", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "delete", "url": "/api/triggers/{id}", "title": "Deletes a Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers", "title": "Gets a list of Triggers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -v -u {name}:{password}", "type": "json" } ], "name": "GetTriggers", "group": "Triggers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/triggers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/triggers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/triggers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/triggers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/triggers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}", "title": "Gets a single Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -d '{\"action\": \"contactManager\",\"data1\": \"1\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAction", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/all_conditions", "title": "Creates a new \"AND\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAllCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/any_conditions", "title": "Creates a new \"OR\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAnyCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/actions", "title": "Gets Trigger Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/all_conditions", "title": "Gets \"AND\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAllConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/any_conditions", "title": "Gets \"OR\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAnyConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "put", "url": "/api/triggers/{id}", "title": "Update an existing Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/trunks", "title": "Create a new trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Trunks", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "alaw"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"pai\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "registry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "otherFields", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "delete", "url": "/api/trunks/{id}", "title": "Deletes a trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Trunks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks", "title": "Gets a list of Trunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password}", "type": "json" } ], "name": "GetTrunks", "group": "Trunks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/trunks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/trunks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/trunks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/trunks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/trunks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks/{id}", "title": "Gets a single Trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTrunks", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "put", "url": "/api/trunks/{id}", "title": "Update an existing trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "post", "url": "/api/users/{id}/contacts", "title": "Add contacts to a user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -d '{\"ids\": [1,2]}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddContacts", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/queues", "title": "Add queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/teams", "title": "Add teams to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/create_many", "title": "Creates many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateUsers", "group": "Users", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "

The name of the user

" }, { "group": "Body", "type": "String", "optional": false, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "email", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"admin\"", "\"user\"", "\"agent\"", "\"telephone\"" ], "optional": false, "field": "role", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "provider", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "internal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "salt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "zipcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userpic", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastLoginAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voicePause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chatPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "mailPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "faxPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "smsPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "openchannelPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pauseType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastPauseAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "chatCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "openchannelCapacity", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarAutoAnswer", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableSettings", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarListenPort", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRemoteControl", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarRemoteControlPort", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableRecording", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRingInUse", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chanspy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ipaddr", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "regseconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullcontact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regserver", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "useragent", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastms", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "gsm"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "loginInPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "showWebBar", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "permissions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarUnconditionalNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarNoReplyNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarBusyNumber", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarUnconditional", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarNoReply", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarBusy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarDnd", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/destroy_many?ids={ids}", "title": "Deletes many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}/password", "title": "Change user password", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/password -d '{\"oldPassword\": \"1234\", \"newPassword\": \"5678\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "ChangePwd", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users", "title": "Create a new user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}", "title": "Deletes a User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/describe", "title": "Gets table info about Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/agents", "title": "GetAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/agents -v -u {name}:{password}", "type": "json" } ], "name": "GetAgents", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/chat/interactions", "title": "GetChatInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetChatInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/contacts", "title": "GetContacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/lists", "title": "GetLists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/openchannel/interactions", "title": "GetOpenchannelInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannelInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues/?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/recordings", "title": "GetRecordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/teams", "title": "GetTeams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users", "title": "Gets a list of Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -v -u {name}:{password}", "type": "json" } ], "name": "GetUsers", "group": "Users", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/users?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/users?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/users?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/users?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/users?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues_rt", "title": "GetVoiceQueuesRt", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues_rt -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesRt", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/login", "title": "Login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/login -v -u {name}:{password}", "type": "json" } ], "name": "Login", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/logout", "title": "Logout", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/logout -v -u {name}:{password}", "type": "json" } ], "name": "Logout", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/pause", "title": "Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/pause -v -u {name}:{password}", "type": "json" } ], "name": "Pause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/queues", "title": "Remove queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/teams", "title": "Removes teams from an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}", "title": "Gets a single User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/unpause", "title": "Unpause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/unpause -v -u {name}:{password}", "type": "json" } ], "name": "Unpause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/avatar", "title": "Add avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/avatar", "title": "Get avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}", "title": "Update an existing User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/variables", "title": "Creates a new Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVariables", "group": "Variables", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "delete", "url": "/api/variables/{id}", "title": "Deletes a Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables", "title": "Gets a list of Variables", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -v -u {name}:{password}", "type": "json" } ], "name": "GetVariables", "group": "Variables", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/variables?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/variables?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/variables?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/variables?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/variables?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables/{id}", "title": "Gets a single Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "put", "url": "/api/variables/{id}", "title": "Update an existing Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/version/fetch", "title": "Fetch git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/fetch -v -u {name}:{password}", "type": "json" } ], "name": "FetchVersion", "group": "Version", "description": "

Motion run the following command: git fetch origin master

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version", "title": "Gets version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version -v -u {name}:{password}", "type": "json" } ], "name": "GetVersion", "group": "Version", "description": "

Motion returns the current and latest motion version.

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/pull", "title": "Pull git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/pull -v -u {name}:{password}", "type": "json" } ], "name": "PullVersion", "group": "Version", "description": "

Motion run the following command: git pull

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/reset", "title": "Reset git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/reset -v -u {name}:{password}", "type": "json" } ], "name": "ResetVersion", "group": "Version", "description": "

Motion run the following command: git reset --hard FETCH_HEAD

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/restart", "title": "Restart motion2 after update", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/restart -v -u {name}:{password}", "type": "json" } ], "name": "RestartVersion", "group": "Version", "description": "

Motion run the following command: pm2 restart motion

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/voice/agents/reports/describe", "title": "Gets table info about Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports", "title": "Gets a list of Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/agents/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/agents/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/agents/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/agents/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/agents/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports/{id}", "title": "Gets a single Agent Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/describe", "title": "Gets table info about Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports", "title": "Gets a list of Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/calls/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/calls/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/calls/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/calls/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/calls/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/{id}", "title": "Gets a single Call Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "put", "url": "/api/voice/calls/reports/{id}", "title": "Update a single cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -d '{\"userDispositio\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "post", "url": "/api/voice/chanspy", "title": "Creates a new ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateChanSpy", "group": "Voice_ChanSpy", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "prefix", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "options", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "record", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordingFormat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "delete", "url": "/api/voice/chanspy/{id}", "title": "Deletes a ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy", "title": "Gets a list of ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -v -u {name}:{password}", "type": "json" } ], "name": "GetChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/chanspy?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/chanspy?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/chanspy?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/chanspy?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/chanspy?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy/{id}", "title": "Gets a single ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "put", "url": "/api/voice/chanspy/{id}", "title": "Update an existing ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "post", "url": "/api/voice/contexts", "title": "Create a new context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Voice_Contexts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultEntry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "delete", "url": "/api/voice/contexts/{id}", "title": "Deletes a context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts", "title": "Gets a list of Contexts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password}", "type": "json" } ], "name": "GetContexts", "group": "Voice_Contexts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/contexts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/contexts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/contexts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/contexts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/contexts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts/{id}", "title": "Gets a single Context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowContexts", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "put", "url": "/api/voice/contexts/{id}", "title": "Update an existing context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/dials/reports/describe", "title": "Gets table info about Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports", "title": "Gets a list of Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dials/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dials/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dials/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dials/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dials/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports/{id}", "title": "Gets a single Dial Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "post", "url": "/api/voice/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Voice_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions", "title": "Gets a list of Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -v -u {name}:{password}", "type": "json" } ], "name": "GetDispositions", "group": "Voice_Dispositions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dispositions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dispositions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dispositions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dispositions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dispositions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "put", "url": "/api/voice/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/extensions/{id}", "title": "Deletes a Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions", "title": "Gets a list of Extensions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -v -u {name}:{password}", "type": "json" } ], "name": "GetExtensions", "group": "Voice_Extensions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/extensions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/extensions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/extensions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/extensions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/extensions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions/{id}", "title": "Gets a single Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id}/applications -d '[{\"app\": \"Set\", \"appdata\": \"CALLERDNID=${CALLER(dnid)}\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "put", "url": "/api/voice/extensions/{id}", "title": "Update an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/mohs", "title": "Create a new a new MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -d '{\"name\": \"xmas_musics\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mohs/{id}/sounds", "title": "Add sound to MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -d '{\"id\": 1}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}", "title": "Deletes an MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DestroyMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs", "title": "Gets a list of Music On Holds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -v -u {name}:{password}", "type": "json" } ], "name": "GetMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mohs?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mohs?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mohs?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mohs?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mohs?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}/sounds", "title": "Gets sounds from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "GetSounds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}/sounds/{id2}", "title": "Remove sound from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds/{id2} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}", "title": "Gets a single Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "put", "url": "/api/voice/mohs/{id}", "title": "Update an existing Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mails", "title": "Creates a new Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMails", "group": "Voice_Mails", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "customer_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pager", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tz", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "attach", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "saycid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "review", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "envelope", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sayduration", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "saydurationm", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sendvoicemail", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "nextaftercmd", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcename", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcegreetings", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "hidefromdir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "stamp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailsubject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailbody", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxsecs", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxmsg", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "delete", "url": "/api/voice/mails/{id}", "title": "Deletes a Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails", "title": "Gets a list of Mails", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -v -u {name}:{password}", "type": "json" } ], "name": "GetMails", "group": "Voice_Mails", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}", "title": "Gets a single Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}/messages", "title": "Gets voice mail messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "put", "url": "/api/voice/mails/{id}", "title": "Update an existing Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "post", "url": "/api/voice/mails/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Voice_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "msgnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "macrocontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "origtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "duration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxuser", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxcontext", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "recording", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "flag", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "msg_id", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "stamp", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "delete", "url": "/api/voice/mails/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Voice_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "voice/mails/messages/{id}/download", "title": "Download Voice Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}voice/mails/messages/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "put", "url": "/api/voice/mails/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/queues/reports/describe", "title": "Gets table info about Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports", "title": "Gets a list of Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports/{id}", "title": "Gets a single Queue Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "post", "url": "/api/voice/queues/{id}/users", "title": "Add agents to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/blacklists", "title": "Add blacklists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/lists", "title": "Add lists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/teams", "title": "Add teams to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Voice_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"inbound\"", "\"outbound\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "musiconhold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ringall\"", "\"leastrecent\"", "\"fewestcalls\"", "\"random\"", "\"rrmemory\"", "\"linear\"", "\"wrandom\"", "\"rrordered\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "servicelevel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "penaltymemberslimit", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeoutpriority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "weight", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "wrapuptime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autofill", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"all\"" ], "optional": true, "field": "autopause", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "autopausedelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopausebusy", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopauseunavail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxlen", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setinterfacevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueueentryvar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueuevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "eventmemberstatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membermacro", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membergosub", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "min_announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "periodic_announce_frequency", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "random_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "relative_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"once\"" ], "optional": true, "field": "announce_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce_position", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "announce_to_first_user", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_position_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"0\"", "\"5\"", "\"10\"", "\"15\"", "\"20\"", "\"30\"" ], "optional": true, "field": "announce_round_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_youarenext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thereare", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_callswaiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minute", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minutes", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thankyou", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_reporthold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_less_than", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinempty", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leavewhenempty", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "reportholdtime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ringinuse", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberdelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "timeoutrestart", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultrule", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "acw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialActive", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"preview\"", "\"progressive\"", "\"power\"", "\"predictive\"" ], "optional": true, "field": "dialMethod", "description": "

Dial Method.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitChannel", "description": "

Max 9999 channels, 0 means unlimited.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitQueue", "description": "

Max 9999 member in queue(min:1, max:9999), 0 means unlimited.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPowerLevel", "description": "

Power Level: Calls for agents (min:1, max:10).

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agentBusyFactor\"", "\"dropRate\"" ], "optional": true, "field": "dialPredictiveOptimization", "description": "

Only for predictive method.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPredictiveOptimizationPercentage", "description": "

Predictive Optimization Percentage (min: 1, max: 95)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialPredictiveInterval", "description": "

Intervall Predictive Minutes (min:5 max:30)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueOptions", "description": "

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialQueueTimeout", "description": "

Queue Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueProject", "description": "

AGI queue option (use: agi://127.0.0.1/square,<project_name>)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialPrefix", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacklists", "title": "Get queue blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/finals", "title": "Gets queue hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hopper_histories", "title": "Gets queue hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hoppers", "title": "Gets queue hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/lists", "title": "Get queue lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/members", "title": "Gets queue members", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/members -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetMembers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Voice_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/teams", "title": "Gets queue team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/blacklists", "title": "Remove blacklists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/lists", "title": "Remove lists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacks", "title": "Gets queue hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "put", "url": "/api/voice/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Voice_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rating", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "createdAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "updatedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "delete", "url": "/api/voice/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/describe", "title": "Gets table info about Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Voice_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "put", "url": "/api/voice/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "post", "url": "/api/voice/transfers/reports", "title": "Creates a new Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTransfer_Reports", "group": "Voice_Transfer_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"blind\"", "\"attended\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "result", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereraccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererlinkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereechannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereelinkedid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"Yes\"", "\"No\"" ], "optional": true, "field": "isexternal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "delete", "url": "/api/voice/transfers/reports/{id}", "title": "Deletes a Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports", "title": "Gets a list of Transfer Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/transfers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/transfers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/transfers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/transfers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/transfers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports/{id}", "title": "Gets a single Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "put", "url": "/api/voice/transfers/reports/{id}", "title": "Update an existing Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "post", "url": "/api/integrations/zendesk/accounts", "title": "Creates a new Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Accounts", "group": "Zendesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"password\"", "\"token\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "delete", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Deletes a Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts", "title": "Gets a list of Zendesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Gets a single Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "put", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Update an existing Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/configurations", "title": "Creates a new Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Configurations", "group": "Zendesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "delete", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Deletes a Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations", "title": "Gets a list of Zendesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Gets a single Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "put", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Update an existing Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/fields", "title": "Creates a new Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Fields", "group": "Zendesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "delete", "url": "/api/integrations/zendesk/fields/{id}", "title": "Deletes a Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields", "title": "Gets a list of Zendesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields/{id}", "title": "Gets a single Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "put", "url": "/api/integrations/zendesk/fields/{id}", "title": "Update an existing Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "post", "url": "/api/integrations/zoho/accounts", "title": "Creates a new Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Accounts", "group": "Zoho_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "authToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "delete", "url": "/api/integrations/zoho/accounts/{id}", "title": "Deletes a Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts", "title": "Gets a list of Zoho Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}", "title": "Gets a single Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "put", "url": "/api/integrations/zoho/accounts/{id}", "title": "Update an existing Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/configurations", "title": "Creates a new Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Configurations", "group": "Zoho_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "delete", "url": "/api/integrations/zoho/configurations/{id}", "title": "Deletes a Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations", "title": "Gets a list of Zoho Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}", "title": "Gets a single Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "put", "url": "/api/integrations/zoho/configurations/{id}", "title": "Update an existing Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "post", "url": "/api/integrations/zoho/fields", "title": "Creates a new Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Fields", "group": "Zoho_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "delete", "url": "/api/integrations/zoho/fields/{id}", "title": "Deletes a Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields", "title": "Gets a list of Zoho Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields/{id}", "title": "Gets a single Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "put", "url": "/api/integrations/zoho/fields/{id}", "title": "Update an existing Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "post", "url": "/api/cdr", "title": "Creates a new Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCdrs", "group": "cdr", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "calldate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "src", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dst", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dstchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastapp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "duration", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "billsec", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userfield", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sequence", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "peeraccount", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tag", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "delete", "url": "/api/cdr/{id}", "title": "Deletes a Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr", "title": "Gets a list of Cdrs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -v -u {name}:{password}", "type": "json" } ], "name": "GetCdrs", "group": "cdr", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cdr?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cdr?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cdr?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cdr?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cdr?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr/{id}", "title": "Gets a single Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "put", "url": "/api/cdr/{id}", "title": "Update an existing Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "post", "url": "/api/voiceQueuesLog", "title": "Creates a new VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVoiceQueuesLogs", "group": "voiceQueuesLog", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "time", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "callid", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "queuename", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "agent", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "event", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "dtm", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "delete", "url": "/api/voiceQueuesLog/{id}", "title": "Deletes a VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog", "title": "Gets a list of VoiceQueuesLogs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voiceQueuesLog?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voiceQueuesLog?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voiceQueuesLog?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voiceQueuesLog?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voiceQueuesLog?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog/{id}", "title": "Gets a single VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "put", "url": "/api/voiceQueuesLog/{id}", "title": "Update an existing VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" } ] }); +define({ "api": [ { "type": "delete", "url": "/api/actions/{id}", "title": "Deletes a Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteActions", "group": "Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "put", "url": "/api/actions/{id}", "title": "Update an existing Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateActions", "group": "Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "post", "url": "/api/analytics/custom_reports", "title": "Creates a new Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "delete", "url": "/api/analytics/custom_reports/{id}", "title": "Deletes a Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports", "title": "Gets a list of Analytic Custom Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/custom_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/custom_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/custom_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/custom_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/custom_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}", "title": "Gets a single Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "put", "url": "/api/analytics/custom_reports/{id}", "title": "Update an existing Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "post", "url": "/api/analytics/default_reports", "title": "Creates a new Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "delete", "url": "/api/analytics/default_reports/{id}", "title": "Deletes a Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports", "title": "Gets a list of Analytic Default Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/default_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/default_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/default_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/default_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/default_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}", "title": "Gets a single Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "put", "url": "/api/analytics/default_reports/{id}", "title": "Update an existing Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "post", "url": "/api/analytics/extracted_reports", "title": "Creates a new Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "savename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "startDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"manual\"", "\"scheduled\"" ], "optional": false, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "delete", "url": "/api/analytics/extracted_reports/{id}", "title": "Deletes a Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports", "title": "Gets a list of Analytic Extacted Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/extracted_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/extracted_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/extracted_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/extracted_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/extracted_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}", "title": "Gets a single Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}/download", "title": "Download Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "put", "url": "/api/analytics/extracted_reports/{id}", "title": "Update an existing Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/create_many", "title": "Creates many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/destroy_many?ids={ids}", "title": "Deletes many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports", "title": "Creates a new Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/{id}", "title": "Deletes a Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports", "title": "Gets a list of Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/field_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/field_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/field_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/field_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/field_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports/{id}", "title": "Gets a single Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/{id}/create_many", "title": "Rewrite fields set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id}/create_many -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addFields", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "put", "url": "/api/analytics/field_reports/{id}", "title": "Update an existing Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/metrics", "title": "Creates a new Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Metric", "group": "Analytic_Metrics", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "metric", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "delete", "url": "/api/analytics/metrics/{id}", "title": "Deletes a Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics", "title": "Gets a list of Analytic Metric", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/metrics?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/metrics?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/metrics?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/metrics?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/metrics?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics/{id}", "title": "Gets a single Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "put", "url": "/api/analytics/metrics/{id}", "title": "Update an existing Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "post", "url": "/api/analytics/tree_reports", "title": "Creates a new Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "tree", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "delete", "url": "/api/analytics/tree_reports/{id}", "title": "Deletes a Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports", "title": "Gets a list of Analytic Tree Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/tree_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/tree_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/tree_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/tree_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/tree_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports/{id}", "title": "Gets a single Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "put", "url": "/api/analytics/tree_reports/{id}", "title": "Update an existing Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "post", "url": "/api/auth/google", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authGoogle/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authLocal/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/automations", "title": "Creates a new Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAutomations", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "delete", "url": "/api/automations/{id}", "title": "Deletes a Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations", "title": "Gets a list of Automations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -v -u {name}:{password}", "type": "json" } ], "name": "GetAutomations", "group": "Automations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/automations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/automations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/automations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/automations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/automations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}", "title": "Gets a single Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addActions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/conditions", "title": "Creates new conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConditions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/actions", "title": "Gets Automation Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/conditions", "title": "Gets Automation Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConditions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "put", "url": "/api/automations/{id}", "title": "Update an existing Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/campaigns/{id}/blacklists", "title": "Add blacklists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns/{id}/lists", "title": "Add lists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns", "title": "Creates a new Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCampaigns", "group": "Campaigns", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ivr\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "limitCalls", "description": "

Max 200 calls.

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}", "title": "Deletes a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacklists", "title": "Get campaign blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns", "title": "Gets a list of Campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "GetCampaigns", "group": "Campaigns", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/campaigns?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/campaigns?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/campaigns?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/campaigns?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/campaigns?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/finals", "title": "Gets campaign hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hopper_histories", "title": "Gets campaign hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hoppers", "title": "Gets campaign hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/lists", "title": "Get campaign lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/blacklists", "title": "Remove blacklists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/lists", "title": "Remove lists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}", "title": "Gets a single Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacks", "title": "Gets campaign hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "put", "url": "/api/campaigns/{id}", "title": "Update an existing Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/canned_answers", "title": "Creates a new Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCanned_Answers", "group": "Canned_Answers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "key", "description": "" }, { "group": "Body", "type": "Text", "optional": false, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/canned_answers/{id}", "title": "Deletes a Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers", "title": "Gets a list of Canned Answers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -v -u {name}:{password}", "type": "json" } ], "name": "GetCanned_Answers", "group": "Canned_Answers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/canned_answers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/canned_answers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/canned_answers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/canned_answers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/canned_answers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers/{id}", "title": "Gets a single Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "put", "url": "/api/canned_answers/{id}", "title": "Update an existing Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/chat/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "get", "url": "/api/chat/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "put", "url": "/api/chat/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "post", "url": "/api/chat/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Chat_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "get", "url": "/api/chat/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "put", "url": "/api/chat/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/enquiries/{id}", "title": "Deletes a Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "get", "url": "/api/chat/enquiries/{id}", "title": "Gets a single Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "put", "url": "/api/chat/enquiries/{id}", "title": "Update an existing Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "post", "url": "/api/chat/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "delete", "url": "/api/chat/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Chat_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "put", "url": "/api/chat/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Chat_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "delete", "url": "/api/chat/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Chat_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "put", "url": "/api/chat/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "post", "url": "/api/chat/proactive_actions", "title": "Creates a new Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProactive_Actions", "group": "Chat_Proactive_Actions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "delete", "url": "/api/chat/proactive_actions/{id}", "title": "Deletes a Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "get", "url": "/api/chat/proactive_actions/{id}", "title": "Gets a single Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "put", "url": "/api/chat/proactive_actions/{id}", "title": "Update an existing Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "post", "url": "/api/chat/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Chat_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Chat_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "put", "url": "/api/chat/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "post", "url": "/api/chat/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"", "\"requester\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "abandon", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/visitors/{id}", "title": "Deletes a Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "get", "url": "/api/chat/visitors/{id}", "title": "Gets a single Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "put", "url": "/api/chat/visitors/{id}", "title": "Update an existing Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "delete", "url": "/api/chat/website_fields/{id}", "title": "Deletes a Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "get", "url": "/api/chat/website_fields/{id}", "title": "Gets a single Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "put", "url": "/api/chat/website_fields/{id}", "title": "Update an existing Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "post", "url": "/api/chat/websites", "title": "Creates a new Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateWebsites", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mapKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remote", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "animation", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rounded\"", "\"squared\"" ], "optional": true, "field": "header_shape", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "start_chat_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_offline", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "download_transcript", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultWhiteLabel", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "onlineForm", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "offlineForm", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "delete", "url": "/api/chat/websites/{id}", "title": "Deletes a Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites", "title": "Gets a list of Websites", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -v -u {name}:{password}", "type": "json" } ], "name": "GetWebsites", "group": "Chat_Websites", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/websites?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/websites?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/websites?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/websites?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/websites?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}", "title": "Gets a single Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Creates new Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addProactiveActions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/applications", "title": "Gets Website Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/dispositions", "title": "Gets Website Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/fields", "title": "Gets Website Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/interactions", "title": "Gets Website Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Gets Website Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getProactiveActions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/snippet", "title": "Gets Website Snippet", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/snippet -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSnippet", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/websites/{id}", "title": "Update an existing Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/cm/companies", "title": "Creates a new Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCompanies", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "companyId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "website", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailDomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sStreet", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sPostalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCountry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/companies/{id}", "title": "Deletes a Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies", "title": "Gets a list of Companies", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -v -u {name}:{password}", "type": "json" } ], "name": "GetCompanies", "group": "Cm_Companies", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/companies?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/companies?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/companies?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/companies?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/companies?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}", "title": "Gets a single Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "post", "url": "/api/cm/companies/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "facebook", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "twitter", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/companies/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "put", "url": "/api/cm/companies/{id}", "title": "Update an existing Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/contacts/{id}", "title": "Deletes a Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/describe", "title": "Gets table info about Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts", "title": "Gets a list of Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Cm_Contacts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/contacts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/contacts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/contacts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/contacts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/contacts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/finals", "title": "Gets contact hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hopper_histories", "title": "Gets contact hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hoppers", "title": "Gets contact hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '[{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}]' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/jscripty_sessions", "title": "Gets contact hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getJscriptySessions", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}", "title": "Gets a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X GET", "type": "json" } ], "name": "show", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "put", "url": "/api/cm/contacts/{id}", "title": "Update a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -d '{\"fullName\": \"John\", \"lastName\": \"Doe\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "delete", "url": "/api/cm/custom_fields/{id}", "title": "Deletes a Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields", "title": "Gets a list of Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields -v -u {name}:{password}", "type": "json" } ], "name": "GetCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/custom_fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/custom_fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/custom_fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/custom_fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/custom_fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields/{id}", "title": "Gets a single Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "put", "url": "/api/cm/custom_fields/{id}", "title": "Update an existing Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "post", "url": "/api/cm/hopper", "title": "Creates a new Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateHopper", "group": "Cm_Hopper", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "scheduledat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countbusyretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countcongestionretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countnoanswerretry", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ContactId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ListId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "UserId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "VoiceQueueId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "CampaignId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/describe", "title": "Gets table info about Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper", "title": "Gets a list of Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper", "group": "Cm_Hopper", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/{id}", "title": "Gets a single Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "delete", "url": "/api/cm/hopper_black/{id}", "title": "Deletes a Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/describe", "title": "Gets table info about Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black", "title": "Gets a list of Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_black?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_black?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_black?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_black?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_black?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/{id}", "title": "Gets a single Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "put", "url": "/api/cm/hopper_black/{id}", "title": "Update an existing Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_final/describe", "title": "Gets table info about HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final", "title": "Gets a list of HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_final?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_final?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_final?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_final?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_final?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final/{id}", "title": "Gets a single HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "put", "url": "/api/cm/hopper_final/{id}", "title": "Update a single hopper final", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_final/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_history/describe", "title": "Gets table info about HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history", "title": "Gets a list of HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_history?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_history?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_history?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_history?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_history?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history/{id}", "title": "Gets a single HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "put", "url": "/api/cm/hopper_history/{id}", "title": "Update a single hopper history", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_history/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "delete", "url": "/api/cm/hopper/{id}", "title": "Delete Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroy", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/preview", "title": "Gets Preview Dialer Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getPreview", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "put", "url": "/api/cm/hopper/{id}", "title": "Update an existing Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "post", "url": "/api/cm/lists", "title": "Creates a new List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateLists", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}", "title": "Deletes a List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/users", "title": "Gets agents from list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists", "title": "Gets a list of Lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Cm_Lists", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/lists?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/lists?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/lists?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/lists?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/lists?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}/users", "title": "Removes agents from a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}", "title": "Gets a single List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/users", "title": "Adds agents to a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "facebook", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "twitter", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/fields", "title": "Creates a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addCustomField", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/lists/{id}/dispositions", "title": "Creates a new sub disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/lists/{id}/disposition -d '{\"name\": \"SATISFIED\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/fields", "title": "Gets Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getCustomFields", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/dispositions", "title": "Gets Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts/csv", "title": "Gets CSV List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts/csv -v -u {name}:{password} -X GET", "type": "json" } ], "name": "grunt", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "put", "url": "/api/cm/lists/{id}", "title": "Update an existing List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/conditions/{id}", "title": "Deletes a Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "put", "url": "/api/conditions/{id}", "title": "Update an existing Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "post", "url": "/api/cm/custom_field", "title": "Create a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_field -d '{\"name\": \"mycf\", \"type\": \"text\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCustomField", "group": "Custom_Fields", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Custom_Fields" }, { "type": "delete", "url": "/api/dashboards/items/{id}", "title": "Deletes a Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "get", "url": "/api/dashboards/items/{id}", "title": "Gets a single Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "put", "url": "/api/dashboards/items/{id}", "title": "Update an existing Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "post", "url": "/api/dashboards", "title": "Creates a new Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDashboards", "group": "Dashboards", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "delete", "url": "/api/dashboards/{id}", "title": "Deletes a Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards", "title": "Gets a list of Dashboards", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -v -u {name}:{password}", "type": "json" } ], "name": "GetDashboards", "group": "Dashboards", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/dashboards?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/dashboards?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/dashboards?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/dashboards?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/dashboards?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}", "title": "Gets a single Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "post", "url": "/api/dashboards/{id}/items", "title": "Creates new item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -d '{\"type\": \"counter\", \"...\": \"...\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addItem", "group": "Dashboards", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/run", "title": "Run dashboard widgets queries", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "put", "url": "/api/dashboards/{id}", "title": "Update an existing Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/items", "title": "Gets items", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getItems", "group": "Dashboars", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboars" }, { "type": "post", "url": "/api/integrations/desk/accounts", "title": "Creates a new Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Accounts", "group": "Desk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"basic\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tokenSecret", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "delete", "url": "/api/integrations/desk/accounts/{id}", "title": "Deletes a Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts", "title": "Gets a list of Desk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}", "title": "Gets a single Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "put", "url": "/api/integrations/desk/accounts/{id}", "title": "Update an existing Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/configurations", "title": "Creates a new Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Configurations", "group": "Desk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "delete", "url": "/api/integrations/desk/configurations/{id}", "title": "Deletes a Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations", "title": "Gets a list of Desk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}", "title": "Gets a single Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "put", "url": "/api/integrations/desk/configurations/{id}", "title": "Update an existing Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/fields", "title": "Creates a new Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Fields", "group": "Desk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "delete", "url": "/api/integrations/desk/fields/{id}", "title": "Deletes a Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields", "title": "Gets a list of Desk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Fields", "group": "Desk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields/{id}", "title": "Gets a single Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "put", "url": "/api/integrations/desk/fields/{id}", "title": "Update an existing Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "post", "url": "/api/fax/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ecm", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "headerinfo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "minrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "maxrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "modem", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "gateway", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "faxdetect", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "t38timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SIP\"", "\"IAX\"", "\"DADHI\"", "\"KHOMP\"" ], "optional": true, "field": "tech", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Fax_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"sendSms\"" ], "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/applications", "title": "Gets account pplications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "put", "url": "/api/fax/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "get", "url": "/api/fax/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "put", "url": "/api/fax/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "post", "url": "/api/fax/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Fax_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "delete", "url": "/api/fax/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Fax_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "put", "url": "/api/fax/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "post", "url": "/api/fax/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Fax_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "delete", "url": "/api/fax/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "get", "url": "/api/fax/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "put", "url": "/api/fax/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "post", "url": "/api/fax/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "delete", "url": "/api/fax/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Fax_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "put", "url": "/api/fax/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Fax_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "delete", "url": "/api/fax/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Fax_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "put", "url": "/api/fax/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "post", "url": "/api/fax/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Fax_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Fax_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "put", "url": "/api/fax/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Fax_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "delete", "url": "/api/fax/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Fax_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "put", "url": "/api/fax/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "post", "url": "/api/fax/sessions/reports", "title": "Creates a new Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSession_Reports", "group": "Fax_Session_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "delete", "url": "/api/fax/sessions/reports/{id}", "title": "Deletes a Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "put", "url": "/api/fax/sessions/reports/{id}", "title": "Update an existing Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts", "title": "Creates a new Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "apiKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "delete", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Deletes a Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts", "title": "Gets a list of Freshdesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Gets a single Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "put", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Update an existing Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations", "title": "Creates a new Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "delete", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Deletes a Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations", "title": "Gets a list of Freshdesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Gets a single Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "put", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Update an existing Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/fields", "title": "Creates a new Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Fields", "group": "Freshdesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "delete", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Deletes a Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields", "title": "Gets a list of Freshdesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Gets a single Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "put", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Update an existing Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "post", "url": "/api/integrations/reports", "title": "Creates a new Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntegration_Reports", "group": "Integration_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "integration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "eventChannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exitStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ticketId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "integrationId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contacts", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interface", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcalledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentconnectAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "holdtime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentcomplete", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcompleteAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "talktime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentacw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentringnoanswer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentringnoanswerAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentdump", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentdumpAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastevent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "destchannelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destlanguage", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destpriority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "projectId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "delete", "url": "/api/integrations/reports/{id}", "title": "Deletes a Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/describe", "title": "Gets table info about Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports", "title": "Gets a list of Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/{id}", "title": "Gets a single Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "put", "url": "/api/integrations/reports/{id}", "title": "Update an existing Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "post", "url": "/api/intervals", "title": "Creates a new Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntervals", "group": "Intervals", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "delete", "url": "/api/intervals/{id}", "title": "Deletes a Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals", "title": "Gets a list of Intervals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -v -u {name}:{password}", "type": "json" } ], "name": "GetIntervals", "group": "Intervals", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/intervals?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/intervals?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/intervals?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/intervals?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/intervals?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}", "title": "Gets a single Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals", "title": "Creates a new sub interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -d '{\"interval\": \"00:00-08:30,mon-fri,*,*\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInterval", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals/create_many", "title": "Create new sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}/sub_intervals", "title": "Get sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "put", "url": "/api/intervals/{id}", "title": "Update an existing Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/jira", "title": "Creates a new issue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jira -d '{\"key\": \"Bug\", \"description\": \"I can't do it!\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Creates_Issue", "group": "Issue", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"Bug\"" ], "optional": true, "field": "issuetype", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "summary", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jira/index.js", "groupTitle": "Issue" }, { "type": "post", "url": "/api/jscripty/answers/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyAnswerReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "questionId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "delete", "url": "/api/jscripty/answers/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyAnswerReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/answers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/answers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/answers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/answers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/answers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "put", "url": "/api/jscripty/answers/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "post", "url": "/api/jscripty/questions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyQuestionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "questionId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "delete", "url": "/api/jscripty/questions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyQuestionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/questions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/questions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/questions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/questions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/questions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "put", "url": "/api/jscripty/questions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "post", "url": "/api/jscripty/sessions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptySessionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "starttime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "delete", "url": "/api/jscripty/sessions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptySessionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "put", "url": "/api/jscripty/sessions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "post", "url": "/api/jscripty/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Jscripty_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "formData", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "delete", "url": "/api/jscripty/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Jscripty_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}/sessions", "title": "Gets jscripty project sessions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id}/sessions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSessions", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "put", "url": "/api/jscripty/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/license", "title": "Gets License Info", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license -v -u {name}:{password} -X GET", "type": "json" } ], "name": "index", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "put", "url": "/api/license/{id}", "title": "Update an existing License", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLiense", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "post", "url": "/api/mail/accounts/{id}/in_servers", "title": "Creates a new IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddImap", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "ssl", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"UNSEEN\"" ], "optional": true, "field": "filter", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"IMAP\"", "\"POP3\"" ], "optional": true, "field": "protocol", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"CONNECTING\"", "\"CONNECTED\"", "\"DISCONNECTED\"", "\"ERROR\"", "\"UNKNOWN\"" ], "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "connTimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "authTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "keepalive", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/out_servers", "title": "Creates a new SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSmtp", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "signature", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Mail_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/in_servers", "title": "Gets account IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetImap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/out_servers", "title": "Gets account SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/in_servers", "title": "Removes IMAP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveImmap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/out_servers", "title": "Removes SMTP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"replyMail\"", "\"sendSms\"" ], "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '{\"name\": \"vip\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '[{\"name\": \"vip\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -d '[{\"subject\": \"My printer is on fire!\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/send", "title": "Send new mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/send -d '{from: '\"John Doe\" '}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "sendMail", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "put", "url": "/api/mail/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/verify", "title": "Verify mail account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/verify -v -u {name}:{password} -X GET", "type": "json" } ], "name": "verifySmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "get", "url": "/api/mail/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "put", "url": "/api/mail/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "post", "url": "/api/mail/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Mail_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "domain", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "size", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "delete", "url": "/api/mail/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Mail_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "put", "url": "/api/mail/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "post", "url": "/api/mail/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Mail_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "delete", "url": "/api/mail/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "get", "url": "/api/mail/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "put", "url": "/api/mail/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "post", "url": "/api/mail/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "delete", "url": "/api/mail/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Mail_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/interactions/{id}/messages", "title": "Creates new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -d '[{\"to\": \"sales@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "put", "url": "/api/mail/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Mail_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "delete", "url": "/api/mail/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Mail_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "put", "url": "/api/mail/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "post", "url": "/api/mail/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Mail_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Mail_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "put", "url": "/api/mail/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Mail_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "get", "url": "/api/mail/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Mail_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "post", "url": "/api/mail/out_servers", "title": "Creates a new SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSMTPs", "group": "Mail_SMTP", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "delete", "url": "/api/mail/out_servers/{id}", "title": "Deletes a SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers", "title": "Gets a list of SMTPs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -v -u {name}:{password}", "type": "json" } ], "name": "GetSMTPs", "group": "Mail_SMTP", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/out_servers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/out_servers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/out_servers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/out_servers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/out_servers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers/{id}", "title": "Gets a single SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "put", "url": "/api/mail/out_servers/{id}", "title": "Update an existing SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/members/reports/describe", "title": "Gets table info about Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports", "title": "Gets a list of Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetMember_Reports", "group": "Member_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/members/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/members/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/members/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/members/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/members/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports/{id}", "title": "Gets a single Member Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/migrations", "title": "Gets a list of Migrations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/migrations -v -u {name}:{password}", "type": "json" } ], "name": "GetMigrations", "group": "Migrations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/migrations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/migrations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/migrations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/migrations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/migrations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/migration/index.js", "groupTitle": "Migrations" }, { "type": "post", "url": "/api/voice/networks", "title": "Create a new network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Networks", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "delete", "url": "/api/voice/networks/{id}", "title": "Deletes a network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Networks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks", "title": "Gets a list of Networks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks -v -u {name}:{password}", "type": "json" } ], "name": "GetNetworks", "group": "Networks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/networks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/networks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/networks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/networks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/networks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks/{id}", "title": "Gets a single Network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowNetworks", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "put", "url": "/api/voice/networks/{id}", "title": "Update an existing network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "post", "url": "/api/openchannel/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "replyUri", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "delete", "url": "/api/openchannel/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Openchannel_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/interactions", "title": "Gets Openchannel Account Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteractions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/applications", "title": "Creates a new Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateApplications", "group": "Openchannel_Applications", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "delete", "url": "/api/openchannel/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications", "title": "Gets a list of Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -v -u {name}:{password}", "type": "json" } ], "name": "GetApplications", "group": "Openchannel_Applications", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/applications?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/applications?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/applications?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/applications?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/applications?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "put", "url": "/api/openchannel/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "post", "url": "/api/openchannel/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Openchannel_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "delete", "url": "/api/openchannel/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "get", "url": "/api/openchannel/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "put", "url": "/api/openchannel/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "post", "url": "/api/openchannel/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "delete", "url": "/api/openchannel/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Openchannel_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "put", "url": "/api/openchannel/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Openchannel_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "delete", "url": "/api/openchannel/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Openchannel_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "put", "url": "/api/openchannel/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "post", "url": "/api/openchannel/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Openchannel_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Openchannel_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "put", "url": "/api/openchannel/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/reports", "title": "Creates a new Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateOpenchannel_Reports", "group": "Openchannel_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "delete", "url": "/api/openchannel/reports/{id}", "title": "Deletes a Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports", "title": "Gets a list of Openchannel Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports/{id}", "title": "Gets a single Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "put", "url": "/api/openchannel/reports/{id}", "title": "Update an existing Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "post", "url": "/api/pauses", "title": "Creates a new Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreatePauses", "group": "Pauses", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "delete", "url": "/api/pauses/{id}", "title": "Deletes a Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeletePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses", "title": "Gets a list of Pauses", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -v -u {name}:{password}", "type": "json" } ], "name": "GetPauses", "group": "Pauses", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/pauses?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/pauses?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/pauses?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/pauses?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/pauses?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses/{id}", "title": "Gets a single Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowPauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "put", "url": "/api/pauses/{id}", "title": "Update an existing Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updatePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pm2/{id}", "title": "Gets a single pm2 process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Process", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/pm2", "title": "Gets pm2 processes", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2 -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Processes", "group": "Pm2", "description": "

Motion returns the pm2 processes list.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "put", "url": "/api/pm2/{id}", "title": "Update an existing Process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -d '{\"status\": \"online\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProcesses", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/rpc/campaigns/", "title": "Gets a list of campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "Campaigns", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime campaigns parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/agents", "title": "Gets a list of RTAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/agents -v -u {name}:{password}", "type": "json" } ], "name": "RTAgents", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime agents parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound/channels", "title": "Gets a list of RTOutboundChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTOutboundChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/telephones", "title": "Gets a list of RTTelephones", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/telephones -v -u {name}:{password}", "type": "json" } ], "name": "RTTelephones", "group": "RPC_Realtime", "description": "

Motion will return a list of telephones parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/trunks", "title": "Gets a list of RTTrunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/trunks -v -u {name}:{password}", "type": "json" } ], "name": "RTTrunks", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime trunks parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}", "title": "Gets a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannel", "group": "RPC_Realtime", "description": "

Motion will return a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/hangup", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/hangup -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelHangup", "group": "RPC_Realtime", "description": "

Motion will hangup a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten}", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelRedirect", "group": "RPC_Realtime", "description": "

Motion will redirect a specific realtime voice queue channel to a specific extension.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/preview/{id}", "title": "Gets a single preview contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/preview/{id} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuePreview", "group": "RPC_Realtime", "description": "

Motion will return a specific preview contact.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound", "title": "Gets a list of RTOutbound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues", "title": "Gets a list of RTVoiceQueues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels", "title": "Gets a list of RTVoiceQueuesChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuesChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "post", "url": "/api/integrations/salesforce/accounts", "title": "Creates a new Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Accounts", "group": "Salesforce_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "securityToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "delete", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Deletes a Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts", "title": "Gets a list of Salesforce Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Gets a single Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "put", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Update an existing Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/configurations", "title": "Creates a new Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Configurations", "group": "Salesforce_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "delete", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Deletes a Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations", "title": "Gets a list of Salesforce Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Gets a single Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "put", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Update an existing Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "post", "url": "/api/integrations/salesforce/fields", "title": "Creates a new Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Fields", "group": "Salesforce_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "delete", "url": "/api/integrations/salesforce/fields/{id}", "title": "Deletes a Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields", "title": "Gets a list of Salesforce Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields/{id}", "title": "Gets a single Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "put", "url": "/api/integrations/salesforce/fields/{id}", "title": "Update an existing Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "post", "url": "/api/schedules", "title": "Creates a new Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSchedules", "group": "Schedules", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "cron", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "startAt", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "endAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "subtractNumber", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"years\"", "\"quarters\"", "\"months\"", "\"weeks\"", "\"days\"", "\"hours\"", "\"minutes\"" ], "optional": false, "field": "subtractUnit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"custom\"", "\"default\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "sendMail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "delete", "url": "/api/schedules/{id}", "title": "Deletes a Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules", "title": "Gets a list of Schedules", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -v -u {name}:{password}", "type": "json" } ], "name": "GetSchedules", "group": "Schedules", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/schedules?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/schedules?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/schedules?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/schedules?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/schedules?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules/{id}", "title": "Gets a single Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "put", "url": "/api/schedules/{id}", "title": "Update an existing Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/settings", "title": "Gets a list of Settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings -v -u {name}:{password}", "type": "json" } ], "name": "GetSettings", "group": "Settings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/settings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/settings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/settings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/settings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/settings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}", "title": "Gets a single Setting", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSettings", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "put", "url": "/api/settings/{id}", "title": "Update settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo", "title": "Add logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo_login", "title": "Add logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo", "title": "Get logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo_login", "title": "Get logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/sms/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"twilio\"", "\"skebby\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "delete", "url": "/api/sms/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Sms_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/applications", "title": "Creates a new Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateApplications", "group": "Sms_Applications", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "delete", "url": "/api/sms/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "get", "url": "/api/sms/applications", "title": "Gets a list of Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications -v -u {name}:{password}", "type": "json" } ], "name": "GetApplications", "group": "Sms_Applications", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/applications?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/applications?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/applications?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/applications?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/applications?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "get", "url": "/api/sms/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "put", "url": "/api/sms/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "post", "url": "/api/sms/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Sms_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "delete", "url": "/api/sms/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "get", "url": "/api/sms/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "put", "url": "/api/sms/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "post", "url": "/api/sms/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "delete", "url": "/api/sms/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Sms_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "put", "url": "/api/sms/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Sms_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "delete", "url": "/api/sms/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Sms_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "put", "url": "/api/sms/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "post", "url": "/api/sms/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Sms_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Sms_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "put", "url": "/api/sms/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountaddress", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "post", "url": "/api/sms/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountnumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sounds", "title": "Gets a list of Sounds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -v -u {name}:{password}", "type": "json" } ], "name": "GetSounds", "group": "Sounds", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sounds?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sounds?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sounds?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sounds?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sounds?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}", "title": "Gets a single Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSounds", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/sounds", "title": "Create a new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "delete", "url": "/api/sounds/{id}", "title": "Deletes a sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroySound", "group": "Sounds", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}/download", "title": "Download Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "put", "url": "/api/sounds", "title": "Update an existing new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -d '[\"name\": \"sound_name\", \"description\": \"sound_desc\"]' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/square/details/reports", "title": "Creates a new Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Detail_Reports", "group": "Square_Details_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "node", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "delete", "url": "/api/square/details/reports/{id}", "title": "Deletes a Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/describe", "title": "Gets table info about Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports", "title": "Gets a list of Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/details/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/details/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/details/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/details/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/details/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/{id}", "title": "Gets a single Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "put", "url": "/api/square/details/reports/{id}", "title": "Update an existing Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "post", "url": "/api/square/odbc", "title": "Creates a new ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateODBCs", "group": "Square_ODBC", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dsn", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "delete", "url": "/api/square/odbc/{id}", "title": "Deletes a ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc", "title": "Gets a list of ODBCs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -v -u {name}:{password}", "type": "json" } ], "name": "GetODBCs", "group": "Square_ODBC", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/odbc?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/odbc?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/odbc?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/odbc?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/odbc?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}", "title": "Gets a single ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}/test", "title": "Test Odbc", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id}/test -v -u {name}:{password} -X GET", "type": "json" } ], "name": "test", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "put", "url": "/api/square/odbc/{id}", "title": "Update an existing ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "post", "url": "/api/square/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Square_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "notes", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "preproduction", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "production", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "delete", "url": "/api/square/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Square_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "put", "url": "/api/square/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "post", "url": "/api/square/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Square_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "saveName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "savePath", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "delete", "url": "/api/square/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Square_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "put", "url": "/api/square/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "post", "url": "/api/square/reports", "title": "Creates a new Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Reports", "group": "Square_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "network", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "network_script", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "request", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "version", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingani2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callington", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingtns", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rdnis", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "enhanced", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "threadid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "delete", "url": "/api/square/reports/{id}", "title": "Deletes a Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/describe", "title": "Gets table info about Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports", "title": "Gets a list of Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Reports", "group": "Square_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/{id}", "title": "Gets a single Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "put", "url": "/api/square/reports/{id}", "title": "Update an existing Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "post", "url": "/api/integrations/sugarcrm/configurations", "title": "Creates a new SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "delete", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Deletes a SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations", "title": "Gets a list of SugarCRM Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Gets a single SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "put", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Update an existing SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts", "title": "Creates a new Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "delete", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Deletes a Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts", "title": "Gets a list of Sugarcrm Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Gets a single Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "put", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Update an existing Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/fields", "title": "Creates a new Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Fields", "group": "Sugarcrm_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "delete", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Deletes a Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields", "title": "Gets a list of Sugarcrm Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Gets a single Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "put", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Update an existing Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/system", "title": "Gets system information", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/system -v -u {name}:{password}", "type": "json" } ], "name": "GetSystemInformation", "group": "System_Information", "description": "

Motion returns the system information.

", "version": "0.0.0", "filename": "server/api/system/index.js", "groupTitle": "System_Information" }, { "type": "post", "url": "/api/tags", "title": "Creates a new Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTags", "group": "Tags", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "delete", "url": "/api/tags/{id}", "title": "Deletes a Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTags", "group": "Tags", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags", "title": "Gets a list of Tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -v -u {name}:{password}", "type": "json" } ], "name": "GetTags", "group": "Tags", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/tags?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/tags?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/tags?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/tags?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/tags?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags/{id}", "title": "Gets a single Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "put", "url": "/api/tags/{id}", "title": "Update an existing Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "post", "url": "/api/teams/{id}/queues", "title": "Add queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams", "title": "Creates a new Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTeams", "group": "Teams", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}", "title": "Deletes a Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/users", "title": "Gets agents from team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams", "title": "Gets a list of Teams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Teams", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/teams?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/teams?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/teams?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/teams?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/teams?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/users", "title": "Removes agents from a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/queues", "title": "Remove queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel=voice&ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/fax/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/voice/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/mail/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/sms/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/chat/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}", "title": "Gets a single Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams/{id}/users", "title": "Adds agents to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "put", "url": "/api/teams/{id}", "title": "Update an existing Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/templates", "title": "Creates a new Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTemplates", "group": "Templates", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "delete", "url": "/api/templates/{id}", "title": "Deletes a Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates", "title": "Gets a list of Templates", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -v -u {name}:{password}", "type": "json" } ], "name": "GetTemplates", "group": "Templates", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/templates?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/templates?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/templates?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/templates?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/templates?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates/{id}", "title": "Gets a single Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "put", "url": "/api/templates/{id}", "title": "Update an existing Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "post", "url": "/api/triggers", "title": "Creates a new Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTriggers", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "delete", "url": "/api/triggers/{id}", "title": "Deletes a Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers", "title": "Gets a list of Triggers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -v -u {name}:{password}", "type": "json" } ], "name": "GetTriggers", "group": "Triggers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/triggers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/triggers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/triggers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/triggers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/triggers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}", "title": "Gets a single Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -d '{\"action\": \"contactManager\",\"data1\": \"1\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAction", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/all_conditions", "title": "Creates a new \"AND\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAllCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/any_conditions", "title": "Creates a new \"OR\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAnyCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/actions", "title": "Gets Trigger Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/all_conditions", "title": "Gets \"AND\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAllConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/any_conditions", "title": "Gets \"OR\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAnyConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "put", "url": "/api/triggers/{id}", "title": "Update an existing Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/trunks", "title": "Create a new trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Trunks", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "alaw"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"pai\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "registry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "otherFields", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "delete", "url": "/api/trunks/{id}", "title": "Deletes a trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Trunks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks", "title": "Gets a list of Trunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password}", "type": "json" } ], "name": "GetTrunks", "group": "Trunks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/trunks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/trunks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/trunks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/trunks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/trunks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks/{id}", "title": "Gets a single Trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTrunks", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "put", "url": "/api/trunks/{id}", "title": "Update an existing trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "post", "url": "/api/users/{id}/contacts", "title": "Add contacts to a user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -d '{\"ids\": [1,2]}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddContacts", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/queues", "title": "Add queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/teams", "title": "Add teams to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/create_many", "title": "Creates many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateUsers", "group": "Users", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "

The name of the user

" }, { "group": "Body", "type": "String", "optional": false, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "email", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"admin\"", "\"user\"", "\"agent\"", "\"telephone\"" ], "optional": false, "field": "role", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "provider", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "internal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "salt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "zipcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userpic", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastLoginAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voicePause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chatPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "mailPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "faxPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "smsPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "openchannelPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pauseType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastPauseAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "chatCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "openchannelCapacity", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarAutoAnswer", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableSettings", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarListenPort", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRemoteControl", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarRemoteControlPort", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableRecording", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRingInUse", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chanspy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ipaddr", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "regseconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullcontact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regserver", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "useragent", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastms", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "gsm"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "loginInPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "showWebBar", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "permissions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarUnconditionalNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarNoReplyNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarBusyNumber", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarUnconditional", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarNoReply", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarBusy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarDnd", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarUnansweredCallBadge", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/destroy_many?ids={ids}", "title": "Deletes many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}/password", "title": "Change user password", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/password -d '{\"oldPassword\": \"1234\", \"newPassword\": \"5678\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "ChangePwd", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users", "title": "Create a new user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}", "title": "Deletes a User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/describe", "title": "Gets table info about Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/agents", "title": "GetAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/agents -v -u {name}:{password}", "type": "json" } ], "name": "GetAgents", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/chat/interactions", "title": "GetChatInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetChatInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/contacts", "title": "GetContacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/lists", "title": "GetLists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/openchannel/interactions", "title": "GetOpenchannelInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannelInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues/?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/recordings", "title": "GetRecordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/openchannel/interactions", "title": "GetSmsInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/sms/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetSmsInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/teams", "title": "GetTeams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users", "title": "Gets a list of Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -v -u {name}:{password}", "type": "json" } ], "name": "GetUsers", "group": "Users", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/users?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/users?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/users?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/users?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/users?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues_rt", "title": "GetVoiceQueuesRt", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues_rt -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesRt", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/login", "title": "Login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/login -v -u {name}:{password}", "type": "json" } ], "name": "Login", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/logout", "title": "Logout", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/logout -v -u {name}:{password}", "type": "json" } ], "name": "Logout", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/pause", "title": "Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/pause -v -u {name}:{password}", "type": "json" } ], "name": "Pause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/queues", "title": "Remove queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/teams", "title": "Removes teams from an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}", "title": "Gets a single User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/unpause", "title": "Unpause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/unpause -v -u {name}:{password}", "type": "json" } ], "name": "Unpause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/avatar", "title": "Add avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/avatar", "title": "Get avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}", "title": "Update an existing User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/variables", "title": "Creates a new Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVariables", "group": "Variables", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "delete", "url": "/api/variables/{id}", "title": "Deletes a Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables", "title": "Gets a list of Variables", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -v -u {name}:{password}", "type": "json" } ], "name": "GetVariables", "group": "Variables", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/variables?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/variables?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/variables?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/variables?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/variables?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables/{id}", "title": "Gets a single Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "put", "url": "/api/variables/{id}", "title": "Update an existing Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/version/fetch", "title": "Fetch git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/fetch -v -u {name}:{password}", "type": "json" } ], "name": "FetchVersion", "group": "Version", "description": "

Motion run the following command: git fetch origin master

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version", "title": "Gets version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version -v -u {name}:{password}", "type": "json" } ], "name": "GetVersion", "group": "Version", "description": "

Motion returns the current and latest motion version.

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/pull", "title": "Pull git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/pull -v -u {name}:{password}", "type": "json" } ], "name": "PullVersion", "group": "Version", "description": "

Motion run the following command: git pull

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/reset", "title": "Reset git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/reset -v -u {name}:{password}", "type": "json" } ], "name": "ResetVersion", "group": "Version", "description": "

Motion run the following command: git reset --hard FETCH_HEAD

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/restart", "title": "Restart motion2 after update", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/restart -v -u {name}:{password}", "type": "json" } ], "name": "RestartVersion", "group": "Version", "description": "

Motion run the following command: pm2 restart motion

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/voice/agents/reports/describe", "title": "Gets table info about Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports", "title": "Gets a list of Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/agents/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/agents/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/agents/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/agents/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/agents/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports/{id}", "title": "Gets a single Agent Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/describe", "title": "Gets table info about Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports", "title": "Gets a list of Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/calls/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/calls/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/calls/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/calls/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/calls/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/{id}", "title": "Gets a single Call Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "put", "url": "/api/voice/calls/reports/{id}", "title": "Update a single cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -d '{\"userDispositio\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "post", "url": "/api/voice/chanspy", "title": "Creates a new ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateChanSpy", "group": "Voice_ChanSpy", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "prefix", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "options", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "record", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordingFormat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "delete", "url": "/api/voice/chanspy/{id}", "title": "Deletes a ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy", "title": "Gets a list of ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -v -u {name}:{password}", "type": "json" } ], "name": "GetChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/chanspy?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/chanspy?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/chanspy?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/chanspy?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/chanspy?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy/{id}", "title": "Gets a single ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "put", "url": "/api/voice/chanspy/{id}", "title": "Update an existing ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "post", "url": "/api/voice/contexts", "title": "Create a new context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Voice_Contexts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultEntry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "delete", "url": "/api/voice/contexts/{id}", "title": "Deletes a context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts", "title": "Gets a list of Contexts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password}", "type": "json" } ], "name": "GetContexts", "group": "Voice_Contexts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/contexts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/contexts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/contexts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/contexts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/contexts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts/{id}", "title": "Gets a single Context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowContexts", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "put", "url": "/api/voice/contexts/{id}", "title": "Update an existing context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/dials/reports/describe", "title": "Gets table info about Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports", "title": "Gets a list of Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dials/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dials/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dials/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dials/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dials/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports/{id}", "title": "Gets a single Dial Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "post", "url": "/api/voice/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Voice_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions", "title": "Gets a list of Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -v -u {name}:{password}", "type": "json" } ], "name": "GetDispositions", "group": "Voice_Dispositions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dispositions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dispositions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dispositions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dispositions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dispositions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "put", "url": "/api/voice/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/extensions/{id}", "title": "Deletes a Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions", "title": "Gets a list of Extensions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -v -u {name}:{password}", "type": "json" } ], "name": "GetExtensions", "group": "Voice_Extensions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/extensions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/extensions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/extensions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/extensions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/extensions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions/{id}", "title": "Gets a single Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id}/applications -d '[{\"app\": \"Set\", \"appdata\": \"CALLERDNID=${CALLER(dnid)}\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "put", "url": "/api/voice/extensions/{id}", "title": "Update an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/mohs", "title": "Create a new a new MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -d '{\"name\": \"xmas_musics\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mohs/{id}/sounds", "title": "Add sound to MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -d '{\"id\": 1}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}", "title": "Deletes an MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DestroyMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs", "title": "Gets a list of Music On Holds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -v -u {name}:{password}", "type": "json" } ], "name": "GetMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mohs?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mohs?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mohs?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mohs?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mohs?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}/sounds", "title": "Gets sounds from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "GetSounds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}/sounds/{id2}", "title": "Remove sound from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds/{id2} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}", "title": "Gets a single Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "put", "url": "/api/voice/mohs/{id}", "title": "Update an existing Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mails", "title": "Creates a new Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMails", "group": "Voice_Mails", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "customer_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pager", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tz", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "attach", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "saycid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "review", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "envelope", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sayduration", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "saydurationm", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sendvoicemail", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "nextaftercmd", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcename", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcegreetings", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "hidefromdir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "stamp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailsubject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailbody", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxsecs", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxmsg", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "delete", "url": "/api/voice/mails/{id}", "title": "Deletes a Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails", "title": "Gets a list of Mails", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -v -u {name}:{password}", "type": "json" } ], "name": "GetMails", "group": "Voice_Mails", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}", "title": "Gets a single Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}/messages", "title": "Gets voice mail messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "put", "url": "/api/voice/mails/{id}", "title": "Update an existing Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "post", "url": "/api/voice/mails/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Voice_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "msgnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "macrocontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "origtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "duration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxuser", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxcontext", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "recording", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "flag", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "msg_id", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "stamp", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "delete", "url": "/api/voice/mails/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Voice_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "voice/mails/messages/{id}/download", "title": "Download Voice Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}voice/mails/messages/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "put", "url": "/api/voice/mails/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/queues/reports/describe", "title": "Gets table info about Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports", "title": "Gets a list of Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports/{id}", "title": "Gets a single Queue Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "post", "url": "/api/voice/queues/{id}/users", "title": "Add agents to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/blacklists", "title": "Add blacklists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/lists", "title": "Add lists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/teams", "title": "Add teams to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Voice_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"inbound\"", "\"outbound\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "musiconhold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ringall\"", "\"leastrecent\"", "\"fewestcalls\"", "\"random\"", "\"rrmemory\"", "\"linear\"", "\"wrandom\"", "\"rrordered\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "servicelevel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "penaltymemberslimit", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeoutpriority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "weight", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "wrapuptime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autofill", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"all\"" ], "optional": true, "field": "autopause", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "autopausedelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopausebusy", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopauseunavail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxlen", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setinterfacevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueueentryvar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueuevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "eventmemberstatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membermacro", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membergosub", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "min_announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "periodic_announce_frequency", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "random_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "relative_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"once\"" ], "optional": true, "field": "announce_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce_position", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "announce_to_first_user", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_position_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"0\"", "\"5\"", "\"10\"", "\"15\"", "\"20\"", "\"30\"" ], "optional": true, "field": "announce_round_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_youarenext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thereare", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_callswaiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minute", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minutes", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thankyou", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_reporthold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_less_than", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinempty", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leavewhenempty", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "reportholdtime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ringinuse", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberdelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "timeoutrestart", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultrule", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "acw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialActive", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"preview\"", "\"progressive\"", "\"power\"", "\"predictive\"" ], "optional": true, "field": "dialMethod", "description": "

Dial Method.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitChannel", "description": "

Max 9999 channels, 0 means unlimited.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitQueue", "description": "

Max 9999 member in queue(min:1, max:9999), 0 means unlimited.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPowerLevel", "description": "

Power Level: Calls for agents (min:1, max:10).

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agentBusyFactor\"", "\"dropRate\"" ], "optional": true, "field": "dialPredictiveOptimization", "description": "

Only for predictive method.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPredictiveOptimizationPercentage", "description": "

Predictive Optimization Percentage (min: 1, max: 95)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialPredictiveInterval", "description": "

Intervall Predictive Minutes (min:5 max:30)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueOptions", "description": "

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialQueueTimeout", "description": "

Queue Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueProject", "description": "

AGI queue option (use: agi://127.0.0.1/square,<project_name>)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialPrefix", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacklists", "title": "Get queue blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/finals", "title": "Gets queue hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hopper_histories", "title": "Gets queue hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hoppers", "title": "Gets queue hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/lists", "title": "Get queue lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/members", "title": "Gets queue members", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/members -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetMembers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Voice_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/teams", "title": "Gets queue team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/blacklists", "title": "Remove blacklists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/lists", "title": "Remove lists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacks", "title": "Gets queue hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "put", "url": "/api/voice/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Voice_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rating", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "createdAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "updatedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "delete", "url": "/api/voice/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/describe", "title": "Gets table info about Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Voice_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "put", "url": "/api/voice/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "post", "url": "/api/voice/transfers/reports", "title": "Creates a new Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTransfer_Reports", "group": "Voice_Transfer_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"blind\"", "\"attended\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "result", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereraccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererlinkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereechannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereelinkedid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"Yes\"", "\"No\"" ], "optional": true, "field": "isexternal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "delete", "url": "/api/voice/transfers/reports/{id}", "title": "Deletes a Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports", "title": "Gets a list of Transfer Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/transfers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/transfers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/transfers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/transfers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/transfers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports/{id}", "title": "Gets a single Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "put", "url": "/api/voice/transfers/reports/{id}", "title": "Update an existing Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "post", "url": "/api/integrations/zendesk/accounts", "title": "Creates a new Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Accounts", "group": "Zendesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"password\"", "\"token\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "delete", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Deletes a Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts", "title": "Gets a list of Zendesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Gets a single Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "put", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Update an existing Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/configurations", "title": "Creates a new Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Configurations", "group": "Zendesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "delete", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Deletes a Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations", "title": "Gets a list of Zendesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Gets a single Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "put", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Update an existing Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/fields", "title": "Creates a new Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Fields", "group": "Zendesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "delete", "url": "/api/integrations/zendesk/fields/{id}", "title": "Deletes a Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields", "title": "Gets a list of Zendesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields/{id}", "title": "Gets a single Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "put", "url": "/api/integrations/zendesk/fields/{id}", "title": "Update an existing Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "post", "url": "/api/integrations/zoho/accounts", "title": "Creates a new Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Accounts", "group": "Zoho_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "authToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "delete", "url": "/api/integrations/zoho/accounts/{id}", "title": "Deletes a Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts", "title": "Gets a list of Zoho Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}", "title": "Gets a single Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "put", "url": "/api/integrations/zoho/accounts/{id}", "title": "Update an existing Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/configurations", "title": "Creates a new Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Configurations", "group": "Zoho_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "delete", "url": "/api/integrations/zoho/configurations/{id}", "title": "Deletes a Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations", "title": "Gets a list of Zoho Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}", "title": "Gets a single Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "put", "url": "/api/integrations/zoho/configurations/{id}", "title": "Update an existing Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "post", "url": "/api/integrations/zoho/fields", "title": "Creates a new Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Fields", "group": "Zoho_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "delete", "url": "/api/integrations/zoho/fields/{id}", "title": "Deletes a Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields", "title": "Gets a list of Zoho Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields/{id}", "title": "Gets a single Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "put", "url": "/api/integrations/zoho/fields/{id}", "title": "Update an existing Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "post", "url": "/api/cdr", "title": "Creates a new Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCdrs", "group": "cdr", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "calldate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "src", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dst", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dstchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastapp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "duration", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "billsec", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userfield", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sequence", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "peeraccount", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tag", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "delete", "url": "/api/cdr/{id}", "title": "Deletes a Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr", "title": "Gets a list of Cdrs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -v -u {name}:{password}", "type": "json" } ], "name": "GetCdrs", "group": "cdr", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cdr?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cdr?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cdr?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cdr?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cdr?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr/{id}", "title": "Gets a single Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "put", "url": "/api/cdr/{id}", "title": "Update an existing Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "post", "url": "/api/voiceQueuesLog", "title": "Creates a new VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVoiceQueuesLogs", "group": "voiceQueuesLog", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "time", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "callid", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "queuename", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "agent", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "event", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "dtm", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "delete", "url": "/api/voiceQueuesLog/{id}", "title": "Deletes a VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog", "title": "Gets a list of VoiceQueuesLogs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voiceQueuesLog?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voiceQueuesLog?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voiceQueuesLog?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voiceQueuesLog?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voiceQueuesLog?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog/{id}", "title": "Gets a single VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "put", "url": "/api/voiceQueuesLog/{id}", "title": "Update an existing VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" } ] }); diff --git a/apidoc/api_data.json b/apidoc/api_data.json index c4fecd4..e8f9f03 100644 --- a/apidoc/api_data.json +++ b/apidoc/api_data.json @@ -1 +1 @@ -[ { "type": "delete", "url": "/api/actions/{id}", "title": "Deletes a Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteActions", "group": "Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "put", "url": "/api/actions/{id}", "title": "Update an existing Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateActions", "group": "Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "post", "url": "/api/analytics/custom_reports", "title": "Creates a new Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "delete", "url": "/api/analytics/custom_reports/{id}", "title": "Deletes a Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports", "title": "Gets a list of Analytic Custom Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/custom_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/custom_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/custom_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/custom_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/custom_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}", "title": "Gets a single Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "put", "url": "/api/analytics/custom_reports/{id}", "title": "Update an existing Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "post", "url": "/api/analytics/default_reports", "title": "Creates a new Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "delete", "url": "/api/analytics/default_reports/{id}", "title": "Deletes a Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports", "title": "Gets a list of Analytic Default Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/default_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/default_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/default_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/default_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/default_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}", "title": "Gets a single Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "put", "url": "/api/analytics/default_reports/{id}", "title": "Update an existing Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "post", "url": "/api/analytics/extracted_reports", "title": "Creates a new Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "savename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "startDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"manual\"", "\"scheduled\"" ], "optional": false, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "delete", "url": "/api/analytics/extracted_reports/{id}", "title": "Deletes a Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports", "title": "Gets a list of Analytic Extacted Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/extracted_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/extracted_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/extracted_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/extracted_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/extracted_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}", "title": "Gets a single Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}/download", "title": "Download Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "put", "url": "/api/analytics/extracted_reports/{id}", "title": "Update an existing Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/create_many", "title": "Creates many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/destroy_many?ids={ids}", "title": "Deletes many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports", "title": "Creates a new Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/{id}", "title": "Deletes a Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports", "title": "Gets a list of Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/field_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/field_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/field_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/field_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/field_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports/{id}", "title": "Gets a single Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/{id}/create_many", "title": "Rewrite fields set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id}/create_many -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addFields", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "put", "url": "/api/analytics/field_reports/{id}", "title": "Update an existing Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/metrics", "title": "Creates a new Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Metric", "group": "Analytic_Metrics", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "metric", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "delete", "url": "/api/analytics/metrics/{id}", "title": "Deletes a Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics", "title": "Gets a list of Analytic Metric", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/metrics?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/metrics?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/metrics?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/metrics?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/metrics?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics/{id}", "title": "Gets a single Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "put", "url": "/api/analytics/metrics/{id}", "title": "Update an existing Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "post", "url": "/api/analytics/tree_reports", "title": "Creates a new Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "tree", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "delete", "url": "/api/analytics/tree_reports/{id}", "title": "Deletes a Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports", "title": "Gets a list of Analytic Tree Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/tree_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/tree_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/tree_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/tree_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/tree_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports/{id}", "title": "Gets a single Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "put", "url": "/api/analytics/tree_reports/{id}", "title": "Update an existing Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "post", "url": "/api/auth/google", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authGoogle/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authLocal/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/automations", "title": "Creates a new Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAutomations", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "delete", "url": "/api/automations/{id}", "title": "Deletes a Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations", "title": "Gets a list of Automations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -v -u {name}:{password}", "type": "json" } ], "name": "GetAutomations", "group": "Automations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/automations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/automations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/automations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/automations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/automations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}", "title": "Gets a single Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addActions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/conditions", "title": "Creates new conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConditions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/actions", "title": "Gets Automation Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/conditions", "title": "Gets Automation Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConditions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "put", "url": "/api/automations/{id}", "title": "Update an existing Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/campaigns/{id}/blacklists", "title": "Add blacklists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns/{id}/lists", "title": "Add lists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns", "title": "Creates a new Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCampaigns", "group": "Campaigns", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ivr\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "limitCalls", "description": "

Max 200 calls.

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}", "title": "Deletes a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacklists", "title": "Get campaign blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns", "title": "Gets a list of Campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "GetCampaigns", "group": "Campaigns", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/campaigns?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/campaigns?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/campaigns?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/campaigns?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/campaigns?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/finals", "title": "Gets campaign hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hopper_histories", "title": "Gets campaign hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hoppers", "title": "Gets campaign hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/lists", "title": "Get campaign lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/blacklists", "title": "Remove blacklists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/lists", "title": "Remove lists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}", "title": "Gets a single Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacks", "title": "Gets campaign hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "put", "url": "/api/campaigns/{id}", "title": "Update an existing Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/canned_answers", "title": "Creates a new Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCanned_Answers", "group": "Canned_Answers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "key", "description": "" }, { "group": "Body", "type": "Text", "optional": false, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/canned_answers/{id}", "title": "Deletes a Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers", "title": "Gets a list of Canned Answers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -v -u {name}:{password}", "type": "json" } ], "name": "GetCanned_Answers", "group": "Canned_Answers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/canned_answers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/canned_answers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/canned_answers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/canned_answers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/canned_answers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers/{id}", "title": "Gets a single Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "put", "url": "/api/canned_answers/{id}", "title": "Update an existing Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/chat/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "get", "url": "/api/chat/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "put", "url": "/api/chat/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "post", "url": "/api/chat/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Chat_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "get", "url": "/api/chat/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "put", "url": "/api/chat/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/enquiries/{id}", "title": "Deletes a Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "get", "url": "/api/chat/enquiries/{id}", "title": "Gets a single Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "put", "url": "/api/chat/enquiries/{id}", "title": "Update an existing Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "post", "url": "/api/chat/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "delete", "url": "/api/chat/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Chat_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "put", "url": "/api/chat/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Chat_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "delete", "url": "/api/chat/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Chat_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "put", "url": "/api/chat/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "post", "url": "/api/chat/proactive_actions", "title": "Creates a new Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProactive_Actions", "group": "Chat_Proactive_Actions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "delete", "url": "/api/chat/proactive_actions/{id}", "title": "Deletes a Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "get", "url": "/api/chat/proactive_actions/{id}", "title": "Gets a single Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "put", "url": "/api/chat/proactive_actions/{id}", "title": "Update an existing Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "post", "url": "/api/chat/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Chat_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Chat_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "put", "url": "/api/chat/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"", "\"requester\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "abandon", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "post", "url": "/api/chat/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/visitors/{id}", "title": "Deletes a Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "get", "url": "/api/chat/visitors/{id}", "title": "Gets a single Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "put", "url": "/api/chat/visitors/{id}", "title": "Update an existing Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "delete", "url": "/api/chat/website_fields/{id}", "title": "Deletes a Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "get", "url": "/api/chat/website_fields/{id}", "title": "Gets a single Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "put", "url": "/api/chat/website_fields/{id}", "title": "Update an existing Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "post", "url": "/api/chat/websites", "title": "Creates a new Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateWebsites", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mapKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remote", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "animation", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rounded\"", "\"squared\"" ], "optional": true, "field": "header_shape", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "start_chat_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_offline", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "download_transcript", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultWhiteLabel", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "onlineForm", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "offlineForm", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "delete", "url": "/api/chat/websites/{id}", "title": "Deletes a Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites", "title": "Gets a list of Websites", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -v -u {name}:{password}", "type": "json" } ], "name": "GetWebsites", "group": "Chat_Websites", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/websites?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/websites?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/websites?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/websites?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/websites?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}", "title": "Gets a single Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Creates new Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addProactiveActions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/applications", "title": "Gets Website Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/dispositions", "title": "Gets Website Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/interactions", "title": "Gets Website Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/online_fields", "title": "Gets Website Online Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/online_fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getOnlineFields", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Gets Website Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getProactiveActions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/snippet", "title": "Gets Website Snippet", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/snippet -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSnippet", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/websites/{id}", "title": "Update an existing Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/cm/companies", "title": "Creates a new Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCompanies", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "companyId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "website", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailDomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sStreet", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sPostalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCountry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/companies/{id}", "title": "Deletes a Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies", "title": "Gets a list of Companies", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -v -u {name}:{password}", "type": "json" } ], "name": "GetCompanies", "group": "Cm_Companies", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/companies?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/companies?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/companies?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/companies?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/companies?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}", "title": "Gets a single Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "post", "url": "/api/cm/companies/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/companies/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "put", "url": "/api/cm/companies/{id}", "title": "Update an existing Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/contacts/{id}", "title": "Deletes a Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/describe", "title": "Gets table info about Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts", "title": "Gets a list of Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Cm_Contacts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/contacts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/contacts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/contacts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/contacts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/contacts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/finals", "title": "Gets contact hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hopper_histories", "title": "Gets contact hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hoppers", "title": "Gets contact hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '[{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}]' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/jscripty_sessions", "title": "Gets contact hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getJscriptySessions", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}", "title": "Gets a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X GET", "type": "json" } ], "name": "show", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "put", "url": "/api/cm/contacts/{id}", "title": "Update a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -d '{\"fullName\": \"John\", \"lastName\": \"Doe\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "delete", "url": "/api/cm/custom_fields/{id}", "title": "Deletes a Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields", "title": "Gets a list of Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields -v -u {name}:{password}", "type": "json" } ], "name": "GetCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/custom_fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/custom_fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/custom_fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/custom_fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/custom_fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields/{id}", "title": "Gets a single Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "put", "url": "/api/cm/custom_fields/{id}", "title": "Update an existing Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "post", "url": "/api/cm/hopper", "title": "Creates a new Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateHopper", "group": "Cm_Hopper", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "scheduledat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countbusyretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countcongestionretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countnoanswerretry", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ContactId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ListId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "UserId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "VoiceQueueId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "CampaignId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/describe", "title": "Gets table info about Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper", "title": "Gets a list of Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper", "group": "Cm_Hopper", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/{id}", "title": "Gets a single Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "delete", "url": "/api/cm/hopper_black/{id}", "title": "Deletes a Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/describe", "title": "Gets table info about Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black", "title": "Gets a list of Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_black?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_black?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_black?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_black?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_black?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/{id}", "title": "Gets a single Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "put", "url": "/api/cm/hopper_black/{id}", "title": "Update an existing Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_final/describe", "title": "Gets table info about HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final", "title": "Gets a list of HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_final?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_final?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_final?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_final?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_final?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final/{id}", "title": "Gets a single HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "put", "url": "/api/cm/hopper_final/{id}", "title": "Update a single hopper final", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_final/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_history/describe", "title": "Gets table info about HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history", "title": "Gets a list of HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_history?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_history?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_history?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_history?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_history?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history/{id}", "title": "Gets a single HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "put", "url": "/api/cm/hopper_history/{id}", "title": "Update a single hopper history", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_history/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "delete", "url": "/api/cm/hopper/{id}", "title": "Delete Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroy", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/preview", "title": "Gets Preview Dialer Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getPreview", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "put", "url": "/api/cm/hopper/{id}", "title": "Update an existing Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "post", "url": "/api/cm/lists", "title": "Creates a new List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateLists", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}", "title": "Deletes a List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/users", "title": "Gets agents from list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists", "title": "Gets a list of Lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Cm_Lists", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/lists?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/lists?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/lists?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/lists?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/lists?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}/users", "title": "Removes agents from a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}", "title": "Gets a single List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/users", "title": "Adds agents to a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/fields", "title": "Creates a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addCustomField", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/lists/{id}/dispositions", "title": "Creates a new sub disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/lists/{id}/disposition -d '{\"name\": \"SATISFIED\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/fields", "title": "Gets Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getCustomFields", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/dispositions", "title": "Gets Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts/csv", "title": "Gets CSV List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts/csv -v -u {name}:{password} -X GET", "type": "json" } ], "name": "grunt", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "put", "url": "/api/cm/lists/{id}", "title": "Update an existing List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/conditions/{id}", "title": "Deletes a Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "put", "url": "/api/conditions/{id}", "title": "Update an existing Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "post", "url": "/api/cm/custom_field", "title": "Create a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_field -d '{\"name\": \"mycf\", \"type\": \"text\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCustomField", "group": "Custom_Fields", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Custom_Fields" }, { "type": "delete", "url": "/api/dashboards/items/{id}", "title": "Deletes a Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "get", "url": "/api/dashboards/items/{id}", "title": "Gets a single Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "put", "url": "/api/dashboards/items/{id}", "title": "Update an existing Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "post", "url": "/api/dashboards", "title": "Creates a new Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDashboards", "group": "Dashboards", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "delete", "url": "/api/dashboards/{id}", "title": "Deletes a Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards", "title": "Gets a list of Dashboards", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -v -u {name}:{password}", "type": "json" } ], "name": "GetDashboards", "group": "Dashboards", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/dashboards?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/dashboards?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/dashboards?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/dashboards?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/dashboards?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}", "title": "Gets a single Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "post", "url": "/api/dashboards/{id}/items", "title": "Creates new item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -d '{\"type\": \"counter\", \"...\": \"...\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addItem", "group": "Dashboards", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/run", "title": "Run dashboard widgets queries", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "put", "url": "/api/dashboards/{id}", "title": "Update an existing Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/items", "title": "Gets items", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getItems", "group": "Dashboars", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboars" }, { "type": "post", "url": "/api/integrations/desk/accounts", "title": "Creates a new Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Accounts", "group": "Desk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"basic\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tokenSecret", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "delete", "url": "/api/integrations/desk/accounts/{id}", "title": "Deletes a Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts", "title": "Gets a list of Desk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}", "title": "Gets a single Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "put", "url": "/api/integrations/desk/accounts/{id}", "title": "Update an existing Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/configurations", "title": "Creates a new Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Configurations", "group": "Desk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "delete", "url": "/api/integrations/desk/configurations/{id}", "title": "Deletes a Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations", "title": "Gets a list of Desk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}", "title": "Gets a single Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "put", "url": "/api/integrations/desk/configurations/{id}", "title": "Update an existing Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/fields", "title": "Creates a new Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Fields", "group": "Desk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "delete", "url": "/api/integrations/desk/fields/{id}", "title": "Deletes a Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields", "title": "Gets a list of Desk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Fields", "group": "Desk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields/{id}", "title": "Gets a single Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "put", "url": "/api/integrations/desk/fields/{id}", "title": "Update an existing Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "post", "url": "/api/fax/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ecm", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "headerinfo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "minrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "maxrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "modem", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "gateway", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "faxdetect", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "t38timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SIP\"", "\"IAX\"", "\"DADHI\"", "\"KHOMP\"" ], "optional": true, "field": "tech", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Fax_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"sendSms\"" ], "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/applications", "title": "Gets account pplications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "put", "url": "/api/fax/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "get", "url": "/api/fax/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "put", "url": "/api/fax/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "post", "url": "/api/fax/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Fax_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "delete", "url": "/api/fax/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Fax_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "put", "url": "/api/fax/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "post", "url": "/api/fax/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Fax_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "delete", "url": "/api/fax/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "get", "url": "/api/fax/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "put", "url": "/api/fax/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "post", "url": "/api/fax/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "delete", "url": "/api/fax/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Fax_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "put", "url": "/api/fax/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Fax_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "delete", "url": "/api/fax/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Fax_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "put", "url": "/api/fax/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "post", "url": "/api/fax/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Fax_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Fax_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "put", "url": "/api/fax/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Fax_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "delete", "url": "/api/fax/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Fax_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "put", "url": "/api/fax/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "post", "url": "/api/fax/sessions/reports", "title": "Creates a new Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSession_Reports", "group": "Fax_Session_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "delete", "url": "/api/fax/sessions/reports/{id}", "title": "Deletes a Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "put", "url": "/api/fax/sessions/reports/{id}", "title": "Update an existing Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts", "title": "Creates a new Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "apiKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "delete", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Deletes a Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts", "title": "Gets a list of Freshdesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Gets a single Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "put", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Update an existing Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations", "title": "Creates a new Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "delete", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Deletes a Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations", "title": "Gets a list of Freshdesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Gets a single Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "put", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Update an existing Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/fields", "title": "Creates a new Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Fields", "group": "Freshdesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "delete", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Deletes a Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields", "title": "Gets a list of Freshdesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Gets a single Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "put", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Update an existing Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "post", "url": "/api/integrations/reports", "title": "Creates a new Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntegration_Reports", "group": "Integration_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "integration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "eventChannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exitStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ticketId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "integrationId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contacts", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interface", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcalledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentconnectAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "holdtime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentcomplete", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcompleteAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "talktime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentacw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentringnoanswer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentringnoanswerAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentdump", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentdumpAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastevent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "destchannelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destlanguage", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destpriority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "projectId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "delete", "url": "/api/integrations/reports/{id}", "title": "Deletes a Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/describe", "title": "Gets table info about Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports", "title": "Gets a list of Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/{id}", "title": "Gets a single Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "put", "url": "/api/integrations/reports/{id}", "title": "Update an existing Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "post", "url": "/api/intervals", "title": "Creates a new Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntervals", "group": "Intervals", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "delete", "url": "/api/intervals/{id}", "title": "Deletes a Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals", "title": "Gets a list of Intervals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -v -u {name}:{password}", "type": "json" } ], "name": "GetIntervals", "group": "Intervals", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/intervals?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/intervals?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/intervals?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/intervals?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/intervals?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}", "title": "Gets a single Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals", "title": "Creates a new sub interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -d '{\"interval\": \"00:00-08:30,mon-fri,*,*\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInterval", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals/create_many", "title": "Create new sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}/sub_intervals", "title": "Get sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "put", "url": "/api/intervals/{id}", "title": "Update an existing Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/jira", "title": "Creates a new issue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jira -d '{\"key\": \"Bug\", \"description\": \"I can't do it!\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Creates_Issue", "group": "Issue", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"Bug\"" ], "optional": true, "field": "issuetype", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "summary", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jira/index.js", "groupTitle": "Issue" }, { "type": "post", "url": "/api/jscripty/answers/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyAnswerReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "delete", "url": "/api/jscripty/answers/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyAnswerReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/answers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/answers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/answers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/answers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/answers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "put", "url": "/api/jscripty/answers/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "post", "url": "/api/jscripty/questions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyQuestionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "delete", "url": "/api/jscripty/questions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyQuestionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/questions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/questions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/questions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/questions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/questions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "put", "url": "/api/jscripty/questions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "post", "url": "/api/jscripty/sessions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptySessionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "starttime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "delete", "url": "/api/jscripty/sessions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptySessionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "put", "url": "/api/jscripty/sessions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "post", "url": "/api/jscripty/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Jscripty_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "formData", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "delete", "url": "/api/jscripty/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Jscripty_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}/sessions", "title": "Gets jscripty project sessions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id}/sessions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSessions", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "put", "url": "/api/jscripty/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/license", "title": "Gets License Info", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license -v -u {name}:{password} -X GET", "type": "json" } ], "name": "index", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "put", "url": "/api/license/{id}", "title": "Update an existing License", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLiense", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "post", "url": "/api/mail/accounts/{id}/in_servers", "title": "Creates a new IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddImap", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "ssl", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"UNSEEN\"" ], "optional": true, "field": "filter", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"IMAP\"", "\"POP3\"" ], "optional": true, "field": "protocol", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"CONNECTING\"", "\"CONNECTED\"", "\"DISCONNECTED\"", "\"ERROR\"", "\"UNKNOWN\"" ], "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "connTimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "authTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "keepalive", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/out_servers", "title": "Creates a new SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSmtp", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "signature", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Mail_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/in_servers", "title": "Gets account IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetImap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/out_servers", "title": "Gets account SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/in_servers", "title": "Removes IMAP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveImmap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/out_servers", "title": "Removes SMTP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"replyMail\"", "\"sendSms\"" ], "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '{\"name\": \"vip\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '[{\"name\": \"vip\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -d '[{\"subject\": \"My printer is on fire!\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/send", "title": "Send new mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/send -d '{from: '\"John Doe\" '}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "sendMail", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "put", "url": "/api/mail/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/verify", "title": "Verify mail account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/verify -v -u {name}:{password} -X GET", "type": "json" } ], "name": "verifySmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "get", "url": "/api/mail/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "put", "url": "/api/mail/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "post", "url": "/api/mail/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Mail_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "domain", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "size", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "delete", "url": "/api/mail/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Mail_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "put", "url": "/api/mail/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "post", "url": "/api/mail/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Mail_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "delete", "url": "/api/mail/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "get", "url": "/api/mail/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "put", "url": "/api/mail/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "post", "url": "/api/mail/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "delete", "url": "/api/mail/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Mail_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/interactions/{id}/messages", "title": "Creates new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -d '[{\"to\": \"sales@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "put", "url": "/api/mail/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Mail_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "delete", "url": "/api/mail/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Mail_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "put", "url": "/api/mail/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "post", "url": "/api/mail/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Mail_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Mail_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "put", "url": "/api/mail/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Mail_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "get", "url": "/api/mail/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Mail_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "post", "url": "/api/mail/out_servers", "title": "Creates a new SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSMTPs", "group": "Mail_SMTP", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "delete", "url": "/api/mail/out_servers/{id}", "title": "Deletes a SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers", "title": "Gets a list of SMTPs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -v -u {name}:{password}", "type": "json" } ], "name": "GetSMTPs", "group": "Mail_SMTP", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/out_servers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/out_servers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/out_servers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/out_servers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/out_servers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers/{id}", "title": "Gets a single SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "put", "url": "/api/mail/out_servers/{id}", "title": "Update an existing SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/members/reports/describe", "title": "Gets table info about Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports", "title": "Gets a list of Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetMember_Reports", "group": "Member_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/members/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/members/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/members/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/members/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/members/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports/{id}", "title": "Gets a single Member Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/migrations", "title": "Gets a list of Migrations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/migrations -v -u {name}:{password}", "type": "json" } ], "name": "GetMigrations", "group": "Migrations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/migrations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/migrations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/migrations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/migrations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/migrations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/migration/index.js", "groupTitle": "Migrations" }, { "type": "post", "url": "/api/voice/networks", "title": "Create a new network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Networks", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "delete", "url": "/api/voice/networks/{id}", "title": "Deletes a network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Networks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks", "title": "Gets a list of Networks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks -v -u {name}:{password}", "type": "json" } ], "name": "GetNetworks", "group": "Networks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/networks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/networks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/networks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/networks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/networks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks/{id}", "title": "Gets a single Network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowNetworks", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "put", "url": "/api/voice/networks/{id}", "title": "Update an existing network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "post", "url": "/api/openchannel/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "replyUri", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "delete", "url": "/api/openchannel/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Openchannel_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/interactions", "title": "Gets Openchannel Account Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteractions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/applications", "title": "Creates a new Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateApplications", "group": "Openchannel_Applications", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "delete", "url": "/api/openchannel/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications", "title": "Gets a list of Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -v -u {name}:{password}", "type": "json" } ], "name": "GetApplications", "group": "Openchannel_Applications", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/applications?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/applications?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/applications?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/applications?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/applications?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "put", "url": "/api/openchannel/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "post", "url": "/api/openchannel/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Openchannel_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "delete", "url": "/api/openchannel/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "get", "url": "/api/openchannel/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "put", "url": "/api/openchannel/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "post", "url": "/api/openchannel/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "delete", "url": "/api/openchannel/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Openchannel_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "put", "url": "/api/openchannel/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Openchannel_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "delete", "url": "/api/openchannel/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Openchannel_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "put", "url": "/api/openchannel/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "post", "url": "/api/openchannel/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Openchannel_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Openchannel_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "put", "url": "/api/openchannel/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/reports", "title": "Creates a new Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateOpenchannel_Reports", "group": "Openchannel_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "delete", "url": "/api/openchannel/reports/{id}", "title": "Deletes a Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports", "title": "Gets a list of Openchannel Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports/{id}", "title": "Gets a single Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "put", "url": "/api/openchannel/reports/{id}", "title": "Update an existing Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "post", "url": "/api/pauses", "title": "Creates a new Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreatePauses", "group": "Pauses", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "delete", "url": "/api/pauses/{id}", "title": "Deletes a Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeletePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses", "title": "Gets a list of Pauses", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -v -u {name}:{password}", "type": "json" } ], "name": "GetPauses", "group": "Pauses", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/pauses?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/pauses?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/pauses?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/pauses?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/pauses?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses/{id}", "title": "Gets a single Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowPauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "put", "url": "/api/pauses/{id}", "title": "Update an existing Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updatePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pm2/{id}", "title": "Gets a single pm2 process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Process", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/pm2", "title": "Gets pm2 processes", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2 -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Processes", "group": "Pm2", "description": "

Motion returns the pm2 processes list.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "put", "url": "/api/pm2/{id}", "title": "Update an existing Process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -d '{\"status\": \"online\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProcesses", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/rpc/campaigns/", "title": "Gets a list of campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "Campaigns", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime campaigns parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/agents", "title": "Gets a list of RTAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/agents -v -u {name}:{password}", "type": "json" } ], "name": "RTAgents", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime agents parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound/channels", "title": "Gets a list of RTOutboundChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTOutboundChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/telephones", "title": "Gets a list of RTTelephones", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/telephones -v -u {name}:{password}", "type": "json" } ], "name": "RTTelephones", "group": "RPC_Realtime", "description": "

Motion will return a list of telephones parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/trunks", "title": "Gets a list of RTTrunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/trunks -v -u {name}:{password}", "type": "json" } ], "name": "RTTrunks", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime trunks parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}", "title": "Gets a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannel", "group": "RPC_Realtime", "description": "

Motion will return a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/hangup", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/hangup -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelHangup", "group": "RPC_Realtime", "description": "

Motion will hangup a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten}", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelRedirect", "group": "RPC_Realtime", "description": "

Motion will redirect a specific realtime voice queue channel to a specific extension.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/preview/{id}", "title": "Gets a single preview contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/preview/{id} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuePreview", "group": "RPC_Realtime", "description": "

Motion will return a specific preview contact.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound", "title": "Gets a list of RTOutbound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues", "title": "Gets a list of RTVoiceQueues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels", "title": "Gets a list of RTVoiceQueuesChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuesChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "post", "url": "/api/integrations/salesforce/accounts", "title": "Creates a new Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Accounts", "group": "Salesforce_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "securityToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "delete", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Deletes a Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts", "title": "Gets a list of Salesforce Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Gets a single Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "put", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Update an existing Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/configurations", "title": "Creates a new Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Configurations", "group": "Salesforce_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "delete", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Deletes a Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations", "title": "Gets a list of Salesforce Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Gets a single Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "put", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Update an existing Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "post", "url": "/api/integrations/salesforce/fields", "title": "Creates a new Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Fields", "group": "Salesforce_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "delete", "url": "/api/integrations/salesforce/fields/{id}", "title": "Deletes a Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields", "title": "Gets a list of Salesforce Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields/{id}", "title": "Gets a single Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "put", "url": "/api/integrations/salesforce/fields/{id}", "title": "Update an existing Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "post", "url": "/api/schedules", "title": "Creates a new Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSchedules", "group": "Schedules", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "cron", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "startAt", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "endAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "subtractNumber", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"years\"", "\"quarters\"", "\"months\"", "\"weeks\"", "\"days\"", "\"hours\"", "\"minutes\"" ], "optional": false, "field": "subtractUnit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"custom\"", "\"default\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "sendMail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "delete", "url": "/api/schedules/{id}", "title": "Deletes a Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules", "title": "Gets a list of Schedules", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -v -u {name}:{password}", "type": "json" } ], "name": "GetSchedules", "group": "Schedules", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/schedules?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/schedules?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/schedules?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/schedules?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/schedules?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules/{id}", "title": "Gets a single Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "put", "url": "/api/schedules/{id}", "title": "Update an existing Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/settings", "title": "Gets a list of Settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings -v -u {name}:{password}", "type": "json" } ], "name": "GetSettings", "group": "Settings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/settings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/settings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/settings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/settings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/settings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}", "title": "Gets a single Setting", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSettings", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "put", "url": "/api/settings/{id}", "title": "Update settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo", "title": "Add logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo_login", "title": "Add logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo", "title": "Get logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo_login", "title": "Get logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/sms/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"twilio\"", "\"skebby\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"basic\"", "\"classic\"", "\"classic+\"" ], "optional": true, "field": "smstype", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remote", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "delete", "url": "/api/sms/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Sms_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"" ], "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "delete", "url": "/api/sms/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "get", "url": "/api/sms/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "put", "url": "/api/sms/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "post", "url": "/api/sms/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Sms_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "delete", "url": "/api/sms/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "get", "url": "/api/sms/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "put", "url": "/api/sms/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "post", "url": "/api/sms/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "delete", "url": "/api/sms/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Sms_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "body", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "errorcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "skebby_message_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "res_data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "put", "url": "/api/sms/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Sms_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "body", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "errorcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "skebby_message_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "res_data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "delete", "url": "/api/sms/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Sms_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "put", "url": "/api/sms/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "post", "url": "/api/sms/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Sms_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Sms_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "put", "url": "/api/sms/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountaddress", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "post", "url": "/api/sms/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountnumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sounds", "title": "Gets a list of Sounds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -v -u {name}:{password}", "type": "json" } ], "name": "GetSounds", "group": "Sounds", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sounds?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sounds?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sounds?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sounds?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sounds?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}", "title": "Gets a single Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSounds", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/sounds", "title": "Create a new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "delete", "url": "/api/sounds/{id}", "title": "Deletes a sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroySound", "group": "Sounds", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}/download", "title": "Download Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "put", "url": "/api/sounds", "title": "Update an existing new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -d '[\"name\": \"sound_name\", \"description\": \"sound_desc\"]' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/square/details/reports", "title": "Creates a new Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Detail_Reports", "group": "Square_Details_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "node", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "delete", "url": "/api/square/details/reports/{id}", "title": "Deletes a Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/describe", "title": "Gets table info about Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports", "title": "Gets a list of Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/details/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/details/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/details/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/details/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/details/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/{id}", "title": "Gets a single Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "put", "url": "/api/square/details/reports/{id}", "title": "Update an existing Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "post", "url": "/api/square/odbc", "title": "Creates a new ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateODBCs", "group": "Square_ODBC", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dsn", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "delete", "url": "/api/square/odbc/{id}", "title": "Deletes a ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc", "title": "Gets a list of ODBCs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -v -u {name}:{password}", "type": "json" } ], "name": "GetODBCs", "group": "Square_ODBC", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/odbc?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/odbc?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/odbc?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/odbc?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/odbc?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}", "title": "Gets a single ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}/test", "title": "Test Odbc", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id}/test -v -u {name}:{password} -X GET", "type": "json" } ], "name": "test", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "put", "url": "/api/square/odbc/{id}", "title": "Update an existing ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "post", "url": "/api/square/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Square_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "notes", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "preproduction", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "production", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "delete", "url": "/api/square/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Square_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "put", "url": "/api/square/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "post", "url": "/api/square/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Square_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "saveName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "savePath", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "delete", "url": "/api/square/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Square_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "put", "url": "/api/square/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "post", "url": "/api/square/reports", "title": "Creates a new Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Reports", "group": "Square_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "network", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "network_script", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "request", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "version", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingani2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callington", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingtns", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rdnis", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "enhanced", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "threadid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "delete", "url": "/api/square/reports/{id}", "title": "Deletes a Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/describe", "title": "Gets table info about Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports", "title": "Gets a list of Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Reports", "group": "Square_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/{id}", "title": "Gets a single Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "put", "url": "/api/square/reports/{id}", "title": "Update an existing Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "post", "url": "/api/integrations/sugarcrm/configurations", "title": "Creates a new SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "delete", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Deletes a SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations", "title": "Gets a list of SugarCRM Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Gets a single SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "put", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Update an existing SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts", "title": "Creates a new Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "delete", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Deletes a Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts", "title": "Gets a list of Sugarcrm Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Gets a single Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "put", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Update an existing Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/fields", "title": "Creates a new Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Fields", "group": "Sugarcrm_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "delete", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Deletes a Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields", "title": "Gets a list of Sugarcrm Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Gets a single Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "put", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Update an existing Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/system", "title": "Gets system information", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/system -v -u {name}:{password}", "type": "json" } ], "name": "GetSystemInformation", "group": "System_Information", "description": "

Motion returns the system information.

", "version": "0.0.0", "filename": "server/api/system/index.js", "groupTitle": "System_Information" }, { "type": "post", "url": "/api/tags", "title": "Creates a new Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTags", "group": "Tags", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "delete", "url": "/api/tags/{id}", "title": "Deletes a Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTags", "group": "Tags", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags", "title": "Gets a list of Tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -v -u {name}:{password}", "type": "json" } ], "name": "GetTags", "group": "Tags", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/tags?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/tags?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/tags?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/tags?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/tags?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags/{id}", "title": "Gets a single Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "put", "url": "/api/tags/{id}", "title": "Update an existing Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "post", "url": "/api/teams/{id}/queues", "title": "Add queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams", "title": "Creates a new Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTeams", "group": "Teams", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}", "title": "Deletes a Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/users", "title": "Gets agents from team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams", "title": "Gets a list of Teams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Teams", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/teams?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/teams?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/teams?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/teams?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/teams?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/users", "title": "Removes agents from a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/queues", "title": "Remove queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel=voice&ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/mail/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/sms/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/chat/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/voice/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/fax/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}", "title": "Gets a single Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams/{id}/users", "title": "Adds agents to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "put", "url": "/api/teams/{id}", "title": "Update an existing Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/templates", "title": "Creates a new Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTemplates", "group": "Templates", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "delete", "url": "/api/templates/{id}", "title": "Deletes a Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates", "title": "Gets a list of Templates", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -v -u {name}:{password}", "type": "json" } ], "name": "GetTemplates", "group": "Templates", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/templates?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/templates?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/templates?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/templates?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/templates?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates/{id}", "title": "Gets a single Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "put", "url": "/api/templates/{id}", "title": "Update an existing Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "post", "url": "/api/triggers", "title": "Creates a new Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTriggers", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "delete", "url": "/api/triggers/{id}", "title": "Deletes a Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers", "title": "Gets a list of Triggers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -v -u {name}:{password}", "type": "json" } ], "name": "GetTriggers", "group": "Triggers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/triggers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/triggers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/triggers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/triggers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/triggers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}", "title": "Gets a single Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -d '{\"action\": \"contactManager\",\"data1\": \"1\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAction", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/all_conditions", "title": "Creates a new \"AND\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAllCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/any_conditions", "title": "Creates a new \"OR\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAnyCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/actions", "title": "Gets Trigger Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/all_conditions", "title": "Gets \"AND\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAllConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/any_conditions", "title": "Gets \"OR\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAnyConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "put", "url": "/api/triggers/{id}", "title": "Update an existing Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/trunks", "title": "Create a new trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Trunks", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "alaw"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"pai\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "registry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "otherFields", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "delete", "url": "/api/trunks/{id}", "title": "Deletes a trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Trunks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks", "title": "Gets a list of Trunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password}", "type": "json" } ], "name": "GetTrunks", "group": "Trunks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/trunks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/trunks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/trunks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/trunks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/trunks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks/{id}", "title": "Gets a single Trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTrunks", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "put", "url": "/api/trunks/{id}", "title": "Update an existing trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "post", "url": "/api/users/{id}/contacts", "title": "Add contacts to a user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -d '{\"ids\": [1,2]}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddContacts", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/queues", "title": "Add queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/teams", "title": "Add teams to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/create_many", "title": "Creates many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateUsers", "group": "Users", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "

The name of the user

" }, { "group": "Body", "type": "String", "optional": false, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "email", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"admin\"", "\"user\"", "\"agent\"", "\"telephone\"" ], "optional": false, "field": "role", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "provider", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "internal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "salt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "zipcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userpic", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastLoginAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voicePause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chatPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "mailPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "faxPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "smsPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "openchannelPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pauseType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastPauseAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "chatCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "openchannelCapacity", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarAutoAnswer", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableSettings", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarListenPort", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRemoteControl", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarRemoteControlPort", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableRecording", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRingInUse", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chanspy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ipaddr", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "regseconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullcontact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regserver", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "useragent", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastms", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "gsm"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "loginInPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "showWebBar", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "permissions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarUnconditionalNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarNoReplyNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarBusyNumber", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarUnconditional", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarNoReply", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarBusy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarDnd", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/destroy_many?ids={ids}", "title": "Deletes many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}/password", "title": "Change user password", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/password -d '{\"oldPassword\": \"1234\", \"newPassword\": \"5678\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "ChangePwd", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users", "title": "Create a new user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}", "title": "Deletes a User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/describe", "title": "Gets table info about Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/agents", "title": "GetAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/agents -v -u {name}:{password}", "type": "json" } ], "name": "GetAgents", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/chat/interactions", "title": "GetChatInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetChatInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/contacts", "title": "GetContacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/lists", "title": "GetLists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/openchannel/interactions", "title": "GetOpenchannelInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannelInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues/?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/recordings", "title": "GetRecordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/teams", "title": "GetTeams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users", "title": "Gets a list of Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -v -u {name}:{password}", "type": "json" } ], "name": "GetUsers", "group": "Users", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/users?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/users?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/users?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/users?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/users?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues_rt", "title": "GetVoiceQueuesRt", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues_rt -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesRt", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/login", "title": "Login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/login -v -u {name}:{password}", "type": "json" } ], "name": "Login", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/logout", "title": "Logout", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/logout -v -u {name}:{password}", "type": "json" } ], "name": "Logout", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/pause", "title": "Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/pause -v -u {name}:{password}", "type": "json" } ], "name": "Pause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/queues", "title": "Remove queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/teams", "title": "Removes teams from an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}", "title": "Gets a single User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/unpause", "title": "Unpause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/unpause -v -u {name}:{password}", "type": "json" } ], "name": "Unpause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/avatar", "title": "Add avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/avatar", "title": "Get avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}", "title": "Update an existing User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/variables", "title": "Creates a new Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVariables", "group": "Variables", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "delete", "url": "/api/variables/{id}", "title": "Deletes a Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables", "title": "Gets a list of Variables", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -v -u {name}:{password}", "type": "json" } ], "name": "GetVariables", "group": "Variables", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/variables?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/variables?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/variables?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/variables?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/variables?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables/{id}", "title": "Gets a single Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "put", "url": "/api/variables/{id}", "title": "Update an existing Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/version/fetch", "title": "Fetch git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/fetch -v -u {name}:{password}", "type": "json" } ], "name": "FetchVersion", "group": "Version", "description": "

Motion run the following command: git fetch origin master

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version", "title": "Gets version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version -v -u {name}:{password}", "type": "json" } ], "name": "GetVersion", "group": "Version", "description": "

Motion returns the current and latest motion version.

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/pull", "title": "Pull git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/pull -v -u {name}:{password}", "type": "json" } ], "name": "PullVersion", "group": "Version", "description": "

Motion run the following command: git pull

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/reset", "title": "Reset git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/reset -v -u {name}:{password}", "type": "json" } ], "name": "ResetVersion", "group": "Version", "description": "

Motion run the following command: git reset --hard FETCH_HEAD

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/restart", "title": "Restart motion2 after update", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/restart -v -u {name}:{password}", "type": "json" } ], "name": "RestartVersion", "group": "Version", "description": "

Motion run the following command: pm2 restart motion

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/voice/agents/reports/describe", "title": "Gets table info about Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports", "title": "Gets a list of Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/agents/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/agents/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/agents/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/agents/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/agents/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports/{id}", "title": "Gets a single Agent Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/describe", "title": "Gets table info about Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports", "title": "Gets a list of Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/calls/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/calls/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/calls/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/calls/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/calls/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/{id}", "title": "Gets a single Call Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "put", "url": "/api/voice/calls/reports/{id}", "title": "Update a single cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -d '{\"userDispositio\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "post", "url": "/api/voice/chanspy", "title": "Creates a new ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateChanSpy", "group": "Voice_ChanSpy", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "prefix", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "options", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "record", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordingFormat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "delete", "url": "/api/voice/chanspy/{id}", "title": "Deletes a ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy", "title": "Gets a list of ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -v -u {name}:{password}", "type": "json" } ], "name": "GetChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/chanspy?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/chanspy?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/chanspy?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/chanspy?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/chanspy?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy/{id}", "title": "Gets a single ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "put", "url": "/api/voice/chanspy/{id}", "title": "Update an existing ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "post", "url": "/api/voice/contexts", "title": "Create a new context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Voice_Contexts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultEntry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "delete", "url": "/api/voice/contexts/{id}", "title": "Deletes a context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts", "title": "Gets a list of Contexts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password}", "type": "json" } ], "name": "GetContexts", "group": "Voice_Contexts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/contexts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/contexts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/contexts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/contexts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/contexts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts/{id}", "title": "Gets a single Context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowContexts", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "put", "url": "/api/voice/contexts/{id}", "title": "Update an existing context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/dials/reports/describe", "title": "Gets table info about Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports", "title": "Gets a list of Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dials/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dials/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dials/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dials/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dials/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports/{id}", "title": "Gets a single Dial Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "post", "url": "/api/voice/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Voice_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions", "title": "Gets a list of Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -v -u {name}:{password}", "type": "json" } ], "name": "GetDispositions", "group": "Voice_Dispositions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dispositions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dispositions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dispositions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dispositions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dispositions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "put", "url": "/api/voice/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/extensions/{id}", "title": "Deletes a Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions", "title": "Gets a list of Extensions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -v -u {name}:{password}", "type": "json" } ], "name": "GetExtensions", "group": "Voice_Extensions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/extensions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/extensions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/extensions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/extensions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/extensions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions/{id}", "title": "Gets a single Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id}/applications -d '[{\"app\": \"Set\", \"appdata\": \"CALLERDNID=${CALLER(dnid)}\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "put", "url": "/api/voice/extensions/{id}", "title": "Update an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/mohs", "title": "Create a new a new MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -d '{\"name\": \"xmas_musics\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mohs/{id}/sounds", "title": "Add sound to MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -d '{\"id\": 1}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}", "title": "Deletes an MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DestroyMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs", "title": "Gets a list of Music On Holds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -v -u {name}:{password}", "type": "json" } ], "name": "GetMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mohs?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mohs?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mohs?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mohs?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mohs?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}/sounds", "title": "Gets sounds from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "GetSounds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}/sounds/{id2}", "title": "Remove sound from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds/{id2} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}", "title": "Gets a single Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "put", "url": "/api/voice/mohs/{id}", "title": "Update an existing Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mails", "title": "Creates a new Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMails", "group": "Voice_Mails", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "customer_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pager", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tz", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "attach", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "saycid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "review", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "envelope", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sayduration", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "saydurationm", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sendvoicemail", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "nextaftercmd", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcename", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcegreetings", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "hidefromdir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "stamp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailsubject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailbody", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxsecs", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxmsg", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "delete", "url": "/api/voice/mails/{id}", "title": "Deletes a Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails", "title": "Gets a list of Mails", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -v -u {name}:{password}", "type": "json" } ], "name": "GetMails", "group": "Voice_Mails", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}", "title": "Gets a single Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}/messages", "title": "Gets voice mail messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "put", "url": "/api/voice/mails/{id}", "title": "Update an existing Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "post", "url": "/api/voice/mails/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Voice_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "msgnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "macrocontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "origtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "duration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxuser", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxcontext", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "recording", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "flag", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "msg_id", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "stamp", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "delete", "url": "/api/voice/mails/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Voice_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "voice/mails/messages/{id}/download", "title": "Download Voice Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}voice/mails/messages/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "put", "url": "/api/voice/mails/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/queues/reports/describe", "title": "Gets table info about Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports", "title": "Gets a list of Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports/{id}", "title": "Gets a single Queue Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "post", "url": "/api/voice/queues/{id}/users", "title": "Add agents to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/blacklists", "title": "Add blacklists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/lists", "title": "Add lists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/teams", "title": "Add teams to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Voice_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"inbound\"", "\"outbound\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "musiconhold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ringall\"", "\"leastrecent\"", "\"fewestcalls\"", "\"random\"", "\"rrmemory\"", "\"linear\"", "\"wrandom\"", "\"rrordered\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "servicelevel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "penaltymemberslimit", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeoutpriority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "weight", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "wrapuptime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autofill", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"all\"" ], "optional": true, "field": "autopause", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "autopausedelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopausebusy", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopauseunavail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxlen", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setinterfacevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueueentryvar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueuevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "eventmemberstatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membermacro", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membergosub", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "min_announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "periodic_announce_frequency", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "random_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "relative_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"once\"" ], "optional": true, "field": "announce_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce_position", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "announce_to_first_user", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_position_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"0\"", "\"5\"", "\"10\"", "\"15\"", "\"20\"", "\"30\"" ], "optional": true, "field": "announce_round_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_youarenext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thereare", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_callswaiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minute", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minutes", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thankyou", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_reporthold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_less_than", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinempty", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leavewhenempty", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "reportholdtime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ringinuse", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberdelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "timeoutrestart", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultrule", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "acw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialActive", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"preview\"", "\"progressive\"", "\"power\"", "\"predictive\"" ], "optional": true, "field": "dialMethod", "description": "

Dial Method.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitChannel", "description": "

Max 9999 channels, 0 means unlimited.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitQueue", "description": "

Max 9999 member in queue(min:1, max:9999), 0 means unlimited.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPowerLevel", "description": "

Power Level: Calls for agents (min:1, max:10).

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agentBusyFactor\"", "\"dropRate\"" ], "optional": true, "field": "dialPredictiveOptimization", "description": "

Only for predictive method.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPredictiveOptimizationPercentage", "description": "

Predictive Optimization Percentage (min: 1, max: 95)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialPredictiveInterval", "description": "

Intervall Predictive Minutes (min:5 max:30)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueOptions", "description": "

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialQueueTimeout", "description": "

Queue Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueProject", "description": "

AGI queue option (use: agi://127.0.0.1/square,<project_name>)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialPrefix", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacklists", "title": "Get queue blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/finals", "title": "Gets queue hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hopper_histories", "title": "Gets queue hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hoppers", "title": "Gets queue hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/lists", "title": "Get queue lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/members", "title": "Gets queue members", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/members -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetMembers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Voice_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/teams", "title": "Gets queue team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/blacklists", "title": "Remove blacklists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/lists", "title": "Remove lists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacks", "title": "Gets queue hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "put", "url": "/api/voice/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Voice_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rating", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "createdAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "updatedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "delete", "url": "/api/voice/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/describe", "title": "Gets table info about Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Voice_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "put", "url": "/api/voice/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "post", "url": "/api/voice/transfers/reports", "title": "Creates a new Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTransfer_Reports", "group": "Voice_Transfer_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"blind\"", "\"attended\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "result", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereraccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererlinkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereechannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereelinkedid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"Yes\"", "\"No\"" ], "optional": true, "field": "isexternal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "delete", "url": "/api/voice/transfers/reports/{id}", "title": "Deletes a Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports", "title": "Gets a list of Transfer Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/transfers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/transfers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/transfers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/transfers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/transfers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports/{id}", "title": "Gets a single Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "put", "url": "/api/voice/transfers/reports/{id}", "title": "Update an existing Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "post", "url": "/api/integrations/zendesk/accounts", "title": "Creates a new Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Accounts", "group": "Zendesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"password\"", "\"token\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "delete", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Deletes a Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts", "title": "Gets a list of Zendesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Gets a single Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "put", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Update an existing Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/configurations", "title": "Creates a new Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Configurations", "group": "Zendesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "delete", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Deletes a Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations", "title": "Gets a list of Zendesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Gets a single Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "put", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Update an existing Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/fields", "title": "Creates a new Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Fields", "group": "Zendesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "delete", "url": "/api/integrations/zendesk/fields/{id}", "title": "Deletes a Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields", "title": "Gets a list of Zendesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields/{id}", "title": "Gets a single Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "put", "url": "/api/integrations/zendesk/fields/{id}", "title": "Update an existing Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "post", "url": "/api/integrations/zoho/accounts", "title": "Creates a new Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Accounts", "group": "Zoho_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "authToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "delete", "url": "/api/integrations/zoho/accounts/{id}", "title": "Deletes a Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts", "title": "Gets a list of Zoho Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}", "title": "Gets a single Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "put", "url": "/api/integrations/zoho/accounts/{id}", "title": "Update an existing Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/configurations", "title": "Creates a new Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Configurations", "group": "Zoho_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "delete", "url": "/api/integrations/zoho/configurations/{id}", "title": "Deletes a Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations", "title": "Gets a list of Zoho Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}", "title": "Gets a single Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "put", "url": "/api/integrations/zoho/configurations/{id}", "title": "Update an existing Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "post", "url": "/api/integrations/zoho/fields", "title": "Creates a new Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Fields", "group": "Zoho_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "delete", "url": "/api/integrations/zoho/fields/{id}", "title": "Deletes a Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields", "title": "Gets a list of Zoho Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields/{id}", "title": "Gets a single Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "put", "url": "/api/integrations/zoho/fields/{id}", "title": "Update an existing Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "post", "url": "/api/cdr", "title": "Creates a new Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCdrs", "group": "cdr", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "calldate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "src", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dst", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dstchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastapp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "duration", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "billsec", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userfield", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sequence", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "peeraccount", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tag", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "delete", "url": "/api/cdr/{id}", "title": "Deletes a Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr", "title": "Gets a list of Cdrs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -v -u {name}:{password}", "type": "json" } ], "name": "GetCdrs", "group": "cdr", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cdr?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cdr?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cdr?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cdr?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cdr?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr/{id}", "title": "Gets a single Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "put", "url": "/api/cdr/{id}", "title": "Update an existing Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "post", "url": "/api/voiceQueuesLog", "title": "Creates a new VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVoiceQueuesLogs", "group": "voiceQueuesLog", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "time", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "callid", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "queuename", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "agent", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "event", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "dtm", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "delete", "url": "/api/voiceQueuesLog/{id}", "title": "Deletes a VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog", "title": "Gets a list of VoiceQueuesLogs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voiceQueuesLog?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voiceQueuesLog?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voiceQueuesLog?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voiceQueuesLog?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voiceQueuesLog?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog/{id}", "title": "Gets a single VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "put", "url": "/api/voiceQueuesLog/{id}", "title": "Update an existing VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" } ] +[ { "type": "delete", "url": "/api/actions/{id}", "title": "Deletes a Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteActions", "group": "Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "put", "url": "/api/actions/{id}", "title": "Update an existing Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateActions", "group": "Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/action/index.js", "groupTitle": "Actions" }, { "type": "post", "url": "/api/analytics/custom_reports", "title": "Creates a new Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "delete", "url": "/api/analytics/custom_reports/{id}", "title": "Deletes a Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports", "title": "Gets a list of Analytic Custom Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/custom_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/custom_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/custom_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/custom_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/custom_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}", "title": "Gets a single Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "get", "url": "/api/analytics/custom_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "put", "url": "/api/analytics/custom_reports/{id}", "title": "Update an existing Analytic Custom Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/custom_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Custom_Reports", "group": "Analytic_Custom_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticCustomReport/index.js", "groupTitle": "Analytic_Custom_Reports" }, { "type": "post", "url": "/api/analytics/default_reports", "title": "Creates a new Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "conditions", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "delete", "url": "/api/analytics/default_reports/{id}", "title": "Deletes a Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports", "title": "Gets a list of Analytic Default Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/default_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/default_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/default_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/default_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/default_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}", "title": "Gets a single Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/preview", "title": "Report Preview", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "preview", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/query", "title": "Report Query SQL", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/query -v -u {name}:{password} -X GET", "type": "json" } ], "name": "query", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "get", "url": "/api/analytics/default_reports/{id}/run", "title": "Report Run", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "put", "url": "/api/analytics/default_reports/{id}", "title": "Update an existing Analytic Default Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/default_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Default_Reports", "group": "Analytic_Default_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticDefaultReport/index.js", "groupTitle": "Analytic_Default_Reports" }, { "type": "post", "url": "/api/analytics/extracted_reports", "title": "Creates a new Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "savename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "startDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endDate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"manual\"", "\"scheduled\"" ], "optional": false, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "delete", "url": "/api/analytics/extracted_reports/{id}", "title": "Deletes a Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports", "title": "Gets a list of Analytic Extacted Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/extracted_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/extracted_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/extracted_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/extracted_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/extracted_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}", "title": "Gets a single Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "get", "url": "/api/analytics/extracted_reports/{id}/download", "title": "Download Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "put", "url": "/api/analytics/extracted_reports/{id}", "title": "Update an existing Analytic Extracted Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Extacted_Reports", "group": "Analytic_Extracted_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticExtractedReport/index.js", "groupTitle": "Analytic_Extracted_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/create_many", "title": "Creates many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/destroy_many?ids={ids}", "title": "Deletes many Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports", "title": "Creates a new Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "alias", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "function", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "groupBy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "orderBy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "delete", "url": "/api/analytics/field_reports/{id}", "title": "Deletes a Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports", "title": "Gets a list of Analytic Field Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/field_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/field_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/field_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/field_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/field_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "get", "url": "/api/analytics/field_reports/{id}", "title": "Gets a single Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/field_reports/{id}/create_many", "title": "Rewrite fields set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id}/create_many -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addFields", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "put", "url": "/api/analytics/field_reports/{id}", "title": "Update an existing Analytic Field Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/field_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Field_Reports", "group": "Analytic_Field_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticFieldReport/index.js", "groupTitle": "Analytic_Field_Reports" }, { "type": "post", "url": "/api/analytics/metrics", "title": "Creates a new Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Metric", "group": "Analytic_Metrics", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "table", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "metric", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "delete", "url": "/api/analytics/metrics/{id}", "title": "Deletes a Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics", "title": "Gets a list of Analytic Metric", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/metrics?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/metrics?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/metrics?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/metrics?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/metrics?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "get", "url": "/api/analytics/metrics/{id}", "title": "Gets a single Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "put", "url": "/api/analytics/metrics/{id}", "title": "Update an existing Analytic Metrics", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/metrics/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Metric", "group": "Analytic_Metrics", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticMetric/index.js", "groupTitle": "Analytic_Metrics" }, { "type": "post", "url": "/api/analytics/tree_reports", "title": "Creates a new Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "tree", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "delete", "url": "/api/analytics/tree_reports/{id}", "title": "Deletes a Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports", "title": "Gets a list of Analytic Tree Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/analytics/tree_reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/analytics/tree_reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/analytics/tree_reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/analytics/tree_reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/analytics/tree_reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "get", "url": "/api/analytics/tree_reports/{id}", "title": "Gets a single Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "put", "url": "/api/analytics/tree_reports/{id}", "title": "Update an existing Analytic Tree Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/analytics/tree_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAnalytic_Tree_Reports", "group": "Analytic_Tree_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/analyticTreeReport/index.js", "groupTitle": "Analytic_Tree_Reports" }, { "type": "post", "url": "/api/auth/google", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authGoogle/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/auth/local", "title": "Creates a new User token", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Local_login", "group": "Authentication", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/authLocal/index.js", "groupTitle": "Authentication" }, { "type": "post", "url": "/api/automations", "title": "Creates a new Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAutomations", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "delete", "url": "/api/automations/{id}", "title": "Deletes a Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations", "title": "Gets a list of Automations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations -v -u {name}:{password}", "type": "json" } ], "name": "GetAutomations", "group": "Automations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/automations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/automations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/automations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/automations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/automations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}", "title": "Gets a single Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addActions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/automations/{id}/conditions", "title": "Creates new conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConditions", "group": "Automations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/actions", "title": "Gets Automation Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "get", "url": "/api/automations/{id}/conditions", "title": "Gets Automation Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id}/conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConditions", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "put", "url": "/api/automations/{id}", "title": "Update an existing Automation", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/automations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAutomations", "group": "Automations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/automation/index.js", "groupTitle": "Automations" }, { "type": "post", "url": "/api/campaigns/{id}/blacklists", "title": "Add blacklists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns/{id}/lists", "title": "Add lists to a campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/campaigns", "title": "Creates a new Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCampaigns", "group": "Campaigns", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ivr\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "limitCalls", "description": "

Max 200 calls.

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}", "title": "Deletes a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacklists", "title": "Get campaign blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns", "title": "Gets a list of Campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "GetCampaigns", "group": "Campaigns", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/campaigns?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/campaigns?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/campaigns?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/campaigns?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/campaigns?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/finals", "title": "Gets campaign hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hopper_histories", "title": "Gets campaign hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/hoppers", "title": "Gets campaign hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/lists", "title": "Get campaign lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/blacklists", "title": "Remove blacklists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "delete", "url": "/api/campaigns/{id}/lists", "title": "Remove lists from a Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Campaigns", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}", "title": "Gets a single Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "get", "url": "/api/campaigns/{id}/blacks", "title": "Gets campaign hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "put", "url": "/api/campaigns/{id}", "title": "Update an existing Campaign", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/campaigns/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCampaigns", "group": "Campaigns", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/campaign/index.js", "groupTitle": "Campaigns" }, { "type": "post", "url": "/api/canned_answers", "title": "Creates a new Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCanned_Answers", "group": "Canned_Answers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "key", "description": "" }, { "group": "Body", "type": "Text", "optional": false, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/canned_answers/{id}", "title": "Deletes a Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers", "title": "Gets a list of Canned Answers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers -v -u {name}:{password}", "type": "json" } ], "name": "GetCanned_Answers", "group": "Canned_Answers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/canned_answers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/canned_answers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/canned_answers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/canned_answers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/canned_answers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "get", "url": "/api/canned_answers/{id}", "title": "Gets a single Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "put", "url": "/api/canned_answers/{id}", "title": "Update an existing Canned Answer", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/canned_answers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCanned_Answers", "group": "Canned_Answers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cannedAnswer/index.js", "groupTitle": "Canned_Answers" }, { "type": "delete", "url": "/api/chat/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "get", "url": "/api/chat/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "put", "url": "/api/chat/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Chat_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatApplication/index.js", "groupTitle": "Chat_Applications" }, { "type": "post", "url": "/api/chat/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Chat_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "get", "url": "/api/chat/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "put", "url": "/api/chat/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Chat_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatDisposition/index.js", "groupTitle": "Chat_Dispositions" }, { "type": "delete", "url": "/api/chat/enquiries/{id}", "title": "Deletes a Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "get", "url": "/api/chat/enquiries/{id}", "title": "Gets a single Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "put", "url": "/api/chat/enquiries/{id}", "title": "Update an existing Enquiry", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/enquiries/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateEnquiries", "group": "Chat_Enquiries", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatEnquiry/index.js", "groupTitle": "Chat_Enquiries" }, { "type": "post", "url": "/api/chat/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "delete", "url": "/api/chat/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Chat_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Chat_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "get", "url": "/api/chat/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "put", "url": "/api/chat/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Chat_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatInteraction/index.js", "groupTitle": "Chat_Interactions" }, { "type": "post", "url": "/api/chat/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Chat_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "delete", "url": "/api/chat/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Chat_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "get", "url": "/api/chat/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "put", "url": "/api/chat/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Chat_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Messages" }, { "type": "post", "url": "/api/chat/proactive_actions", "title": "Creates a new Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProactive_Actions", "group": "Chat_Proactive_Actions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "delete", "url": "/api/chat/proactive_actions/{id}", "title": "Deletes a Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "get", "url": "/api/chat/proactive_actions/{id}", "title": "Gets a single Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "put", "url": "/api/chat/proactive_actions/{id}", "title": "Update an existing Proactive Action", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/proactive_actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProactive_Actions", "group": "Chat_Proactive_Actions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatProactiveAction/index.js", "groupTitle": "Chat_Proactive_Actions" }, { "type": "post", "url": "/api/chat/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Chat_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Chat_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "delete", "url": "/api/chat/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "get", "url": "/api/chat/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "put", "url": "/api/chat/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Chat_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Chat_Queues" }, { "type": "post", "url": "/api/chat/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "post", "url": "/api/chat/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Chat_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websitename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "websiteaddress", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "websiteid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitorname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "visitoremail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"", "\"requester\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "abandon", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Chat_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "get", "url": "/api/chat/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "put", "url": "/api/chat/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Chat_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatSessionReport/index.js", "groupTitle": "Chat_Reports" }, { "type": "delete", "url": "/api/chat/visitors/{id}", "title": "Deletes a Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "get", "url": "/api/chat/visitors/{id}", "title": "Gets a single Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "put", "url": "/api/chat/visitors/{id}", "title": "Update an existing Visitor", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/visitors/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVisitors", "group": "Chat_Visitors", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatVisitor/index.js", "groupTitle": "Chat_Visitors" }, { "type": "delete", "url": "/api/chat/website_fields/{id}", "title": "Deletes a Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "get", "url": "/api/chat/website_fields/{id}", "title": "Gets a single Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "put", "url": "/api/chat/website_fields/{id}", "title": "Update an existing Website Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/website_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsite_Fields", "group": "Chat_Website_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsiteField/index.js", "groupTitle": "Chat_Website_Fields" }, { "type": "post", "url": "/api/chat/websites", "title": "Creates a new Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateWebsites", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mapKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "color_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remote", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "animation", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rounded\"", "\"squared\"" ], "optional": true, "field": "header_shape", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "start_chat_button", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "header_offline", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "download_transcript", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultWhiteLabel", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "onlineForm", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "offlineForm", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "delete", "url": "/api/chat/websites/{id}", "title": "Deletes a Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites", "title": "Gets a list of Websites", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites -v -u {name}:{password}", "type": "json" } ], "name": "GetWebsites", "group": "Chat_Websites", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/chat/websites?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/chat/websites?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/chat/websites?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/chat/websites?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/chat/websites?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}", "title": "Gets a single Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Creates new Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addProactiveActions", "group": "Chat_Websites", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"mouseOver\"", "\"timeout\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "selector", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/applications", "title": "Gets Website Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/dispositions", "title": "Gets Website Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/fields", "title": "Gets Website Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/interactions", "title": "Gets Website Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/proactive_actions", "title": "Gets Website Proactive Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getProactiveActions", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "get", "url": "/api/chat/websites/{id}/snippet", "title": "Gets Website Snippet", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/snippet -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSnippet", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/chat/websites/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatMessage/index.js", "groupTitle": "Chat_Websites" }, { "type": "put", "url": "/api/chat/websites/{id}", "title": "Update an existing Website", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/websites/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateWebsites", "group": "Chat_Websites", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatWebsite/index.js", "groupTitle": "Chat_Websites" }, { "type": "post", "url": "/api/cm/companies", "title": "Creates a new Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCompanies", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "companyId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "website", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailDomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sStreet", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sPostalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sCountry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/companies/{id}", "title": "Deletes a Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies", "title": "Gets a list of Companies", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies -v -u {name}:{password}", "type": "json" } ], "name": "GetCompanies", "group": "Cm_Companies", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/companies?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/companies?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/companies?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/companies?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/companies?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}", "title": "Gets a single Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "post", "url": "/api/cm/companies/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Companies", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "facebook", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "twitter", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "get", "url": "/api/cm/companies/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/companies/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "put", "url": "/api/cm/companies/{id}", "title": "Update an existing Company", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/companies/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCompanies", "group": "Cm_Companies", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCompany/index.js", "groupTitle": "Cm_Companies" }, { "type": "delete", "url": "/api/cm/contacts/{id}", "title": "Deletes a Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/describe", "title": "Gets table info about Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeContacts", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts", "title": "Gets a list of Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Cm_Contacts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/contacts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/contacts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/contacts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/contacts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/contacts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/finals", "title": "Gets contact hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hopper_histories", "title": "Gets contact hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/hoppers", "title": "Gets contact hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "post", "url": "/api/cm/contacts", "title": "Create Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts -d '[{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}]' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}/jscripty_sessions", "title": "Gets contact hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getJscriptySessions", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "get", "url": "/api/cm/contacts/{id}", "title": "Gets a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X GET", "type": "json" } ], "name": "show", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "put", "url": "/api/cm/contacts/{id}", "title": "Update a single Contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/contacts/{id} -d '{\"fullName\": \"John\", \"lastName\": \"Doe\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Contacts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmContact/index.js", "groupTitle": "Cm_Contacts" }, { "type": "delete", "url": "/api/cm/custom_fields/{id}", "title": "Deletes a Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields", "title": "Gets a list of Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields -v -u {name}:{password}", "type": "json" } ], "name": "GetCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/custom_fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/custom_fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/custom_fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/custom_fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/custom_fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "get", "url": "/api/cm/custom_fields/{id}", "title": "Gets a single Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "put", "url": "/api/cm/custom_fields/{id}", "title": "Update an existing Custom Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCustom_Fields", "group": "Cm_Custom_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Cm_Custom_Fields" }, { "type": "post", "url": "/api/cm/hopper", "title": "Creates a new Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateHopper", "group": "Cm_Hopper", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "scheduledat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countbusyretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countcongestionretry", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "countnoanswerretry", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackat", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ContactId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ListId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "UserId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "VoiceQueueId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "CampaignId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/describe", "title": "Gets table info about Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper", "title": "Gets a list of Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper", "group": "Cm_Hopper", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/{id}", "title": "Gets a single Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "delete", "url": "/api/cm/hopper_black/{id}", "title": "Deletes a Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/describe", "title": "Gets table info about Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black", "title": "Gets a list of Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black -v -u {name}:{password}", "type": "json" } ], "name": "GetHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_black?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_black?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_black?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_black?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_black?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_black/{id}", "title": "Gets a single Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "put", "url": "/api/cm/hopper_black/{id}", "title": "Update an existing Hopper Black", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_black/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper_Black", "group": "Cm_Hopper_Black", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperBlack/index.js", "groupTitle": "Cm_Hopper_Black" }, { "type": "get", "url": "/api/cm/hopper_final/describe", "title": "Gets table info about HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final", "title": "Gets a list of HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_final?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_final?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_final?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_final?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_final?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_final/{id}", "title": "Gets a single HopperFinal", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_final/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperFinal", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "put", "url": "/api/cm/hopper_final/{id}", "title": "Update a single hopper final", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_final/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_Final", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperFinal/index.js", "groupTitle": "Cm_Hopper_Final" }, { "type": "get", "url": "/api/cm/hopper_history/describe", "title": "Gets table info about HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history", "title": "Gets a list of HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history -v -u {name}:{password}", "type": "json" } ], "name": "GetHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/hopper_history?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/hopper_history?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/hopper_history?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/hopper_history?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/hopper_history?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "get", "url": "/api/cm/hopper_history/{id}", "title": "Gets a single HopperHistory", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper_history/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowHopperHistory", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "put", "url": "/api/cm/hopper_history/{id}", "title": "Update a single hopper history", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/hopper_history/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Cm_Hopper_History", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopperHistory/index.js", "groupTitle": "Cm_Hopper_History" }, { "type": "delete", "url": "/api/cm/hopper/{id}", "title": "Delete Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroy", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "get", "url": "/api/cm/hopper/preview", "title": "Gets Preview Dialer Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/preview -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getPreview", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "put", "url": "/api/cm/hopper/{id}", "title": "Update an existing Hopper", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/hopper/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateHopper", "group": "Cm_Hopper", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmHopper/index.js", "groupTitle": "Cm_Hopper" }, { "type": "post", "url": "/api/cm/lists", "title": "Creates a new List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateLists", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}", "title": "Deletes a List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/users", "title": "Gets agents from list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists", "title": "Gets a list of Lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Cm_Lists", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cm/lists?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cm/lists?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cm/lists?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cm/lists?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cm/lists?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/cm/lists/{id}/users", "title": "Removes agents from a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}", "title": "Gets a single List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/users", "title": "Adds agents to a list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/contacts", "title": "Creates new contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addContacts", "group": "Cm_Lists", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "firstName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "street", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "postalCode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dateOfBirth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fax", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "facebook", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "twitter", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/cm/lists/{id}/fields", "title": "Creates a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addCustomField", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "post", "url": "/api/lists/{id}/dispositions", "title": "Creates a new sub disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/lists/{id}/disposition -d '{\"name\": \"SATISFIED\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts", "title": "Gets List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getContacts", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/fields", "title": "Gets Custom Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getCustomFields", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/dispositions", "title": "Gets Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "get", "url": "/api/cm/lists/{id}/contacts/csv", "title": "Gets CSV List Contacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id}/contacts/csv -v -u {name}:{password} -X GET", "type": "json" } ], "name": "grunt", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "put", "url": "/api/cm/lists/{id}", "title": "Update an existing List", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/lists/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLists", "group": "Cm_Lists", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmList/index.js", "groupTitle": "Cm_Lists" }, { "type": "delete", "url": "/api/conditions/{id}", "title": "Deletes a Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "put", "url": "/api/conditions/{id}", "title": "Update an existing Condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/conditions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateConditions", "group": "Conditions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/condition/index.js", "groupTitle": "Conditions" }, { "type": "post", "url": "/api/cm/custom_field", "title": "Create a new custom field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cm/custom_field -d '{\"name\": \"mycf\", \"type\": \"text\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCustomField", "group": "Custom_Fields", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cmCustomField/index.js", "groupTitle": "Custom_Fields" }, { "type": "delete", "url": "/api/dashboards/items/{id}", "title": "Deletes a Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "get", "url": "/api/dashboards/items/{id}", "title": "Gets a single Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "put", "url": "/api/dashboards/items/{id}", "title": "Update an existing Dashboard Item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/items/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboard_Items", "group": "Dashboard_Items", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboardItem/index.js", "groupTitle": "Dashboard_Items" }, { "type": "post", "url": "/api/dashboards", "title": "Creates a new Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDashboards", "group": "Dashboards", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "delete", "url": "/api/dashboards/{id}", "title": "Deletes a Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards", "title": "Gets a list of Dashboards", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards -v -u {name}:{password}", "type": "json" } ], "name": "GetDashboards", "group": "Dashboards", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/dashboards?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/dashboards?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/dashboards?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/dashboards?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/dashboards?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}", "title": "Gets a single Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "post", "url": "/api/dashboards/{id}/items", "title": "Creates new item", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -d '{\"type\": \"counter\", \"...\": \"...\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addItem", "group": "Dashboards", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/run", "title": "Run dashboard widgets queries", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/run -v -u {name}:{password} -X GET", "type": "json" } ], "name": "run", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "put", "url": "/api/dashboards/{id}", "title": "Update an existing Dashboard", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDashboards", "group": "Dashboards", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboards" }, { "type": "get", "url": "/api/dashboards/{id}/items", "title": "Gets items", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/dashboards/{id}/items -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getItems", "group": "Dashboars", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/dashboard/index.js", "groupTitle": "Dashboars" }, { "type": "post", "url": "/api/integrations/desk/accounts", "title": "Creates a new Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Accounts", "group": "Desk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"basic\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "consumerSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tokenSecret", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "delete", "url": "/api/integrations/desk/accounts/{id}", "title": "Deletes a Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts", "title": "Gets a list of Desk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}", "title": "Gets a single Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "get", "url": "/api/integrations/desk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "put", "url": "/api/integrations/desk/accounts/{id}", "title": "Update an existing Desk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Accounts", "group": "Desk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskAccount/index.js", "groupTitle": "Desk_Accounts" }, { "type": "post", "url": "/api/integrations/desk/configurations", "title": "Creates a new Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Configurations", "group": "Desk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "delete", "url": "/api/integrations/desk/configurations/{id}", "title": "Deletes a Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations", "title": "Gets a list of Desk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}", "title": "Gets a single Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "get", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "put", "url": "/api/integrations/desk/configurations/{id}", "title": "Update an existing Desk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Configurations", "group": "Desk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskConfiguration/index.js", "groupTitle": "Desk_Configurations" }, { "type": "post", "url": "/api/integrations/desk/fields", "title": "Creates a new Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDesk_Fields", "group": "Desk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "delete", "url": "/api/integrations/desk/fields/{id}", "title": "Deletes a Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields", "title": "Gets a list of Desk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetDesk_Fields", "group": "Desk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/desk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/desk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/desk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/desk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/desk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "get", "url": "/api/integrations/desk/fields/{id}", "title": "Gets a single Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "put", "url": "/api/integrations/desk/fields/{id}", "title": "Update an existing Desk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/desk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDesk_Fields", "group": "Desk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intDeskField/index.js", "groupTitle": "Desk_Fields" }, { "type": "post", "url": "/api/fax/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ecm", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "headerinfo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "minrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"2400\"", "\"4800\"", "\"7200\"", "\"9600\"", "\"12000\"", "\"14400\"" ], "optional": true, "field": "maxrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "modem", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "gateway", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "faxdetect", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "t38timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SIP\"", "\"IAX\"", "\"DADHI\"", "\"KHOMP\"" ], "optional": true, "field": "tech", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Fax_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"sendSms\"" ], "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "post", "url": "/api/fax/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Fax_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/applications", "title": "Gets account pplications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "get", "url": "/api/fax/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "put", "url": "/api/fax/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Fax_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAccount/index.js", "groupTitle": "Fax_Accounts" }, { "type": "delete", "url": "/api/fax/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "get", "url": "/api/fax/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "put", "url": "/api/fax/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Fax_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxApplication/index.js", "groupTitle": "Fax_Applications" }, { "type": "post", "url": "/api/fax/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Fax_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "delete", "url": "/api/fax/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Fax_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "get", "url": "/api/fax/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "put", "url": "/api/fax/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Fax_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxAttachment/index.js", "groupTitle": "Fax_Attachments" }, { "type": "post", "url": "/api/fax/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Fax_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "delete", "url": "/api/fax/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "get", "url": "/api/fax/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "put", "url": "/api/fax/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Fax_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxDisposition/index.js", "groupTitle": "Fax_Dispositions" }, { "type": "post", "url": "/api/fax/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "contact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "delete", "url": "/api/fax/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Fax_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Fax_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "get", "url": "/api/fax/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "put", "url": "/api/fax/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Fax_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxInteraction/index.js", "groupTitle": "Fax_Interactions" }, { "type": "post", "url": "/api/fax/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Fax_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "to", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "localstationid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotestationid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "pagestransferred", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resolution", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferrate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "error", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "delete", "url": "/api/fax/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Fax_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "get", "url": "/api/fax/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "put", "url": "/api/fax/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Fax_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxMessage/index.js", "groupTitle": "Fax_Messages" }, { "type": "post", "url": "/api/fax/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Fax_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Fax_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "delete", "url": "/api/fax/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "get", "url": "/api/fax/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "put", "url": "/api/fax/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Fax_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Fax_Queues" }, { "type": "post", "url": "/api/fax/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Fax_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "delete", "url": "/api/fax/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Fax_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "get", "url": "/api/fax/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "put", "url": "/api/fax/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Fax_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxReport/index.js", "groupTitle": "Fax_Reports" }, { "type": "post", "url": "/api/fax/sessions/reports", "title": "Creates a new Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSession_Reports", "group": "Fax_Session_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "delete", "url": "/api/fax/sessions/reports/{id}", "title": "Deletes a Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/fax/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/fax/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/fax/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/fax/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/fax/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "get", "url": "/api/fax/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "put", "url": "/api/fax/sessions/reports/{id}", "title": "Update an existing Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSession_Reports", "group": "Fax_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxSessionReport/index.js", "groupTitle": "Fax_Session_Reports" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts", "title": "Creates a new Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "apiKey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "delete", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Deletes a Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts", "title": "Gets a list of Freshdesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Gets a single Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "get", "url": "/api/integrations/freshdesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "put", "url": "/api/integrations/freshdesk/accounts/{id}", "title": "Update an existing Freshdesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Accounts", "group": "Freshdesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskAccount/index.js", "groupTitle": "Freshdesk_Accounts" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations", "title": "Creates a new Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "delete", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Deletes a Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations", "title": "Gets a list of Freshdesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Gets a single Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "get", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "put", "url": "/api/integrations/freshdesk/configurations/{id}", "title": "Update an existing Freshdesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Configurations", "group": "Freshdesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskConfiguration/index.js", "groupTitle": "Freshdesk_Configurations" }, { "type": "post", "url": "/api/integrations/freshdesk/fields", "title": "Creates a new Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateFreshdesk_Fields", "group": "Freshdesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "delete", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Deletes a Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields", "title": "Gets a list of Freshdesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/freshdesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/freshdesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/freshdesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/freshdesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/freshdesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "get", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Gets a single Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "put", "url": "/api/integrations/freshdesk/fields/{id}", "title": "Update an existing Freshdesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateFreshdesk_Fields", "group": "Freshdesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intFreshdeskField/index.js", "groupTitle": "Freshdesk_Fields" }, { "type": "post", "url": "/api/integrations/reports", "title": "Creates a new Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntegration_Reports", "group": "Integration_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "integration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "eventChannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exitStatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ticketId", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "integrationId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contacts", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interface", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcalledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentconnectAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "holdtime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentcomplete", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentcompleteAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "talktime", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentacw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentringnoanswer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentringnoanswerAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "agentdump", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "agentdumpAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastevent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "channelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannel", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "destchannelstate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destchannelstatedesc", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destlanguage", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destpriority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "destuniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENT\"", "\"SENDING\"", "\"RECEIVED\"", "\"FAILED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "url", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "projectId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "delete", "url": "/api/integrations/reports/{id}", "title": "Deletes a Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/describe", "title": "Gets table info about Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports", "title": "Gets a list of Integration Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "get", "url": "/api/integrations/reports/{id}", "title": "Gets a single Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "put", "url": "/api/integrations/reports/{id}", "title": "Update an existing Integration Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntegration_Reports", "group": "Integration_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/integrationReport/index.js", "groupTitle": "Integration_Reports" }, { "type": "post", "url": "/api/intervals", "title": "Creates a new Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateIntervals", "group": "Intervals", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "delete", "url": "/api/intervals/{id}", "title": "Deletes a Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals", "title": "Gets a list of Intervals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals -v -u {name}:{password}", "type": "json" } ], "name": "GetIntervals", "group": "Intervals", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/intervals?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/intervals?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/intervals?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/intervals?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/intervals?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}", "title": "Gets a single Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals", "title": "Creates a new sub interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -d '{\"interval\": \"00:00-08:30,mon-fri,*,*\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInterval", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/intervals/{id}/sub_intervals/create_many", "title": "Create new sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "get", "url": "/api/intervals/{id}/sub_intervals", "title": "Get sub intervals set", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "put", "url": "/api/intervals/{id}", "title": "Update an existing Interval", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/intervals/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateIntervals", "group": "Intervals", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/interval/index.js", "groupTitle": "Intervals" }, { "type": "post", "url": "/api/jira", "title": "Creates a new issue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jira -d '{\"key\": \"Bug\", \"description\": \"I can't do it!\"}' \\\n -H \"Content-Type: application/json\" -X POST", "type": "json" } ], "name": "Creates_Issue", "group": "Issue", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"Bug\"" ], "optional": true, "field": "issuetype", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "summary", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jira/index.js", "groupTitle": "Issue" }, { "type": "post", "url": "/api/jscripty/answers/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyAnswerReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "questionId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "delete", "url": "/api/jscripty/answers/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyAnswerReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/answers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/answers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/answers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/answers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/answers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "get", "url": "/api/jscripty/answers/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "put", "url": "/api/jscripty/answers/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyAnswerReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyAnswerReport/index.js", "groupTitle": "JscriptyAnswerReport" }, { "type": "post", "url": "/api/jscripty/questions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptyQuestionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "question", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "answer", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "questionId", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "delete", "url": "/api/jscripty/questions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptyQuestionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/questions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/questions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/questions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/questions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/questions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "get", "url": "/api/jscripty/questions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "put", "url": "/api/jscripty/questions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptyQuestionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyQuestionReport/index.js", "groupTitle": "JscriptyQuestionReport" }, { "type": "post", "url": "/api/jscripty/sessions/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "JscriptySessionReport", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "starttime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "endtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "delete", "url": "/api/jscripty/sessions/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "JscriptySessionReport", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "get", "url": "/api/jscripty/sessions/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "put", "url": "/api/jscripty/sessions/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "JscriptySessionReport", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptySessionReport/index.js", "groupTitle": "JscriptySessionReport" }, { "type": "post", "url": "/api/jscripty/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Jscripty_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "formData", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "delete", "url": "/api/jscripty/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Jscripty_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/jscripty/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/jscripty/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/jscripty/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/jscripty/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/jscripty/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/jscripty/projects/{id}/sessions", "title": "Gets jscripty project sessions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id}/sessions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSessions", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "put", "url": "/api/jscripty/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/jscripty/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Jscripty_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/jscriptyProject/index.js", "groupTitle": "Jscripty_Projects" }, { "type": "get", "url": "/api/license", "title": "Gets License Info", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license -v -u {name}:{password} -X GET", "type": "json" } ], "name": "index", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "put", "url": "/api/license/{id}", "title": "Update an existing License", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/license/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateLiense", "group": "License", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/license/index.js", "groupTitle": "License" }, { "type": "post", "url": "/api/mail/accounts/{id}/in_servers", "title": "Creates a new IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddImap", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "ssl", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"UNSEEN\"" ], "optional": true, "field": "filter", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"IMAP\"", "\"POP3\"" ], "optional": true, "field": "protocol", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"CONNECTING\"", "\"CONNECTED\"", "\"DISCONNECTED\"", "\"ERROR\"", "\"UNKNOWN\"" ], "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "source", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "connTimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "authTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "keepalive", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/out_servers", "title": "Creates a new SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSmtp", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "whiteLabel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "acceptUrl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "acceptMethod", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "rejectMethod", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "actions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closeUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"GET\"", "\"POST\"" ], "optional": true, "field": "closeMethod", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "signature", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "custom", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Mail_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/in_servers", "title": "Gets account IMAP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetImap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/out_servers", "title": "Gets account SMTP server", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/in_servers", "title": "Removes IMAP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveImmap", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/accounts/{id}/out_servers", "title": "Removes SMTP server from an account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"queue\"", "\"agent\"", "\"sendMail\"", "\"replyMail\"", "\"sendSms\"" ], "optional": true, "field": "app", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "data7", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data8", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data9", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "data10", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '{\"name\": \"vip\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '[{\"name\": \"vip\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/interactions", "title": "Creates new interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -d '[{\"subject\": \"My printer is on fire!\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addInteraction", "group": "Mail_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "post", "url": "/api/mail/accounts/{id}/send", "title": "Send new mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/send -d '{from: '\"John Doe\" '}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "sendMail", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "put", "url": "/api/mail/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "get", "url": "/api/mail/accounts/{id}/verify", "title": "Verify mail account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/accounts/{id}/verify -v -u {name}:{password} -X GET", "type": "json" } ], "name": "verifySmtp", "group": "Mail_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAccount/index.js", "groupTitle": "Mail_Accounts" }, { "type": "delete", "url": "/api/mail/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "get", "url": "/api/mail/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "put", "url": "/api/mail/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Mail_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailApplication/index.js", "groupTitle": "Mail_Applications" }, { "type": "post", "url": "/api/mail/attachments", "title": "Creates a new Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAttachments", "group": "Mail_Attachments", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "domain", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "size", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "path", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "basename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "delete", "url": "/api/mail/attachments/{id}", "title": "Deletes a Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments", "title": "Gets a list of Attachments", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments -v -u {name}:{password}", "type": "json" } ], "name": "GetAttachments", "group": "Mail_Attachments", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/attachments?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/attachments?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/attachments?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/attachments?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/attachments?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "get", "url": "/api/mail/attachments/{id}", "title": "Gets a single Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "put", "url": "/api/mail/attachments/{id}", "title": "Update an existing Attachment", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAttachments", "group": "Mail_Attachments", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailAttachment/index.js", "groupTitle": "Mail_Attachments" }, { "type": "post", "url": "/api/mail/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Mail_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "delete", "url": "/api/mail/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "get", "url": "/api/mail/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "put", "url": "/api/mail/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Mail_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailDisposition/index.js", "groupTitle": "Mail_Dispositions" }, { "type": "post", "url": "/api/mail/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "account", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailIn", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailOut", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"NEW\"", "\"OPEN\"", "\"PENDING\"", "\"CLOSED\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "lastEvent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastEventAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "deleted", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "waiting", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "tags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "openReason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "ParentId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "arrivedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "delete", "url": "/api/mail/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Mail_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/interactions/{id}/messages", "title": "Creates new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -d '[{\"to\": \"sales@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Mail_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "get", "url": "/api/mail/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "put", "url": "/api/mail/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Mail_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailInteraction/index.js", "groupTitle": "Mail_Interactions" }, { "type": "post", "url": "/api/mail/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Mail_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "messageId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "inReplyTo", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "to", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "cc", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "bcc", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fromId", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "attachment", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "text", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "html", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auto", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"SENDING\"", "\"SENT\"", "\"RECEIVED\"", "\"FAILED\"", "\"NOTE\"" ], "optional": true, "field": "status", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "voiceSource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userFullname", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "delete", "url": "/api/mail/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Mail_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "get", "url": "/api/mail/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "put", "url": "/api/mail/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Mail_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailMessage/index.js", "groupTitle": "Mail_Messages" }, { "type": "post", "url": "/api/mail/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "post", "url": "/api/mail/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Mail_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastAgent", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Mail_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "delete", "url": "/api/mail/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "put", "url": "/api/mail/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Mail_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Mail_Queues" }, { "type": "get", "url": "/api/mail/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Mail_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "get", "url": "/api/mail/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Mail_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailReport/index.js", "groupTitle": "Mail_Reports" }, { "type": "post", "url": "/api/mail/out_servers", "title": "Creates a new SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSMTPs", "group": "Mail_SMTP", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "service", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "user", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pass", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "secure", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "state", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "authentication", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "delete", "url": "/api/mail/out_servers/{id}", "title": "Deletes a SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers", "title": "Gets a list of SMTPs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers -v -u {name}:{password}", "type": "json" } ], "name": "GetSMTPs", "group": "Mail_SMTP", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/out_servers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/out_servers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/out_servers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/out_servers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/out_servers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/out_servers/{id}", "title": "Gets a single SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "put", "url": "/api/mail/out_servers/{id}", "title": "Update an existing SMTP", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/out_servers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSMTPs", "group": "Mail_SMTP", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailServerOut/index.js", "groupTitle": "Mail_SMTP" }, { "type": "get", "url": "/api/mail/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/mail/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/mail/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/mail/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/mail/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/mail/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/mail/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Mail_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailSessionReport/index.js", "groupTitle": "Mail_Session_Reports" }, { "type": "get", "url": "/api/members/reports/describe", "title": "Gets table info about Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports", "title": "Gets a list of Member Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetMember_Reports", "group": "Member_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/members/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/members/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/members/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/members/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/members/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/members/reports/{id}", "title": "Gets a single Member Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/members/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMember_Reports", "group": "Member_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/memberReport/index.js", "groupTitle": "Member_Reports" }, { "type": "get", "url": "/api/migrations", "title": "Gets a list of Migrations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/migrations -v -u {name}:{password}", "type": "json" } ], "name": "GetMigrations", "group": "Migrations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/migrations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/migrations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/migrations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/migrations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/migrations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/migration/index.js", "groupTitle": "Migrations" }, { "type": "post", "url": "/api/voice/networks", "title": "Create a new network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Networks", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "delete", "url": "/api/voice/networks/{id}", "title": "Deletes a network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Networks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks", "title": "Gets a list of Networks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks -v -u {name}:{password}", "type": "json" } ], "name": "GetNetworks", "group": "Networks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/networks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/networks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/networks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/networks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/networks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "get", "url": "/api/networks/{id}", "title": "Gets a single Network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/networks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowNetworks", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "put", "url": "/api/voice/networks/{id}", "title": "Update an existing network", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Networks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/network/index.js", "groupTitle": "Networks" }, { "type": "post", "url": "/api/openchannel/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "replyUri", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "delete", "url": "/api/openchannel/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Openchannel_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Openchannel_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "get", "url": "/api/openchannel/accounts/{id}/interactions", "title": "Gets Openchannel Account Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteractions", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/accounts/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "put", "url": "/api/openchannel/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Openchannel_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelAccount/index.js", "groupTitle": "Openchannel_Accounts" }, { "type": "post", "url": "/api/openchannel/applications", "title": "Creates a new Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateApplications", "group": "Openchannel_Applications", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "delete", "url": "/api/openchannel/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications", "title": "Gets a list of Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications -v -u {name}:{password}", "type": "json" } ], "name": "GetApplications", "group": "Openchannel_Applications", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/applications?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/applications?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/applications?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/applications?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/applications?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "get", "url": "/api/openchannel/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "put", "url": "/api/openchannel/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Openchannel_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelApplication/index.js", "groupTitle": "Openchannel_Applications" }, { "type": "post", "url": "/api/openchannel/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Openchannel_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "delete", "url": "/api/openchannel/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "get", "url": "/api/openchannel/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "put", "url": "/api/openchannel/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Openchannel_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelDisposition/index.js", "groupTitle": "Openchannel_Dispositions" }, { "type": "post", "url": "/api/openchannel/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "delete", "url": "/api/openchannel/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Openchannel_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Openchannel_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "get", "url": "/api/openchannel/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "put", "url": "/api/openchannel/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Openchannel_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelInteraction/index.js", "groupTitle": "Openchannel_Interactions" }, { "type": "post", "url": "/api/openchannel/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Openchannel_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "delete", "url": "/api/openchannel/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Openchannel_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "get", "url": "/api/openchannel/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "put", "url": "/api/openchannel/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Openchannel_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelMessage/index.js", "groupTitle": "Openchannel_Messages" }, { "type": "post", "url": "/api/openchannel/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Openchannel_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Openchannel_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "get", "url": "/api/openchannel/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "put", "url": "/api/openchannel/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Openchannel_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Openchannel_Queues" }, { "type": "post", "url": "/api/openchannel/reports", "title": "Creates a new Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateOpenchannel_Reports", "group": "Openchannel_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "delete", "url": "/api/openchannel/reports/{id}", "title": "Deletes a Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports", "title": "Gets a list of Openchannel Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/reports/{id}", "title": "Gets a single Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "put", "url": "/api/openchannel/reports/{id}", "title": "Update an existing Openchannel Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateOpenchannel_Reports", "group": "Openchannel_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelReport/index.js", "groupTitle": "Openchannel_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/describe", "title": "Gets table info about Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports", "title": "Gets a list of Session Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/openchannel/sessions/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/openchannel/sessions/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/openchannel/sessions/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/openchannel/sessions/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/openchannel/sessions/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "get", "url": "/api/openchannel/sessions/reports/{id}", "title": "Gets a single Session Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/sessions/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSession_Reports", "group": "Openchannel_Session_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelSessionReport/index.js", "groupTitle": "Openchannel_Session_Reports" }, { "type": "post", "url": "/api/pauses", "title": "Creates a new Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreatePauses", "group": "Pauses", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "delete", "url": "/api/pauses/{id}", "title": "Deletes a Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeletePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses", "title": "Gets a list of Pauses", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses -v -u {name}:{password}", "type": "json" } ], "name": "GetPauses", "group": "Pauses", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/pauses?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/pauses?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/pauses?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/pauses?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/pauses?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pauses/{id}", "title": "Gets a single Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowPauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "put", "url": "/api/pauses/{id}", "title": "Update an existing Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pauses/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updatePauses", "group": "Pauses", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pause/index.js", "groupTitle": "Pauses" }, { "type": "get", "url": "/api/pm2/{id}", "title": "Gets a single pm2 process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Process", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/pm2", "title": "Gets pm2 processes", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2 -v -u {name}:{password}", "type": "json" } ], "name": "GetPm2Processes", "group": "Pm2", "description": "

Motion returns the pm2 processes list.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "put", "url": "/api/pm2/{id}", "title": "Update an existing Process", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/pm2/{id} -d '{\"status\": \"online\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProcesses", "group": "Pm2", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/pm2/index.js", "groupTitle": "Pm2" }, { "type": "get", "url": "/api/rpc/campaigns/", "title": "Gets a list of campaigns", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/campaigns -v -u {name}:{password}", "type": "json" } ], "name": "Campaigns", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime campaigns parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/agents", "title": "Gets a list of RTAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/agents -v -u {name}:{password}", "type": "json" } ], "name": "RTAgents", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime agents parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound/channels", "title": "Gets a list of RTOutboundChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTOutboundChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/telephones", "title": "Gets a list of RTTelephones", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/telephones -v -u {name}:{password}", "type": "json" } ], "name": "RTTelephones", "group": "RPC_Realtime", "description": "

Motion will return a list of telephones parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/trunks", "title": "Gets a list of RTTrunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/trunks -v -u {name}:{password}", "type": "json" } ], "name": "RTTrunks", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime trunks parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}", "title": "Gets a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannel", "group": "RPC_Realtime", "description": "

Motion will return a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/hangup", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/hangup -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelHangup", "group": "RPC_Realtime", "description": "

Motion will hangup a specific realtime voice queue channel.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten}", "title": "Hangup a single RTVoiceQueueChannel", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueueChannelRedirect", "group": "RPC_Realtime", "description": "

Motion will redirect a specific realtime voice queue channel to a specific extension.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/preview/{id}", "title": "Gets a single preview contact", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/preview/{id} -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuePreview", "group": "RPC_Realtime", "description": "

Motion will return a specific preview contact.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/outbound", "title": "Gets a list of RTOutbound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime outbound parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues", "title": "Gets a list of RTVoiceQueues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueues", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues parameters.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "get", "url": "/api/rpc/voice/queues/channels", "title": "Gets a list of RTVoiceQueuesChannels", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/rpc/voice/queues/channels -v -u {name}:{password}", "type": "json" } ], "name": "RTVoiceQueuesChannels", "group": "RPC_Realtime", "description": "

Motion will return a list of realtime voice queues channels.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/rpc/index.js", "groupTitle": "RPC_Realtime" }, { "type": "post", "url": "/api/integrations/salesforce/accounts", "title": "Creates a new Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Accounts", "group": "Salesforce_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientId", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clientSecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "securityToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "delete", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Deletes a Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts", "title": "Gets a list of Salesforce Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Gets a single Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "get", "url": "/api/integrations/salesforce/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "put", "url": "/api/integrations/salesforce/accounts/{id}", "title": "Update an existing Salesforce Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Accounts", "group": "Salesforce_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceAccount/index.js", "groupTitle": "Salesforce_Accounts" }, { "type": "post", "url": "/api/integrations/salesforce/configurations", "title": "Creates a new Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Configurations", "group": "Salesforce_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "delete", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Deletes a Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations", "title": "Gets a list of Salesforce Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Gets a single Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "get", "url": "/api/integrations/salesforce/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "put", "url": "/api/integrations/salesforce/configurations/{id}", "title": "Update an existing Salesforce Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Configurations", "group": "Salesforce_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceConfiguration/index.js", "groupTitle": "Salesforce_Configurations" }, { "type": "post", "url": "/api/integrations/salesforce/fields", "title": "Creates a new Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSalesforce_Fields", "group": "Salesforce_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "delete", "url": "/api/integrations/salesforce/fields/{id}", "title": "Deletes a Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields", "title": "Gets a list of Salesforce Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/salesforce/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/salesforce/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/salesforce/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/salesforce/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/salesforce/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "get", "url": "/api/integrations/salesforce/fields/{id}", "title": "Gets a single Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "put", "url": "/api/integrations/salesforce/fields/{id}", "title": "Update an existing Salesforce Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSalesforce_Fields", "group": "Salesforce_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSalesforceField/index.js", "groupTitle": "Salesforce_Fields" }, { "type": "post", "url": "/api/schedules", "title": "Creates a new Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSchedules", "group": "Schedules", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "cron", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "startAt", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "endAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "subtractNumber", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"years\"", "\"quarters\"", "\"months\"", "\"weeks\"", "\"days\"", "\"hours\"", "\"minutes\"" ], "optional": false, "field": "subtractUnit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"csv\"", "\"pdf\"", "\"xls\"" ], "optional": false, "field": "output", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"custom\"", "\"default\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "sendMail", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "delete", "url": "/api/schedules/{id}", "title": "Deletes a Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules", "title": "Gets a list of Schedules", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules -v -u {name}:{password}", "type": "json" } ], "name": "GetSchedules", "group": "Schedules", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/schedules?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/schedules?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/schedules?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/schedules?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/schedules?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/schedules/{id}", "title": "Gets a single Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "put", "url": "/api/schedules/{id}", "title": "Update an existing Schedule", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/schedules/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSchedules", "group": "Schedules", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/schedule/index.js", "groupTitle": "Schedules" }, { "type": "get", "url": "/api/settings", "title": "Gets a list of Settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings -v -u {name}:{password}", "type": "json" } ], "name": "GetSettings", "group": "Settings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/settings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/settings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/settings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/settings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/settings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}", "title": "Gets a single Setting", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSettings", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "put", "url": "/api/settings/{id}", "title": "Update settings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo", "title": "Add logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/settings/{id}/logo_login", "title": "Add logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo", "title": "Get logo", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogo", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "get", "url": "/api/settings/{id}/logo_login", "title": "Get logo login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/settings/{id}/logo_login -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getLogoLogin", "group": "Settings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/setting/index.js", "groupTitle": "Settings" }, { "type": "post", "url": "/api/sms/accounts", "title": "Creates a new Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateAccounts", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"twilio\"", "\"skebby\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "delete", "url": "/api/sms/accounts/{id}", "title": "Deletes a Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts", "title": "Gets a list of Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetAccounts", "group": "Sms_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}", "title": "Gets a single Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/messages/{id}/accept", "title": "Accepts message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id}/accept \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "acceptMessage", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/applications", "title": "Creates new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates new disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDisposition", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/dispositions", "title": "Creates many dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addDispositions", "group": "Sms_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/applications", "title": "Gets account applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/applications -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getApplications", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/dispositions", "title": "Gets account dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDispositions", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "get", "url": "/api/sms/accounts/{id}/interactions", "title": "Gets account interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getInteraction", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/accounts/{id}/notify", "title": "Notify new message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id}/notify -d '{\"body\": \"hello world\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "notify", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/messages/{id}/reject", "title": "Rejects message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id}/reject \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "rejectMessage", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Accounts" }, { "type": "put", "url": "/api/sms/accounts/{id}", "title": "Update an existing Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateAccounts", "group": "Sms_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsAccount/index.js", "groupTitle": "Sms_Accounts" }, { "type": "post", "url": "/api/sms/applications", "title": "Creates a new Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateApplications", "group": "Sms_Applications", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Integer", "optional": false, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "app", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "appdata", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "interval", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "delete", "url": "/api/sms/applications/{id}", "title": "Deletes a Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "get", "url": "/api/sms/applications", "title": "Gets a list of Applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications -v -u {name}:{password}", "type": "json" } ], "name": "GetApplications", "group": "Sms_Applications", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/applications?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/applications?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/applications?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/applications?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/applications?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "get", "url": "/api/sms/applications/{id}", "title": "Gets a single Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "put", "url": "/api/sms/applications/{id}", "title": "Update an existing Application", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateApplications", "group": "Sms_Applications", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsApplication/index.js", "groupTitle": "Sms_Applications" }, { "type": "post", "url": "/api/sms/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Sms_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "delete", "url": "/api/sms/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "get", "url": "/api/sms/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "put", "url": "/api/sms/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Sms_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsDisposition/index.js", "groupTitle": "Sms_Dispositions" }, { "type": "post", "url": "/api/sms/interactions", "title": "Creates a new Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateInteractions", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Boolean", "optional": true, "field": "closed", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "closedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "note", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "delete", "url": "/api/sms/interactions/{id}", "title": "Deletes a Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/describe", "title": "Gets table info about Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions", "title": "Gets a list of Interactions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetInteractions", "group": "Sms_Interactions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/interactions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/interactions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/interactions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/interactions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/interactions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}", "title": "Gets a single Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/interactions/{id}/messages", "title": "Creates new messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addMessage", "group": "Sms_Interactions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "get", "url": "/api/sms/interactions/{id}/messages", "title": "Gets interaction messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "put", "url": "/api/sms/interactions/{id}", "title": "Update an existing Interaction", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateInteractions", "group": "Sms_Interactions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsInteraction/index.js", "groupTitle": "Sms_Interactions" }, { "type": "post", "url": "/api/sms/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Sms_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Text", "optional": false, "field": "body", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "read", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"in\"", "\"out\"" ], "optional": false, "field": "direction", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "delete", "url": "/api/sms/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/describe", "title": "Gets table info about Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Sms_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "get", "url": "/api/sms/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "put", "url": "/api/sms/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Sms_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsMessage/index.js", "groupTitle": "Sms_Messages" }, { "type": "post", "url": "/api/sms/queues/{id}/users", "title": "Add agents to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues/{id}/teams", "title": "Add teams to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Sms_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rrmemory\"", "\"beepall\"", "\"roundrobin\"" ], "optional": true, "field": "strategy", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users -v -u {name}:{password} -X POST", "type": "json" } ], "name": "GetAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Sms_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}/teams", "title": "Gets queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "delete", "url": "/api/sms/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "get", "url": "/api/sms/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "put", "url": "/api/sms/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Sms_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Sms_Queues" }, { "type": "post", "url": "/api/sms/session/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountaddress", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "fidelity", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "completeAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "complete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agent\"" ], "optional": true, "field": "completeReason", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "post", "url": "/api/sms/reports", "title": "Creates a new Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateReports", "group": "Sms_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeslot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "from", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountnumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queuename", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "roomid", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "messageid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "reason", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calledAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rejectedAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/session/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "delete", "url": "/api/sms/reports/{id}", "title": "Deletes a Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/describe", "title": "Gets table info about Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/session/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/session/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/session/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/session/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/session/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports", "title": "Gets a list of Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetReports", "group": "Sms_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sms/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sms/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sms/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sms/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sms/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/session/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sms/reports/{id}", "title": "Gets a single Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/session/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsSessionReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "put", "url": "/api/sms/reports/{id}", "title": "Update an existing Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateReports", "group": "Sms_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsReport/index.js", "groupTitle": "Sms_Reports" }, { "type": "get", "url": "/api/sounds", "title": "Gets a list of Sounds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -v -u {name}:{password}", "type": "json" } ], "name": "GetSounds", "group": "Sounds", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/sounds?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/sounds?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/sounds?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/sounds?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/sounds?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}", "title": "Gets a single Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSounds", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/sounds", "title": "Create a new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "delete", "url": "/api/sounds/{id}", "title": "Deletes a sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "destroySound", "group": "Sounds", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "get", "url": "/api/sounds/{id}/download", "title": "Download Sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "put", "url": "/api/sounds", "title": "Update an existing new sound", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sounds -d '[\"name\": \"sound_name\", \"description\": \"sound_desc\"]' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSound", "group": "Sounds", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/sound/index.js", "groupTitle": "Sounds" }, { "type": "post", "url": "/api/square/details/reports", "title": "Creates a new Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Detail_Reports", "group": "Square_Details_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "node", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "application", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "data", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "delete", "url": "/api/square/details/reports/{id}", "title": "Deletes a Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/describe", "title": "Gets table info about Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports", "title": "Gets a list of Square Detail Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/details/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/details/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/details/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/details/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/details/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "get", "url": "/api/square/details/reports/{id}", "title": "Gets a single Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "put", "url": "/api/square/details/reports/{id}", "title": "Update an existing Square Detail Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/details/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Detail_Reports", "group": "Square_Details_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReportDetail/index.js", "groupTitle": "Square_Details_Reports" }, { "type": "post", "url": "/api/square/odbc", "title": "Creates a new ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateODBCs", "group": "Square_ODBC", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dsn", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "delete", "url": "/api/square/odbc/{id}", "title": "Deletes a ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc", "title": "Gets a list of ODBCs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc -v -u {name}:{password}", "type": "json" } ], "name": "GetODBCs", "group": "Square_ODBC", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/odbc?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/odbc?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/odbc?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/odbc?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/odbc?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}", "title": "Gets a single ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "get", "url": "/api/square/odbc/{id}/test", "title": "Test Odbc", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id}/test -v -u {name}:{password} -X GET", "type": "json" } ], "name": "test", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "put", "url": "/api/square/odbc/{id}", "title": "Update an existing ODBC", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/odbc/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateODBCs", "group": "Square_ODBC", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareOdbc/index.js", "groupTitle": "Square_ODBC" }, { "type": "post", "url": "/api/square/projects", "title": "Creates a new Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateProjects", "group": "Square_Projects", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "notes", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "preproduction", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "production", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "delete", "url": "/api/square/projects/{id}", "title": "Deletes a Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects", "title": "Gets a list of Projects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects -v -u {name}:{password}", "type": "json" } ], "name": "GetProjects", "group": "Square_Projects", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/projects?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/projects?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/projects?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/projects?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/projects?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "get", "url": "/api/square/projects/{id}", "title": "Gets a single Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "put", "url": "/api/square/projects/{id}", "title": "Update an existing Project", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateProjects", "group": "Square_Projects", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareProject/index.js", "groupTitle": "Square_Projects" }, { "type": "post", "url": "/api/square/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Square_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "projectName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "saveName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "filename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "savePath", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "delete", "url": "/api/square/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Square_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "get", "url": "/api/square/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "put", "url": "/api/square/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Square_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareRecording/index.js", "groupTitle": "Square_Recordings" }, { "type": "post", "url": "/api/square/reports", "title": "Creates a new Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSquare_Reports", "group": "Square_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "network", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "network_script", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "request", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "version", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingani2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callington", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callingtns", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dnid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "rdnis", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "priority", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "enhanced", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "threadid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "project_name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leaveAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "delete", "url": "/api/square/reports/{id}", "title": "Deletes a Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/describe", "title": "Gets table info about Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports", "title": "Gets a list of Square Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetSquare_Reports", "group": "Square_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/square/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/square/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/square/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/square/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/square/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "get", "url": "/api/square/reports/{id}", "title": "Gets a single Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "put", "url": "/api/square/reports/{id}", "title": "Update an existing Square Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/square/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSquare_Reports", "group": "Square_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/squareReport/index.js", "groupTitle": "Square_Reports" }, { "type": "post", "url": "/api/integrations/sugarcrm/configurations", "title": "Creates a new SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "delete", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Deletes a SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations", "title": "Gets a list of SugarCRM Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Gets a single SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "put", "url": "/api/integrations/sugarcrm/configurations/{id}", "title": "Update an existing SugarCRM Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarCRM_Configurations", "group": "SugarCRM_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "SugarCRM_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts", "title": "Creates a new Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "delete", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Deletes a Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts", "title": "Gets a list of Sugarcrm Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Gets a single Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "post", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "put", "url": "/api/integrations/sugarcrm/accounts/{id}", "title": "Update an existing Sugarcrm Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Accounts", "group": "Sugarcrm_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmAccount/index.js", "groupTitle": "Sugarcrm_Accounts" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "get", "url": "/api/integrations/sugarcrm/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Sugarcrm_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmConfiguration/index.js", "groupTitle": "Sugarcrm_Configurations" }, { "type": "post", "url": "/api/integrations/sugarcrm/fields", "title": "Creates a new Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateSugarcrm_Fields", "group": "Sugarcrm_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "delete", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Deletes a Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields", "title": "Gets a list of Sugarcrm Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/sugarcrm/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/sugarcrm/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/sugarcrm/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/sugarcrm/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/sugarcrm/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Gets a single Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "put", "url": "/api/integrations/sugarcrm/fields/{id}", "title": "Update an existing Sugarcrm Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateSugarcrm_Fields", "group": "Sugarcrm_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intSugarcrmField/index.js", "groupTitle": "Sugarcrm_Fields" }, { "type": "get", "url": "/api/system", "title": "Gets system information", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/system -v -u {name}:{password}", "type": "json" } ], "name": "GetSystemInformation", "group": "System_Information", "description": "

Motion returns the system information.

", "version": "0.0.0", "filename": "server/api/system/index.js", "groupTitle": "System_Information" }, { "type": "post", "url": "/api/tags", "title": "Creates a new Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTags", "group": "Tags", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "delete", "url": "/api/tags/{id}", "title": "Deletes a Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTags", "group": "Tags", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags", "title": "Gets a list of Tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags -v -u {name}:{password}", "type": "json" } ], "name": "GetTags", "group": "Tags", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/tags?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/tags?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/tags?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/tags?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/tags?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "get", "url": "/api/tags/{id}", "title": "Gets a single Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "put", "url": "/api/tags/{id}", "title": "Update an existing Tag", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/tags/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTags", "group": "Tags", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/tag/index.js", "groupTitle": "Tags" }, { "type": "post", "url": "/api/teams/{id}/queues", "title": "Add queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams", "title": "Creates a new Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTeams", "group": "Teams", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}", "title": "Deletes a Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/users", "title": "Gets agents from team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams", "title": "Gets a list of Teams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Teams", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/teams?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/teams?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/teams?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/teams?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/teams?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/users", "title": "Removes agents from a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/teams/{id}/queues", "title": "Remove queues to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/queues?channel=voice&ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/fax/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/faxQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/openchannel/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/openchannelQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/voice/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/mail/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/mailQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/sms/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/smsQueue/index.js", "groupTitle": "Teams" }, { "type": "delete", "url": "/api/chat/queues/{id}/teams", "title": "Remove teams from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/chatQueue/index.js", "groupTitle": "Teams" }, { "type": "get", "url": "/api/teams/{id}", "title": "Gets a single Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/teams/{id}/users", "title": "Adds agents to a team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAgents", "group": "Teams", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "put", "url": "/api/teams/{id}", "title": "Update an existing Team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/teams/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTeams", "group": "Teams", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/team/index.js", "groupTitle": "Teams" }, { "type": "post", "url": "/api/templates", "title": "Creates a new Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTemplates", "group": "Templates", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subject", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "html", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "delete", "url": "/api/templates/{id}", "title": "Deletes a Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates", "title": "Gets a list of Templates", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates -v -u {name}:{password}", "type": "json" } ], "name": "GetTemplates", "group": "Templates", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/templates?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/templates?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/templates?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/templates?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/templates?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "get", "url": "/api/templates/{id}", "title": "Gets a single Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "put", "url": "/api/templates/{id}", "title": "Update an existing Template", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/templates/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTemplates", "group": "Templates", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/template/index.js", "groupTitle": "Templates" }, { "type": "post", "url": "/api/triggers", "title": "Creates a new Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTriggers", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "status", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "delete", "url": "/api/triggers/{id}", "title": "Deletes a Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers", "title": "Gets a list of Triggers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers -v -u {name}:{password}", "type": "json" } ], "name": "GetTriggers", "group": "Triggers", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/triggers?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/triggers?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/triggers?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/triggers?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/triggers?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}", "title": "Gets a single Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/actions", "title": "Creates new actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -d '{\"action\": \"contactManager\",\"data1\": \"1\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAction", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "action", "description": "

Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser

" }, { "group": "Body", "type": "String", "optional": true, "field": "data1", "description": "

contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data2", "description": "

integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data3", "description": "

motionbar[NULL,NULL,WinAppArguments]

" }, { "group": "Body", "type": "String", "optional": true, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "data6", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/all_conditions", "title": "Creates a new \"AND\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAllCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/triggers/{id}/any_conditions", "title": "Creates a new \"OR\"condition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAnyCondition", "group": "Triggers", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "field", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "value", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/actions", "title": "Gets Trigger Actions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/actions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getActions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/all_conditions", "title": "Gets \"AND\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/all_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAllConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "get", "url": "/api/triggers/{id}/any_conditions", "title": "Gets \"OR\" Trigger Conditions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id}/any_conditions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAnyConditions", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "put", "url": "/api/triggers/{id}", "title": "Update an existing Trigger", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/triggers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTriggers", "group": "Triggers", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trigger/index.js", "groupTitle": "Triggers" }, { "type": "post", "url": "/api/trunks", "title": "Create a new trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Trunks", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "alaw"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"pai\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "registry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "otherFields", "description": "" }, { "group": "Body", "type": "Boolean", "optional": false, "field": "active", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "delete", "url": "/api/trunks/{id}", "title": "Deletes a trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Trunks", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks", "title": "Gets a list of Trunks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks -v -u {name}:{password}", "type": "json" } ], "name": "GetTrunks", "group": "Trunks", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/trunks?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/trunks?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/trunks?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/trunks?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/trunks?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "get", "url": "/api/trunks/{id}", "title": "Gets a single Trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTrunks", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "put", "url": "/api/trunks/{id}", "title": "Update an existing trunk", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Trunks", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/trunk/index.js", "groupTitle": "Trunks" }, { "type": "post", "url": "/api/users/{id}/contacts", "title": "Add contacts to a user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -d '{\"ids\": [1,2]}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddContacts", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/queues", "title": "Add queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddQueues", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/teams", "title": "Add teams to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/create_many", "title": "Creates many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "BulkCreateUsers", "group": "Users", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "

The name of the user

" }, { "group": "Body", "type": "String", "optional": false, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "email", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"admin\"", "\"user\"", "\"agent\"", "\"telephone\"" ], "optional": false, "field": "role", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "provider", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "internal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "salt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mobile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "address", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "zipcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userpic", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "city", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "country", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "online", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastLoginAt", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "voicePause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chatPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "mailPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "faxPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "smsPause", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "openchannelPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pauseType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastPauseAt", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "chatCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "mailCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "faxCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "smsCapacity", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "openchannelCapacity", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarAutoAnswer", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableSettings", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarListenPort", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRemoteControl", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "phoneBarRemoteControlPort", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarEnableRecording", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarRingInUse", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "chanspy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "ipaddr", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "port", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "regseconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullcontact", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regserver", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "useragent", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "lastms", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"friend\"", "\"user\"", "\"peer\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ALLOWED_NOT_SCREENED\"", "\"ALLOWED_PASSED_SCREEN\"", "\"ALLOWED_FAILED_SCREEN\"", "\"ALLOWED\"", "\"PROHIB_NOT_SCREENED\"", "\"PROHIB_PASSED_SCREEN\"", "\"PROHIB_FAILED_SCREEN\"", "\"PROHIB\"" ], "optional": true, "field": "callingpres", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "deny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "permit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "md5secret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remotesecret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transport", "description": "

String is deprecated. Please use an Array as ["udp", "tcp"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"rfc2833\"", "\"info\"", "\"shortinfo\"", "\"inband\"", "\"auto\"" ], "optional": true, "field": "dtmfmode", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"outgoing\"" ], "optional": true, "field": "directmedia", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "directrtpsetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediapermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "directmediadeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nat", "description": "

String is deprecated. Please use an Array as ["force_rport", "comedia"]

" }, { "group": "Body", "type": "String", "optional": true, "field": "callgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedcallgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "namedpickupgroup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "language", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tonezone", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "disallow", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "allow", "description": "

String is deprecated. Please use an Array as ["ulaw", "alaw", "gsm"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autoframing", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "insecure", "description": "

String is deprecated. Please use an Array as ["port", "invite"]

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trustrpid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "trust_id_outbound", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"never\"" ], "optional": true, "field": "progressinband", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "promiscredir", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "useclientcode", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "setvar", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "callcounter", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "busylevel", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowoverlap", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowsubscribe", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "allowtransfer", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ignoresdpversion", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "subscribecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "template", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"always\"" ], "optional": true, "field": "videosupport", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxcallbitrate", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "rfc2833compensate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"accept\"", "\"refuse\"", "\"originate\"" ], "optional": true, "field": "session_timers", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_expires", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "session_minse", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"uac\"", "\"uas\"" ], "optional": true, "field": "session_refresher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "t38pt_usertpsource", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "regexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromdomain", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fromuser", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "qualify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "keepalive", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultip", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultuser", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtptimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpholdtimeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rtpkeepalive", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "sendrpid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "outboundproxy", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callbackextension", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timert1", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timerb", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "qualifyfreq", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactpermit", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactdeny", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "contactacl", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "unsolicited_mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "use_q850_reason", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxforwards", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "encryption", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "avpf", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "force_avp", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "icesupport", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "dtlsenable", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"fingerprint\"", "\"certificate\"" ], "optional": true, "field": "dtlsverify", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dtlsrekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscertfile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsprivatekey", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscipher", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscafile", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlscapath", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"active\"", "\"passive\"", "\"actpass\"" ], "optional": true, "field": "dtlssetup", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dtlsfingerprint", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "usereqphone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordonfeature", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordofffeature", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "call_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "registertrying", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "subscribemwi", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "vmexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohinterpret", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mohsuggest", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "parkinglot", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"nonat\"", "\"update\"", "\"update,nonat\"" ], "optional": true, "field": "canreinvite", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "loginInPause", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "resetPasswordExpires", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "showWebBar", "description": "" }, { "group": "Body", "type": "Text", "optional": true, "field": "permissions", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarUnconditionalNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarNoReplyNumber", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "phoneBarBusyNumber", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarUnconditional", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarNoReply", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarBusy", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarDnd", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "phoneBarUnansweredCallBadge", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/destroy_many?ids={ids}", "title": "Deletes many Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "BulkDeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}/password", "title": "Change user password", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/password -d '{\"oldPassword\": \"1234\", \"newPassword\": \"5678\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "ChangePwd", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users", "title": "Create a new user", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}", "title": "Deletes a User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteUsers", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/describe", "title": "Gets table info about Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/agents", "title": "GetAgents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/agents -v -u {name}:{password}", "type": "json" } ], "name": "GetAgents", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/chat/interactions", "title": "GetChatInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/chat/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetChatInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/contacts", "title": "GetContacts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/contacts -v -u {name}:{password}", "type": "json" } ], "name": "GetContacts", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/lists", "title": "GetLists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/lists -v -u {name}:{password}", "type": "json" } ], "name": "GetLists", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/openchannel/interactions", "title": "GetOpenchannelInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/openchannel/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetOpenchannelInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues?channel={channel}", "title": "Gets Queues list", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues/?channel={channel} -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/recordings", "title": "GetRecordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/openchannel/interactions", "title": "GetSmsInteractions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/sms/interactions -v -u {name}:{password}", "type": "json" } ], "name": "GetSmsInteractions", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/teams", "title": "GetTeams", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams -v -u {name}:{password}", "type": "json" } ], "name": "GetTeams", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users", "title": "Gets a list of Users", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users -v -u {name}:{password}", "type": "json" } ], "name": "GetUsers", "group": "Users", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/users?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/users?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/users?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/users?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/users?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/queues_rt", "title": "GetVoiceQueuesRt", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues_rt -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesRt", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/login", "title": "Login", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/login -v -u {name}:{password}", "type": "json" } ], "name": "Login", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/logout", "title": "Logout", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/logout -v -u {name}:{password}", "type": "json" } ], "name": "Logout", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/pause", "title": "Pause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/pause -v -u {name}:{password}", "type": "json" } ], "name": "Pause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/queues", "title": "Remove queues to an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/queues?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveQueues", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "delete", "url": "/api/users/{id}/teams", "title": "Removes teams from an agent", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/teams?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveTeams", "group": "Users", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}", "title": "Gets a single User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/unpause", "title": "Unpause", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/unpause -v -u {name}:{password}", "type": "json" } ], "name": "Unpause", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/users/{id}/avatar", "title": "Add avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "get", "url": "/api/users/{id}/avatar", "title": "Get avatar", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id}/avatar -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getAvatar", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "put", "url": "/api/users/{id}", "title": "Update an existing User", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/users/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateUsers", "group": "Users", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/user/index.js", "groupTitle": "Users" }, { "type": "post", "url": "/api/variables", "title": "Creates a new Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVariables", "group": "Variables", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "delete", "url": "/api/variables/{id}", "title": "Deletes a Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables", "title": "Gets a list of Variables", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables -v -u {name}:{password}", "type": "json" } ], "name": "GetVariables", "group": "Variables", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/variables?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/variables?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/variables?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/variables?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/variables?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/variables/{id}", "title": "Gets a single Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "put", "url": "/api/variables/{id}", "title": "Update an existing Variable", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/variables/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVariables", "group": "Variables", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/variable/index.js", "groupTitle": "Variables" }, { "type": "get", "url": "/api/version/fetch", "title": "Fetch git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/fetch -v -u {name}:{password}", "type": "json" } ], "name": "FetchVersion", "group": "Version", "description": "

Motion run the following command: git fetch origin master

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version", "title": "Gets version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version -v -u {name}:{password}", "type": "json" } ], "name": "GetVersion", "group": "Version", "description": "

Motion returns the current and latest motion version.

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/pull", "title": "Pull git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/pull -v -u {name}:{password}", "type": "json" } ], "name": "PullVersion", "group": "Version", "description": "

Motion run the following command: git pull

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/reset", "title": "Reset git version", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/reset -v -u {name}:{password}", "type": "json" } ], "name": "ResetVersion", "group": "Version", "description": "

Motion run the following command: git reset --hard FETCH_HEAD

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/version/restart", "title": "Restart motion2 after update", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/version/restart -v -u {name}:{password}", "type": "json" } ], "name": "RestartVersion", "group": "Version", "description": "

Motion run the following command: pm2 restart motion

", "version": "0.0.0", "filename": "server/api/version/index.js", "groupTitle": "Version" }, { "type": "get", "url": "/api/voice/agents/reports/describe", "title": "Gets table info about Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports", "title": "Gets a list of Agent Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/agents/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/agents/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/agents/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/agents/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/agents/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/agents/reports/{id}", "title": "Gets a single Agent Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/agents/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowAgent_Reports", "group": "Voice_Agent_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceAgentReport/index.js", "groupTitle": "Voice_Agent_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/describe", "title": "Gets table info about Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports", "title": "Gets a list of Call Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/calls/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/calls/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/calls/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/calls/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/calls/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "get", "url": "/api/voice/calls/reports/{id}", "title": "Gets a single Call Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCall_Reports", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "put", "url": "/api/voice/calls/reports/{id}", "title": "Update a single cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/calls/reports/{id} -d '{\"userDispositio\": \"OK\"}' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Call_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceCallReport/index.js", "groupTitle": "Voice_Call_Reports" }, { "type": "post", "url": "/api/voice/chanspy", "title": "Creates a new ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateChanSpy", "group": "Voice_ChanSpy", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "prefix", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "options", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "auth", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "record", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "recordingFormat", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "delete", "url": "/api/voice/chanspy/{id}", "title": "Deletes a ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy", "title": "Gets a list of ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy -v -u {name}:{password}", "type": "json" } ], "name": "GetChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/chanspy?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/chanspy?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/chanspy?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/chanspy?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/chanspy?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "get", "url": "/api/voice/chanspy/{id}", "title": "Gets a single ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "put", "url": "/api/voice/chanspy/{id}", "title": "Update an existing ChanSpy", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/chanspy/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateChanSpy", "group": "Voice_ChanSpy", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceChanSpy/index.js", "groupTitle": "Voice_ChanSpy" }, { "type": "post", "url": "/api/voice/contexts", "title": "Create a new context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password} -X POST", "type": "json" } ], "name": "Create", "group": "Voice_Contexts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "defaultEntry", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "delete", "url": "/api/voice/contexts/{id}", "title": "Deletes a context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "Delete", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts", "title": "Gets a list of Contexts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password}", "type": "json" } ], "name": "GetContexts", "group": "Voice_Contexts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/contexts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/contexts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/contexts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/contexts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/contexts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/contexts/{id}", "title": "Gets a single Context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowContexts", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "put", "url": "/api/voice/contexts/{id}", "title": "Update an existing context", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "Update", "group": "Voice_Contexts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceContext/index.js", "groupTitle": "Voice_Contexts" }, { "type": "get", "url": "/api/voice/dials/reports/describe", "title": "Gets table info about Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports", "title": "Gets a list of Dial Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dials/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dials/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dials/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dials/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dials/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "get", "url": "/api/voice/dials/reports/{id}", "title": "Gets a single Dial Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dials/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDial_Reports", "group": "Voice_Dial_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDialReport/index.js", "groupTitle": "Voice_Dial_Reports" }, { "type": "post", "url": "/api/voice/dispositions", "title": "Creates a new Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateDispositions", "group": "Voice_Dispositions", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/dispositions/{id}", "title": "Deletes a Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions", "title": "Gets a list of Dispositions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions -v -u {name}:{password}", "type": "json" } ], "name": "GetDispositions", "group": "Voice_Dispositions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/dispositions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/dispositions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/dispositions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/dispositions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/dispositions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "get", "url": "/api/voice/dispositions/{id}", "title": "Gets a single Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "put", "url": "/api/voice/dispositions/{id}", "title": "Update an existing Disposition", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateDispositions", "group": "Voice_Dispositions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceDisposition/index.js", "groupTitle": "Voice_Dispositions" }, { "type": "delete", "url": "/api/voice/extensions/{id}", "title": "Deletes a Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions", "title": "Gets a list of Extensions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -v -u {name}:{password}", "type": "json" } ], "name": "GetExtensions", "group": "Voice_Extensions", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/extensions?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/extensions?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/extensions?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/extensions?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/extensions?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "get", "url": "/api/voice/extensions/{id}", "title": "Gets a single Extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowExtensions", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create new applications", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id}/applications -d '[{\"app\": \"Set\", \"appdata\": \"CALLERDNID=${CALLER(dnid)}\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addApplications", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/extensions", "title": "Create an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "create", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "put", "url": "/api/voice/extensions/{id}", "title": "Update an extension", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/extensions/{id} -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "update", "group": "Voice_Extensions", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceExtension/index.js", "groupTitle": "Voice_Extensions" }, { "type": "post", "url": "/api/voice/mohs", "title": "Create a new a new MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -d '{\"name\": \"xmas_musics\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mohs/{id}/sounds", "title": "Add sound to MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -d '{\"id\": 1}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}", "title": "Deletes an MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DestroyMoh", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs", "title": "Gets a list of Music On Holds", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs -v -u {name}:{password}", "type": "json" } ], "name": "GetMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mohs?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mohs?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mohs?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mohs?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mohs?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}/sounds", "title": "Gets sounds from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "GetSounds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "delete", "url": "/api/voice/mohs/{id}/sounds/{id2}", "title": "Remove sound from MOH", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id}/sounds/{id2} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveSound", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "get", "url": "/api/voice/mohs/{id}", "title": "Gets a single Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "put", "url": "/api/voice/mohs/{id}", "title": "Update an existing Music On Hold", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mohs/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMusic_On_Holds", "group": "Voice_MOHs", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMusicOnHold/index.js", "groupTitle": "Voice_MOHs" }, { "type": "post", "url": "/api/voice/mails", "title": "Creates a new Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMails", "group": "Voice_Mails", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "customer_id", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "mailbox", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "fullname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "email", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "pager", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tz", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "attach", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "saycid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialout", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callback", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "review", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "operator", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "envelope", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sayduration", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "saydurationm", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "sendvoicemail", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "delete", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "nextaftercmd", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcename", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "forcegreetings", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": false, "field": "hidefromdir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "stamp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailsubject", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "emailbody", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxsecs", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "maxmsg", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "delete", "url": "/api/voice/mails/{id}", "title": "Deletes a Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails", "title": "Gets a list of Mails", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails -v -u {name}:{password}", "type": "json" } ], "name": "GetMails", "group": "Voice_Mails", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}", "title": "Gets a single Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "get", "url": "/api/voice/mails/{id}/messages", "title": "Gets voice mail messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id}/messages -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getMessages", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "put", "url": "/api/voice/mails/{id}", "title": "Update an existing Mail", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMails", "group": "Voice_Mails", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMail/index.js", "groupTitle": "Voice_Mails" }, { "type": "post", "url": "/api/voice/mails/messages", "title": "Creates a new Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateMessages", "group": "Voice_Messages", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "msgnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dir", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "macrocontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "callerid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "origtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "duration", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxuser", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "mailboxcontext", "description": "" }, { "group": "Body", "type": "Blob", "optional": true, "field": "recording", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "flag", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "msg_id", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "stamp", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "delete", "url": "/api/voice/mails/messages/{id}", "title": "Deletes a Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages", "title": "Gets a list of Messages", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages -v -u {name}:{password}", "type": "json" } ], "name": "GetMessages", "group": "Voice_Messages", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/mails/messages?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/mails/messages?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/mails/messages?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/mails/messages?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/mails/messages?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/mails/messages/{id}", "title": "Gets a single Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "voice/mails/messages/{id}/download", "title": "Download Voice Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}voice/mails/messages/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "put", "url": "/api/voice/mails/messages/{id}", "title": "Update an existing Message", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/mails/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateMessages", "group": "Voice_Messages", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceMailMessage/index.js", "groupTitle": "Voice_Messages" }, { "type": "get", "url": "/api/voice/queues/reports/describe", "title": "Gets table info about Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports", "title": "Gets a list of Queue Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "get", "url": "/api/voice/queues/reports/{id}", "title": "Gets a single Queue Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueue_Reports", "group": "Voice_Queue_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueueReport/index.js", "groupTitle": "Voice_Queue_Reports" }, { "type": "post", "url": "/api/voice/queues/{id}/users", "title": "Add agents to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/blacklists", "title": "Add blacklists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/lists", "title": "Add lists to a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues/{id}/teams", "title": "Add teams to queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "AddTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/queues", "title": "Creates a new Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateQueues", "group": "Voice_Queues", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "name", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"inbound\"", "\"outbound\"" ], "optional": false, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "musiconhold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"ringall\"", "\"leastrecent\"", "\"fewestcalls\"", "\"random\"", "\"rrmemory\"", "\"linear\"", "\"wrandom\"", "\"rrordered\"" ], "optional": false, "field": "strategy", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "servicelevel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "penaltymemberslimit", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "timeout", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "retry", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "timeoutpriority", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "weight", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "wrapuptime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autofill", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"all\"" ], "optional": true, "field": "autopause", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "autopausedelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopausebusy", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "autopauseunavail", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "maxlen", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setinterfacevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueueentryvar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "setqueuevar", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "eventmemberstatus", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membermacro", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membergosub", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "min_announce_frequency", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "periodic_announce_frequency", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "random_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "relative_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"", "\"once\"" ], "optional": true, "field": "announce_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "announce_position", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "announce_to_first_user", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "announce_position_limit", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"0\"", "\"5\"", "\"10\"", "\"15\"", "\"20\"", "\"30\"" ], "optional": true, "field": "announce_round_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "monitor_type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_youarenext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thereare", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_callswaiting", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_holdtime", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minute", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_minutes", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_seconds", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_thankyou", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_reporthold", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity1", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_quantity2", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue_less_than", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "periodic_announce", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "joinempty", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "leavewhenempty", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "reportholdtime", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "ringinuse", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "memberdelay", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"yes\"", "\"no\"" ], "optional": true, "field": "timeoutrestart", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "defaultrule", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "acw", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "acwTimeout", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialActive", "description": "

Active/Disactive Campaign

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"preview\"", "\"progressive\"", "\"power\"", "\"predictive\"" ], "optional": true, "field": "dialMethod", "description": "

Dial Method.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitChannel", "description": "

Max 9999 channels, 0 means unlimited.

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialLimitQueue", "description": "

Max 9999 member in queue(min:1, max:9999), 0 means unlimited.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPowerLevel", "description": "

Power Level: Calls for agents (min:1, max:10).

" }, { "group": "Body", "type": "String", "allowedValues": [ "\"agentBusyFactor\"", "\"dropRate\"" ], "optional": true, "field": "dialPredictiveOptimization", "description": "

Only for predictive method.

" }, { "group": "Body", "type": "Float", "optional": true, "field": "dialPredictiveOptimizationPercentage", "description": "

Predictive Optimization Percentage (min: 1, max: 95)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialPredictiveInterval", "description": "

Intervall Predictive Minutes (min:5 max:30)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdName", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialOriginateCallerIdNumber", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialOriginateTimeout", "description": "

Originate Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueOptions", "description": "

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialQueueTimeout", "description": "

Queue Timeout Seconds (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialQueueProject", "description": "

AGI queue option (use: agi://127.0.0.1/square,<project_name>)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionMaxRetry", "description": "

#Congestion Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialCongestionRetryFrequency", "description": "

Congestion Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyMaxRetry", "description": "

#Busy Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialBusyRetryFrequency", "description": "

Busy Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerMaxRetry", "description": "

#NoAnswer Retry (min:1, max:999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialNoAnswerRetryFrequency", "description": "

NoAnswer Retry Frequency Minutes (min:1, max:99999)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialGlobalMaxRetry", "description": "

#Global Max Retry (min:1, max:999)

" }, { "group": "Body", "type": "String", "optional": true, "field": "dialTimezone", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialGlobalInterval", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dialPrefix", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"always\"", "\"never\"", "\"onlyIfOpen\"" ], "optional": true, "field": "dialCheckDuplicateType", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "dialAMDActive", "description": "

Active/Disactive AMD

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDInitialSilence", "description": "

#AMD Initial Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDGreeting", "description": "

#AMD Greeting

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDAfterGreetingSilence", "description": "

#AMD After Greeting Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDTotalAnalysisTime", "description": "

#AMD Total Analysis Time

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMinWordLength", "description": "

#AMD Min Word Length

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDBetweenWordsSilence", "description": "

#AMD Between Words Silence

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumNumberOfWords", "description": "

#AMD Maximum Number Of Words

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDSilenceThreshold", "description": "

#AMD Silence Threshold (min:0, max:32767)

" }, { "group": "Body", "type": "Integer", "optional": true, "field": "dialAMDMaximumWordLength", "description": "

#AMD Maximum Word Length

" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}", "title": "Deletes a Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/users", "title": "Gets queue agents", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacklists", "title": "Get queue blacklists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/finals", "title": "Gets queue hopper finals", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_finals -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperFinals", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hopper_histories", "title": "Gets queue hopper histories", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_histories -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHopperHistories", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/hoppers", "title": "Gets queue hoppers", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hoppers -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetHoppers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/lists", "title": "Get queue lists", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/members", "title": "Gets queue members", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/members -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetMembers", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues", "title": "Gets a list of Queues", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues -v -u {name}:{password}", "type": "json" } ], "name": "GetQueues", "group": "Voice_Queues", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/queues?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/queues?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/queues?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/queues?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/queues?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/teams", "title": "Gets queue team", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X GET", "type": "json" } ], "name": "GetTeams", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/users", "title": "Removes agents from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveAgents", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/blacklists", "title": "Remove blacklists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveBlackLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "delete", "url": "/api/voice/queues/{id}/lists", "title": "Remove lists from a queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "RemoveLists", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}", "title": "Gets a single Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "get", "url": "/api/voice/queues/{id}/blacks", "title": "Gets queue hopper blacks", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id}/hopper_black -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getHopperBlacks", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "put", "url": "/api/voice/queues/{id}", "title": "Update an existing Queue", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateQueues", "group": "Voice_Queues", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueue/index.js", "groupTitle": "Voice_Queues" }, { "type": "post", "url": "/api/voice/recordings", "title": "Creates a new Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateRecordings", "group": "Voice_Recordings", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "Virtual", "optional": true, "field": "format", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "membername", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "calleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "connectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "exten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "value", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "Integer", "optional": true, "field": "rating", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "queue", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "createdAt", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "updatedAt", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "delete", "url": "/api/voice/recordings/{id}", "title": "Deletes a Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/describe", "title": "Gets table info about Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/describe -v -u {name}:{password}", "type": "json" } ], "name": "DescribeRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings", "title": "Gets a list of Recordings", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings -v -u {name}:{password}", "type": "json" } ], "name": "GetRecordings", "group": "Voice_Recordings", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/recordings?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/recordings?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/recordings?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/recordings?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/recordings?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}", "title": "Gets a single Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "get", "url": "/api/voice/recordings/{id}/download", "title": "Download Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id}/download -v -u {name}:{password} -X GET", "type": "json" } ], "name": "download", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "put", "url": "/api/voice/recordings/{id}", "title": "Update an existing Recording", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateRecordings", "group": "Voice_Recordings", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceRecording/index.js", "groupTitle": "Voice_Recordings" }, { "type": "post", "url": "/api/voice/transfers/reports", "title": "Creates a new Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateTransfer_Reports", "group": "Voice_Transfer_Reports", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"blind\"", "\"attended\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "result", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereraccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transferercontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfererlinkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereechannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridnum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecalleridname", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinenum", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeconnectedlinename", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeaccountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereecontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereeexten", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "transfereelinkedid", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"Yes\"", "\"No\"" ], "optional": true, "field": "isexternal", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "context", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "extension", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "delete", "url": "/api/voice/transfers/reports/{id}", "title": "Deletes a Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports", "title": "Gets a list of Transfer Reports", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports -v -u {name}:{password}", "type": "json" } ], "name": "GetTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voice/transfers/reports?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voice/transfers/reports?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voice/transfers/reports?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voice/transfers/reports?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voice/transfers/reports?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "get", "url": "/api/voice/transfers/reports/{id}", "title": "Gets a single Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "put", "url": "/api/voice/transfers/reports/{id}", "title": "Update an existing Transfer Report", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voice/transfers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateTransfer_Reports", "group": "Voice_Transfer_Reports", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceTransferReport/index.js", "groupTitle": "Voice_Transfer_Reports" }, { "type": "post", "url": "/api/integrations/zendesk/accounts", "title": "Creates a new Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Accounts", "group": "Zendesk_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "username", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "password", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "token", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "remoteUri", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"password\"", "\"token\"" ], "optional": true, "field": "authType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"integrationTab\"", "\"newTab\"" ], "optional": true, "field": "type", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "delete", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Deletes a Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts", "title": "Gets a list of Zendesk Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Gets a single Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "get", "url": "/api/integrations/zendesk/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "put", "url": "/api/integrations/zendesk/accounts/{id}", "title": "Update an existing Zendesk Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Accounts", "group": "Zendesk_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskAccount/index.js", "groupTitle": "Zendesk_Accounts" }, { "type": "post", "url": "/api/integrations/zendesk/configurations", "title": "Creates a new Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Configurations", "group": "Zendesk_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "delete", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Deletes a Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations", "title": "Gets a list of Zendesk Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Gets a single Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "get", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Gets configurations tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/configurations/{id}/tags", "title": "Sets new tags", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "setTags", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "put", "url": "/api/integrations/zendesk/configurations/{id}", "title": "Update an existing Zendesk Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Configurations", "group": "Zendesk_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskConfiguration/index.js", "groupTitle": "Zendesk_Configurations" }, { "type": "post", "url": "/api/integrations/zendesk/fields", "title": "Creates a new Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZendesk_Fields", "group": "Zendesk_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "delete", "url": "/api/integrations/zendesk/fields/{id}", "title": "Deletes a Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields", "title": "Gets a list of Zendesk Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zendesk/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zendesk/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zendesk/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zendesk/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zendesk/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "get", "url": "/api/integrations/zendesk/fields/{id}", "title": "Gets a single Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "put", "url": "/api/integrations/zendesk/fields/{id}", "title": "Update an existing Zendesk Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZendesk_Fields", "group": "Zendesk_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZendeskField/index.js", "groupTitle": "Zendesk_Fields" }, { "type": "post", "url": "/api/integrations/zoho/accounts", "title": "Creates a new Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Accounts", "group": "Zoho_Accounts", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "authToken", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "host", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "serverUrl", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "delete", "url": "/api/integrations/zoho/accounts/{id}", "title": "Deletes a Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts", "title": "Gets a list of Zoho Accounts", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/accounts?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/accounts?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/accounts?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/accounts?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/accounts?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}", "title": "Gets a single Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Creates new configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST", "type": "json" } ], "name": "addConfiguration", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/configurations", "title": "Gets account configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/configurations -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getConfigurations", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "get", "url": "/api/integrations/zoho/accounts/{id}/fields", "title": "Gets account fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "put", "url": "/api/integrations/zoho/accounts/{id}", "title": "Update an existing Zoho Account", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Accounts", "group": "Zoho_Accounts", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoAccount/index.js", "groupTitle": "Zoho_Accounts" }, { "type": "post", "url": "/api/integrations/zoho/configurations", "title": "Creates a new Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Configurations", "group": "Zoho_Configurations", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "name", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "description", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "delete", "url": "/api/integrations/zoho/configurations/{id}", "title": "Deletes a Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations", "title": "Gets a list of Zoho Configurations", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/configurations?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/configurations?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/configurations?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/configurations?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/configurations?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}", "title": "Gets a single Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/descriptions", "title": "Gets configurations descriptions", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/descriptions -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getDescriptions", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/fields", "title": "Gets configurations fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/fields -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getFields", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "get", "url": "/api/integrations/zoho/configurations/{id}/subjects", "title": "Gets configurations subjects", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id}/subjects -v -u {name}:{password} -X GET", "type": "json" } ], "name": "getSubjects", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "put", "url": "/api/integrations/zoho/configurations/{id}", "title": "Update an existing Zoho Configuration", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Configurations", "group": "Zoho_Configurations", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoConfiguration/index.js", "groupTitle": "Zoho_Configurations" }, { "type": "post", "url": "/api/integrations/zoho/fields", "title": "Creates a new Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateZoho_Fields", "group": "Zoho_Fields", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"", "\"keyValue\"" ], "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "content", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "key", "description": "" }, { "group": "Body", "type": "String", "allowedValues": [ "\"string\"", "\"variable\"", "\"customVariable\"" ], "optional": true, "field": "keyType", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "keyContent", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "idField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "nameField", "description": "" }, { "group": "Body", "type": "Boolean", "optional": true, "field": "customField", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "variableName", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "delete", "url": "/api/integrations/zoho/fields/{id}", "title": "Deletes a Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields", "title": "Gets a list of Zoho Fields", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields -v -u {name}:{password}", "type": "json" } ], "name": "GetZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/integrations/zoho/fields?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/integrations/zoho/fields?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/integrations/zoho/fields?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/integrations/zoho/fields?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/integrations/zoho/fields?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "get", "url": "/api/integrations/zoho/fields/{id}", "title": "Gets a single Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "put", "url": "/api/integrations/zoho/fields/{id}", "title": "Update an existing Zoho Field", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/integrations/zoho/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateZoho_Fields", "group": "Zoho_Fields", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/intZohoField/index.js", "groupTitle": "Zoho_Fields" }, { "type": "post", "url": "/api/cdr", "title": "Creates a new Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateCdrs", "group": "cdr", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": false, "field": "calldate", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "clid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "src", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dst", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dcontext", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "channel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "dstchannel", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastapp", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "lastdata", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "duration", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "billsec", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "disposition", "description": "" }, { "group": "Body", "type": "Integer", "optional": false, "field": "amaflags", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "accountcode", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "userfield", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "uniqueid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "linkedid", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "sequence", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "peeraccount", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "type", "description": "" }, { "group": "Body", "type": "String", "optional": true, "field": "tag", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "delete", "url": "/api/cdr/{id}", "title": "Deletes a Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr", "title": "Gets a list of Cdrs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr -v -u {name}:{password}", "type": "json" } ], "name": "GetCdrs", "group": "cdr", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/cdr?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/cdr?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/cdr?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/cdr?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/cdr?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "get", "url": "/api/cdr/{id}", "title": "Gets a single Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "put", "url": "/api/cdr/{id}", "title": "Update an existing Cdr", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/cdr/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateCdrs", "group": "cdr", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/cdr/index.js", "groupTitle": "cdr" }, { "type": "post", "url": "/api/voiceQueuesLog", "title": "Creates a new VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST", "type": "json" } ], "name": "CreateVoiceQueuesLogs", "group": "voiceQueuesLog", "parameter": { "fields": { "Body": [ { "group": "Body", "type": "String", "optional": true, "field": "time", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "callid", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "queuename", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "agent", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "event", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data1", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data2", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data3", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data4", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "data5", "description": "" }, { "group": "Body", "type": "String", "optional": false, "field": "dtm", "description": "" } ] } }, "description": "

Motion will return a HTTP status code 201 upon success.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "delete", "url": "/api/voiceQueuesLog/{id}", "title": "Deletes a VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password} -X DELETE", "type": "json" } ], "name": "DeleteVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 204 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog", "title": "Gets a list of VoiceQueuesLogs", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog -v -u {name}:{password}", "type": "json" } ], "name": "GetVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will always return paged results. Motion returns paging data in the Content-Range header in the form start - end / total.

Upon success Motion will return a HTTP status code 200 OK if the entire collection was returned otherwise it will return a HTTP status code 206 Partial Content.

Motion renders the resulting JSON representation in the response body.

Retrieving Specific Fields

To return only specific fields for a result set you can utilize the fields parameter. This parameter accepts a comma-separated list.

A call returning only id and name for a result set would look like this.

GET /api/voiceQueuesLog?fields=id,name

Filtering

You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.

A call returning a result set for records with name of john.doe or jane.miller.

GET /api/voiceQueuesLog?name=john.doe,jane.miller

If you use the key filter the result will be filtered by the value you specify.

GET /api/voiceQueuesLog?filter=john

Sorting

To sort a result set based on one or several fields you can utilize the sort parameter. This parameters accepts a comma-separated list.

Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (-).

A call sorting a result by id ascending and then name descending would look like this.

GET /api/voiceQueuesLog?sort=id,-name

Offset and Limit

Query results are always paged. Motion leverages the offset and limit parameters to facilitate this.

When the neither of these parameters are explicitly supplied the handler will assume the a default limit of 100.

offset is a number indicating the start position in the result set you want to return.

limit is a number indicating how many records past the start position you want returned.

A call with a result set starting at 5 and returning no more than 25 records would look like this.

GET /api/voiceQueuesLog?offset=5&limit=25

If there were 50 records in total, the returned Content-Range header would look like this.

Content-Range: 5-30/50

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "get", "url": "/api/voiceQueuesLog/{id}", "title": "Gets a single VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password}", "type": "json" } ], "name": "ShowVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" }, { "type": "put", "url": "/api/voiceQueuesLog/{id}", "title": "Update an existing VoiceQueuesLog", "examples": [ { "title": "Example usage:", "content": "curl https://{domain}/api/voiceQueuesLog/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT", "type": "json" } ], "name": "updateVoiceQueuesLogs", "group": "voiceQueuesLog", "description": "

Motion will return a HTTP status code 200 upon success. Motion return a HTTP status code 404 if the corresponding record could not be located.

Motion renders the resulting JSON representation in the response body.

", "version": "0.0.0", "filename": "server/api/voiceQueuesLog/index.js", "groupTitle": "voiceQueuesLog" } ] diff --git a/apidoc/api_project.js b/apidoc/api_project.js index c460c23..9a21fbd 100644 --- a/apidoc/api_project.js +++ b/apidoc/api_project.js @@ -1 +1 @@ -define({ "name": "xCALLY Motion API", "version": "2.0.30", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-09-20T15:04:31.451Z", "url": "http://apidocjs.com", "version": "0.17.6" } }); +define({ "name": "xCALLY Motion API", "version": "2.0.31", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-09-28T15:45:49.602Z", "url": "http://apidocjs.com", "version": "0.17.6" } }); diff --git a/apidoc/api_project.json b/apidoc/api_project.json index d014da9..c988778 100644 --- a/apidoc/api_project.json +++ b/apidoc/api_project.json @@ -1 +1 @@ -{ "name": "xCALLY Motion API", "version": "2.0.30", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-09-20T15:04:31.451Z", "url": "http://apidocjs.com", "version": "0.17.6" } } +{ "name": "xCALLY Motion API", "version": "2.0.31", "description": "Thank you for choosing xCALLY MOTION, one of the first Omni Channel solution integrated with AsteriskTM and the most innovative real time solutions available on the market.", "title": "xCALLY MOTION API", "header": { "title": "Introduction", "content": "

The API

\n

This is the documentation for the xCALLY MOTION API.

\n

We make changes to the APIs from time to time. For more information, see Changelog.

\n

The xCALLY MOTION API consists of several different APIs. Use the left sidebar menu to select one.

\n

The API is a JSON API. XML is not supported. To learn more, see [Working with JSON].

\n

Endpoints are documented with the HTTP method for the request and a partial resource identifier.\nExample:

\n
GET /api/users\n
\n

Prepend your xCALLY URL to the resource identifier to get the full endpoint URL:

\n
https://motion.xcally.com/api/users\n
\n

Curly braces, {}, indicate values you have to supply. Example:

\n
GET  /api/users/{id}\n
\n

The examples in the docs are cURL statements. You can run the statements on a command line to try out different API requests. To learn more, see [Installing and using cURL]. In Windows, you'll need to modify some of the examples in the docs to make them work. See [Using cURL in Windows].

\n

The examples use basic authentication requiring a xCALLY username and password.

\n

Security and Authentication

\n

This is an SSL-only API, regardless of how your account is configured. You can authorize against the API using either basic authentication with your username and password or with an OAuth access token.

\n

Client-side CORS requests are supported if the request is authenticated with an OAuth access token. The requests are not supported if the request uses basic authentication or a xCALLY API token.

\n

Basic authentication

\n

Use the following authentication format with your username and password:\n{username}:{password}

\n

Example:

\n
curl -u admin:password https://motion.xcally.com/api/users\n
\n

OAuth access token

\n

The xCALLY API supports OAuth authorization flows.

\n

OAuth access tokens also permit client-side API requests.

\n

In your requests, specify the access token in an Authorization header as follows:\nAuthorization: Bearer {token}

\n

Example:

\n
curl -H "Authorization: Bearer gErypPlm4dOVgGRvA1ZzMH5MQ3nLo8bo" https://motion.xcally.com/api/users\n
\n

Request Format

\n

The xCALLY API is a JSON API. You must supply a Content-Type: application/json header in PUT and POST requests. You must set an Accept: application/json header on all requests. You may get a text/plain response in case of an error like a bad request. You should treat this as an error you need to fix.

\n

Response Format

\n

The xCALLY API responds to successful requests with HTTP status codes in the 200 or 300 range. When you create or update a resource, the API renders the resulting JSON representation in the response body.

\n

Responses may have the status codes described in the following sections.

\n

200 range

\n

The request was successful. The status is 200 for successful GET and PUT requests, 201 for most POST requests, and 204 for DELETE requests.

\n

400 range

\n

The request was not successful. The content type of the response may be text/plain for API-level error messages, such as when trying to call the API without SSL. The content type is application/json for business-level error messages because the response includes a JSON object with information about the error.

\n

If you see a response from a known endpoint that looks like plain text, you probably made a syntax error in your request. This type of response commonly occurs when making a request to a nonexistent xCALLY Support instance.

\n

500 range

\n

When building an API client, we recommend treating any 500 status codes as a warning or temporary state. However, if the status persists and we don't have a publicly announced maintenance or service disruption, contact us at support@xcally.com.

\n

If submitting a ticket to Support, provide the complete HTTP response. This helps the Support team track down the request in the logs more quickly.

\n

Data Types

\n

The API returns and accepts JSON values, which can be strings in double quotes, numbers, objects, arrays, true or false, or null. Most programming languages have tools to parse this data.

\n

ID integers

\n

Most xCALLY Support resources such as queues and users are identified by the integer specified by the id attribute of API responses.

\n

The default numeric type in JavaScript, Ruby, Python, and PHP is sufficient to represent xCALLY Support ID integers.

\n

Time stamps

\n

Time stamps use UTC time and are formatted as ISO 8601 strings. Example: 2017-04-16T09:14:57Z

\n" }, "template": { "withGenerator": false, "withCompare": false, "forceLanguage": "en" }, "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-09-28T15:45:49.602Z", "url": "http://apidocjs.com", "version": "0.17.6" } } diff --git a/package.json b/package.json index 01827c2..642981d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "motion", - "version": "2.0.30", + "version": "2.0.31", "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.", "main": "server/app.js", "engines": { diff --git a/public/app/main/apps/chat/i18n/en.json b/public/app/main/apps/chat/i18n/en.json index b053a80..fb8a908 100644 --- a/public/app/main/apps/chat/i18n/en.json +++ b/public/app/main/apps/chat/i18n/en.json @@ -7,9 +7,14 @@ "AGENT_TIMEOUT": "Agent Timeout", "DESCRIPTION": "Description", "VARIABLE": "Variable", + "INTERVAL": "Interval", + "TIMEZONE": "Timezone", + "ADVANCED": "Advanced", "NONE": "None", + "WEBSITESCRIPT": "Website Script", "ERRORS": { "NAME_REQUIRED": "The Name is required", + "LIST_REQUIRED": "The List is required", "AGENT_TIMEOUT_REQUIRED": "The Agent Timeout is required", "MOTIONADDRESS_REQUIRED": "The Motion Address is required", "MOTIONADDRESS_MUST_VALID_URL": "The Motion Address must be written in a valid format", @@ -54,9 +59,12 @@ "DELETE_CHATQUEUE": "Delete Chat Queue", "SETTINGS": "Settings", "SAVE": "Save", + "SCRIPT": "Script", + "TOKEN": "Token", "CREATED_AT": "Created At", "CHATWEBSITES": "Chat Websites", - "MOTIONADDRESS": "Motion Address", + "MOTIONADDRESS": "Website Domain", + "MOTIONPROXY": "Proxy Or Motion Domain", "ADD_CHATWEBSITE": "Add Chat Website", "EDIT_CHATWEBSITE": "Edit Chat Website", "DELETE_CHATWEBSITE": "Delete Chat Website", @@ -122,15 +130,17 @@ "HELP": { "FROMKEY": "The following Motion Contact Manager field:", "MAPKEY": "Will be mapped in your Motion Chat Snippet as:", + "TOKEN": "Website Motion Token", "COPYSCRIPTTOCLIPBOARD": "Copy and paste the script into your website", "MOTIONADDRESS": "Please, enter in the following format: <protocol>://<ipaddress>[:<port>]. Example: https://X.Y.Z.W", + "MOTIONPROXY": "Please, enter in the following format: <protocol>://<ipaddress>[:<port>]. Example: https://X.Y.Z.W", "NAME": "Only numbers, letters and specific characters (._) are supported", "LIST": "Contact Manager list used to associate contacts" }, "ADDRESS": "Address", "TIMEOUT": "Timeout", - "ONLINESTATE": "Online State", - "OFFLINESTATE": "Offline State", + "ONLINESTATE": "Online Status", + "OFFLINESTATE": "Offline Status", "RATINGSTATE": "Rating State", "ENQUIRY": "Enquiry", "OFFLINETEMPLATE": "Offline Template", diff --git a/public/app/main/apps/contactmanager/i18n/en.json b/public/app/main/apps/contactmanager/i18n/en.json index 7d8d8f3..015e020 100644 --- a/public/app/main/apps/contactmanager/i18n/en.json +++ b/public/app/main/apps/contactmanager/i18n/en.json @@ -147,6 +147,7 @@ "PAGE": "Page", "ROWSPERPAGE": "Rows per page", "OF": "of", - "SELECT_LIST": "Select a list" + "SELECT_LIST": "Select a list", + "SOCIAL": "Social" } } \ No newline at end of file diff --git a/public/app/main/apps/contactmanager/i18n/it.json b/public/app/main/apps/contactmanager/i18n/it.json index ad24e3c..1991eb8 100644 --- a/public/app/main/apps/contactmanager/i18n/it.json +++ b/public/app/main/apps/contactmanager/i18n/it.json @@ -145,6 +145,7 @@ "PAGE": "Pagina", "ROWSPERPAGE": "Righe per pagina", "OF": "di", - "SELECT_LIST": "Seleziona una lista" + "SELECT_LIST": "Seleziona una lista", + "SOCIAL": "Social" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/en.json b/public/app/main/apps/dashboards/i18n/en.json index f3ab0e3..54d8619 100644 --- a/public/app/main/apps/dashboards/i18n/en.json +++ b/public/app/main/apps/dashboards/i18n/en.json @@ -136,6 +136,7 @@ "INFO": "Info", "NOTE": "Note", "ACCEPT_ELSEWHERE": "Accepted elsewhere", - "ATTENTION": "Attention" + "ATTENTION": "Attention", + "SOCIAL": "Social" } } \ No newline at end of file diff --git a/public/app/main/apps/dashboards/i18n/it.json b/public/app/main/apps/dashboards/i18n/it.json index 8a1133d..336e684 100644 --- a/public/app/main/apps/dashboards/i18n/it.json +++ b/public/app/main/apps/dashboards/i18n/it.json @@ -136,6 +136,7 @@ "INFO": "Info", "NOTE": "Note", "ACCEPT_ELSEWHERE": "Accettata da un altro agente", - "ATTENTION": "Attenzione" + "ATTENTION": "Attenzione", + "SOCIAL": "Social" } } \ No newline at end of file diff --git a/public/app/main/apps/motiondialer/i18n/en.json b/public/app/main/apps/motiondialer/i18n/en.json index b87e678..7765b7a 100644 --- a/public/app/main/apps/motiondialer/i18n/en.json +++ b/public/app/main/apps/motiondialer/i18n/en.json @@ -1,5 +1,7 @@ { "MOTIONDIALER": { + "PREVIEW_CAMPAIGN": "Preview Campaigns", + "PREVIEW_CAMPAIGNS": "Preview Campaigns", "AMD": "Asterisk Answering Machine Detection (AMD)", "AMDTOTALANALYSISTIME": "Total Analysis Time", "AMDACTIVE": "AMD", diff --git a/public/app/main/apps/motiondialer/i18n/it.json b/public/app/main/apps/motiondialer/i18n/it.json index 51ac8ab..6735bd7 100644 --- a/public/app/main/apps/motiondialer/i18n/it.json +++ b/public/app/main/apps/motiondialer/i18n/it.json @@ -1,5 +1,7 @@ { "MOTIONDIALER": { + "PREVIEW_CAMPAIGN": "Campagne Anteprima", + "PREVIEW_CAMPAIGNS": "Campagne Anteprima", "AMD": "Asterisk (AMD) Rilevatore di segreteria telefonica", "AMDTOTALANALYSISTIME": "Tempo di analisi totale", "AMDACTIVE": "AMD", diff --git a/public/app/main/apps/sms/i18n/en.json b/public/app/main/apps/sms/i18n/en.json index f59dcd8..545d55e 100644 --- a/public/app/main/apps/sms/i18n/en.json +++ b/public/app/main/apps/sms/i18n/en.json @@ -17,7 +17,9 @@ "ACCEPTURL_MUST_VALID_URL": "The Accept URL must be written in a valid format", "TIMEOUT_REQUIRED": "The Timeout is required", "REJECTURL_MUST_VALID_URL": "The Reject URL must be written in a valid format", - "CLOSEURL_MUST_VALID_URL": "The Close URL must be written in a valid format" + "CLOSEURL_MUST_VALID_URL": "The Close URL must be written in a valid format", + "TYPE_REQUIRED": "The Type is required", + "LIST_REQUIRED": "The List is required" }, "AGENT_TIMEOUT": "Agent Timeout", "DESCRIPTION": "Description", @@ -74,10 +76,17 @@ "ALL_TEAMS": "All Teams", "SELECTED_TEAMS": "Selected Teams", "HELP": { - "NAME": "Only numbers, letters and specific characters (._) are supported" + "NAME": "Only numbers, letters and specific characters (._) are supported", + "LIST": "Contact Manager list used to associate contacts", + "RECEIVEURL": "This is the auto-generated API string you need to use to receive the messages inside your account from your SMS provider (POST method must be used). You can press the clipboard button to copy it in your clipboard." }, "PAGE": "Page", "ROWSPERPAGE": "Rows per page", - "OF": "of" + "OF": "of", + "TEAMADD_SMSQUEUE": "Add Team To Queue", + "AGENTADD_SMSQUEUE": "Add Agent To Queue", + "ALL_AGENTS": "All Agents", + "SELECTED_AGENTS": "Selected Agents", + "RECEIVEURL": "Receive URL" } } \ No newline at end of file diff --git a/public/app/main/apps/sms/i18n/it.json b/public/app/main/apps/sms/i18n/it.json index fbecd17..3f0dcc1 100644 --- a/public/app/main/apps/sms/i18n/it.json +++ b/public/app/main/apps/sms/i18n/it.json @@ -17,7 +17,9 @@ "ACCEPTURL_MUST_VALID_URL": "L'URL Accetta deve essere in un formato valido", "TIMEOUT_REQUIRED": "Il Timeout è richiesto", "REJECTURL_MUST_VALID_URL": "L'URL Rifiuta deve essere in un formato valido", - "CLOSEURL_MUST_VALID_URL": "L'URL Chiudi deve essere in un formato valido" + "CLOSEURL_MUST_VALID_URL": "L'URL Chiudi deve essere in un formato valido", + "TYPE_REQUIRED": "Il Tipo è richiesto", + "LIST_REQUIRED": "La Lista è richiesta" }, "AGENT_TIMEOUT": "Timeout Agente", "DESCRIPTION": "Descrizione", @@ -75,10 +77,17 @@ "ALL_TEAMS": "Tutti i Team", "SELECTED_TEAMS": "Team selezionati", "HELP": { - "NAME": "Sono supportati solo numeri, lettere e caratteri specifici (._)" + "NAME": "Sono supportati solo numeri, lettere e caratteri specifici (._)", + "LIST": "Lista del Contact Manager usata per associare i contatti", + "RECEIVEURL": "Questa è la stringa API generata automaticamente che devi usare per ricevere i messaggi provenienti dal tuo provider SMS (deve essere usato il metodo POST). Puoi premere io bottone con l'icona del blocco note per copiarla negli appunti.", }, "PAGE": "Pagina", "ROWSPERPAGE": "Righe per pagina", - "OF": "di" + "OF": "di", + "TEAMADD_SMSQUEUE": "Aggiungi squadra alla coda", + "AGENTADD_SMSQUEUE": "Aggiungere agente per coda", + "ALL_AGENTS": "Tutti gli agenti", + "SELECTED_AGENTS": "Gli agenti selezionati", + "RECEIVEURL": "URL di ricezione", } } \ No newline at end of file diff --git a/public/app/main/apps/staff/i18n/en.json b/public/app/main/apps/staff/i18n/en.json index 1d5fb13..aa76aa3 100644 --- a/public/app/main/apps/staff/i18n/en.json +++ b/public/app/main/apps/staff/i18n/en.json @@ -193,6 +193,7 @@ "ROWSPERPAGE": "Rows per page", "OF": "of", "CALLFORWARDING": "Call Forwarding", - "DND": "Do not disturb during pause" + "DND": "Do not disturb during pause", + "UNANSWEREDCALLBADGE": "Show unanswered call badge" } } \ No newline at end of file diff --git a/public/app/main/apps/staff/i18n/it.json b/public/app/main/apps/staff/i18n/it.json index cecc0a9..beb2038 100644 --- a/public/app/main/apps/staff/i18n/it.json +++ b/public/app/main/apps/staff/i18n/it.json @@ -192,6 +192,7 @@ "ROWSPERPAGE": "Righe per pagina", "OF": "di", "CALLFORWARDING": "Inoltro Chiamata", - "DND": "Non disturbare durante la pausa" + "DND": "Non disturbare durante la pausa", + "UNANSWEREDCALLBADGE": "Mostra badge per chimate non risposte" } } \ No newline at end of file diff --git a/public/app/main/apps/tools/i18n/en.json b/public/app/main/apps/tools/i18n/en.json index 8ac3795..67ff697 100644 --- a/public/app/main/apps/tools/i18n/en.json +++ b/public/app/main/apps/tools/i18n/en.json @@ -1,5 +1,6 @@ { "TOOLS": { + "CALL": "Call", "NAME": "Name", "TRUNKS": "Trunks", "SEARCH_FOR_ANYONE": "Search for anyone", diff --git a/public/app/main/apps/tools/i18n/it.json b/public/app/main/apps/tools/i18n/it.json index a532972..4658f79 100644 --- a/public/app/main/apps/tools/i18n/it.json +++ b/public/app/main/apps/tools/i18n/it.json @@ -1,5 +1,6 @@ { "TOOLS": { + "CALL": "Chiama", "NAME": "Nome", "TRUNKS": "Trunk", "SEARCH_FOR_ANYONE": "Cerca", diff --git a/public/index.html b/public/index.html index 3f3f9a1..f844843 100644 --- a/public/index.html +++ b/public/index.html @@ -58,7 +58,7 @@ - + diff --git a/public/scripts/app.2de74318.js b/public/scripts/app.2de74318.js deleted file mode 100644 index 3c81672..0000000 --- a/public/scripts/app.2de74318.js +++ /dev/null @@ -1 +0,0 @@ -function mxDictionary(){this.clear()}function mxPoint(e,t){this.x=null!=e?e:0,this.y=null!=t?t:0}function mxRectangle(e,t,n,a){mxPoint.call(this,e,t),this.width=null!=n?n:0,this.height=null!=a?a:0}function mxEventObject(e){this.name=e,this.properties=[];for(var t=1;t"+this.encodeChanges(n.changes,n.undone)+"")}))}function mxUndoableEdit(e,t){this.source=e,this.changes=[],this.significant=null==t||t}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}function mxPanningManager(e){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,t){},mouseMove:function(e,t){},mouseUp:mxUtils.bind(this,function(e,t){this.active&&this.stop()})},e.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var t=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(e.container),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var t=-e.container.scrollLeft-Math.ceil(this.dx),n=-e.container.scrollTop-Math.ceil(this.dy);e.panGraph(t,n),e.panDx=this.scrollLeft-e.container.scrollLeft,e.panDy=this.scrollTop-e.container.scrollTop,e.fireEvent(new mxEventObject(mxEvent.PAN))}else e.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=e.view.translate.x,this.t0y=e.view.translate.y,this.active=!0},this.panTo=function(n,a,i,o){this.active||this.start(),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,o=null!=o?o:0;var s=e.container;this.dx=n+(null!=i?i:0)-s.scrollLeft-s.clientWidth,0>this.dx&&Math.abs(this.dx)this.dy&&Math.abs(this.dy)mxUtils.indexOf(l.connectsAsTarget,s)&&l.connectsAsTarget.push(s))}}n[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,t,n,a,i,o){this.layout=e,this.intraCellSpacing=t,this.interRankCellSpacing=n,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=o}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxHierarchicalLayout(e,t,n){mxGraphLayout.call(this,e),this.orientation=null!=t?t:mxConstants.DIRECTION_NORTH,this.deterministic=null==n||n}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,t){this.model=e,this.previous=this.root=t}function mxChildChange(e,t,n,a){this.model=e,this.previous=this.parent=t,this.child=n,this.previousIndex=this.index=a}function mxTerminalChange(e,t,n,a){this.model=e,this.cell=t,this.previous=this.terminal=n,this.source=a}function mxValueChange(e,t,n){this.model=e,this.cell=t,this.previous=this.value=n}function mxStyleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.style=n}function mxGeometryChange(e,t,n){this.model=e,this.cell=t,this.previous=this.geometry=n}function mxCollapseChange(e,t,n){this.model=e,this.cell=t,this.previous=this.collapsed=n}function mxVisibleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.visible=n}function mxCellAttributeChange(e,t,n){this.cell=e,this.attribute=t,this.previous=this.value=n}function mxCell(e,t,n){this.value=e,this.setGeometry(t),this.setStyle(n),null!=this.onInit&&this.onInit()}function mxGeometry(e,t,n,a){mxRectangle.call(this,e,t,n,a)}function mxPrintPreview(e,t,n,a,i,o,s,r,l){this.graph=e,this.scale=null!=t?t:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=n?n:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=o?o:0,this.borderColor=s,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,t,n){this.view=e,this.cell=t,this.style=n,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,t,n){this.selectionModel=e,this.added=null!=t?t.slice():null,this.removed=null!=n?n.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,t){if(this.view=e,this.previous=this.root=t,this.isUp=null==t,!this.isUp)for(var n=this.view.currentRoot,a=this.view.graph.getModel();null!=n;){if(n==t){this.isUp=!0;break}n=a.getParent(n)}}function mxGraph(e,t,n,a){this.mouseListeners=null,this.renderHint=n,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:n==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:n==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:n==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=t?t:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,t){this.graphModelChanged(t.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,t,n,a,i,o){this.image=e,this.tooltip=t,this.align=null!=n?n:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=o?o:"help"}function mxOutline(e,t){this.source=e,null!=t&&this.init(t)}function mxMultiplicity(e,t,n,a,i,o,s,r,l,d){this.source=e,this.type=t,this.attr=n,this.value=a,this.min=null!=i?i:0,this.max=null!=o?o:"n",this.validNeighbors=s,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.beforeUndo(t.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsMoved(t.getProperty("cells"),t.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,t,n,a){this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.shiftRightwards=null==t||t,this.shiftDownwards=null==n||n,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,t,n,a){this.horizontal=null==t||t,this.addEnabled=null==n||n,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(t.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,t,n){if(this.view=e,t=null!=t?t:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(t),null!=n){t=e.createState(new mxCell);for(i=0;i0||""!=t)&&(i.selected=t===a),n.appendChild(i)}return n.className="form-control select2",n}function createDropdownFromTigerDialList(e){var t=document.createElement("select"),n=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(i.status>0){var o=i.response.RMI.rows;for(var s in o)n[o[s].id]=o[s].name}}}catch(e){console.log(e)}for(var r in n){var l=document.createElement("option");l.text=n[r],l.value=r,(e>0||""!=e)&&(l.selected=e===r),t.appendChild(l)}return t.className="form-control select2",t}function Dialog(e,t,n,a,i,o,s){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),n+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-n)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(t),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=s,this.container=l}function ImportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("import")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var t=e.target.files[0];if(console.log(t),t)if("text/xml"===t.type){var n=new FileReader;n.onload=function(e){var t=e.target.result;mxUtils.write(d,t)},n.readAsText(t)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(t){var n=mxUtils.parseXml(d.value);e.editor.setGraphXml(n.documentElement),e.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function AboutDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("about")+" Cally Square");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function SaveDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("saveAs"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function NewDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("new"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function DescriptionDialog(e){console.log(e.editor.data);var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("description"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.editor.data.description||"",d=e.createDiv("form-group"),c=document.createElement("label");c.className="col-sm-4 control-label",mxUtils.write(c,mxResources.get("description")),d.appendChild(c);var m=document.createElement("input");m.setAttribute("value",l),m.className="form-control",m.setAttribute("id","_description");var u=e.createDiv("col-sm-8");u.appendChild(m),d.appendChild(u),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("update"),function(){e.description(m.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function VariableDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("variable"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var h=document.createElement("input");h.setAttribute("value",c),h.className="form-control",h.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(h),m.appendChild(g),r.appendChild(m),a.appendChild(r);var v=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,h.value),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function OpenDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("open"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g0){var t=e.dataTransfer.files[0],n=new FileReader;n.onload=function(e){m.value=e.target.result},n.readAsText(t)}}function n(e){e.stopPropagation(),e.preventDefault()}var a=e.createDiv("modal-content"),i=e.createDiv("modal-header"),o=e.createDiv("modal-body"),s=e.createDiv("modal-footer"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit"));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);var d=e.createDiv("row"),c=e.createDiv("col-md-12"),m=document.createElement("textarea");m.style.width="100%",m.style.height="374px",m.value=mxUtils.getPrettyXml(e.editor.getGraphXml()),fileSupport&&(m.addEventListener("dragover",n,!1),m.addEventListener("drop",t,!1)),c.appendChild(m),d.appendChild(c),o.appendChild(d);var u=mxUtils.button(mxResources.get("save"),function(){var t=mxUtils.parseXml(m.value);e.editor.setGraphXml(t.documentElement),e.hideDialog()});u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",s.appendChild(u),s.appendChild(p),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}function ExportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body form"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("export")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",e.editor.getOrCreateFilename()),c.className="form-control";var m=e.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(t){e.save(!1);encodeURIComponent(mxUtils.getXml(e.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+e.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),e.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function GeneralDialog(e,t){console.log("general");var n=e.editor.graph,a=e.createDiv("md-dialog"),i=e.createDiv("md-toolbar"),o=e.createDiv("md-dialog-content"),s=e.createDiv("md-dialog-actions"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(t.value.nodeName));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);for(var d=t.value.attributes.length,c=e.createDiv("form-horizontal form-row-seperated"),m=0;m=1}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=e,this.$get=function(){function e(e){return!angular.isUndefined(t[e])&&t[e]}function n(e,n){t[e]=n}return{getConfig:e,setConfig:n}}}angular.module("app.core").provider("motionConfig",e)}(),function(){"use strict";function e(e,t,n,a){t.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),n.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){t.generate(),n.getConfig("disableMdInkRippleOnMobile")&&e.isMobile()&&angular.element("body").attr("md-no-ink",!0),e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(e,t,n){return{restrict:"E",compile:function(a,i){var o;return i.code||(o=a.html(),a.empty()),function(a,i,s){function r(e,t){var n=t.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],o=new RegExp("^"+i);a=a.map(function(e){return e.replace(o,"").replace(/\s+$/,"")});var r=hljs.highlight(s.language||s.lang,a.join("\n"),!0);r.value=r.value.replace(/=""<\/span>/gi,"").replace("","").replace("",""),n.append(r.value).addClass("highlight")}s.code&&(o=a.$eval(s.code));var l=a.$eval(s.shouldInterpolate);t.when(o).then(function(t){if(t){l&&(t=n(t)(a));var o=angular.element('
');i.append(o),e(function(){r(t,o)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'
',compile:function(e){return e.addClass("ms-card"),function(e,t){function n(){e.$emit("msCard::cardTemplateLoaded",t)}e.cardTemplateLoaded=n}}}}angular.module("app.core").directive("msCard",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditClockItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditClockItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-clock/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options?a.options.data||(a.options.data={theme:"light",digitalFormat:"hh:mm:ss"}):a.options={},a.options.sizeX=a.options.sizeX<=1?2:a.options.sizeX,a.options.sizeY=a.options.sizeY<=1?2:a.options.sizeY,a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-clock/ms-dash-clock.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashClock",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditCounterItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,i){function o(e){n.result=e}function s(a){e.show({controller:"EditCounterItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-counter/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={background:"#FFFFFF",foreground:"#03A9F4",foregroundTitle:"#7f7f7f",query:{fields:[],limit:1}}),a.on("widget:"+n.options.id,o),n.editItem=s,n.onWidgetUpdate=o}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-counter/ms-dash-counter.html"}}e.$inject=["$mdDialog","$document","$interval","socket","api"],angular.module("app.core").directive("msDashCounter",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditIframeItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditIframeItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-iframe/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options&&!a.options.data&&(a.options.data={url:"https://www.xcallymotion.com/"}),a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-iframe/ms-dash-iframe.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashIframe",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditTableItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,a,o){function s(e){n.result=e}function r(a){e.show({controller:"EditTableItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-table/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={query:{}}),i.on("widget:"+n.options.id,s),n.editItem=r,n.onWidgetUpdate=s}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-table/ms-dash-table.html"}}e.$inject=["$mdDialog","$document","$interval","api","socket"],angular.module("app.core").directive("msDashTable",e)}(),function(){"use strict";function e(){function e(e){n=angular.extend({},n,e)}var t=this,n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};t.config=e,t.$get=function(){return n}}function t(e){return{require:"ngModel",priority:1,link:function(t,n,a,i){i.$formatters.push(e.formatter),i.$parsers.push(e.parser)}}}t.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",e).directive("msDatepickerFix",t)}(),function(){"use strict";function e(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(e){e.transfer=function(t,n,a,i){var o=[];if(a>=0)o.push(t[a]),n.push(t[a]),t.splice(a,1);else{for(var s=0;s0&&angular.isDefined(u.forms[u.selectedIndex-1])&&u.forms[u.selectedIndex-1].$invalid}function c(){for(var e=0;ed.options.responsive.md?d.options.responsive.md:d.columnCount:n("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs,d.columnWidth=d.containerPos.width/d.columnCount}var d=this,c={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},m=!0;d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=r,d.initialize=i,d.waitImagesLoaded=o,e.$on("msMasonry:relayout",function(){r()})}function t(e){function t(t,n){return{pre:function(e,a,i,o){o.options=angular.fromJson(n.options||"{}"),o.container=t},post:function(t,n,a,i){e(function(){i.initialize()})}}}return{restrict:"AEC",controller:"msMasonryController",compile:t}}function n(){function e(e,t,n,a){a.waitImagesLoaded(t,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return t.height()},function(e,t){e!==t&&a.reLayout()})}),t.on("$destroy",function(){a.reLayout()})}return{restrict:"AEC",require:"^msMasonry",priority:1,link:e}}e.$inject=["$scope","$window","$mdMedia","$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",t).directive("msMasonryItem",n)}(),function(){"use strict";function e(e,t,n,a){function i(e,t){c.selectedPalette=e,c.selectedHues=t}function o(e,t){l(e,t),d(),n.hide()}function s(){c.selectedColor={palette:"",hue:"",class:""},i(!1,!1),d()}function r(){if(c.modelCtrl.$viewValue&&""!==c.modelCtrl.$viewValue){var e,t;if("class"===c.msModelType){var n=c.modelCtrl.$viewValue.split("-");n.length>=5?(e=n[1]+"-"+n[2],t=n[3]):(e=n[1],t=n[2])}else"obj"===c.msModelType&&(e=c.modelCtrl.$viewValue.palette,t=c.modelCtrl.$viewValue.hue||500);l(e,t)}else s()}function l(t,n){c.selectedColor={palette:t,hue:n,class:"md-"+t+"-"+n+"-bg",bgColorValue:a.rgba(c.palettes[t][n].value),fgColorValue:a.rgba(c.palettes[t][n].contrast)},"obj"!==c.msModelType||angular.equals(c.selectedColor,c.modelCtrl.$viewValue)||d(),i(t,c.palettes[t]),e.$selectedColor=c.selectedColor}function d(){"class"===c.msModelType?c.modelCtrl.$setViewValue(c.selectedColor.class):"obj"===c.msModelType&&c.modelCtrl.$setViewValue(c.selectedColor)}var c=this;c.palettes=t,c.selectedPalette=!1,c.selectedHues=!1,e.$selectedColor={},c.activateHueSelection=i,c.selectColor=o,c.removeColor=s,e.$watch("ngModel",r)}function t(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,t,n,a,i){var o=a[0];o.modelCtrl=a[1],o.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,t){return 1===t.nodeType})).length&&t.find("ms-color-picker-button").replaceWith(e)})}}}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",t)}(),function(){"use strict";function e(){function e(e,t){o={scope:e,element:t}}function t(){return o.scope.isNavFoldedOpen()}function n(){o.scope.toggleFold()}function a(){o.scope.openFolded()}function i(){o.scope.closeFolded()}var o={};return{setFoldable:e,isNavFoldedOpen:t,toggleFold:n,openFolded:a,closeFolded:i}}function t(e,t,n){return{restrict:"A",link:function(a,i,o){function s(){return p}function r(){(u=!u)?l():m()}function l(){g.addClass("ms-nav-folded"),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function d(e){angular.isDefined(e)&&e.preventDefault(),g.addClass("ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),b.find(h).remove(),b.parent().append(v),v.on("mouseenter touchstart",function(e){c(e),p=!1})}function c(e){angular.isDefined(e)&&e.preventDefault(),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),g.removeClass("ms-nav-folded-open"),b.parent().find(v).remove(),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function m(){g.removeClass("ms-nav-folded ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),i.off("mouseenter mouseleave")}var u="true"===o.msNavIsFolded,p=!1,g=angular.element(e[0].body),h=angular.element('
'),v=angular.element('
'),b=i.parent();n.setFoldable(a,i,u),u?l():m(),a.toggleFold=r,a.openFolded=d,a.closeFolded=c,a.isNavFoldedOpen=s,a.$on("$destroy",function(){h.off("mouseenter touchstart"),v.off("mouseenter touchstart"),i.off("mouseenter mouseleave")})}}}function n(){function e(){return l}function t(){l=!0}function n(){l=!1}function a(e,t){d.push({element:e,scope:t})}function i(){return c}function o(e,t){c.push({element:e,scope:t})}function s(){c=[]}var r=this,l=!1,d=[],c=[];r.isDisabled=e,r.enable=n,r.disable=t,r.setToggleItem=a,r.getLockedItems=i,r.setLockedItem=o,r.clearLockedItems=s}function a(e,t,n){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(a){return a.addClass("ms-nav"),function(a){e.$broadcast("msNav::expandMatchingToggles");var i=e.$on("$stateChangeSuccess",function(){e.$broadcast("msNav::expandMatchingToggles"),t.when("navigation").then(function(e){e.close(),n.isNavFoldedOpen()&&n.closeFolded()})});a.$on("$destroy",function(){i()})}}}}function i(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}function o(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}function s(e,t,n,a){return{restrict:"A",require:"^msNav",scope:!0,compile:function(i,o){return i.addClass("ms-nav-toggle"),angular.isUndefined(o.collapsed)&&(o.collapsed=!0),i.attr("collapsed",o.collapsed),function(i,o,s,r){function l(){r.isDisabled()||(r.disable(),d()?(r.clearLockedItems(),i.$emit("msNav::pushToLockedList"),e.$broadcast("msNav::collapse"),m().then(function(){r.enable()})):i.$broadcast("msNav::forceCollapse"))}function d(){return"true"===o.attr("collapsed")}function c(){return!d()}function m(){var e=t.defer();if(c())return e.reject({error:!0}),e.promise;o.attr("collapsed",!1);var a=angular.element(o.find("ms-nav-toggle-items")[0]);a.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var s=a[0].offsetHeight;return a.css({position:"",visibility:"",display:"",height:""}),i.$evalAsync(function(){n.animate(a,{display:"block",height:"0px"},{height:s+"px"},p.expandAnimation).then(function(){a.addClass(p.expanded),a.css({height:""}),e.resolve({success:!0})})}),e.promise}function u(){var e=t.defer();if(d())return e.reject({error:!0}),e.promise;o.attr("collapsed",!0);var a=angular.element(o.find("ms-nav-toggle-items")[0]),s=a[0].offsetHeight;return i.$evalAsync(function(){n.animate(a,{height:s+"px"},{height:"0px"},p.collapseAnimation).then(function(){a.removeClass(p.expanded),a.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}var p={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},g=o.find("a"),h=[],v=/\(.*\)/g;angular.forEach(g,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(v,""),h.push(t))}),r.setToggleItem(o,i),o.children(".ms-nav-button").on("click",l),i.$on("$destroy",function(){o.children(".ms-nav-button").off("click")}),i.$on("msNav::collapse",function(){var e=r.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,i)&&(t=!0)}),t||u().then(function(){r.enable()})}),i.$on("msNav::forceCollapse",function(){u().then(function(){r.enable()})}),i.$on("msNav::expandMatchingToggles",function(){var e=a.current.name,t=!1;angular.forEach(h,function(n){e===n&&(t=!0)}),t?m():u()}),i.$on("msNav::pushToLockedList",function(){r.setLockedItem(o,i)})}}}}t.$inject=["$document","$rootScope","msNavFoldService"],a.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],s.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",e).directive("msNavIsFolded",t).controller("MsNavController",n).directive("msNav",a).directive("msNavTitle",i).directive("msNavButton",o).directive("msNavToggle",s)}(),function(){"use strict";function e(){function e(e,t){if(angular.isString(e)){for(var n=e.split("."),i=n[n.length-1],r=a(n),l=!1,d=0;d1&&a.sort(i),a.length>0&&n(a)}}function a(e){var t=r;if(1===e.length)return t;e.pop();for(var n=0;n0&&(t=t.concat(h(e[n].children)))}return t}var v=null,b=null,f=null,E=null;return{saveItem:e,deleteItem:t,sort:n,clearNavigation:a,setActiveItem:i,getActiveItem:o,getNavigation:s,getFlatNavigation:l,setNavigationScope:d,setFolded:c,getFolded:m,setFoldedOpen:u,getFoldedOpen:p,toggleFolded:g}}}function t(e,t){function n(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")}var a=this;e.root?a.navigation=t.getNavigation(e.root):a.navigation=t.getNavigation(),a.toggleHorizontalMobileMenu=n,function(){t.sort()}()}function n(e,t,n,a){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(i){return i.addClass("ms-navigation"),function(i,o){function s(t){if(a.setFolded(t),t)e.$broadcast("msNavigation::collapse"),u.addClass("ms-navigation-folded"),r();else{var n=a.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),u.removeClass("ms-navigation-folded ms-navigation-folded-open"),d()}}function r(){o.parent().append(p),t(function(){p.on("mouseenter touchstart",c)})}function l(){u.find("#main").append(g),g.on("mouseenter touchstart",m)}function d(){g.remove()}function c(e){e&&e.preventDefault(),a.setFoldedOpen(!0);var t=a.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),u.addClass("ms-navigation-folded-open"),p.remove(),l()}function m(t){t&&t.preventDefault(),a.setFoldedOpen(!1),e.$broadcast("msNavigation::collapse"),u.removeClass("ms-navigation-folded-open"),g.remove(),r()}var u=angular.element("body"),p=angular.element('
'),g=angular.element('
'),h=n("navigation");a.setNavigationScope(i),function(){null===a.getFolded()&&a.setFolded(i.folded),a.getFolded()&&(t(function(){e.$broadcast("msNavigation::collapse")}),u.addClass("ms-navigation-folded"),r())}(),i.$watch(function(){return h.isLockedOpen()},function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&a.getFolded())if(t)e.$broadcast("msNavigation::collapse");else{var i=a.getActiveItem();i&&i.scope.$emit("msNavigation::stateMatched")}}),i.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||s(e)}),i.toggleFolded=function(){s(!a.getFolded())},i.$on("$stateChangeStart",function(){h.close()}),i.$on("$destroy",function(){g.off("mouseenter touchstart"),p.off("mouseenter touchstart")})}}}}function a(e,t,n,a,i,o){function s(){m.collapsed?m.expand():m.collapse()}function r(){var t=m.element.children("ul"),n=t[0].offsetHeight;e.$evalAsync(function(){m.collapsed=!0,m.element.addClass("collapsing"),a.animate(t,{display:"block",height:n+"px"},{height:"0px"},m.animateHeightClass).then(function(){t.css({display:"",height:""}),m.element.removeClass("collapsing")}),e.$broadcast("msNavigation::collapse")})}function l(){var t=m.element.children("ul");t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var i=t[0].offsetHeight;t.css({position:"",visibility:"",display:"",height:""}),e.$evalAsync(function(){m.collapsed=!1,m.element.addClass("expanding"),a.animate(t,{display:"block",height:"0px"},{height:i+"px"},m.animateHeightClass).then(function(){t.css({height:""}),m.element.removeClass("expanding")}),n.$broadcast("msNavigation::collapse",m.node._path)})}function d(){return m.node.class}function c(){return!(!angular.isDefined(m.node.hidden)||!angular.isFunction(m.node.hidden))&&m.node.hidden()}var m=this;m.element=t,m.node=e.node,m.hasChildren=void 0,m.collapsed=void 0,m.collapsable=void 0,m.group=void 0,m.animateHeightClass="animate-height",m.toggleCollapsed=s,m.collapse=r,m.expand=l,m.getClass=d,m.isHidden=c,function(){if(m.hasChildren=m.node.children.length>0,m.group=!(!angular.isDefined(m.node.group)||!0!==m.node.group),!m.hasChildren||m.group?m.collapsable=!1:m.collapsable=!(!angular.isUndefined(m.node.collapsable)&&"boolean"==typeof m.node.collapsable&&!0!==m.node.collapsable),m.collapsable?m.collapsed=!(!angular.isUndefined(m.node.collapsed)&&"boolean"==typeof m.node.collapsed&&!0!==m.node.collapsed):m.collapsed=!1,m.node.state===i.current.name||i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched"),o.setActiveItem(m.node,e)}e.$on("msNavigation::stateMatched",function(){m.collapsable&&m.collapsed&&e.$evalAsync(function(){m.collapsed=!1})}),e.$on("msNavigation::collapse",function(e,t){if(!m.collapsed&&m.collapsable)if(angular.isUndefined(t))m.collapse();else{var n=t.split("."),a=[],i=o.getActiveItem();if(i&&(a=i.node._path.split(".")),n.indexOf(m.node._id)>-1)return;if(a.indexOf(m.node._id)>-1)return;m.collapse()}}),e.$on("$stateChangeSuccess",function(){if(m.node.state===i.current.name){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;o.setActiveItem(m.node,e),n.$broadcast("msNavigation::collapse",m.node._path)}if(i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched")}})}()}function i(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function o(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,t,n,a){a.collapsable&&t.on("click",a.toggleCollapsed),e.$on("$destroy",function(){t.off("click")})}}}}function s(e){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(t){return t.addClass("ms-navigation-horizontal"),function(t){e.setNavigationScope(t)}}}}function r(e,t,n,a,i){function o(){return s.node.class}var s=this;s.element=t,s.node=e.node,s.hasChildren=void 0,s.group=void 0,s.getClass=o,function(){if(s.isActive=!1,s.hasChildren=s.node.children.length>0,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;e.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,e)}e.$on("msNavigation::stateMatched",function(){s.hasChildren&&e.$evalAsync(function(){s.isActive=!0})}),e.$on("msNavigation::clearActive",function(){if(s.hasChildren){var t=[],n=i.getActiveItem();n&&(t=n.node._path.split(".")),t.indexOf(s.node._id)>-1?e.$evalAsync(function(){s.isActive=!0}):e.$evalAsync(function(){s.isActive=!1})}}),e.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,e),n.$broadcast("msNavigation::clearActive")}})}()}function l(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function d(e){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(t){return t.addClass("ms-navigation-horizontal-item"),function(t,n,a,i){function o(){i.hasChildren&&!e("gt-md")&&n.toggleClass("expanded")}n.on("click",o),t.$on("$destroy",function(){n.off("click")})}}}}t.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],a.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],s.$inject=["msNavigationService"],r.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],d.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",e).controller("MsNavigationController",t).directive("msNavigation",n).controller("MsNavigationNodeController",a).directive("msNavigationNode",i).directive("msNavigationItem",o).directive("msNavigationHorizontal",s).controller("MsNavigationHorizontalNodeController",r).directive("msNavigationHorizontalNode",l).directive("msNavigationHorizontalItem",d)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){p.mobileBarActive=!p.mobileBarActive}function c(){return s.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){p.pauses=e.rows?e.rows:[]}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function m(e){return s.user.pause({id:p.user.id,type:e||"DEFAULT PAUSE"}).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}function u(){return s.user.unpause({id:p.user.id}).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})}var p=this;p.mobileBarActive=!1,p.pauses=[],p.user=l.getCurrentUser(),p.toggleMobileBar=d,p.onInit=c,p.pause=m,p.unpause=u,p.onInit()}function t(){return{restrict:"E",scope:{},require:"msPhonebar",controller:"MsPhonebarController as vm_pb",bindToController:{},templateUrl:"app/core/directives/ms-phonebar/ms-phonebar.html",compile:function(e){return e.addClass("ms-phonebar"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService","api","toasty","Auth"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",t)}(),function(){"use strict";function e(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,t){var n=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];t.addClass(n)}}}angular.module("app.core").directive("msRandomClass",e)}(),function(){"use strict";function e(){return{restrict:"A",link:function(e,t){var n=angular.element('
');t.after(n),n.append(t)}}}angular.module("app.core").directive("msResponsiveTable",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=e,this.$get=function(){function e(){return t}return{getConfig:e}}}function t(e,t,n,a){return{restrict:"AE",compile:function(i){if(!(a.getConfig("disableCustomScrollbars")||a.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return i.addClass("ms-scroll"),function(n,a,i){function o(){PerfectScrollbar.update(a[0])}var s={};i.msScroll&&(s=n.$eval(i.msScroll)),s=angular.extend({},t.getConfig(),s),e(function(){PerfectScrollbar.initialize(a[0],s)},0),a.on("mouseenter",o),n.$watch(function(){return a.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$watch(function(){return a.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$on("$destroy",function(){a.off("mouseenter"),PerfectScrollbar.destroy(a[0])})}}}}t.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",e).directive("msScroll",t)}(),function(){"use strict";function e(e,t,n){function a(e){if(!p.collapsed){var t=null===e;(angular.isArray(e)||t)&&(p.selectedResultIndex=0,p.results=e)}}function i(){p.collapsed=!1,e.expand(),p.onExpand&&angular.isFunction(p.onExpand)&&p.onExpand()}function o(){p.query="",p.populateResults(null),p.collapsed=!0,e.collapse(),p.onCollapse&&angular.isFunction(p.onCollapse)&&p.onCollapse()}function s(){g&&p.collapse()}function r(e){e.preventDefault()}function l(e){var t=e.keyCode;switch([27,38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:if(!p.results)return;p.handleResultClick(p.results[p.selectedResultIndex]);break;case 27:p.collapse();break;case 38:p.selectedResultIndex-1>=0&&(p.selectedResultIndex--,p.ensureSelectedResultIsVisible());break;case 40:if(!p.results)return;p.selectedResultIndex+1a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}var p=this;p.collapsed=!0,p.query="",p.queryOptions={debounce:p.debounce||0};var g=!(!p.collapseOnBlur||"true"!=p.collapseOnBlur);p.resultsLoading=!1,p.results=null,p.selectedResultIndex=0,p.ignoreMouseEvents=!1,p.populateResults=a,p.expand=i,p.collapse=o,p.blurCollapse=s,p.absorbEvent=r,p.handleKeydown=l,p.handleMouseenter=d,p.temporarilyIgnoreMouseEvents=c,p.handleResultClick=m,p.ensureSelectedResultIsVisible=u,function(){e.$watch("MsSearchBar.query",function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&!p.collapsed){var a=e.$parent.$eval(p.onSearch,{query:t}),i=angular.isArray(a),o=a&&!!a.then;i&&p.populateResults(a),o&&(p.resultsLoading=!0,a.then(function(e){p.populateResults(e)},function(){p.populateResults([])}).finally(function(){p.resultsLoading=!1}))}})}()}function t(e){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as MsSearchBar",bindToController:{debounce:"=?",onSearch:"@",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"@"},templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(t){return t.addClass("ms-search-bar"),function(t,n){function a(){n.addClass("expanded"),s.addClass("ms-search-bar-expanded"),o.focus()}function i(){n.removeClass("expanded"),s.removeClass("ms-search-bar-expanded")}var o,s=e.find("body");t.collapse=i,t.expand=a,function(){o=n.find("#ms-search-bar-input")}()}}}}e.$inject=["$scope","$element","$timeout"],t.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",t)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){for(var e=[],t=o.getFlatNavigation(),n=i.defer(),s=0;s-1)return!0});for(var r=0;r0&&(e=f.shortcuts);return f.selectedResultIndex=0,a(function(){n.resolve(e)},250),n.promise}function r(){var e=i.defer(),n=angular.fromJson(t.get("motion.shortcuts"));return angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n))),e.resolve(n),e.promise}function l(){var e=i.defer();return t.put("motion.shortcuts",angular.toJson(f.shortcuts)),a(function(){e.resolve({success:!0})},250),e.promise}function d(e){e.hasShortcut=!0,f.shortcuts.push(e),f.saveShortcuts()}function c(e){e.hasShortcut=!1;for(var t=0;t=f.shortcuts.length&&(f.selectedResultIndex=f.shortcuts.length-1)));f.saveShortcuts()}function m(e){e.hasShortcut?f.removeShortcut(e):f.addShortcut(e)}function u(e){e.preventDefault()}function p(e){var t=e.keyCode;switch([38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:f.handleResultClick(f.results[f.selectedResultIndex]);break;case 38:f.selectedResultIndex-1>=0&&(f.selectedResultIndex--,f.ensureSelectedResultIsVisible());break;case 40:f.selectedResultIndex+1a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}function b(){f.mobileBarActive=!f.mobileBarActive}var f=this;f.query="",f.queryOptions={debounce:300},f.resultsLoading=!1,f.selectedResultIndex=0,f.ignoreMouseEvents=!1,f.mobileBarActive=!1,f.results=null,f.shortcuts=[],f.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){f.saveShortcuts()}},f.populateResults=s,f.loadShortcuts=r,f.saveShortcuts=l,f.addShortcut=d,f.removeShortcut=c,f.handleResultClick=m,f.absorbEvent=u,f.handleKeydown=p,f.handleMouseenter=g,f.temporarilyIgnoreMouseEvents=h,f.ensureSelectedResultIsVisible=v,f.toggleMobileBar=b,function(){f.loadShortcuts().then(function(e){f.shortcuts=e,f.shortcuts.length>0&&(f.results=e)}),e.$watch("MsShortcuts.query",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||(f.resultsLoading=!0,f.populateResults().then(function(e){f.results=e},function(){f.results=[]}).finally(function(){f.resultsLoading=!1}))})}()}function t(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",t)}(),function(){"use strict";function e(){return{restrict:"A",require:"^mdSidenav",link:function(e,t,n,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(t.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}}angular.module("app.core").directive("msSidenavHelper",e)}(),function(){"use strict";function e(e){return{restrict:"E",link:function(t,n){var a=t.$on("msSplashScreen::remove",function(){e.leave(n).then(function(){a(),t=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){function t(e){T.orientation=e||"horizontal"}function n(e){T.mainForm=e}function a(e,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||T.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return T.steps.push(a),T.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a}function i(){T.setCurrentStep(T.currentStepNumber)}function o(){e(function(){for(var e=0;e=1;t--)if(!b(t)){e=t;break}T.setCurrentStep(e)}function d(){for(var e=T.currentStepNumber+1,t=e;t<=T.steps.length;t++)if(!b(t)){e=t;break}T.setCurrentStep(e)}function c(){T.setCurrentStep(1)}function m(){T.setCurrentStep(T.steps.length)}function u(){return 1===T.currentStepNumber}function p(){return T.currentStepNumber===T.steps.length}function g(e){return y(e)?T.currentStepNumber===e:null}function h(e){if(!y(e))return null;for(var t=!1,n=1;nT.steps.length)}function A(){return T.mainForm.$valid}var T=this;T.mainForm=void 0,T.orientation="horizontal",T.steps=[],T.currentStep=void 0,T.currentStepNumber=1,T.setOrientation=t,T.registerMainForm=n,T.registerStep=a,T.setupSteps=i,T.resetForm=o,T.setCurrentStep=s,T.gotoStep=r,T.gotoPreviousStep=l,T.gotoNextStep=d,T.gotoFirstStep=c,T.gotoLastStep=m,T.isFirstStep=u,T.isLastStep=p,T.isStepCurrent=g,T.isStepDisabled=h,T.isStepOptional=v,T.isStepHidden=b,T.filterHiddenStep=f,T.isStepValid=E,T.isStepNumberValid=y,T.isFormValid=A}function t(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,t,n,a){var i=a[0],o=a[1];o.setOrientation("horizontal"),o.registerMainForm(i),o.setupSteps()}}}}function n(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),o.registerStep(t,e,i),t.hide()}}}}function a(e){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(t){return t.addClass("ms-stepper"),function(t,n,a,i){var o=i[0],s=i[1];e(function(){s.setOrientation("vertical"),s.registerMainForm(o),s.setupSteps()})}}}}function i(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),e.stepInfo=o.registerStep(t,e,i),e.MsStepper=o,t.find(".ms-stepper-step-content").hide()}}}}e.$inject=["$timeout"],a.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",t).directive("msHorizontalStepperStep",n).directive("msVerticalStepper",a).directive("msVerticalStepperStep",i)}(),function(){"use strict";function e(){function e(e){n.scrollEl=e}function t(){return n.scrollEl}var n=this;n.scrollEl=void 0,n.setScrollEl=e,n.getScrollEl=t}function t(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){function i(){d.scrollTop()+d.height()+c>r.position().top&&(r.addClass("show"),s(),e.loadMore().then(function(){r.removeClass("show"),o()},function(){r.remove()}))}function o(){d.on("scroll",i)}function s(){d.off("scroll",i)}var r=angular.element('
');t.append(r);var l={scrollEl:"#content"};l=angular.extend(l,e.msTimeline,{});var d=angular.element(l.scrollEl);a.setScrollEl(d);var c=144;o(),e.$on("$destroy",function(){s()})}}}}function n(e,t){return{scope:!0,require:"^msTimeline",compile:function(n){return n.addClass("ms-timeline-item").addClass("hidden"),function(n,a,i,o){function s(e){var n=t.defer(),a=e.find("img");return a.length>0?a.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function r(){m.scrollTop()+m.height()>a.position().top+l&&(e(function(){c=!0}),m.off("scroll",r))}var l=72,d=!1,c=!1,m=o.getScrollEl();!function(){a.find("ms-card")?n.$on("msCard::cardTemplateLoaded",function(t,n){s(angular.element(n[0])).then(function(){e(function(){d=!0})})}):s(a).then(function(){e(function(){d=!0})}),m.on("scroll",r),r()}();var u=n.$watch(function(){return d&&c},function(e,t){angular.equals(e,t)||e&&(a.removeClass("hidden").addClass("animate"),u())},!0)}}}}n.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",e).directive("msTimeline",t).directive("msTimelineItem",n)}(),function(){"use strict";function e(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone={"Europe/Andorra":{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},"Asia/Dubai":{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},"Asia/Kabul":{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},"Europe/Tirane":{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},"Asia/Yerevan":{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},"Antarctica/Rothera":{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Palmer":{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Mawson":{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},"Antarctica/Davis":{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},"Antarctica/Casey":{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},"Antarctica/Vostok":{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},"Antarctica/DumontDUrville":{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},"Antarctica/Syowa":{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},"Antarctica/Troll":{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},"America/Argentina/Buenos_Aires":{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Cordoba":{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Salta":{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Jujuy":{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Tucuman":{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Catamarca":{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/La_Rioja":{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Juan":{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Mendoza":{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Luis":{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Rio_Gallegos":{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Ushuaia":{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"Pacific/Pago_Pago":{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},"Europe/Vienna":{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},"Australia/Lord_Howe":{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Antarctica/Macquarie":{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Hobart":{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Currie":{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Melbourne":{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Sydney":{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Broken_Hill":{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Brisbane":{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Lindeman":{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Adelaide":{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Darwin":{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},"Australia/Perth":{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},"Australia/Eucla":{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},"Asia/Baku":{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},"America/Barbados":{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},"Asia/Dhaka":{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},"Europe/Brussels":{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},"Europe/Sofia":{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},"Atlantic/Bermuda":{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},"Asia/Brunei":{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},"America/La_Paz":{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},"America/Noronha":{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Belem":{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Fortaleza":{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Recife":{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Araguaina":{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Maceio":{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Bahia":{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Sao_Paulo":{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Campo_Grande":{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Cuiaba":{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Santarem":{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Porto_Velho":{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Boa_Vista":{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Manaus":{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Eirunepe":{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Rio_Branco":{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Nassau":{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},"Asia/Thimphu":{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},"Europe/Minsk":{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},"America/Belize":{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},"America/St_Johns":{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},"America/Halifax":{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Glace_Bay":{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Moncton":{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Goose_Bay":{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Blanc-Sablon":{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Toronto":{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Nipigon":{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Thunder_Bay":{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Iqaluit":{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Pangnirtung":{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Resolute":{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Atikokan":{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Rankin_Inlet":{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Winnipeg":{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Rainy_River":{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Regina":{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Swift_Current":{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Edmonton":{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Cambridge_Bay":{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Yellowknife":{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Inuvik":{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Creston":{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Dawson_Creek":{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Fort_Nelson":{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Vancouver":{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Whitehorse":{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Dawson":{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"Indian/Cocos":{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},"Europe/Zurich":{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},"Africa/Abidjan":{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},"Pacific/Rarotonga":{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},"America/Santiago":{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},"Pacific/Easter":{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},"Asia/Shanghai":{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},"Asia/Urumqi":{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},"America/Bogota":{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},"America/Costa_Rica":{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},"America/Havana":{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},"Atlantic/Cape_Verde":{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},"America/Curacao":{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},"Indian/Christmas":{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},"Asia/Nicosia":{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},"Europe/Prague":{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},"Europe/Berlin":{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},"Europe/Copenhagen":{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},"America/Santo_Domingo":{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},"Africa/Algiers":{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},"America/Guayaquil":{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},"Pacific/Galapagos":{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},"Europe/Tallinn":{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},"Africa/Cairo":{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},"Africa/El_Aaiun":{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},"Europe/Madrid":{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Africa/Ceuta":{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Atlantic/Canary":{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},"Europe/Helsinki":{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},"Pacific/Fiji":{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},"Atlantic/Stanley":{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},"Pacific/Chuuk":{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},"Pacific/Pohnpei":{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Pacific/Kosrae":{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Atlantic/Faroe":{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},"Europe/Paris":{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},"Europe/London":{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},"Asia/Tbilisi":{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},"America/Cayenne":{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},"Africa/Accra":{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},"Europe/Gibraltar":{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},"America/Godthab":{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},"America/Danmarkshavn":{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},"America/Scoresbysund":{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},"America/Thule":{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},"Europe/Athens":{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},"Atlantic/South_Georgia":{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},"America/Guatemala":{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},"Pacific/Guam":{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},"Africa/Bissau":{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},"America/Guyana":{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},"Asia/Hong_Kong":{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},"America/Tegucigalpa":{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},"America/Port-au-Prince":{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},"Europe/Budapest":{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},"Asia/Jakarta":{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Pontianak":{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Makassar":{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},"Asia/Jayapura":{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},"Europe/Dublin":{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},"Asia/Jerusalem":{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},"Asia/Kolkata":{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},"Indian/Chagos":{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},"Asia/Baghdad":{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},"Asia/Tehran":{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},"Atlantic/Reykjavik":{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},"Europe/Rome":{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},"America/Jamaica":{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},"Asia/Amman":{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},"Asia/Tokyo":{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},"Africa/Nairobi":{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},"Asia/Bishkek":{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},"Pacific/Tarawa":{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},"Pacific/Enderbury":{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},"Pacific/Kiritimati":{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},"Asia/Pyongyang":{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},"Asia/Seoul":{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},"America/Cayman":{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},"Asia/Almaty":{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Qyzylorda":{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Aqtobe":{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Aqtau":{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Oral":{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Beirut":{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},"Asia/Colombo":{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},"Africa/Monrovia":{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},"Europe/Vilnius":{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},"Europe/Luxembourg":{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},"Europe/Riga":{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},"Africa/Tripoli":{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},"Africa/Casablanca":{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},"Europe/Monaco":{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},"Europe/Chisinau":{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},"Pacific/Majuro":{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Pacific/Kwajalein":{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Asia/Rangoon":{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},"Asia/Ulaanbaatar":{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Hovd":{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},"Asia/Choibalsan":{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Macau":{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},"America/Martinique":{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},"Europe/Malta":{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},"Indian/Mauritius":{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},"Indian/Maldives":{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},"America/Mexico_City":{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Cancun":{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},"America/Merida":{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Monterrey":{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Matamoros":{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Mazatlan":{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Chihuahua":{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Ojinaga":{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Hermosillo":{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Tijuana":{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Santa_Isabel":{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Bahia_Banderas":{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"Asia/Kuala_Lumpur":{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Asia/Kuching":{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Africa/Maputo":{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},"Africa/Windhoek":{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},"Pacific/Noumea":{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},"Pacific/Norfolk":{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},"Africa/Lagos":{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},"America/Managua":{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},"Europe/Amsterdam":{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},"Europe/Oslo":{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},"Asia/Kathmandu":{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},"Pacific/Nauru":{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},"Pacific/Niue":{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},"Pacific/Auckland":{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},"Pacific/Chatham":{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},"America/Panama":{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},"America/Lima":{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},"Pacific/Tahiti":{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},"Pacific/Marquesas":{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},"Pacific/Gambier":{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},"Pacific/Port_Moresby":{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},"Pacific/Bougainville":{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},"Asia/Manila":{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},"Asia/Karachi":{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},"Europe/Warsaw":{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},"America/Miquelon":{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},"Pacific/Pitcairn":{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},"America/Puerto_Rico":{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},"Asia/Gaza":{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Asia/Hebron":{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Europe/Lisbon":{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Madeira":{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Azores":{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},"Pacific/Palau":{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},"America/Asuncion":{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},"Asia/Qatar":{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},"Indian/Reunion":{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},"Europe/Bucharest":{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},"Europe/Belgrade":{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},"Europe/Kaliningrad":{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},"Europe/Moscow":{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Simferopol":{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Volgograd":{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Samara":{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},"Asia/Yekaterinburg":{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},"Asia/Omsk":{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novosibirsk":{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novokuznetsk":{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Krasnoyarsk":{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Irkutsk":{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Chita":{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Yakutsk":{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Khandyga":{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Vladivostok":{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Sakhalin":{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Ust-Nera":{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Magadan":{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Srednekolymsk":{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},"Asia/Kamchatka":{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Anadyr":{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Riyadh":{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},"Pacific/Guadalcanal":{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},"Indian/Mahe":{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},"Africa/Khartoum":{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},"Europe/Stockholm":{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},"Asia/Singapore":{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},"America/Paramaribo":{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},"America/El_Salvador":{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},"Asia/Damascus":{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},"America/Grand_Turk":{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},"Africa/Ndjamena":{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},"Indian/Kerguelen":{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},"Asia/Bangkok":{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},"Asia/Dushanbe":{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},"Pacific/Fakaofo":{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},"Asia/Dili":{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},"Asia/Ashgabat":{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},"Africa/Tunis":{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},"Pacific/Tongatapu":{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},"Europe/Istanbul":{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},"America/Port_of_Spain":{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},"Pacific/Funafuti":{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},"Asia/Taipei":{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},"Europe/Kiev":{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Uzhgorod":{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Zaporozhye":{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Pacific/Wake":{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},"America/New_York":{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Detroit":{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Louisville":{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Monticello":{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Indianapolis":{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vincennes":{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Winamac":{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Marengo":{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Petersburg":{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vevay":{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Chicago":{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Tell_City":{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Knox":{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Menominee":{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Center":{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/New_Salem":{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Beulah":{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Denver":{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Boise":{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Phoenix":{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Los_Angeles":{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Metlakatla":{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Anchorage":{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Juneau":{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Sitka":{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Yakutat":{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Nome":{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Adak":{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},"Pacific/Honolulu":{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},"America/Montevideo":{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},"Asia/Samarkand":{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"Asia/Tashkent":{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"America/Caracas":{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},"Asia/Ho_Chi_Minh":{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},"Pacific/Efate":{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},"Pacific/Wallis":{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},"Pacific/Apia":{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},"Africa/Johannesburg":{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}}}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}}angular.module("app.core").directive("msTimezone",e)}(),function(){"use strict";function e(e,t){function n(){a()&&(i.flipped=!i.flipped,t.toggleClass("flipped",i.flipped))}function a(){return angular.isDefined(e.flippable)&&!0===e.flippable}var i=this;i.flipped=!1,i.flip=n}function t(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)})}}}}function n(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}function a(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",t).directive("msWidgetFront",n).directive("msWidgetBack",a)}(),function(){"use strict";function e(){return function(e){var t=Date.now()-new Date(e);return t<36e5?moment(e).fromNow():t<864e5?moment(e).format("HH:mm"):t<6048e5?moment(e).format("dddd"):moment(e).calendar()}}angular.module("app.core").filter("altDate",e)}(),function(){"use strict";function e(e){return function(t){return e.trustAsHtml(t)}}function t(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}function n(){return function(e){return e?e.replace(/ /g,""):""}}function a(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",t).filter("nospace",n).filter("humanizeDoc",a)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||!t)return e;if(0===t.length)return[];for(var n=[],a=0;a-1){s=!0;break}}s&&a.push(o)}return a}}angular.module("app.core").filter("filterByPropIds",e)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||0===t.length)return e;var n=[];return e.forEach(function(e){t.every(function(t){var n=!1;return e.tags.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e)}),n}}function t(){return function(e,t){if(0!==e.length&&0!==t.length){if(e.length-1}function n(){function t(e){for(var t=0;t');i.html(n),a.append(i)}function s(e,n){var a=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),a&&(e=r(e,a)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void t.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function r(e,t){var n={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};return 255===e[0]&&255===e[1]&&255===e[2]?e[3]=n.white[t]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=n.black[t]),e}function l(e){return e.charAt(0).toUpperCase()+e.slice(1)}var d={};return{generate:a,rgba:s}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";var e=[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}];angular.module("app.core").constant("motionPalettes",e)}(),function(){"use strict";var e={default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}};angular.module("app.core").constant("motionThemes",e)}(),function(){"use strict";function e(e,t,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),e.alwaysWatchTheme(!0),angular.forEach(t,function(t){e.definePalette(t.name,t.options)}),angular.forEach(n,function(t,n){e.theme(n).primaryPalette(t.primary.name,t.primary.hues).accentPalette(t.accent.name,t.accent.hues).warnPalette(t.warn.name,t.warn.hues).backgroundPalette(t.background.name,t.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){function a(){return n.PALETTES}function i(){return n.THEMES}function o(n){if(angular.isUndefined(r.themes.list[n]))return angular.isUndefined(r.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+n+'" does not exist! Falling back to the "default" theme.'),r.themes.active.name="default",r.themes.active.theme=r.themes.list.default,void e.put("motion.selectedTheme",r.themes.active.name));r.themes.active.name=n,r.themes.active.theme=r.themes.list[n],e.put("motion.selectedTheme",n)}function s(e){r.themes.list=e}var r={getRegisteredPalettes:a,getRegisteredThemes:i,setActiveTheme:o,setThemesList:s,themes:{list:{},active:{name:"",theme:{}}}};return r}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){for(var i=[],o=a.getFlatNavigation(),s=n.defer(),r=0;r-1)return!0})),t(function(){s.resolve(i)},1e3),s.promise}function o(t){t.uisref&&(t.stateParams?e.go(t.state,t.stateParams):e.go(t.state))}var s=this;s.search=i,s.searchResultClick=o}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,t){function n(){t.post("/api/jira",a.error).then(function(e){a.send=!0,e.data&&(a.code=e.data.id)},function(e){a.send=!1})}var a=this;a.code="",a.send=!1,a.error=e.params,a.sendReport=n}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e){var t={};return t.baseUrl="api/",t.auth=e(t.baseUrl+"auth/local",{},{local:{method:"post",url:t.baseUrl+"auth/local"},google:{method:"post",url:t.baseUrl+"auth/google"}}),t.jira=e(t.baseUrl+"jira"),t.rpc=e(t.baseUrl+"rpc",{},{getVoiceQueues:{method:"get",url:t.baseUrl+"rpc/voice/queues"},getVoiceQueuesPreview:{method:"get",url:t.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:t.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:t.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:t.baseUrl+"rpc/agents"},getTelephones:{method:"get",url:t.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:t.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:t.baseUrl+"rpc/campaigns"}}),t.version=e(t.baseUrl+"version",{},{fetch:{method:"get",url:t.baseUrl+"version/fetch"},reset:{method:"get",url:t.baseUrl+"version/reset"},pull:{method:"get",url:t.baseUrl+"version/pull"},restart:{method:"get",url:t.baseUrl+"version/restart"},migrations:{method:"get",url:t.baseUrl+"version/migrations"}}),t.system=e(t.baseUrl+"system"),t.pm2=e(t.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),t.user=e(t.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"users/describe"},bulkCreate:{method:"post",url:t.baseUrl+"users/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"users/destroy_many",isArray:!0},addContacts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/contacts"},changePassword:{isArray:!1,method:"put",url:t.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/avatar"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues_rt"},getRecordings:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/recordings"},getChatInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/openchannel/interactions"},login:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/agents"}}),t.voiceChanSpy=e(t.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/chanspy/describe"}}),t.voiceContext=e(t.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/contexts/describe"}}),t.voiceDisposition=e(t.baseUrl+"voice/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dispositions/describe"}}),t.voiceExtension=e(t.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/extensions/describe"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"voice/extensions/:id/applications"}}),t.voiceMusicOnHold=e(t.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mohs/describe"},addSound:{isArray:!1,method:"post",url:t.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:t.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:t.baseUrl+"voice/mohs/:id/sounds"}}),t.voiceQueue=e(t.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/blacklists"}}),t.voiceRecording=e(t.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/download"}}),t.voiceMail=e(t.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/describe"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/:id/messages"}}),t.voiceMailMessage=e(t.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/messages/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/messages/:id/download"}}),t.voiceCallReport=e(t.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/calls/reports/describe"}}),t.voiceDialReport=e(t.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dials/reports/describe"}}),t.voiceAgentReport=e(t.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/agents/reports/describe"}}),t.voiceQueueReport=e(t.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/reports/describe"}}),t.memberReport=e(t.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"members/reports/describe"}}),t.trunk=e(t.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"trunks/describe"}}),t.voiceTransferReport=e(t.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/transfers/reports/describe"}}),t.mailServerOut=e(t.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/out_servers/describe"}}),t.mailAccount=e(t.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/accounts/describe"},getImap:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/dispositions"},sendMail:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/verify"}}),t.mailQueue=e(t.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/users"}}),t.mailInteraction=e(t.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/messages"}}),t.mailMessage=e(t.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/messages/describe"}}),t.mailApplication=e(t.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/applications/describe"}}),t.mailDisposition=e(t.baseUrl+"mail/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/dispositions/describe"}}),t.mailAttachment=e(t.baseUrl+"mail/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/attachments/describe"}}),t.mailSessionReport=e(t.baseUrl+"mail/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/sessions/reports/describe"}}),t.mailReport=e(t.baseUrl+"mail/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/describe"}}),t.openchannelSessionReport=e(t.baseUrl+"openchannel/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/sessions/reports/describe"}}),t.dashboard=e(t.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/describe"},run:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/run"},addItem:{isArray:!1,method:"post",url:t.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/items"}}),t.dashboardItem=e(t.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/items/describe"}}),t.faxAccount=e(t.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/dispositions"}}),t.faxApplication=e(t.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/applications/describe"}}),t.faxDisposition=e(t.baseUrl+"fax/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/dispositions/describe"}}),t.faxAttachment=e(t.baseUrl+"fax/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/attachments/describe"}}),t.faxInteraction=e(t.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/messages"}}),t.faxMessage=e(t.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/messages/describe"}}),t.faxQueue=e(t.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/users"}}),t.faxSessionReport=e(t.baseUrl+"fax/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/sessions/reports/describe"}}),t.smsAccount=e(t.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/dispositions"}}),t.smsApplication=e(t.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/applications/describe"}}),t.smsDisposition=e(t.baseUrl+"sms/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/dispositions/describe"}}),t.smsInteraction=e(t.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/messages"}}),t.smsMessage=e(t.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/messages/describe"}}),t.smsQueue=e(t.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/users"}}),t.openchannelAccount=e(t.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/accounts/describe"},notify:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/interactions"}}),t.openchannelApplication=e(t.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/applications/describe"}}),t.openchannelDisposition=e(t.baseUrl+"openchannel/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/dispositions/describe"}}),t.openchannelInteraction=e(t.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/messages"}}),t.openchannelMessage=e(t.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/messages/describe"},accept:{isArray:!1,method:"put",url:t.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"openchannel/messages/:id/reject"}}),t.openchannelQueue=e(t.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/users"}}),t.chatWebsite=e(t.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/websites/describe"},notify:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/notify"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/dispositions"},addProactiveActions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/proactive_actions"},getOnlineFields:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/online_fields"}}),t.openchannelReport=e(t.baseUrl+"openchannel/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/describe"}}),t.chatApplication=e(t.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/applications/describe"}}),t.chatDisposition=e(t.baseUrl+"chat/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/dispositions/describe"}}),t.chatInteraction=e(t.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/messages"}}),t.chatMessage=e(t.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/messages/describe"},accept:{isArray:!1,method:"put",url:t.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:t.baseUrl+"chat/messages/:id/reject"}}),t.chatQueue=e(t.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/users"}}),t.chatEnquiry=e(t.baseUrl+"chat/enquiries/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/enquiries/describe"}}),t.chatProactiveAction=e(t.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/proactive_actions/describe"}}),t.cmCompany=e(t.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/companies/describe"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/companies/:id/contacts"}}),t.cmContact=e(t.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/contacts/describe"},bulkCreate:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/create_many"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/jscripty_sessions"}}),t.cmHopper=e(t.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper/describe"},getPreview:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview"}}),t.cmHopperBlack=e(t.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_black/describe"}}),t.cmHopperFinal=e(t.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_final/describe"}}),t.cmHopperHistory=e(t.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_history/describe"}}),t.cmCustomField=e(t.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/custom_fields/describe"}}),t.cmList=e(t.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/lists/describe"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:t.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/contacts/csv"},addCustomField:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/users"}}),t.action=e(t.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"actions/describe"}}),t.automation=e(t.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"automations/describe"},addConditions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/actions"}}),t.cannedAnswer=e(t.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"canned_answers/describe"}}),t.condition=e(t.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"conditions/describe"}}),t.interval=e(t.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"intervals/describe"},addInterval:{isArray:!1,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:t.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals/create_many"}}),t.pause=e(t.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"pauses/describe"}}),t.cdr=e(t.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cdr/describe"}}),t.voiceQueuesLog=e(t.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voiceQueuesLog/describe"}}),t.schedule=e(t.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"schedules/describe"}}),t.sound=e(t.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sounds/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"sounds/:id/download"},delete:{isArray:!1,method:"delete",url:t.baseUrl+"sounds/:id"}}),t.tag=e(t.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"tags/describe"}}),t.template=e(t.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"templates/describe"}}),t.trigger=e(t.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"triggers/describe"},addAllCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/actions"}}),t.variable=e(t.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"variables/describe"}}),t.integration=e(t.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/describe"}}),t.integrationReport=e(t.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/reports/describe"}}),t.analyticCustomReport=e(t.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/custom_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/query"}}),t.analyticDefaultReport=e(t.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/default_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/query"}}),t.analyticExtractedReport=e(t.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/extracted_reports/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"analytics/extracted_reports/:id/download"}}),t.analyticMetric=e(t.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/metrics/describe"}}),t.analyticFieldReport=e(t.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/field_reports/describe"},bulkCreate:{method:"post",url:t.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:t.baseUrl+"analytics/field_reports/:id/create_many"}}),t.analyticTreeReport=e(t.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/tree_reports/describe"}}),t.intSalesforceAccount=e(t.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),t.intSalesforceConfiguration=e(t.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),t.intSalesforceField=e(t.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/fields/describe"}}),t.intSugarcrmAccount=e(t.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),t.intSugarcrmConfiguration=e(t.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),t.intSugarcrmField=e(t.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/fields/describe"}}),t.intDeskAccount=e(t.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/accounts/:id/fields"}}),t.intDeskConfiguration=e(t.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/desk/configurations/:id/tags"}}),t.intDeskField=e(t.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/desk/fields/describe"}}),t.intZohoAccount=e(t.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/accounts/:id/fields"}}),t.intZohoConfiguration=e(t.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),t.intZohoField=e(t.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zoho/fields/describe"}}),t.intZendeskAccount=e(t.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),t.intZendeskConfiguration=e(t.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),t.intZendeskField=e(t.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/fields/describe"}}),t.intFreshdeskAccount=e(t.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),t.intFreshdeskConfiguration=e(t.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),t.intFreshdeskField=e(t.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/fields/describe"}}),t.network=e(t.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"networks/describe"}}),t.chatReport=e(t.baseUrl+"chat/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/describe"}}),t.chatSessionReport=e(t.baseUrl+"chat/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/session/reports/describe"}}),t.faxReport=e(t.baseUrl+"fax/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/describe"}}),t.jscriptyAnswerReport=e(t.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/answers/reports/describe"}}),t.jscriptyQuestionReport=e(t.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/questions/reports/describe"}}),t.jscriptySessionReport=e(t.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/sessions/reports/describe"}}),t.smsReport=e(t.baseUrl+"sms/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/describe"}}),t.smsSessionReport=e(t.baseUrl+"sms/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/session/reports/describe"}}),t.squareReport=e(t.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/reports/describe"}}),t.squareReportDetail=e(t.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/details/reports/describe"}}),t.jscriptyProject=e(t.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/projects/describe"},getSessions:{isArray:!1,method:"get",url:t.baseUrl+"jscripty/projects/:id/sessions"}}),t.setting=e(t.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"settings/describe"},addLogo:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo_login"}}),t.squareOdbc=e(t.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/odbc/describe"},test:{isArray:!1,method:"get",url:t.baseUrl+"square/odbc/:id/test"}}),t.squareProject=e(t.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/projects/describe"}}),t.squareRecording=e(t.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"square/recordings/:id/download"}}),t.team=e(t.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"teams/describe"},getQueues:{isArray:!0,method:"get",url:t.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"teams/:id/users"}}),t.license=e(t.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"license/describe"}}),t.campaign=e(t.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"campaigns/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/blacklists"}}),t.migration=e(t.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"migrations/describe"}}),t}e.$inject=["$resource"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,t,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.useSanitizeValueStrategy("sanitize"),t.decorator("taOptions",["$delegate",function(e){return e.toolbar=[["bold","italics","underline","ul","ol","quote","justifyLeft","justifyCenter","justifyRight","html","insertImage","insertLink"]],e.classes={focussed:"focussed",toolbar:"ta-toolbar",toolbarGroup:"ta-group",toolbarButton:"md-button",toolbarButtonActive:"active",disabled:"",textEditor:"form-control",htmlEditor:"form-control"},e}]),t.decorator("taTools",["$delegate",function(e){return e.quote.iconclass="icon-format-quote",e.bold.iconclass="icon-format-bold",e.italics.iconclass="icon-format-italic",e.underline.iconclass="icon-format-underline",e.strikeThrough.iconclass="icon-format-strikethrough",e.ul.iconclass="icon-format-list-bulleted",e.ol.iconclass="icon-format-list-numbers",e.redo.iconclass="icon-redo",e.undo.iconclass="icon-undo",e.clear.iconclass="icon-close-circle-outline",e.justifyLeft.iconclass="icon-format-align-left",e.justifyCenter.iconclass="icon-format-align-center",e.justifyRight.iconclass="icon-format-align-right",e.justifyFull.iconclass="icon-format-align-justify",e.indent.iconclass="icon-format-indent-increase",e.outdent.iconclass="icon-format-indent-decrease",e.html.iconclass="icon-code-tags",e.insertImage.iconclass="icon-file-image-box",e.insertLink.iconclass="icon-link",e.insertVideo.iconclass="icon-filmstrip",e}])}e.$inject=["$translateProvider","$provide","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e){this.themes=e.themes}e.$inject=["motionTheming"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(){return function(e,t,n){var a,i={},o=0;for(a in e)if(o>=n&&(i[a]=e[a]),++o===n+t)break;return i}}function t(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],t=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],n=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];return{getMonthName:function(){return e},getMonthNumber:function(){return t},getDaysOfWeek:function(){return n},getDaysOfMonth:function(){return a}}}angular.module("motion").filter("limitObjectFromTo",e).factory("IndexFactory",t)}(),function(){"use strict";function e(e,t,n){n.html5Mode(!0),t.otherwise("/dashboards/general");var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",o={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:o[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:o[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:o[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver",function(e){return e.resolve("setting@get",{id:1})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,t,n){var a=e.$on("$stateChangeStart",function(){e.loadingProgress=!0}),i=e.$on("$stateChangeSuccess",function(){t(function(){e.loadingProgress=!1})});e.state=n,e.$on("$destroy",function(){a(),i()})}e.$inject=["$rootScope","$timeout","$state"],angular.module("motion").run(e)}(),function(){"use strict";function e(e,t){function n(){a=io({query:"id="+t.getCurrentUser().id,transports:["websocket","polling"]})}var a;return{connect:n,on:function(t,i){i=i||angular.noop,a||n(),a.on(t,function(){var t=arguments;e.$apply(function(){i.apply(a,t)})})},emit:function(t,i,o){o=o||angular.noop,a||n(),a.emit(t,i,function(){var t=arguments;e.$apply(function(){o.apply(a,t)})})},removeAllListeners:function(e){a||n(),a.removeAllListeners(e)},disconnect:function(){a||n(),a.disconnect()}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){i.isLoggedIn()&&e.go("app.dashboards.general")}function s(){return i.login(l.form).then(function(){return e.go("app.dashboards.general")}).catch(function(e){l.message=e.message})}function r(e){t.location.href="/api/auth/"+e}var l=this;l.login=s,l.loginOauth=r,l.$onInit=o}e.$inject=["$state","$window","$cookies","api","Auth"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticExtractedReport.save(p.extractedReport).$promise.then(function(e){p.extractedReports.unshift(e.toJSON()),i.success({title:"ExtractedReport properly created",msg:p.extractedReport.name?p.extractedReport.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var t=0;t"+(e.name||"extractedReport")+" will be deleted.").ariaLabel("delete extractedReport").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.extractedReports=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.analyticExtractedReport.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:t,extractedReports:T.extractedReports.rows}})}function b(e){l.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(T.extractedReports.rows,{id:e.id}),T.extractedReports.count-=1,T.extractedReports.rows.length||T.getExtractedReports(),c.success({title:"ExtractedReport deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedExtractedReports);return T.selectedExtractedReports=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent(""+T.selectedExtractedReports.length+" selected will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedExtractedReports.forEach(function(e){b(e)}),T.selectedExtractedReports=[]})}function y(){T.selectedExtractedReports=[]}function A(){T.selectedExtractedReports=T.extractedReports.rows}var T=this;T.extractedReports=r||{count:0,rows:[]},T.table="extractedReports",T.listOrder="",T.listOrderAsc=null,T.selectedExtractedReports=[],T.query={fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,page:1},T.editdialog=m,T.downloadfile=u,T.deleteconfirm=p,T.success=g,T.getExtractedReports=h,T.createOrEditExtractedReport=v,T.deleteExtractedReport=b,T.exportSelectedExtractedReports=f,T.deleteSelectedExtractedReports=E,T.deselectExtractedReports=y,T.selectAllExtractedReports=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","extractedReports","api","msUtils","toasty"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticMetric.save(p.metric).$promise.then(function(e){p.metrics.unshift(e.toJSON()),i.success({title:"Metric properly created",msg:p.metric.name?p.metric.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var t=0;t"+(e.name||"metric")+" will be deleted.").ariaLabel("delete metric").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.metrics=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.analyticMetric.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:t,metrics:A.metrics.rows}})}function v(e){l.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(A.metrics.rows,{id:e.id}),A.metrics.count-=1,A.metrics.rows.length||A.getMetrics(),c.success({title:"Metric deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticMetric",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedMetrics);return A.selectedMetrics=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent(""+A.selectedMetrics.length+" selected will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMetrics.forEach(function(e){v(e)}),A.selectedMetrics=[]})}function E(){A.selectedMetrics=[]}function y(){A.selectedMetrics=A.metrics.rows}var A=this;A.metrics=r||{count:0,rows:[]},A.table="metrics",A.listOrder="",A.listOrderAsc=null,A.selectedMetrics=[],A.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},A.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Integration Report",value:"'report_integration'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Member Report",value:"'report_member'"},{option:"Queue Report",value:"'report_queue'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getMetrics=g,A.createOrEditMetric=h,A.deleteMetric=v,A.exportSelectedMetrics=b,A.deleteSelectedMetrics=f,A.deselectMetrics=E,A.selectAllMetrics=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","metrics","api","msUtils","toasty"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){c.errors=[];var e;i.analyticCustomReport.save({name:c.report.name,description:c.report.description,table:c.report.table,conditions:c.report.conditions,parent:c.currentNode.id}).$promise.then(function(t){e=t,n.success({title:"Report properly copied!",msg:c.report.name?c.report.name+" has been copied!":""});var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=c.report.id,i.analyticFieldReport.get(a).$promise}).then(function(t){var t=_.map(t.rows,function(t){return _.extend({},t,{CustomReportId:e.id})});return i.analyticFieldReport.bulkCreate(t).$promise}).then(function(){n.success({title:"Fields copied!",msg:"Fields has been copied!"}),d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(e,t){c.currentNode=t.node}function d(){t.hide()}var c=this;c.errors=[],c.report=angular.copy(a),c.report.name+="-copy",c.treeCustomData=s,c.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},c.treeCustomEvents={select_node:l},c.copyReport=r,c.closeDialog=d}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],o[s].save(u.report).$promise.then(function(e){u.reports.unshift(e),n.success({title:"Report properly created",msg:u.report.name?u.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var t=0;t"+e.field+" will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){E.reportFields=e||{count:0,rows:[]}}function p(){E.promise=s.analyticFieldReport.get(E.query,u).$promise}function g(e,t){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:E.report,reportField:t,reportFields:E.reportFields.rows,metrics:E.metrics,columns:E.columns}})}function h(e){s.analyticFieldReport.delete({id:e.id}).$promise.then(function(){E.selectedReportFields=[],_.remove(E.reportFields.rows,{id:e.id}),E.reportFields.count-=1,E.reportFields.rows.length||E.getReportFields(),o.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+E.selectedReportFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){E.selectedReportFields.forEach(function(e){h(e)}),E.selectedReportFields=[]})}function b(e){var t=_.find(E.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")}function f(e){var t=_.find(E.metrics,{id:e});return t?t.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")}var E=this;E.report={},E.reportFields={count:0,rows:[]},E.functions=_.keyBy(l.getFunctions,"value"),E.formats=_.keyBy(l.getFormats,"value"),E.groupBy=_.keyBy(l.getGroupBy,"value"),E.orderBy=_.keyBy(l.getOrderBy,"value"),E.selectedReportFields=[],E.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},E.sortableTable={animation:100,onSort:function(e){s.analyticFieldReport.addFields({id:E.report.id},e.models).$promise.then(function(e){E.reportFields.rows=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},E.init=c,E.deleteConfirm=m,E.success=u,E.getReportFields=p,E.createOrEditReportField=g,E.deleteReportField=h,E.deleteSelectedReportFields=v,E.getMetricName=b,E.getMetricValue=f;var y=!0;t.$watch("vm_rf.query.filter",function(e,t){y?n(function(){y=!1}):E.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";function e(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}}angular.module("app.analytics").factory("sqlUtil",e)}(),function(){"use strict";function e(e,t,n,a){function i(){e.go("app.analytics.reports")}function o(){l.report.conditions=angular.toJson(l.report.condition),n.analyticCustomReport.update({id:l.report.id},l.report).$promise.then(function(){t.success({title:"Report updated!",msg:l.report.name?l.report.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(){l.columns=[],l.rows=[],l.error=!1,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:l.report.id}).$promise.then(function(e){return l.columns=e?e.rows:[],n.analyticCustomReport.preview({id:l.report.id}).$promise}).then(function(e){l.rows=e}).catch(function(e){console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}function r(){return l.queryResult="Loading...",n.analyticCustomReport.query({id:l.report.id}).$promise.then(function(e){l.queryResult=e.sql}).catch(function(e){l.queryResult="",console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}var l=this;l.report=a||{},l.selectedTab=e.params.tab||0,l.gotoReports=i,l.saveReport=o,l.previewReport=s,l.queryReport=r}e.$inject=["$state","toasty","api","report"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){t.hide()}var r=this;r.errors=[],r.report=angular.copy(a),r.closeDialog=s,function(){r.columns=[],r.rows=[],r.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(e).$promise.then(function(e){return r.columns=e?e.rows:[],i[o].preview({id:r.report.id}).$promise}).then(function(e){r.rows=e}).catch(function(e){console.log(e),r.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(r.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,t){i.go("app.analytics.reports.edit",{id:e.id})}function m(e,t){a.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName,treeCustomData:N.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){N.treeCustomInstance.jstree(!0).refresh()})}function u(e,t){a.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function p(e,t){a.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName,currentPath:N.currentPath}})}function g(e,t){var n;r.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(t){n=_.keyBy(t.rows,"id");var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===N.apiName?"CustomReportId":"DefaultReportId"]=e.id,r.analyticFieldReport.get(a).$promise}).then(function(t){for(var a=0;a"+e.name+" will be deleted.").ariaLabel("delete report").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function v(e){N.reports=e||{count:0,rows:[]}}function b(){N.query.offset=(N.query.page-1)*N.query.limit,N.apiName&&(N.promise=r[N.apiName].get(N.query,v).$promise)}function f(e,t){a.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:t,reports:N.reports.rows,apiName:N.apiName,currentNode:N.currentNode}})}function E(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),r.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,parent:N.currentNode.id}).$promise.then(function(e){N.reports.rows.unshift(e),d.success({title:"Report saved!",msg:e.name?e.name+" has been saved!":""});var n=_.map(t.fields,function(t){return _.extend({},t,{CustomReportId:e.id})});return r.analyticFieldReport.bulkCreate(n).$promise}).then(function(e){d.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),d.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else d.error({title:"Format Error",msg:"Please use only json files"})}function y(e){N.apiName&&r[N.apiName].delete({id:e.id}).$promise.then(function(){_.remove(N.reports.rows,{id:e.id}),N.reports.count-=1,N.reports.rows.length||N.getReports(),d.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(N.selectedReports);return N.selectedReports=[],e}function T(e){var t=a.confirm().title("Are you sure want to delete the selected reports?").htmlContent(""+N.selectedReports.length+" selected will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){N.selectedReports.forEach(function(e){y(e)}),N.selectedReports=[]})}function C(){N.selectedReports=[]}function S(){N.selectedReports=N.reports.rows}function x(e,t){N.treeDefaultInstance.jstree(!0).deselect_all(),N.treeDefaultInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!0,N.currentPath=N.treeCustomInstance.jstree(!0).get_path(N.currentNode).join("/ "),N.apiName="analyticCustomReport",N.query.parent=t.node.id,b()}function O(e,t){N.treeCustomInstance.jstree(!0).deselect_all(),N.treeCustomInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!1,N.currentPath=N.treeDefaultInstance.jstree(!0).get_path(N.currentNode).join("/ "),N.apiName="analyticDefaultReport",N.query.parent=t.node.id,b()}function R(e,t){r.analyticTreeReport.update({id:2,tree:angular.toJson(N.treeCustomInstance.jstree(!0).get_json("#"))}).$promise.then(function(){d.success({title:"Node Updated",msg:t.node.text?t.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function I(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(e){return{create:{label:s.instant("ANALYTICS.CREATE"),action:function(){e=N.treeCustomInstance.jstree(!0).create_node(e),N.treeCustomInstance.jstree(!0).edit(e)}},rename:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.RENAME"),action:function(){N.treeCustomInstance.jstree(!0).edit(e)}},remove:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.REMOVE"),action:function(){var t=a.confirm().title("Are you sure want to delete the node?").htmlContent(""+(e.text?e.text:"Node")+" and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");a.show(t).then(function(){N.treeCustomInstance.jstree(!0).delete_node(e)})}}}}}}}function w(e){return e?{create_node:R,rename_node:R,move_node:R,delete_node:R,select_node:x}:{select_node:O}}var N=this;N.reports={count:0,rows:[]},N.selectedReports=[],N.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions",limit:10,page:1,sort:"-updatedAt"},N.apiName=null,N.currentPath="",N.customTree=!0,N.editstate=c,N.copydialog=m,N.previewdialog=u,N.rundialog=p,N.downloadfile=g,N.deleteconfirm=h,N.success=v,N.getReports=b,N.createOrEditReport=f,N.importReport=E,N.deleteReport=y,N.exportSelectedReports=A,N.deleteSelectedReports=T,N.deselectReports=C,N.selectAllReports=S,N.treeDefaultData=l.rows[0]?angular.fromJson(l.rows[0].tree):[],N.treeCustomData=l.rows[1]?angular.fromJson(l.rows[1].tree):[],N.treeDefaultConfig=I(!1),N.treeCustomConfig=I(!0),N.treeDefaultEvents=w(!1),N.treeCustomEvents=w(!0);var D=!0,L=1;e.$watch("vm.query.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.query.page),e!==n&&(N.query.page=1),e||(N.query.page=L),N.getReports())}),e.$watch("vm.search",function(e,t){N.treeDefaultInstance&&N.treeDefaultInstance.jstree(!0).search(e),N.treeCustomInstance&&N.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","api","treeReports","toasty"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){m.export={id:m.report.id,name:m.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xls",fullPath:r?r+"/"+m.report.name:m.report.name}}function d(e){m.errors=[],m.exportDate=_.assign({},m.export,{startDate:moment(m.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(m.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),"web"===m.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(s.body),targetEvent:e,skipHide:!0,locals:{apiName:o,exportDate:m.exportDate},resolve:{columns:["apiResolver",function(e){var t={fields:"field,alias",nolimit:!0};return t["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=m.report.id,e.resolve("analyticFieldReport@get",t)}],results:["apiResolver",function(e){return e.resolve(o+"@run",m.exportDate)}]}}):i[o].run(m.exportDate).$promise.then(function(e){n.success({title:"Report properly run!",msg:m.report.name?m.report.name+" has been run!":""}),c()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){t.hide()}var m=this;m.errors=[],m.report=angular.copy(a),m.export={},m.runReport=d,m.closeDialog=c,m.refreshDate=l,l()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){s.offset=(c.query.page-1)*c.query.limit,s.limit=c.query.limit,c.promise=n[o].run(s,l).$promise}function l(e){c.results=e||{count:0,rows:[]}}function d(){e.hide()}var c=this;c.errors=[],c.columns=a?a.rows:[],c.results=i||{rows:[],count:0},c.query={limit:10,page:1},c.closeDialog=d,c.getResults=r}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareOdbc.save(p.odbc).$promise.then(function(e){p.odbcs.unshift(e.toJSON()),i.success({title:"Odbc properly created",msg:p.odbc.name?p.odbc.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var t=0;t"+(e.name||"odbc")+" will be deleted.").ariaLabel("delete odbc").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.odbcs=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.squareOdbc.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:t,odbcs:T.odbcs.rows}})}function b(e){l.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(T.odbcs.rows,{id:e.id}),T.odbcs.count-=1,T.odbcs.rows.length||T.getODBC(),c.success({title:"Odbc deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareOdbc",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedODBC);return T.selectedODBC=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent(""+T.selectedODBC.length+" selected will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedODBC.forEach(function(e){b(e)}),T.selectedODBC=[]})}function y(){T.selectedODBC=[]}function A(){T.selectedODBC=T.odbcs.rows}var T=this;T.odbcs=r||{count:0,rows:[]},T.table="odbcs",T.listOrder="",T.listOrderAsc=null,T.selectedODBC=[],T.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},T.editdialog=m,T.testtestOdbc=u,T.deleteconfirm=p,T.success=g,T.getODBC=h,T.createOrEditOdbc=v,T.deleteOdbc=b,T.exportSelectedODBC=f,T.deleteSelectedODBC=E,T.deselectODBC=y,T.selectAllODBC=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","odbcs","api","msUtils","toasty"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],i.squareProject.save(u.project).$promise.then(function(e){u.projects.unshift(e),t.success({title:"Project properly created",msg:u.project.name?u.project.name+" has been created!":""}),m(e),u.openFromEditor&&(u.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):r.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n5242880&&i.errors.push({message:"The file is too big. Max 5MB files are supported!"}),!i.errors.length){var t=new FileReader;t.onload=function(e){a(e.target.result)},t.readAsText(e.file)}}function a(n){n?(t(n),e.hide(n)):e.hide()}var i=this;i.errors=[],i.ngFlowOptions={chunkSize:5242880,maxChunkRetries:1,singleFile:!0,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},i.ngFlow={flow:{}},i.dropping=!1,i.closeDialog=a,i.fileAdded=n}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],a.squareProject.update({id:s.project.id},{notes:s.project.notes,description:s.project.description}).$promise.then(function(n){t.success({title:"Project updated!",msg:s.project.name?s.project.name+" has been updated!":""}),e.hide(n)}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}function o(){e.hide()}var s=this;s.project=_.clone(n),s.closeDialog=o,s.save=i}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){s.errors=[],t?(e.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):e.hide()}var s=this;s.projects=n,s.id="",s.newWindow=!0,s.closeDialog=o}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){delete d.project.id,i.squareProject.save(d.project).$promise.then(function(n){t.success({title:"Project properly created",msg:d.project.name?d.project.name+" has been created!":""}),e.hide(n),d.newWindow?o.open("/callysquare/projects/"+n.id,"_blank"):s.go("app.callysquare.projects.edit",{id:n.id})}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}function l(){e.hide()}var d=this;d.project=angular.copy(n),d.project.name+="_new",d.project.preproduction=a,d.newWindow=!0,d.closeDialog=l,d.save=r}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f){function E(){new EditorUi(N,new Editor,document.getElementById("geEditor")).openString(N.project.preproduction,N.project.name,N.project)}function y(e,a){n.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:s.rows||[],trunks:r.rows||[],queues:l.rows||[],sounds:d.rows||[],variables:c.rows||[],databases:m.rows||[],contexts:u.rows||[],projects:p.rows||[],intervals:g.rows||[],mailAccounts:h.rows||[],templates:v.rows||[],lists:b.rows||[],cell:e,saveCallback:a}})}function A(e){n.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:p.rows,openFromEditor:!0}})}function T(){n.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:p.rows||[]}})}function C(e){n.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:N.project,currentXML:e}}).then(function(e){e&&p.rows.push(e)})}function S(e){n.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:e,variables:c.rows}})}function x(e){n.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:N.project}}).then(function(e){e&&_.merge(N.project,e)})}function O(e,a){n.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:a}}).then(function(e){e&&(N.project.preproduction=e)})}function R(e){n.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(N.project.preproduction=e)})}function I(e,t){var n={preproduction:e};t&&(n.production=e),i.squareProject.update({id:N.project.id},n).$promise.then(function(e){a.success({title:"Project "+(t?"published":"saved")+"!",msg:N.project.name?N.project.name+" has been "+(t?"published":"saved")+"!":""}),N.project.preproduction=e.preproduction}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function w(){e.go("app.callysquare.projects")}var N=this;N.project=o||{},N.saveOrPublishProject=I,N.$onInit=E,N.openDialog=y,N.newProject=A,N.openProject=T,N.saveProjectAs=C,N.newVariable=S,N.updateInfo=x,N.editXML=O,N.importXML=R,N.gotoProjects=w}e.$inject=["$state","$document","$mdDialog","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","$window"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,n){t.go("app.callysquare.projects.edit",{id:e.id})}function m(e,t){var n=s.confirm().title("Are you sure want to delete the project?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){y.projects=e||{count:0,rows:[]}}function p(){y.query.offset=y.query.page-1,y.promise=i.squareProject.get(y.query,u).$promise}function g(e,t){s.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:t,projects:y.projects.rows,openFromEditor:null}})}function h(e){i.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(y.projects.rows,{id:e.id}),y.projects.count-=1,y.projects.rows.length||y.getProjects(),d.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){var e=angular.copy(y.selectedProjects);return y.selectedProjects=[],e}function b(e){var t=s.confirm().title("Are you sure want to delete the selected projects?").htmlContent(""+y.selectedProjects.length+" selected will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).then(function(){y.selectedProjects.forEach(function(e){h(e)}),y.selectedProjects=[]})}function f(){y.selectedProjects=[]}function E(){y.selectedProjects=y.projects.rows}var y=this;y.projects=a||{count:0,rows:[]},y.table="projects",y.listOrder="",y.listOrderAsc=null,y.selectedProjects=[],y.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},y.editstate=c,y.deleteconfirm=m,y.success=u,y.getProjects=p,y.createOrEditProject=g,y.deleteProject=h,y.exportSelectedProjects=v,y.deleteSelectedProjects=b,y.deselectProjects=f,y.selectAllProjects=E;var A=!0,T=1;e.$watch("vm.query.filter",function(e,t){A?l(function(){A=!1}):(t||(T=y.query.page),e!==t&&(y.query.page=1),e||(y.query.page=T),y.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","api","msUtils","$mdDialog","$document","$timeout","toasty"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareRecording.save(p.squareRecording).$promise.then(function(e){p.squareRecordings.unshift(e.toJSON()),i.success({title:"SquareRecording properly created",msg:p.squareRecording.name?p.squareRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var t=0;t"+(e.name||"squareRecording")+" will be deleted.").ariaLabel("delete squareRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.squareRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.squareRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:t,squareRecordings:A.squareRecordings.rows}})}function v(e){l.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.squareRecordings.rows,{id:e.id}),A.squareRecordings.count-=1,A.squareRecordings.rows.length||A.getSquareRecordings(),c.success({title:"SquareRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedSquareRecordings);return A.selectedSquareRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent(""+A.selectedSquareRecordings.length+" selected will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSquareRecordings.forEach(function(e){v(e)}),A.selectedSquareRecordings=[]})}function E(){A.selectedSquareRecordings=[]}function y(){A.selectedSquareRecordings=A.squareRecordings.rows}var A=this;A.squareRecordings=r||{count:0,rows:[]},A.table="squareRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedSquareRecordings=[],A.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getSquareRecordings=g,A.createOrEditSquareRecording=h,A.deleteSquareRecording=v,A.exportSelectedSquareRecordings=b,A.deleteSelectedSquareRecordings=f,A.deselectSquareRecordings=E,A.selectAllSquareRecordings=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","squareRecordings","api","msUtils","toasty"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e})}function u(e,t){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:C.chatQueues?C.chatQueues.rows:[]}})}function p(e,t){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:C.chatQueues?C.chatQueues.rows:[],realtime:!1}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the chatQueue?").htmlContent(""+(e.name||"chatQueue")+" will be deleted.").ariaLabel("delete chatQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){C.chatQueues=e||{count:0,rows:[]}}function v(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.chatQueue.get(C.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:C.chatQueues.rows}})}function f(e){l.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(C.chatQueues.rows,{id:e.id}),C.chatQueues.count-=1,C.chatQueues.rows.length||C.getChatQueues(),c.success({title:"ChatQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=angular.copy(C.selectedChatQueues);return C.selectedChatQueues=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent(""+C.selectedChatQueues.length+" selected will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedChatQueues.forEach(function(e){f(e)}),C.selectedChatQueues=[]})}function A(){C.selectedChatQueues=[]}function T(){C.selectedChatQueues=C.chatQueues.rows}var C=this;C.chatQueues=r||{count:0,rows:[]},C.table="chatQueues",C.listOrder="",C.listOrderAsc=null,C.selectedChatQueues=[],C.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},C.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"Round Robin Memory",value:"'roundrobun'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.editstate=m,C.teamadddialog=u,C.agentadddialog=p,C.deleteconfirm=g,C.success=h,C.getChatQueues=v,C.createOrEditChatQueue=b,C.deleteChatQueue=f,C.exportSelectedChatQueues=E,C.deleteSelectedChatQueues=y,C.deselectChatQueues=A,C.selectAllChatQueues=T;var S=!0,x=1;e.$watch("vm.query.filter",function(e,t){S?s(function(){S=!1}):(t||(x=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=x),C.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatQueues","api","msUtils","toasty"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatQueue.save(p.chatQueue).$promise.then(function(e){p.chatQueues.unshift(e.toJSON()),i.success({title:"ChatQueue properly created",msg:p.chatQueue.name?p.chatQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var t=0;t":"",e}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.selectedItems=m.selectedItems,r.hasRole("admin")?n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:n.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){m.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o}function c(){e.hide()}var m=this;m.chatQueue=a,m.penalty=0,m.items=[],m.selectedItems=[],m.closeDialog=c,m.isVoiceRealtime=d,m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CHAT.ALL_AGENTS"),labelSelected:s.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,a){n.chatQueue[a?"removeAgents":"addAgents"]({id:m.chatQueue.id,ids:_.map(e,m.isVoiceRealtime()&&a?"UserId":"id"),penalty:m.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"ChatQueue properly "+(a?"removed":"added"),msg:"ChatQueue has been "+(a?"removed":"added")+"!"}),a||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.chatQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("CHAT.ALL_TEAMS"),labelSelected:i.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,a){n.chatQueue[a?"removeTeams":"addTeams"]({id:s.chatQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.chatQueue.getTeams({id:s.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","chatQueue","$translate"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e,t){n.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:m.chatQueues?m.chatQueues.rows:[]}})}function l(e,t){n.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:m.chatQueues?m.chatQueues.rows:[],realtime:!1}})}function d(){e.go("app.chat.chatQueues")}function c(){o.chatQueue.update({id:m.chatQueue.id},m.chatQueue).$promise.then(function(){i.success({title:"ChatQueue updated!",msg:m.chatQueue.name?m.chatQueue.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var m=this;m.location=t.protocol()+"://"+t.host(),m.chatQueue=e.params.chatQueue||s||{},m.selectedTab=e.params.tab||0,m.teamadddialog=r,m.agentadddialog=l,m.alert=i.info,m.gotoChatQueues=d,m.saveChatQueue=c}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","chatQueue"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatWebsite?").htmlContent(""+(e.name||"chatWebsite")+" will be deleted.").ariaLabel("delete chatWebsite").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatWebsites=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatWebsite.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:t,chatWebsites:A.chatWebsites.rows}})}function v(e){l.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(A.chatWebsites.rows,{id:e.id}),A.chatWebsites.count-=1,A.chatWebsites.rows.length||A.getChatWebsites(),c.success({title:"ChatWebsite deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedChatWebsites);return A.selectedChatWebsites=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent(""+A.selectedChatWebsites.length+" selected will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatWebsites.forEach(function(e){v(e)}),A.selectedChatWebsites=[]})}function E(){A.selectedChatWebsites=[]}function y(){A.selectedChatWebsites=A.chatWebsites.rows}var A=this;A.chatWebsites=r||{count:0,rows:[]},A.table="chatWebsites",A.listOrder="",A.listOrderAsc=null,A.selectedChatWebsites=[],A.query={fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,start_chat_button,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey",sort:"-updatedAt",limit:10,page:1},A.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatWebsites=g,A.createOrEditChatWebsite=h,A.deleteChatWebsite=v,A.exportSelectedChatWebsites=b,A.deleteSelectedChatWebsites=f,A.deselectChatWebsites=E,A.selectAllChatWebsites=y,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatWebsites","api","msUtils","toasty"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatWebsite.save(p.chatWebsite).$promise.then(function(e){p.chatWebsites.unshift(e.toJSON()),i.success({title:"ChatWebsite properly created",msg:p.chatWebsite.name?p.chatWebsite.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var t=0;t"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.chatWebsiteApps.rows.length){var o=g.chatWebsiteApps.rows[i]?g.chatWebsiteApps.rows[i]:g.chatWebsiteApps.rows[0];t.show({controller:"EditChatWebsiteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:o}}).then(function(e){e&&(e.id?g.chatWebsiteApps.rows[i]=e:g.chatWebsiteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.chatWebsiteApps.rows.length){var i=g.chatWebsiteApps.rows[a]?g.chatWebsiteApps.rows[a]:g.chatWebsiteApps.rows[0];t.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){for(var t=1,n=[],a=0;a"+g.selectedChatWebsiteApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedChatWebsiteApps.forEach(function(e){_.remove(g.chatWebsiteApps.rows,{id:e.id})}),g.selectedChatWebsiteApps=[],l()})}var g=this;g.chatWebsite={},g.chatWebsiteApps={count:0,rows:[]},g.selectedChatWebsiteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"goto",appType:"goto",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,defaultValue:300,required:!1,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,required:!0,defaultValue:30,param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getChatWebsiteApps=m,g.editChatWebsiteApp=s,g.editInterval=r,g.deleteChatWebsiteApp=u,g.deleteSelectedChatWebsiteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];s.agent.type&&"outbound"===s.agent.type.toLowerCase()&&"outboundDial"===s.agent.appType&&(s.agent.phone=s.agent.cutdigits?(s.agent.prefix||"")+"${EXTEN:"+s.agent.cutdigits+"}":(s.agent.prefix||"")+"${EXTEN}",s.agent.record="none"!==s.agent.recordingFormat,s.agent.recordingFormat=s.agent.record?s.agent.recordingFormat:null);var t=_.find(s.agents,{name:s.agent.agent});if(t&&(s.agent.UserId=t.id),s.agent.appType&&"custom"===s.agent.appType);else switch((s.agent.app||s.agent.appType).toLowerCase()){case"set":s.agent.appdata=s.agent.name+"="+s.agent.value;break;case"custom":break;default:e[0]=s.agent.agent,e[1]=s.agent.timeout,s.agent.appdata=e.join(",")}o(s.agent)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),s.agent=angular.copy(n),s.agent.appdata)switch(s.agent.appType?s.agent.appType.toLowerCase():s.agent.app.toLowerCase()){case"custom":break;case"set":s.agent.name=s.agent.appdata.split("=")[0],s.agent.value=s.agent.appdata.split("=")[1];break;case"agi":s.agent.project=s.agent.appdata;break;default:var r=s.agent.appdata.split(",");s.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else s.agent.timeout=30;s.agent.type&&"outbound"===s.agent.type.toLowerCase()&&"outbounddial"===s.agent.appType.toLowerCase()&&(s.agent.prefix=s.agent.phone?s.agent.phone.split("$")[0]:void 0,s.agent.callerId=s.agent.callerID?"CALLERID(all)="+s.agent.callerID:void 0,s.agent.recordingFormat=s.agent.record?s.agent.recordingFormat:"none"),s.saveChatWebsiteApp=i,s.closeDialog=o,a.user.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","api"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType&&"custom"===s.goto.appType);else switch((s.goto.app||s.goto.appType).toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveChatWebsiteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","chatWebsiteApp","api"],angular.module("app.chat").controller("EditChatWebsiteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.gotoif.type&&"outbound"===s.gotoif.type.toLowerCase()&&"outboundDial"===s.gotoif.appType&&(s.gotoif.phone=s.gotoif.cutdigits?(s.gotoif.prefix||"")+"${EXTEN:"+s.gotoif.cutdigits+"}":(s.gotoif.prefix||"")+"${EXTEN}",s.gotoif.record="none"!==s.gotoif.recordingFormat,s.gotoif.recordingFormat=s.gotoif.record?s.gotoif.recordingFormat:null),s.gotoif.appType&&"custom"===s.gotoif.appType);else switch((s.gotoif.app||s.gotoif.appType).toLowerCase()){case"set":s.gotoif.appdata=s.gotoif.name+"="+s.gotoif.value;break;case"custom":break;default:e[0]=s.gotoif.condition,e[1]=s.gotoif.truepriority,e[2]=s.gotoif.falsepriority,s.gotoif.appdata=e.join(",")}o(s.gotoif)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),s.gotoif=angular.copy(n),s.gotoif.appdata)switch(s.gotoif.appType?s.gotoif.appType.toLowerCase():s.gotoif.app.toLowerCase()){case"custom":break;case"set":s.gotoif.name=s.gotoif.appdata.split("=")[0],s.gotoif.value=s.gotoif.appdata.split("=")[1];break;case"agi":s.gotoif.project=s.gotoif.appdata;break;default:var r=s.gotoif.appdata.split(",");s.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}s.gotoif.type&&"outbound"===s.gotoif.type.toLowerCase()&&"outbounddial"===s.gotoif.appType.toLowerCase()&&(s.gotoif.prefix=s.gotoif.phone?s.gotoif.phone.split("$")[0]:void 0,s.gotoif.callerId=s.gotoif.callerID?"CALLERID(all)="+s.gotoif.callerID:void 0,s.gotoif.recordingFormat=s.gotoif.record?s.gotoif.recordingFormat:"none"),s.saveChatWebsiteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","chatWebsiteApp","api"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.noop.type&&"outbound"===s.noop.type.toLowerCase()&&"outboundDial"===s.noop.appType&&(s.noop.phone=s.noop.cutdigits?(s.noop.prefix||"")+"${EXTEN:"+s.noop.cutdigits+"}":(s.noop.prefix||"")+"${EXTEN}",s.noop.record="none"!==s.noop.recordingFormat,s.noop.recordingFormat=s.noop.record?s.noop.recordingFormat:null),s.noop.appType&&"custom"===s.noop.appType);else switch((s.noop.app||s.noop.appType).toLowerCase()){case"set":s.noop.appdata=s.noop.name+"="+s.noop.value;break;case"custom":break;default:e[0]=s.noop.value,s.noop.appdata=e.join(",")}o(s.noop)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),s.noop=angular.copy(n),s.noop.appdata)switch(s.noop.appType?s.noop.appType.toLowerCase():s.noop.app.toLowerCase()){case"custom":break;case"set":s.noop.name=s.noop.appdata.split("=")[0],s.noop.value=s.noop.appdata.split("=")[1];break;case"agi":s.noop.project=s.noop.appdata;break;default:var r=s.noop.appdata.split(",");s.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.noop.type&&"outbound"===s.noop.type.toLowerCase()&&"outbounddial"===s.noop.appType.toLowerCase()&&(s.noop.prefix=s.noop.phone?s.noop.phone.split("$")[0]:void 0,s.noop.callerId=s.noop.callerID?"CALLERID(all)="+s.noop.callerID:void 0,s.noop.recordingFormat=s.noop.record?s.noop.recordingFormat:"none"),s.saveChatWebsiteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","chatWebsiteApp","api"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null);var t=_.find(s.queues,{name:s.queue.queue});if(t&&(s.queue[_.capitalize("chat")+"QueueId"]=t.id),s.queue.appType&&"custom"===s.queue.appType);else switch((s.queue.app||s.queue.appType).toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.timeout,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="CHAT.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else s.queue.queue=300,s.queue.timeout=300;s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveChatWebsiteApp=i,s.closeDialog=o,a.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","chatWebsiteApp","api"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.chatWebsite=e,v.query.id=v.chatWebsite.id,v.query.ChatWebsiteId=v.chatWebsite.id,v.getChatWebsiteChatDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the chatDisposition?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.chatWebsite.getDispositions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatDisposition:t,chatDispositions:v.chatWebsiteChatDispositions.rows}})}function p(e){r.chatDisposition.delete({id:e.id}).$promise.then(function(){_.remove(v.chatWebsiteChatDispositions.rows,{id:e.id}),v.chatWebsiteChatDispositions.count-=1,v.chatWebsiteChatDispositions.rows.length||v.getChatWebsiteChatDispositions(),s.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedChatWebsiteChatDispositions);return v.selectedChatWebsiteChatDispositions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent(""+v.selectedChatWebsiteChatDispositions.length+" selected will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatWebsiteChatDispositions.forEach(function(e){p(e)}),v.selectedChatWebsiteChatDispositions=[]})}var v=this;v.chatWebsite={},v.chatWebsiteChatDispositions={count:0,rows:[]},v.selectedChatWebsiteChatDispositions=[],v.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getChatWebsiteChatDispositions=m,v.createOrEditChatWebsiteChatDisposition=u,v.exportSelectedChatWebsiteChatDispositions=g,v.deleteChatWebsiteChatDisposition=p,v.deleteSelectedChatWebsiteChatDispositions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getChatWebsiteChatDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.chat").controller("ChatWebsiteChatDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatDisposition.save(p.chatDisposition).$promise.then(function(e){p.chatDispositions.unshift(e.toJSON()),i.success({title:"ChatDisposition properly created",msg:p.chatDisposition.name?p.chatDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.save"}];for(var t=0;t<\/script> \n\x3c!-- END Embedding Chat Script --\x3e'}var o=this;o.chatWebsite={},o.init=i}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.chat").controller("ChatWebsiteEmbeddingController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.chatWebsite=e,v.query.id=v.chatWebsite.id,v.getChatWebsiteInteractions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the interaction?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.chatWebsiteInteractions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.chatWebsite.getInteractions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interaction:t,interactions:v.chatWebsiteInteractions.rows}})}function p(e){r.interaction.delete({id:e.id}).$promise.then(function(){_.remove(v.chatWebsiteInteractions.rows,{id:e.id}),v.chatWebsiteInteractions.count-=1,v.chatWebsiteInteractions.rows.length||v.getChatWebsiteInteractions(),s.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedChatWebsiteInteractions);return v.selectedChatWebsiteInteractions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected interactions?").htmlContent(""+v.selectedChatWebsiteInteractions.length+" selected will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatWebsiteInteractions.forEach(function(e){p(e)}),v.selectedChatWebsiteInteractions=[]})}var v=this;v.chatWebsite={},v.chatWebsiteInteractions={count:0,rows:[]},v.selectedChatWebsiteInteractions=[],v.query={fields:"createdAt,updatedAt,id,createdAt,closedAt,ContactId,UserId,disposition,note",sort:"-createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getChatWebsiteInteractions=m,v.createOrEditChatWebsiteInteraction=u,v.exportSelectedChatWebsiteInteractions=g,v.deleteChatWebsiteInteraction=p,v.deleteSelectedChatWebsiteInteractions=h,r.user.get({fields:"id,name"}).$promise.then(function(e){v.users=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.get({fields:"id,firstName,lastName"}).$promise.then(function(e){v.contacts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontacts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getChatWebsiteInteractions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.chatWebsite=e,v.query.id=v.chatWebsite.id,v.query.ChatWebsiteId=v.chatWebsite.id,v.getChatWebsiteProactiveActions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.chatWebsite.getProactiveActions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatProactiveAction:t,proactive:v.chatWebsiteProactiveActions.rows}})}function p(e){r.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(v.chatWebsiteProactiveActions.rows,{id:e.id}),v.chatWebsiteProactiveActions.count-=1,v.chatWebsiteProactiveActions.rows.length||v.getChatWebsiteProactiveActions(),s.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedChatWebsiteProactiveActions);return v.selectedChatWebsiteProactiveActions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected proactive?").htmlContent(""+v.selectedChatWebsiteProactiveActions.length+" selected will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedChatWebsiteProactiveActions.forEach(function(e){p(e)}),v.selectedChatWebsiteProactiveActions=[]})}var v=this;v.chatWebsite={},v.chatWebsiteProactiveActions={count:0,rows:[]},v.selectedChatWebsiteProactiveActions=[],v.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout,createdAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.init=l,v.deleteConfirm=d,v.success=c,v.getChatWebsiteProactiveActions=m,v.createOrEditChatWebsiteChatProactiveAction=u,v.exportSelectedChatWebsiteProactiveActions=g,v.deleteChatWebsiteChatProactiveAction=p,v.deleteSelectedChatWebsiteProactiveActions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getChatWebsiteProactiveActions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatProactiveAction.save(p.chatProactiveAction).$promise.then(function(e){p.proactive.unshift(e.toJSON()),i.success({title:"ChatProactiveAction properly created",msg:p.chatProactiveAction.name?p.chatProactiveAction.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var t=0;t"+(e.name||"company")+" will be deleted.").ariaLabel("delete company").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.companies=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.cmCompany.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:t,companies:T.companies.rows}})}function b(e){l.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(T.companies.rows,{id:e.id}),T.companies.count-=1,T.companies.rows.length||T.getCompanies(),c.success({title:"Company deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedCompanies);return T.selectedCompanies=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent(""+T.selectedCompanies.length+" selected will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedCompanies.forEach(function(e){b(e)}),T.selectedCompanies=[]})}function y(){T.selectedCompanies=[]}function A(){T.selectedCompanies=T.companies.rows}var T=this;T.companies=r||{count:0,rows:[]},T.table="companies",T.listOrder="",T.listOrderAsc=null,T.selectedCompanies=[],T.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},T.editstate=m,T.gotocontactsgoto=u,T.deleteconfirm=p,T.success=g,T.getCompanies=h,T.createOrEditCompany=v,T.deleteCompany=b,T.exportSelectedCompanies=f,T.deleteSelectedCompanies=E,T.deselectCompanies=y,T.selectAllCompanies=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","companies","api","msUtils","toasty"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCompany.save(p.company).$promise.then(function(e){p.companies.unshift(e.toJSON()),i.success({title:"Company properly created",msg:p.company.name?p.company.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var t=0;t"+(e.firstName||e.email||e.phone||"Contact")+" will be deleted.").ariaLabel("delete contact").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){R(e)})}function T(e){L.contacts=e||{count:0,rows:[]}}function C(){L.query.offset=(L.query.page-1)*L.query.limit,L.promise=o.cmContact.get(L.query,T).$promise}function S(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth)),i.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:L.query.ListId||a.params.ListId,CompanyId:L.query.CompanyId||a.params.CompanyId,contact:n,contacts:L.contacts.rows},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name"})}]}})}function x(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:L.contacts.rows}})}function O(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:L.contacts.rows}})}function R(e){o.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(L.contacts.rows,{id:e.id}),L.contacts.count-=1,L.contacts.rows.length||L.getContacts(),u.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){u.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function I(){var e=angular.copy(L.selectedContacts);return L.selectedContacts=[],e}function w(e){var t=i.confirm().title("Are you sure want to delete the selected contacts?").htmlContent(""+L.selectedContacts.length+" selected will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){L.selectedContacts.forEach(function(e){R(e)}),L.selectedContacts=[]})}function N(){L.selectedContacts=[]}function D(){L.selectedContacts=L.contacts.rows}var L=this;p.getCurrentUser();L.contacts=s||{count:0,rows:[]},L.options={hidden:!1,hover:!1,isOpen:!1},L.table="cm_contacts",L.listOrder="",L.listOrderAsc=null,L.disableDialog=!0,L.selectedContacts=[],L.lists=r||{rows:[],count:0},L.companies=d||{rows:[],count:0},L.tags=m||{rows:[],count:0},L.listsMap=l,L.companiesMap=c,L.selectedTags=[],L.selectedList=null,L.selectedCompany=null,L.query=_.merge({sort:"-updatedAt",limit:10,offset:0,page:1},g),L.editdialog=y,L.deleteconfirm=A,L.success=T,L.getContacts=C,L.mergeContact=O,L.duplicateContact=x,L.createOrEditContact=S,L.deleteContact=R,L.exportSelectedContacts=I,L.deleteSelectedContacts=w,L.deselectContacts=N,L.selectAllContacts=D,L.createTag=f,L.createList=h,L.createCompany=b,L.uploadContacts=E,L.hasPermission=v,a.params.ListId&&(L.selectedList=a.params.ListId),a.params.CompanyId&&(L.selectedCompany=a.params.CompanyId),e.$watch("vm.options.isOpen",function(t){t?n(function(){e.tooltipVisible=L.options.isOpen},600):e.tooltipVisible=L.options.isOpen});var k=!0,M=1;e.$watch("vm.query.filter",function(e,t){k?n(function(){k=!1}):(t||(M=L.query.page),e!==t&&(L.query.page=1),e||(L.query.page=M),L.getContacts())},!0),e.$watch("vm.selectedList",function(e,t){e!==t&&(L.query.ListId=L.selectedList||void 0,L.getContacts())}),e.$watch("vm.selectedCompany",function(e,t){e!==t&&(L.query.CompanyId=L.selectedCompany||void 0,L.getContacts())}),e.$watch("vm.selectedTags",function(e,t){(e.length||t.length)&&(L.query.tags=L.selectedTags.length?L.selectedTags.join():void 0,L.getContacts())})}e.$inject=["$scope","$document","$timeout","$state","$mdDialog","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","$stateParams"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){h.errors=[],l.cmContact.save(h.contact).$promise.then(function(e){h.contacts.unshift(e),t.success({title:"Contact properly created",msg:h.contact.name?h.contact.name+" has been created!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n"+(e.phone||"hopper")+" will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function y(e){return s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(L.hoppers.rows,{id:e.id}),L.hoppers.count--,L.hoppers.rows.length||L.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){L.queryHopper.offset=(L.queryHopper.page-1)*L.queryHopper.limit,L.queryHopper.id=L.contact.id,L.promise=s.cmContact.getHoppers(L.queryHopper,b("hoppers")).$promise}function T(){L.queryFinal.offset=(L.queryFinal.page-1)*L.queryFinal.limit,L.queryFinal.id=L.contact.id,L.promise=s.cmContact.getHopperFinals(L.queryFinal,b("finals")).$promise}function C(){L.queryHistory.offset=(L.queryHistory.page-1)*L.queryHistory.limit,L.queryHistory.id=L.contact.id,L.promise=s.cmContact.getHopperHistories(L.queryHistory,b("histories")).$promise}function S(){L.queryJscriptySession.offset=(L.queryJscriptySession.page-1)*L.queryJscriptySession.limit,L.queryJscriptySession.id=L.contact.id,L.promise=s.cmContact.getJscriptySessions(L.queryJscriptySession,b("jscriptySessions")).$promise}function x(e){if(L.contact.ListId){var t=i.confirm().title("You are selecting the list number: "+L.contact.ListId).textContent("Warning! You won't select a different list for the contact "+L.contact.firstName||L.contact.lastName||L.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(L.onSelectListSuccess).catch(function(){L.contact.ListId=null})}}function O(){return s.cmList.getCustomFields({id:L.contact.ListId}).$promise.then(function(e){L.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})}function R(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[]},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:t})}]}})}function I(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:m.rows,contact:r}})}function w(){s.cmContact.update({id:L.contact.id},L.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:L.contact.name?L.contact.name+" has been updated!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function N(e){return new Date(e)}function D(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})}var L=this;L.contact=r||{},L.hoppers=l||{rows:[],count:0},L.finals=d||{rows:[],count:0},L.histories=c||{rows:[],count:0},L.companies=u||{rows:[],count:0},L.lists=p||{rows:[],count:0},L.customFields=g||{rows:[],count:0},L.tags=h||{rows:[],count:0},L.jscriptySessions=v||{rows:[],count:0},L.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},L.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},L.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},L.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},L.selectedTab=n.params.tab||0,L.gotoContacts=D,L.duplicateContact=I,L.saveContact=w,L.editCompany=R,L.onSelectList=x,L.onSelectListSuccess=O,L.getDateFromString=N,L.getHoppers=A,L.getFinals=T,L.getHistories=C,L.getJscriptySessions=S,L.deleteconfirm=E,L.editHopper=f;var k=!0,M=1;e.$watch("vm.queryHopper.filter",function(e,n){k?t(function(){k=!1}):(n||(M=L.queryHopper.page),e!==n&&(L.queryHopper.page=1),e||(L.queryHopper.page=M),L.getHoppers())}),e.$watch("vm.queryFinal.filter",function(e,n){k?t(function(){k=!1}):(n||(M=L.queryFinal.page),e!==n&&(L.queryFinal.page=1),e||(L.queryFinal.page=M),L.getFinals())}),e.$watch("vm.queryHistory.filter",function(e,n){k?t(function(){k=!1}):(n||(M=L.queryHistory.page),e!==n&&(L.queryHistory.page=1),e||(L.queryHistory.page=M),L.getHistories())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(t,a,o){_.remove(d.contacts,{id:a.id});var r=e.confirm().title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+o.id+" will be overwritten by the fields of the contact #"+a.id+".").targetEvent(t).ok("Ok").cancel("Cancel");e.show(r).then(function(){var e=a.id,t=o.id,r=_.mergeWith(a,o,function(e,t){return Array.isArray(t)&&!t.length?e:t||e});s.cmContact.update({id:r.id},r).$promise.then(function(){return s.cmContact.delete({id:e})}).then(function(){_.remove(i,{id:e}),_.merge(_.find(i,{id:t}),r),n.success({title:"Contact properly merged!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})})}function l(){e.hide()}var d=this;d.errors=[],d.title="CONTACTMANAGER.MERGE_CONTACT",d.contact=angular.copy(a),d.lists=o||[],d.change=function(){d.searchTerm?s.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:d.searchTerm,ListId:a.ListId}).$promise.then(function(e){d.contacts=e.rows}).catch(function(e){console.error(e)}):d.contacts=[]},d.showConfirm=r,d.closeDialog=l}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return d.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})}function m(){g.uploading=!0,u(g.contacts.length-1)}function u(e){if(e<0)return g.stop=!0,void(g.uploading=!1);for(var t=[];e>=0&&t.length"+(e.name||"globalCustomField")+" will be deleted.").ariaLabel("delete globalCustomField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.globalCustomFields=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cmCustomField.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:t,globalCustomFields:A.globalCustomFields.rows}})}function v(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(A.globalCustomFields.rows,{id:e.id}),A.globalCustomFields.count-=1,A.globalCustomFields.rows.length||A.getGlobalCustomFields(),c.success({title:"GlobalCustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCustomField",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedGlobalCustomFields);return A.selectedGlobalCustomFields=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent(""+A.selectedGlobalCustomFields.length+" selected will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedGlobalCustomFields.forEach(function(e){v(e)}),A.selectedGlobalCustomFields=[]})}function E(){A.selectedGlobalCustomFields=[]}function y(){A.selectedGlobalCustomFields=A.globalCustomFields.rows}var A=this;A.globalCustomFields=r||{count:0,rows:[]},A.table="globalCustomFields",A.listOrder="",A.listOrderAsc=null,A.selectedGlobalCustomFields=[],A.query={fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,page:1},A.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getGlobalCustomFields=g,A.createOrEditGlobalCustomField=h,A.deleteGlobalCustomField=v,A.exportSelectedGlobalCustomFields=b,A.deleteSelectedGlobalCustomFields=f,A.deselectGlobalCustomFields=E,A.selectAllGlobalCustomFields=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","globalCustomFields","api","msUtils","toasty"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.save(p.list).$promise.then(function(e){p.lists.unshift(e.toJSON()),i.success({title:"List properly created",msg:p.list.name?p.list.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var t=0;t":"",e}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.selectedItems=m.selectedItems,r.hasRole("admin")?n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:n.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){m.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o}function c(){e.hide()}var m=this;m.list=a,m.penalty=0,m.items=[],m.selectedItems=[],m.closeDialog=c,m.isVoiceRealtime=d,m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:s.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,a){n.cmList[a?"removeAgents":"addAgents"]({id:m.list.id,ids:_.map(e,m.isVoiceRealtime()&&a?"UserId":"id"),penalty:m.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"}),a||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:cmList.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","list","lists","realtime","$translate","Auth"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.list=e,v.query.id=v.list.id,v.query.ListId=v.list.id,v.getListCustomFields()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the customField?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete customField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.listCustomFields=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.cmList.getCustomFields(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customField:t,customFields:v.listCustomFields.rows}})}function p(e){r.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(v.listCustomFields.rows,{id:e.id}),v.listCustomFields.count-=1,v.listCustomFields.rows.length||v.getListCustomFields(),s.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedListCustomFields);return v.selectedListCustomFields=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected customFields?").htmlContent(""+v.selectedListCustomFields.length+" selected will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedListCustomFields.forEach(function(e){p(e)}),v.selectedListCustomFields=[]})}var v=this;v.list={},v.listCustomFields={count:0,rows:[]},v.selectedListCustomFields=[],v.query={fields:"createdAt,updatedAt,id,alias,type,values,required",limit:10,page:1},v.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.init=l,v.deleteConfirm=d,v.success=c,v.getListCustomFields=m,v.createOrEditListCustomField=u,v.exportSelectedListCustomFields=g,v.deleteListCustomField=p,v.deleteSelectedListCustomFields=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getListCustomFields())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(t){t.push({value:"New Item"}),e.customFieldForm.$pristine=!1}function d(t,n){t.splice(n,1),e.customFieldForm.$pristine=!1}function c(t){for(var n=t.length,a=0;a"+e.name+" will be deleted.").ariaLabel("delete voiceDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.listVoiceDispositions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.cmList.getDispositions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditVoiceDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceDisposition:t,voiceDispositions:v.listVoiceDispositions.rows}})}function p(e){r.voiceDisposition.delete({id:e.id}).$promise.then(function(){_.remove(v.listVoiceDispositions.rows,{id:e.id}),v.listVoiceDispositions.count-=1,v.listVoiceDispositions.rows.length||v.getListVoiceDispositions(),s.success({title:"VoiceDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedListVoiceDispositions);return v.selectedListVoiceDispositions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected voiceDispositions?").htmlContent(""+v.selectedListVoiceDispositions.length+" selected will be deleted.").ariaLabel("delete voiceDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedListVoiceDispositions.forEach(function(e){p(e)}),v.selectedListVoiceDispositions=[]})}var v=this;v.list={},v.listVoiceDispositions={count:0,rows:[]},v.selectedListVoiceDispositions=[],v.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getListVoiceDispositions=m,v.createOrEditListVoiceDisposition=u,v.exportSelectedListVoiceDispositions=g,v.deleteListVoiceDisposition=p,v.deleteSelectedListVoiceDispositions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getListVoiceDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListVoiceDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceDisposition.save(p.voiceDisposition).$promise.then(function(e){p.voiceDispositions.unshift(e.toJSON()),i.success({title:"VoiceDisposition properly created",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.save"}];for(var t=0;t"+(e.name||"list")+" will be deleted.").ariaLabel("delete list").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function v(e){S.lists=e||{count:0,rows:[]}}function b(){S.query.offset=(S.query.page-1)*S.query.limit,S.promise=l.cmList.get(S.query,v).$promise}function f(e,t){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:t,lists:S.lists.rows}})}function E(e){l.cmList.delete({id:e.id}).$promise.then(function(){_.remove(S.lists.rows,{id:e.id}),S.lists.count-=1,S.lists.rows.length||S.getLists(),c.success({title:"List deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){var e=angular.copy(S.selectedLists);return S.selectedLists=[],e}function A(e){var t=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent(""+S.selectedLists.length+" selected will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){S.selectedLists.forEach(function(e){E(e)}),S.selectedLists=[]})}function T(){S.selectedLists=[]}function C(){S.selectedLists=S.lists.rows}var S=this;S.lists=r||{count:0,rows:[]},S.table="lists",S.listOrder="",S.listOrderAsc=null,S.selectedLists=[],S.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},S.editstate=m,S.gotocontactsgoto=u,S.exportcsvcontactsexport=p,S.agentadddialog=g,S.deleteconfirm=h,S.success=v,S.getLists=b,S.createOrEditList=f,S.deleteList=E,S.exportSelectedLists=y,S.deleteSelectedLists=A,S.deselectLists=T,S.selectAllLists=C;var x=!0,O=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(O=S.query.page),e!==t&&(S.query.page=1),e||(S.query.page=O),S.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","lists","api","msUtils","toasty"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,t,n,a){var i=this;i.interval=void 0,i.items={rows:[],count:0},i.gridOptions={resizable:{enabled:!1},draggable:{enabled:!1}},function(){i.interval=t(function(){return a.dashboard.run({id:e.params.id})},1e3*(e.params.interval||5)),a.dashboard.getItems({id:e.params.id,fields:"id,type,sizeX,sizeY,row,col,data"}).$promise.then(function(e){i.items=e||{rows:[],count:0}}).catch(function(e){console.error(e)})}(),n.$on("$destroy",function(){i.interval&&t.cancel(i.interval)})}e.$inject=["$state","$interval","$scope","api"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E,y){function A(){a.localStorage.setItem("motion2.user:"+q.user.id,JSON.stringify({tabs:q.tabs,currentTab:q.currentTab}))}function T(e){var t=n.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");e.saved?C(e.id):n.show(t).then(function(){"interaction"===e.type&&n.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{channel:e.channel,interaction:e.interaction}}),C(e.id)}).catch(function(){"interaction"===e.type&&C(e.id)})}function C(e){q.tabs[e]&&(delete q.tabs[e],q.currentTab=0,A())}function S(e){e.id=_.random(1e10),e.openedAt=new Date,e.saved=!1,e.badges=0,q.tabs[e.id]=e,q.currentTab=e.id,A()}function x(e){return e===q.currentTab}function O(e){q.currentTab=e}function R(e){return _.find(q.tabs,function(t){return"interaction"===t.type&&t.interaction&&t.interaction.id==e.interactionId&&t.channel==e.channel})}function I(e){var t="";return e&&(e.firstName||e.lastName?(e.firstName&&(t+=e.firstName+" "),e.lastName&&(t+=e.lastName)):e.phone&&(t=e.phone)),t}function w(e){switch(e){case"chat":return"icon-hangouts";case"openchannel":return"icon-google-earth";default:return"icon-hangouts"}}function N(e,t){var n={type:"contact",title:e?I(e):i.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",contact:e,userLists:v,lists:b,companies:f,tags:E,calls:t?[t]:[]};if(e){var a=_.find(q.tabs,function(t){return"contact"===t.type&&t.contact&&t.contact.id==e.id});if(a)t&&(a.calls?_.find(a.calls,function(e){return e.uniqueid===t.uniqueid})||a.calls.push(t):a.calls=[t]),q.currentTab=a.id;else{if(e.ListId)return p.cmList.getDispositions({id:e.ListId}).$promise.then(function(t){return n.dispositions=t,p.cmList.getCustomFields({id:e.ListId}).$promise}).then(function(e){n.customFields=e}).catch($()).finally(function(){S(n)});S(n)}}else S(n)}function D(e,t){var n={type:"interaction",title:e?e.toUpperCase():"openchannel",icon:w(e),channel:e,interaction:t},a=_.find(q.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id});a?q.currentTab=a.id:S(n)}function L(e){e&&e.uri&&a.open(e.uri)}function k(e){e&&e.html&&S({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",html:e.html})}function M(e){if(e&&e.uniqueid){var t=q.alreadyExistsTab(e);if(t){if(p[e.channel+"Message"])return q.currentTab!==t.id&&(t.badges+=1),p[e.channel+"Message"].accept({id:e.id,UserId:q.user.id}).$promise.catch($())}else h.wait({title:e.title,msg:e.queue||"",showClose:!1,clickToClose:!1,timeout:!1,sound:!1,html:!0,shake:!1,onAdd:function(){q.notifications[e.uniqueid]=this.id},onAccept:function(){if(F(e),p[e.channel+"Message"])return p[e.channel+"Message"].accept({id:e.id,UserId:q.user.id}).$promise.then(function(e){D(e.channel,e.interaction),h.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch($())},onReject:function(){if(F(e),p[e.channel+"Message"])return p[e.channel+"Message"].reject({id:e.id,UserId:q.user.id}).$promise.then(function(e){h.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch($())}})}}function F(e){e&&e.uniqueid&&q.notifications[e.uniqueid]&&(h.clear(q.notifications[e.uniqueid]),delete q.notifications[e.uniqueid])}function P(e){var t={ListId:e.ListId,nolimit:!0,sort:"-updatedAt"},n=!1,a=e.calleridname&&""!==e.calleridname?e.calleridname:e.calleridnum||e.uniqueid,i=e.calleridnum;if(_.isNil(e["xmd-contactid"]))_.isNil(e.routeId)?t.phone=e.calleridnum:(t.phone=e.destcalleridnum,a=e.destcalleridname&&""!==e.destcalleridname?e.destcalleridname:e.destcalleridnum||e.uniqueid,i=e.destcalleridnum);else{if(!_.isNil(e["xmd-listid"])&&parseInt(e["xmd-listid"],10)!==e.ListId)return;t.id=e["xmd-contactid"],n=!0}return p.cmContact.get(t).$promise.then(function(t){n?t&&q.addContactTab(t,e):t.count&&t.rows[0]?q.addContactTab(t.rows[0],e):q.addContactTab({firstName:a,ListId:e.ListId,phone:i},e)}).catch($())}function U(e){return p.jscriptyProject.get({id:e.ProjectId}).$promise.then(function(t){if(t){if(!_.isUndefined(e["xmd-contactid"]))return p.cmContact.get({id:e["xmd-contactid"]}).$promise.then(function(n){S({type:"jscripty",title:t.name,icon:"icon-script",project:t,call:e,contact:n})}).catch($());S({type:"jscripty",title:t.name,icon:"icon-script",project:t,call:e})}}).catch($())}function $(){return function(e){if(404===e.status)h.warning({title:i.instant("DASHBOARDS.ATTENTION"),msg:i.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){q.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var t=0;t=0&&(R.tab.calls[t].disposedAt=new Date)}function T(n,a){R.newContact?s.error({title:"ATTENTION",msg:"Before to dispose, please save the contact!"}):e.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!1,locals:{dispositions:R.tab.dispositions,contact:R.contact,call:a}}).then(function(e){s.success({title:"Call properly disposed",msg:"Call has been disposed "+e})}).finally(function(){_.remove(R.tab.calls,function(e){return e.uniqueid==a.uniqueid})})}function C(e){return o.cmList.getCustomFields({id:e}).$promise.then(function(e){R.tab.customFields=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(e){return x("http://127.0.0.1:"+(R.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+e)}function x(e){return d.get(e).success(function(){s.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){s.error({title:"PhoneBar API Error",msg:c.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}function O(e){return new Date(e)}var R=this;R.user=r.getCurrentUser(),R.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},R.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},R.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},R.hoppers={rows:[],count:0},R.finals={rows:[],count:0},R.histories={rows:[],count:0},R.addNewContact=u,R.saveContact=p,R.getCustomFields=C,R.call=S,R.disposeCall=T,R.duplicateContact=E,R.mergeContact=y,R.getDateFromString=O,R.getHoppers=v,R.getFinals=b,R.getHistories=f,R.getContactWithCF=h,R.init=m,l.on("voice_queue_channel:remove",A),l.on("voice_outbound_channel:remove",A),i.$watch("currentTab",function(e,t){1===R.currentTab&&(R.getHoppers(),R.getFinals(),R.getHistories())});var I=!0,w=1;i.$watch("queryHopper.filter",function(e,t){I?a(function(){I=!1}):(t||(w=R.queryHopper.page),e!==t&&(R.queryHopper.page=1),e||(R.queryHopper.page=w),R.getHoppers())}),i.$watch("queryFinal.filter",function(e,t){I?a(function(){I=!1}):(t||(w=R.queryFinal.page),e!==t&&(R.queryFinal.page=1),e||(R.queryFinal.page=w),R.getFinals())}),i.$watch("queryHistory.filter",function(e,t){I?a(function(){I=!1}):(t||(w=R.queryHistory.page),e!==t&&(R.queryHistory.page=1),e||(R.queryHistory.page=w),R.getHistories())}),i.$on("$destroy",function(){l.removeAllListeners("voice_queue_channel:remove"),l.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$mdDialog","$document","$window","$timeout","$scope","api","toasty","Auth","socket","$http","$translate"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(){var e=y.choice.toLowerCase();return{id:y.call.uniqueid,disposition:y.choice,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e}}function g(){return l.voiceCallReport.update({id:y.call.uniqueid,userDisposition:y.choice,UserId:u.getCurrentUser().id,ContactId:y.contact.id}).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){return l.cmHopperFinal.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){return l.cmHopperHistory.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(e){if(e)return l.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){for(var t=[],n=0;n=0?A.messages.rows.splice(n,1,e):(A.messages.rows.push(e),b())}var A=this;A.user=r.getCurrentUser(),A.init=c,A.getLabelByMessage=f,A.emojiOptions=l,A.openContact=m,A.disposeInteraction=u,A.reply=h,A.fileAdded=g,A.onMessageSave=y,a.$on("$destroy",function(){d.removeAllListeners(A.tab.channel+"Message:save"),d.removeAllListeners(A.tab.channel+"Message:update")})}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","api","toasty","Auth","Emojis","socket"],angular.module("app.dashboards").controller("AgentGeneralInteractionController",e)}(),function(){"use strict";function e(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}}angular.module("app.dashboards").factory("Emojis",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){c.errors=[],c.interaction.closed=!0,c.interaction.closedAt=Date.now(),o[c.interactionMethod]?o[c.interactionMethod].update(c.interaction).$promise.then(function(e){c.interaction=e,i.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"}),d(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var t=0;t0?i:0}}),a.avgHoldTime=Math.round(a.total>0?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(a.answered>0?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((a.total>0?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((a.total>0?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((a.total>0?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((a.total>0?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=100-a.outboundDropRate-a.outboundAbandonRate>0&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({queues:a.queues,rpcQueues:a.rpcQueues,defer:i}),1===t.length&&n(),i.promise}}function t(e){var t=[],n=function(){var e=t[0],a={originated:0,limitCalls:0};_.forIn(e.rpcCampaigns,function(t,n){e.rpcCampaigns[n]&&(a.originated+=e.rpcCampaigns[n].originated||0,a.limitCalls+=e.rpcCampaigns[n].limitCalls||0)}),t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({rpcCampaigns:a.rpcCampaigns,defer:i}),1===t.length&&n(),i.promise}}function n(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}function a(e,t,n){function a(){return n.hasPermission(101)||n.hasRole("admin")}var i=this;i.hasPermission=a,e.$on("$stateChangeSuccess",function(e,n,a,o,s){if(n.data)switch(i.currentTab=n.data.selectedTab,i.currentTab){case 1:t.go("app.dashboards.general.dialer");break;default:t.go("app.dashboards.general.voice")}})}e.$inject=["$q"],t.$inject=["$q"],a.$inject=["$scope","$state","Auth"],angular.module("app.dashboards").filter("secToTime",n).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",t).controller("UserDashboardGeneralController",a)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){d({queues:p.inboundQueues,rpcQueues:p.rpcQueues}).then(function(e){p.inbound=e})}function m(e){p.inboundQueues[e.id]&&p.rpcQueues[e.id]&&(p.rpcQueues[e.id]=e,c())}function u(e){p.outbound=e}var p=this;p.inboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},p.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},p.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},p.outbound=l||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},p.onSaveQueue=m,p.onSaveOutbound=u,i.on("voice_queue:save",p.onSaveQueue),i.on("voice_outbound:save",p.onSaveOutbound),c(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxAccount.save(p.faxAccount).$promise.then(function(e){p.faxAccounts.unshift(e.toJSON()),i.success({title:"FaxAccount properly created",msg:p.faxAccount.name?p.faxAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete faxDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.faxAccountFaxDispositions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.faxAccount.getDispositions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditFaxDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxDisposition:t,faxDispositions:v.faxAccountFaxDispositions.rows}})}function p(e){r.faxDisposition.delete({id:e.id}).$promise.then(function(){_.remove(v.faxAccountFaxDispositions.rows,{id:e.id}),v.faxAccountFaxDispositions.count-=1,v.faxAccountFaxDispositions.rows.length||v.getFaxAccountFaxDispositions(),s.success({title:"FaxDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedFaxAccountFaxDispositions);return v.selectedFaxAccountFaxDispositions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected faxDispositions?").htmlContent(""+v.selectedFaxAccountFaxDispositions.length+" selected will be deleted.").ariaLabel("delete faxDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedFaxAccountFaxDispositions.forEach(function(e){p(e)}),v.selectedFaxAccountFaxDispositions=[]})}var v=this;v.faxAccount={},v.faxAccountFaxDispositions={count:0,rows:[]},v.selectedFaxAccountFaxDispositions=[],v.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getFaxAccountFaxDispositions=m,v.createOrEditFaxAccountFaxDisposition=u,v.exportSelectedFaxAccountFaxDispositions=g,v.deleteFaxAccountFaxDisposition=p,v.deleteSelectedFaxAccountFaxDispositions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getFaxAccountFaxDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.fax").controller("FaxAccountFaxDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxDisposition.save(p.faxDisposition).$promise.then(function(e){p.faxDispositions.unshift(e.toJSON()),i.success({title:"FaxDisposition properly created",msg:p.faxDisposition.name?p.faxDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.save"}];for(var t=0;t"+(e.name||"faxAccount")+" will be deleted.").ariaLabel("delete faxAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:t,faxAccounts:A.faxAccounts.rows}})}function v(e){l.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.faxAccounts.rows,{id:e.id}),A.faxAccounts.count-=1,A.faxAccounts.rows.length||A.getFaxAccounts(),c.success({title:"FaxAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedFaxAccounts);return A.selectedFaxAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent(""+A.selectedFaxAccounts.length+" selected will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxAccounts.forEach(function(e){v(e)}),A.selectedFaxAccounts=[]})}function E(){A.selectedFaxAccounts=[]}function y(){A.selectedFaxAccounts=A.faxAccounts.rows}var A=this;A.faxAccounts=r||{count:0,rows:[]},A.table="faxAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedFaxAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxAccounts=g,A.createOrEditFaxAccount=h,A.deleteFaxAccount=v,A.exportSelectedFaxAccounts=b,A.deleteSelectedFaxAccounts=f,A.deselectFaxAccounts=E,A.selectAllFaxAccounts=y,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxAccounts","api","msUtils","toasty"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxQueue.save(p.faxQueue).$promise.then(function(e){p.faxQueues.unshift(e.toJSON()),i.success({title:"FaxQueue properly created",msg:p.faxQueue.name?p.faxQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var t=0;t"+(e.name||"faxQueue")+" will be deleted.").ariaLabel("delete faxQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:A.faxQueues.rows}})}function v(e){l.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.faxQueues.rows,{id:e.id}),A.faxQueues.count-=1,A.faxQueues.rows.length||A.getFaxQueues(),c.success({title:"FaxQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedFaxQueues);return A.selectedFaxQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent(""+A.selectedFaxQueues.length+" selected will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxQueues.forEach(function(e){v(e)}),A.selectedFaxQueues=[]})}function E(){A.selectedFaxQueues=[]}function y(){A.selectedFaxQueues=A.faxQueues.rows}var A=this;A.faxQueues=r||{count:0,rows:[]},A.table="faxQueues",A.listOrder="",A.listOrderAsc=null,A.selectedFaxQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxQueues=g,A.createOrEditFaxQueue=h,A.deleteFaxQueue=v,A.exportSelectedFaxQueues=b,A.deleteSelectedFaxQueues=f,A.deselectFaxQueues=E,A.selectAllFaxQueues=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxQueues","api","msUtils","toasty"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e){this.info=e}e.$inject=["info"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intDeskAccount.save(p.deskAccount).$promise.then(function(e){p.deskAccounts.unshift(e.toJSON()),i.success({title:"DeskAccount properly created",msg:p.deskAccount.name?p.deskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var t=0;t"+(e.name||"deskAccount")+" will be deleted.").ariaLabel("delete deskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.deskAccounts=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.intDeskAccount.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:t,deskAccounts:T.deskAccounts.rows}})}function b(e){l.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(T.deskAccounts.rows,{id:e.id}),T.deskAccounts.count-=1,T.deskAccounts.rows.length||T.getDeskAccounts(),c.success({title:"DeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedDeskAccounts);return T.selectedDeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent(""+T.selectedDeskAccounts.length+" selected will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedDeskAccounts.forEach(function(e){b(e)}),T.selectedDeskAccounts=[]})}function y(){T.selectedDeskAccounts=[]}function A(){T.selectedDeskAccounts=T.deskAccounts.rows}var T=this;T.deskAccounts=r||{count:0,rows:[]},T.table="deskAccounts",T.listOrder="",T.listOrderAsc=null,T.selectedDeskAccounts=[],T.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,description",limit:10,page:1},T.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.editstate=m,T.testtestintegrationaccount=u,T.deleteconfirm=p,T.success=g,T.getDeskAccounts=h,T.createOrEditDeskAccount=v,T.deleteDeskAccount=b,T.exportSelectedDeskAccounts=f,T.deleteSelectedDeskAccounts=E,T.deselectDeskAccounts=y,T.selectAllDeskAccounts=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","deskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intDeskConfiguration.setTags({id:A.deskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.deskAccount=e,n.intDeskAccount.getConfigurations({id:A.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.configurations=e.rows?e.rows:[],A.configurations.length&&A.getDeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.deskConfiguration=A.configurations[e],A.selectedDeskConfiguration=e,n.intDeskConfiguration.getSubjects({id:A.deskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intDeskConfiguration.getDescriptions({id:A.deskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intDeskConfiguration.getFields({id:A.deskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intDeskConfiguration.getTags({id:A.deskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{deskConfiguration:a,configurations:A.configurations}}).finally(function(){A.getDeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent(""+(i.name||"deskConfiguration")+" will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intDeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.configurations,{id:i.id}),a.success({title:"DeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getDeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.deskConfiguration,account:A.deskAccount}})}function c(e){n.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("Subject will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent(""+A.selectedSubjects.length+" selected will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.deskConfiguration,account:A.deskAccount}})}function g(e){n.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("Description will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent(""+A.selectedDescriptions.length+" selected will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.deskConfiguration,account:A.deskAccount}})}function f(e){n.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("Field will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+A.selectedFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.deskAccount={},A.deskConfiguration={},A.configurations=[],A.selectedDeskConfiguration=-1,A.init=o,A.getDeskConfiguration=s,A.createOrEditDeskConfiguration=r,A.deleteDeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intDeskAccount.addConfiguration({id:t.params.id},p.deskConfiguration).$promise.then(function(e){p.configurations.unshift(e.toJSON()),i.success({title:"DeskConfiguration properly created",msg:p.deskConfiguration.name?p.deskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var t=0;t"+(i.name||"freshdeskConfiguration")+" will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intFreshdeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.configurations,{id:i.id}),a.success({title:"FreshdeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function c(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("Subject will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent(""+A.selectedSubjects.length+" selected will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function g(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("Description will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent(""+A.selectedDescriptions.length+" selected will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function f(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("Field will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+A.selectedFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.freshdeskAccount={},A.freshdeskConfiguration={},A.configurations=[],A.selectedFreshdeskConfiguration=-1,A.init=o,A.getFreshdeskConfiguration=s,A.createOrEditFreshdeskConfiguration=r,A.deleteFreshdeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.addConfiguration({id:t.params.id},p.freshdeskConfiguration).$promise.then(function(e){p.configurations.unshift(e.toJSON()),i.success({title:"FreshdeskConfiguration properly created",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var t=0;t"+(e.name||"freshdeskAccount")+" will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.freshdeskAccounts=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.intFreshdeskAccount.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:t,freshdeskAccounts:T.freshdeskAccounts.rows}})}function b(e){l.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(T.freshdeskAccounts.rows,{id:e.id}),T.freshdeskAccounts.count-=1,T.freshdeskAccounts.rows.length||T.getFreshdeskAccounts(),c.success({title:"FreshdeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedFreshdeskAccounts);return T.selectedFreshdeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent(""+T.selectedFreshdeskAccounts.length+" selected will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedFreshdeskAccounts.forEach(function(e){b(e)}),T.selectedFreshdeskAccounts=[]})}function y(){T.selectedFreshdeskAccounts=[]}function A(){T.selectedFreshdeskAccounts=T.freshdeskAccounts.rows}var T=this;T.freshdeskAccounts=r||{count:0,rows:[]},T.table="freshdeskAccounts",T.listOrder="",T.listOrderAsc=null,T.selectedFreshdeskAccounts=[],T.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,page:1},T.editstate=m,T.testtestintegrationaccount=u,T.deleteconfirm=p,T.success=g,T.getFreshdeskAccounts=h,T.createOrEditFreshdeskAccount=v,T.deleteFreshdeskAccount=b,T.exportSelectedFreshdeskAccounts=f,T.deleteSelectedFreshdeskAccounts=E,T.deselectFreshdeskAccounts=y,T.selectAllFreshdeskAccounts=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","freshdeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.save(p.salesforceAccount).$promise.then(function(e){p.salesforceAccounts.unshift(e.toJSON()),i.success({title:"SalesforceAccount properly created",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var t=0;t"+(i.name||"salesforceConfiguration")+" will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSalesforceConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SalesforceConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function d(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("Subject will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent(""+y.selectedSubjects.length+" selected will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function p(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("Description will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent(""+y.selectedDescriptions.length+" selected will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function b(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("Field will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+y.selectedFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.salesforceAccount={},y.salesforceConfiguration={},y.configurations=[],y.selectedSalesforceConfiguration=-1,y.init=i,y.getSalesforceConfiguration=o,y.createOrEditSalesforceConfiguration=s,y.deleteSalesforceConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.addConfiguration({id:t.params.id},p.salesforceConfiguration).$promise.then(function(e){p.configurations.unshift(e.toJSON()),i.success({title:"SalesforceConfiguration properly created",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var t=0;t"+(e.name||"salesforceAccount")+" will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.salesforceAccounts=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.intSalesforceAccount.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:t,salesforceAccounts:T.salesforceAccounts.rows}})}function b(e){l.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(T.salesforceAccounts.rows,{id:e.id}),T.salesforceAccounts.count-=1,T.salesforceAccounts.rows.length||T.getSalesforceAccounts(),c.success({title:"SalesforceAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedSalesforceAccounts);return T.selectedSalesforceAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent(""+T.selectedSalesforceAccounts.length+" selected will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedSalesforceAccounts.forEach(function(e){b(e)}),T.selectedSalesforceAccounts=[]})}function y(){T.selectedSalesforceAccounts=[]}function A(){T.selectedSalesforceAccounts=T.salesforceAccounts.rows}var T=this;T.salesforceAccounts=r||{count:0,rows:[]},T.table="salesforceAccounts",T.listOrder="",T.listOrderAsc=null,T.selectedSalesforceAccounts=[],T.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,page:1},T.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.editstate=m,T.testtestintegrationaccount=u,T.deleteconfirm=p,T.success=g,T.getSalesforceAccounts=h,T.createOrEditSalesforceAccount=v,T.deleteSalesforceAccount=b,T.exportSelectedSalesforceAccounts=f,T.deleteSelectedSalesforceAccounts=E,T.deselectSalesforceAccounts=y,T.selectAllSalesforceAccounts=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","salesforceAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.save(p.sugarcrmAccount).$promise.then(function(e){p.sugarcrmAccounts.unshift(e.toJSON()),i.success({title:"SugarcrmAccount properly created",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var t=0;t"+(i.name||"sugarcrmConfiguration")+" will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSugarcrmConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SugarcrmConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function d(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("Subject will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent(""+y.selectedSubjects.length+" selected will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function p(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("Description will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent(""+y.selectedDescriptions.length+" selected will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function b(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("Field will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+y.selectedFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.sugarcrmAccount={},y.sugarcrmConfiguration={},y.configurations=[],y.selectedSugarcrmConfiguration=-1,y.init=i,y.getSugarcrmConfiguration=o,y.createOrEditSugarcrmConfiguration=s,y.deleteSugarcrmConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.addConfiguration({id:t.params.id},p.sugarcrmConfiguration).$promise.then(function(e){p.configurations.unshift(e.toJSON()),i.success({title:"SugarcrmConfiguration properly created",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var t=0;t"+(e.name||"sugarcrmAccount")+" will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.sugarcrmAccounts=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.intSugarcrmAccount.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:t,sugarcrmAccounts:T.sugarcrmAccounts.rows}})}function b(e){l.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(T.sugarcrmAccounts.rows,{id:e.id}),T.sugarcrmAccounts.count-=1,T.sugarcrmAccounts.rows.length||T.getSugarcrmAccounts(),c.success({title:"SugarcrmAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedSugarcrmAccounts);return T.selectedSugarcrmAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent(""+T.selectedSugarcrmAccounts.length+" selected will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedSugarcrmAccounts.forEach(function(e){b(e)}),T.selectedSugarcrmAccounts=[]})}function y(){T.selectedSugarcrmAccounts=[]}function A(){T.selectedSugarcrmAccounts=T.sugarcrmAccounts.rows}var T=this;T.sugarcrmAccounts=r||{count:0,rows:[]},T.table="sugarcrmAccounts",T.listOrder="",T.listOrderAsc=null,T.selectedSugarcrmAccounts=[],T.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,page:1},T.editstate=m,T.testtestintegrationaccount=u,T.deleteconfirm=p,T.success=g,T.getSugarcrmAccounts=h,T.createOrEditSugarcrmAccount=v,T.deleteSugarcrmAccount=b,T.exportSelectedSugarcrmAccounts=f,T.deleteSelectedSugarcrmAccounts=E,T.deselectSugarcrmAccounts=y,T.selectAllSugarcrmAccounts=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sugarcrmAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.save(p.zendeskAccount).$promise.then(function(e){p.zendeskAccounts.unshift(e.toJSON()),i.success({title:"ZendeskAccount properly created",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var t=0;t"+(i.name||"zendeskConfiguration")+" will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intZendeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.zendeskConfigurations,{id:i.id}),a.success({title:"ZendeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function c(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("Subject will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent(""+A.selectedSubjects.length+" selected will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function g(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("Description will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent(""+A.selectedDescriptions.length+" selected will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function f(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("Field will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+A.selectedFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.zendeskAccount={},A.zendeskConfiguration={},A.zendeskConfigurations=[],A.selectedZendeskConfiguration=-1,A.init=o,A.getZendeskConfiguration=s,A.createOrEditZendeskConfiguration=r,A.deleteZendeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.addConfiguration({id:t.params.id},p.zendeskConfiguration).$promise.then(function(e){p.zendeskConfigurations.unshift(e.toJSON()),i.success({title:"ZendeskConfiguration properly created",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var t=0;t"+(e.name||"zendeskAccount")+" will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.zendeskAccounts=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.intZendeskAccount.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:t,zendeskAccounts:T.zendeskAccounts.rows}})}function b(e){l.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(T.zendeskAccounts.rows,{id:e.id}),T.zendeskAccounts.count-=1,T.zendeskAccounts.rows.length||T.getZendeskAccounts(),c.success({title:"ZendeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedZendeskAccounts);return T.selectedZendeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent(""+T.selectedZendeskAccounts.length+" selected will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedZendeskAccounts.forEach(function(e){b(e)}),T.selectedZendeskAccounts=[]})}function y(){T.selectedZendeskAccounts=[]}function A(){T.selectedZendeskAccounts=T.zendeskAccounts.rows}var T=this;T.zendeskAccounts=r||{count:0,rows:[]},T.table="zendeskAccounts",T.listOrder="",T.listOrderAsc=null,T.selectedZendeskAccounts=[],T.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",limit:10,page:1},T.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.editstate=m,T.testtestintegrationaccount=u,T.deleteconfirm=p,T.success=g,T.getZendeskAccounts=h,T.createOrEditZendeskAccount=v,T.deleteZendeskAccount=b,T.exportSelectedZendeskAccounts=f,T.deleteSelectedZendeskAccounts=E,T.deselectZendeskAccounts=y,T.selectAllZendeskAccounts=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zendeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZohoAccount.save(p.zohoAccount).$promise.then(function(e){p.zohoAccounts.unshift(e.toJSON()),i.success({title:"ZohoAccount properly created",msg:p.zohoAccount.name?p.zohoAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var t=0;t"+(i.name||"zohoConfiguration")+" will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intZohoConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"ZohoConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getZohoConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.zohoConfiguration,account:y.zohoAccount}})}function d(e){n.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("Subject will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent(""+y.selectedSubjects.length+" selected will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.zohoConfiguration,account:y.zohoAccount}})}function p(e){n.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("Description will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent(""+y.selectedDescriptions.length+" selected will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.zohoConfiguration,account:y.zohoAccount}})}function b(e){n.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("Field will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent(""+y.selectedFields.length+" selected will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.zohoAccount={},y.zohoConfiguration={},y.configurations=[],y.selectedZohoConfiguration=-1,y.init=i,y.getZohoConfiguration=o,y.createOrEditZohoConfiguration=s,y.deleteZohoConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZohoAccount.addConfiguration({id:t.params.id},p.zohoConfiguration).$promise.then(function(e){p.configurations.unshift(e.toJSON()),i.success({title:"ZohoConfiguration properly created",msg:p.zohoConfiguration.name?p.zohoConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var t=0;t"+(e.name||"zohoAccount")+" will be deleted.").ariaLabel("delete zohoAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.zohoAccounts=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.intZohoAccount.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:t,zohoAccounts:T.zohoAccounts.rows}})}function b(e){l.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(T.zohoAccounts.rows,{id:e.id}),T.zohoAccounts.count-=1,T.zohoAccounts.rows.length||T.getZohoAccounts(),c.success({title:"ZohoAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedZohoAccounts);return T.selectedZohoAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent(""+T.selectedZohoAccounts.length+" selected will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedZohoAccounts.forEach(function(e){b(e)}),T.selectedZohoAccounts=[]})}function y(){T.selectedZohoAccounts=[]}function A(){T.selectedZohoAccounts=T.zohoAccounts.rows}var T=this;T.zohoAccounts=r||{count:0,rows:[]},T.table="zohoAccounts",T.listOrder="",T.listOrderAsc=null,T.selectedZohoAccounts=[],T.query={fields:"createdAt,updatedAt,id,name,host,authToken,serverUrl,description",limit:10,page:1},T.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.editstate=m,T.testtestintegrationaccount=u,T.deleteconfirm=p,T.success=g,T.getZohoAccounts=h,T.createOrEditZohoAccount=v,T.deleteZohoAccount=b,T.exportSelectedZohoAccounts=f,T.deleteSelectedZohoAccounts=E,T.deselectZohoAccounts=y,T.selectAllZohoAccounts=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zohoAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.jscriptyProject.save(p.project).$promise.then(function(e){p.projects.unshift(e.toJSON()),i.success({title:"Project properly created",msg:p.project.name?p.project.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete jscriptySession").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.projectJscriptySessions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.jscriptyProject.getJscriptySessions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditJscriptySessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/jscriptySessions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{jscriptySession:t,jscriptySessions:v.projectJscriptySessions.rows}})}function p(e){r.jscriptySession.delete({id:e.id}).$promise.then(function(){_.remove(v.projectJscriptySessions.rows,{id:e.id}),v.projectJscriptySessions.count-=1,v.projectJscriptySessions.rows.length||v.getProjectJscriptySessions(),s.success({title:"JscriptySession deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedProjectJscriptySessions);return v.selectedProjectJscriptySessions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected jscriptySessions?").htmlContent(""+v.selectedProjectJscriptySessions.length+" selected will be deleted.").ariaLabel("delete jscriptySessions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedProjectJscriptySessions.forEach(function(e){p(e)}),v.selectedProjectJscriptySessions=[]})}var v=this;v.project={},v.projectJscriptySessions={count:0,rows:[]},v.selectedProjectJscriptySessions=[],v.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getProjectJscriptySessions=m,v.createOrEditProjectJscriptySession=u,v.exportSelectedProjectJscriptySessions=g,v.deleteProjectJscriptySession=p,v.deleteSelectedProjectJscriptySessions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getProjectJscriptySessions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.jscripty").controller("ProjectJscriptySessionsController",e)}(),function(){"use strict";function e(e,t){function n(e){o.project=e}function a(n){var a=e.defer(),i=t.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(n).ok("SAVE").cancel("CANCEL");return t.show(i).then(function(){a.resolve(!0)},function(){a.reject()}),a.promise}function i(){o.formViewer.reset&&o.formViewer.reset()}var o=this;o.project={},o.responseData={},o.formViewer={},o.init=n,o.onSubmit=a,o.resetViewer=i}e.$inject=["$q","$mdDialog"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.project=e,v.query.id=v.project.id,v.getProjectSessions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the session?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete session").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.projectSessions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.jscriptyProject.getSessions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{session:t,sessions:v.projectSessions.rows}})}function p(e){r.session.delete({id:e.id}).$promise.then(function(){_.remove(v.projectSessions.rows,{id:e.id}),v.projectSessions.count-=1,v.projectSessions.rows.length||v.getProjectSessions(),s.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedProjectSessions);return v.selectedProjectSessions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected sessions?").htmlContent(""+v.selectedProjectSessions.length+" selected will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedProjectSessions.forEach(function(e){p(e)}),v.selectedProjectSessions=[]})}var v=this;v.project={},v.projectSessions={count:0,rows:[]},v.selectedProjectSessions=[],v.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum",sort:"-starttime",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getProjectSessions=m,v.createOrEditProjectSession=u,v.exportSelectedProjectSessions=g,v.deleteProjectSession=p,v.deleteSelectedProjectSessions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getProjectSessions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){e.go("app.jscripty.projects")}function l(){o.jscriptyProject.update({id:d.project.id},d.project).$promise.then(function(){i.success({title:"Project updated!",msg:d.project.name?d.project.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.location=t.protocol()+"://"+t.host(),d.project=e.params.project||s||{},d.selectedTab=e.params.tab||0,d.alert=i.info,d.gotoProjects=r,d.saveProject=l}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","project"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.jscripty.projects.edit",{id:e.id,project:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the project?").htmlContent(""+(e.name||"project")+" will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.projects=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.jscriptyProject.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:t,projects:A.projects.rows}})}function v(e){l.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(A.projects.rows,{id:e.id}),A.projects.count-=1,A.projects.rows.length||A.getProjects(),c.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedProjects);return A.selectedProjects=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent(""+A.selectedProjects.length+" selected will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedProjects.forEach(function(e){v(e)}),A.selectedProjects=[]})}function E(){A.selectedProjects=[]}function y(){A.selectedProjects=A.projects.rows}var A=this;A.projects=r||{count:0,rows:[]},A.table="projects",A.listOrder="",A.listOrderAsc=null,A.selectedProjects=[],A.query={fields:"createdAt,updatedAt,id,name,description,createdAt,formData",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getProjects=g,A.createOrEditProject=h,A.deleteProject=v,A.exportSelectedProjects=b,A.deleteSelectedProjects=f,A.deselectProjects=E,A.selectAllProjects=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","projects","api","msUtils","toasty"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.mailAccount).$promise.then(function(e){p.mailAccounts.unshift(e.toJSON()),i.success({title:"MailAccount properly created",msg:p.mailAccount.name?p.mailAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete mailDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.mailAccountMailDispositions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.mailAccount.getDispositions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMailDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailDisposition:t,mailDispositions:v.mailAccountMailDispositions.rows}})}function p(e){r.mailDisposition.delete({id:e.id}).$promise.then(function(){_.remove(v.mailAccountMailDispositions.rows,{id:e.id}),v.mailAccountMailDispositions.count-=1,v.mailAccountMailDispositions.rows.length||v.getMailAccountMailDispositions(),s.success({title:"MailDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedMailAccountMailDispositions);return v.selectedMailAccountMailDispositions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected mailDispositions?").htmlContent(""+v.selectedMailAccountMailDispositions.length+" selected will be deleted.").ariaLabel("delete mailDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMailAccountMailDispositions.forEach(function(e){p(e)}),v.selectedMailAccountMailDispositions=[]})}var v=this;v.mailAccount={},v.mailAccountMailDispositions={count:0,rows:[]},v.selectedMailAccountMailDispositions=[],v.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getMailAccountMailDispositions=m,v.createOrEditMailAccountMailDisposition=u,v.exportSelectedMailAccountMailDispositions=g,v.deleteMailAccountMailDisposition=p,v.deleteSelectedMailAccountMailDispositions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getMailAccountMailDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.mail").controller("MailAccountMailDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailDisposition.save(p.mailDisposition).$promise.then(function(e){p.mailDispositions.unshift(e.toJSON()),i.success({title:"MailDisposition properly created",msg:p.mailDisposition.name?p.mailDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.save"}];for(var t=0;t"+(e.name||"mailAccount")+" will be deleted.").ariaLabel("delete mailAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:t,mailAccounts:A.mailAccounts.rows}})}function v(e){l.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.mailAccounts.rows,{id:e.id}),A.mailAccounts.count-=1,A.mailAccounts.rows.length||A.getMailAccounts(),c.success({title:"MailAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedMailAccounts);return A.selectedMailAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent(""+A.selectedMailAccounts.length+" selected will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailAccounts.forEach(function(e){v(e)}),A.selectedMailAccounts=[]})}function E(){A.selectedMailAccounts=[]}function y(){A.selectedMailAccounts=A.mailAccounts.rows}var A=this;A.mailAccounts=r||{count:0,rows:[]},A.table="mailAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedMailAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailAccounts=g,A.createOrEditMailAccount=h,A.deleteMailAccount=v,A.exportSelectedMailAccounts=b,A.deleteSelectedMailAccounts=f,A.deselectMailAccounts=E,A.selectAllMailAccounts=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailAccounts","api","msUtils","toasty"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailQueue.save(p.mailQueue).$promise.then(function(e){p.mailQueues.unshift(e.toJSON()),i.success({title:"MailQueue properly created",msg:p.mailQueue.name?p.mailQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var t=0;t"+(e.name||"mailQueue")+" will be deleted.").ariaLabel("delete mailQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:A.mailQueues.rows}})}function v(e){l.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.mailQueues.rows,{id:e.id}),A.mailQueues.count-=1,A.mailQueues.rows.length||A.getMailQueues(),c.success({title:"MailQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedMailQueues);return A.selectedMailQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent(""+A.selectedMailQueues.length+" selected will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailQueues.forEach(function(e){v(e)}),A.selectedMailQueues=[]})}function E(){A.selectedMailQueues=[]}function y(){A.selectedMailQueues=A.mailQueues.rows}var A=this;A.mailQueues=r||{count:0,rows:[]},A.table="mailQueues",A.listOrder="",A.listOrderAsc=null,A.selectedMailQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailQueues=g,A.createOrEditMailQueue=h,A.deleteMailQueue=v,A.exportSelectedMailQueues=b,A.deleteSelectedMailQueues=f,A.deselectMailQueues=E,A.selectAllMailQueues=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailQueues","api","msUtils","toasty"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.campaign.save(p.ivrCampaign).$promise.then(function(e){p.ivrCampaigns.unshift(e.toJSON()),i.success({title:"IvrCampaign properly created",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.campaign.getHopperBlacks(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:v.ivrCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(v.ivrCampaignHopperBlacks.rows,{id:e.id}),v.ivrCampaignHopperBlacks.count-=1,v.ivrCampaignHopperBlacks.rows.length||v.getIvrCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedIvrCampaignHopperBlacks);return v.selectedIvrCampaignHopperBlacks=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent(""+v.selectedIvrCampaignHopperBlacks.length+" selected will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIvrCampaignHopperBlacks.forEach(function(e){p(e)}),v.selectedIvrCampaignHopperBlacks=[]})}var v=this;v.ivrCampaign={},v.ivrCampaignHopperBlacks={count:0,rows:[]},v.selectedIvrCampaignHopperBlacks=[],v.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getIvrCampaignHopperBlacks=m,v.createOrEditIvrCampaignHopperBlack=u,v.exportSelectedIvrCampaignHopperBlacks=g,v.deleteIvrCampaignHopperBlack=p,v.deleteSelectedIvrCampaignHopperBlacks=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getIvrCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.ivrCampaign=e,v.query.id=v.ivrCampaign.id,v.query.CampaignId=v.ivrCampaign.id,v.getIvrCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.campaign.getHopperFinals(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:v.ivrCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(v.ivrCampaignHopperFinals.rows,{id:e.id}),v.ivrCampaignHopperFinals.count-=1,v.ivrCampaignHopperFinals.rows.length||v.getIvrCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedIvrCampaignHopperFinals);return v.selectedIvrCampaignHopperFinals=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent(""+v.selectedIvrCampaignHopperFinals.length+" selected will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIvrCampaignHopperFinals.forEach(function(e){p(e)}),v.selectedIvrCampaignHopperFinals=[]})}var v=this;v.ivrCampaign={},v.ivrCampaignHopperFinals={count:0,rows:[]},v.selectedIvrCampaignHopperFinals=[],v.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getIvrCampaignHopperFinals=m,v.createOrEditIvrCampaignHopperFinal=u,v.exportSelectedIvrCampaignHopperFinals=g,v.deleteIvrCampaignHopperFinal=p,v.deleteSelectedIvrCampaignHopperFinals=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getIvrCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.ivrCampaign=e,v.query.id=v.ivrCampaign.id,v.query.CampaignId=v.ivrCampaign.id,v.getIvrCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.campaign.getHopperHistories(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:v.ivrCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(v.ivrCampaignHopperHistories.rows,{id:e.id}),v.ivrCampaignHopperHistories.count-=1,v.ivrCampaignHopperHistories.rows.length||v.getIvrCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedIvrCampaignHopperHistories);return v.selectedIvrCampaignHopperHistories=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent(""+v.selectedIvrCampaignHopperHistories.length+" selected will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIvrCampaignHopperHistories.forEach(function(e){p(e)}),v.selectedIvrCampaignHopperHistories=[]})}var v=this;v.ivrCampaign={},v.ivrCampaignHopperHistories={count:0,rows:[]},v.selectedIvrCampaignHopperHistories=[],v.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getIvrCampaignHopperHistories=m,v.createOrEditIvrCampaignHopperHistory=u,v.exportSelectedIvrCampaignHopperHistories=g,v.deleteIvrCampaignHopperHistory=p,v.deleteSelectedIvrCampaignHopperHistories=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getIvrCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.ivrCampaign=e,v.query.id=v.ivrCampaign.id,v.query.CampaignId=v.ivrCampaign.id,v.getIvrCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.ivrCampaignHoppers=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.campaign.getHoppers(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:v.ivrCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(v.ivrCampaignHoppers.rows,{id:e.id}),v.ivrCampaignHoppers.count-=1,v.ivrCampaignHoppers.rows.length||v.getIvrCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedIvrCampaignHoppers);return v.selectedIvrCampaignHoppers=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent(""+v.selectedIvrCampaignHoppers.length+" selected will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIvrCampaignHoppers.forEach(function(e){p(e)}),v.selectedIvrCampaignHoppers=[]})}var v=this;v.ivrCampaign={},v.ivrCampaignHoppers={count:0,rows:[]},v.selectedIvrCampaignHoppers=[],v.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getIvrCampaignHoppers=m,v.createOrEditIvrCampaignHopper=u,v.exportSelectedIvrCampaignHoppers=g,v.deleteIvrCampaignHopper=p,v.deleteSelectedIvrCampaignHoppers=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getIvrCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t"+(e.name||"ivrCampaign")+" will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function h(e,t){n.go("app.motiondialer.realtime.ivr_campaigns")}function v(e){S.ivrCampaigns=e||{count:0,rows:[]}}function b(){S.query.offset=(S.query.page-1)*S.query.limit,S.promise=l.campaign.get(S.query,v).$promise}function f(e,t){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:S.ivrCampaigns.rows}})}function E(e){l.campaign.delete({id:e.id}).$promise.then(function(){_.remove(S.ivrCampaigns.rows,{id:e.id}),S.ivrCampaigns.count-=1,S.ivrCampaigns.rows.length||S.getIvrCampaigns(),c.success({title:"IvrCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){var e=angular.copy(S.selectedIvrCampaigns);return S.selectedIvrCampaigns=[],e}function A(e){var t=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent(""+S.selectedIvrCampaigns.length+" selected will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){S.selectedIvrCampaigns.forEach(function(e){E(e)}),S.selectedIvrCampaigns=[]})}function T(){S.selectedIvrCampaigns=[]}function C(){S.selectedIvrCampaigns=S.ivrCampaigns.rows}var S=this;S.ivrCampaigns=r||{count:0,rows:[]},S.table="ivrCampaigns",S.listOrder="",S.listOrderAsc=null,S.selectedIvrCampaigns=[],S.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},S.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.editstate=m,S.listadddialog=u,S.blacklistadddialog=p,S.deleteconfirm=g,S.gotorealtimegoto=h,S.success=v,S.getIvrCampaigns=b,S.createOrEditIvrCampaign=f,S.deleteIvrCampaign=E,S.exportSelectedIvrCampaigns=y,S.deleteSelectedIvrCampaigns=A,S.deselectIvrCampaigns=T,S.selectAllIvrCampaigns=C,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){S.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){S.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){S.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var x=!0,O=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(O=S.query.page),e!==t&&(S.query.page=1),e||(S.query.page=O),S.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","ivrCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.queueCampaign).$promise.then(function(e){p.queueCampaigns.unshift(e.toJSON()),i.success({title:"QueueCampaign properly created",msg:p.queueCampaign.name?p.queueCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t":"",e}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.selectedItems=m.selectedItems,r.hasRole("admin")?n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:n.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){m.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o}function c(){e.hide()}var m=this;m.queueCampaign=a,m.penalty=0,m.items=[],m.selectedItems=[],m.closeDialog=c,m.isVoiceRealtime=d,m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:m.queueCampaign.id,ids:_.map(e,m.isVoiceRealtime()&&a?"UserId":"id"),penalty:m.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"QueueCampaign properly "+(a?"removed":"added"),msg:"QueueCampaign has been "+(a?"removed":"added")+"!"}),a||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.hide()}var r=this;r.queueCampaign=a,r.items=[],r.selectedItems=[],r.loading=!1,r.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){r.loading=!0,n.voiceQueue[a?"removeBlackLists":"addBlackLists"]({id:r.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){o(function(){r.loading=!1},4e3)})}},r.closeDialog=s,n.voiceQueue.getBlackLists({id:r.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return r.selectedItems=e.rows?e.rows:[],r.dualMultiselectOptions.selectedItems=r.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?e.rows:[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate","$timeout"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.queueCampaign=e,v.query.id=v.queueCampaign.id,v.query.VoiceQueueId=v.queueCampaign.id,v.getQueueCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.voiceQueue.getHopperBlacks(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:v.queueCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(v.queueCampaignHopperBlacks.rows,{id:e.id}),v.queueCampaignHopperBlacks.count-=1,v.queueCampaignHopperBlacks.rows.length||v.getQueueCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedQueueCampaignHopperBlacks);return v.selectedQueueCampaignHopperBlacks=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent(""+v.selectedQueueCampaignHopperBlacks.length+" selected will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedQueueCampaignHopperBlacks.forEach(function(e){p(e)}),v.selectedQueueCampaignHopperBlacks=[]})}var v=this;v.queueCampaign={},v.queueCampaignHopperBlacks={count:0,rows:[]},v.selectedQueueCampaignHopperBlacks=[],v.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getQueueCampaignHopperBlacks=m,v.createOrEditQueueCampaignHopperBlack=u,v.exportSelectedQueueCampaignHopperBlacks=g,v.deleteQueueCampaignHopperBlack=p,v.deleteSelectedQueueCampaignHopperBlacks=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getQueueCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.queueCampaign=e,v.query.id=v.queueCampaign.id,v.query.VoiceQueueId=v.queueCampaign.id,v.getQueueCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.queueCampaignHopperFinals=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.voiceQueue.getHopperFinals(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:v.queueCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(v.queueCampaignHopperFinals.rows,{id:e.id}),v.queueCampaignHopperFinals.count-=1,v.queueCampaignHopperFinals.rows.length||v.getQueueCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedQueueCampaignHopperFinals);return v.selectedQueueCampaignHopperFinals=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent(""+v.selectedQueueCampaignHopperFinals.length+" selected will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedQueueCampaignHopperFinals.forEach(function(e){p(e)}),v.selectedQueueCampaignHopperFinals=[]})}var v=this;v.queueCampaign={},v.queueCampaignHopperFinals={count:0,rows:[]},v.selectedQueueCampaignHopperFinals=[],v.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getQueueCampaignHopperFinals=m,v.createOrEditQueueCampaignHopperFinal=u,v.exportSelectedQueueCampaignHopperFinals=g,v.deleteQueueCampaignHopperFinal=p,v.deleteSelectedQueueCampaignHopperFinals=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getQueueCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.queueCampaign=e,v.query.id=v.queueCampaign.id,v.query.VoiceQueueId=v.queueCampaign.id,v.getQueueCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.queueCampaignHopperHistories=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.voiceQueue.getHopperHistories(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:v.queueCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(v.queueCampaignHopperHistories.rows,{id:e.id}),v.queueCampaignHopperHistories.count-=1,v.queueCampaignHopperHistories.rows.length||v.getQueueCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedQueueCampaignHopperHistories);return v.selectedQueueCampaignHopperHistories=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent(""+v.selectedQueueCampaignHopperHistories.length+" selected will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedQueueCampaignHopperHistories.forEach(function(e){p(e)}),v.selectedQueueCampaignHopperHistories=[]})}var v=this;v.queueCampaign={},v.queueCampaignHopperHistories={count:0,rows:[]},v.selectedQueueCampaignHopperHistories=[],v.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getQueueCampaignHopperHistories=m,v.createOrEditQueueCampaignHopperHistory=u,v.exportSelectedQueueCampaignHopperHistories=g,v.deleteQueueCampaignHopperHistory=p,v.deleteSelectedQueueCampaignHopperHistories=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getQueueCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.queueCampaign=e,v.query.id=v.queueCampaign.id,v.query.VoiceQueueId=v.queueCampaign.id,v.getQueueCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.queueCampaignHoppers=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.voiceQueue.getHoppers(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:v.queueCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(v.queueCampaignHoppers.rows,{id:e.id}),v.queueCampaignHoppers.count-=1,v.queueCampaignHoppers.rows.length||v.getQueueCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedQueueCampaignHoppers);return v.selectedQueueCampaignHoppers=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent(""+v.selectedQueueCampaignHoppers.length+" selected will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedQueueCampaignHoppers.forEach(function(e){p(e)}),v.selectedQueueCampaignHoppers=[]})}var v=this;v.queueCampaign={},v.queueCampaignHoppers={count:0,rows:[]},v.selectedQueueCampaignHoppers=[],v.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getQueueCampaignHoppers=m,v.createOrEditQueueCampaignHopper=u,v.exportSelectedQueueCampaignHoppers=g,v.deleteQueueCampaignHopper=p,v.deleteSelectedQueueCampaignHoppers=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getQueueCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t"+(e.name||"queueCampaign")+" will be deleted.").ariaLabel("delete queueCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){A(e)},function(){console.log("CANCEL")})}function b(e,t){n.go("app.motiondialer.realtime.queues")}function f(e){O.queueCampaigns=e||{count:0,rows:[]}}function E(){O.query.offset=(O.query.page-1)*O.query.limit,O.promise=l.voiceQueue.get(O.query,f).$promise}function y(e,t){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:O.queueCampaigns.rows}})}function A(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(O.queueCampaigns.rows,{id:e.id}),O.queueCampaigns.count-=1,O.queueCampaigns.rows.length||O.getQueueCampaigns(),c.success({title:"QueueCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function T(){var e=angular.copy(O.selectedQueueCampaigns);return O.selectedQueueCampaigns=[],e}function C(e){var t=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent(""+O.selectedQueueCampaigns.length+" selected will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){O.selectedQueueCampaigns.forEach(function(e){A(e)}),O.selectedQueueCampaigns=[]})}function S(){O.selectedQueueCampaigns=[]}function x(){O.selectedQueueCampaigns=O.queueCampaigns.rows}var O=this;O.queueCampaigns=r||{count:0,rows:[]},O.table="queueCampaigns",O.listOrder="",O.listOrderAsc=null,O.selectedQueueCampaigns=[],O.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},O.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),O.editstate=m,O.listadddialog=u,O.blacklistadddialog=p,O.teamadddialog=g,O.agentadddialog=h,O.deleteconfirm=v,O.gotorealtimegoto=b,O.success=f,O.getQueueCampaigns=E,O.createOrEditQueueCampaign=y,O.deleteQueueCampaign=A,O.exportSelectedQueueCampaigns=T,O.deleteSelectedQueueCampaigns=C,O.deselectQueueCampaigns=S,O.selectAllQueueCampaigns=x,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){O.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){O.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var R=!0,I=1;e.$watch("vm.query.filter",function(e,t){R?s(function(){R=!1}):(t||(I=O.query.page),e!==t&&(O.query.page=1),e||(O.query.page=I),O.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","queueCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],T))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+" properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"outbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,T))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("
TODO legend status + state
").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,T=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var C=!0,S=1;e.$watch("vm.query.filter",function(e,n){C?t(function(){C=!1}):(n||(S=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=S),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.motiondialer").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){_.forIn(g.campaigns,function(e,t){g.rpcCampaigns[t]&&_.merge(e,_.pick(g.rpcCampaigns[t],h))})}function c(e){g.campaigns[e.id]&&(_.merge(g.campaigns[e.id],_.pick(e,h)),_.merge(g.rpcCampaigns[e.id],_.pick(e,h)))}function m(e){g.count=e.count,g.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},d()}function u(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.campaign.get(g.query,m).$promise}function p(e,t){n.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:_.values(g.campaigns)}})}var g=this,h=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];g.count=o.count,g.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcCampaigns=i?_.keyBy(i.rows?i.rows:[],"id"):{},g.query={sort:"-updatedAt",limit:10,page:1},g.success=m,g.getCampaigns=u,g.onSave=c,g.$onInit=d,g.createOrEditIvrCampaign=p,r.on("campaign:save",g.onSave);var v=!0,b=1;e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(b=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=b),g.getCampaigns())}),e.$on("$destroy",function(){r.removeAllListeners("campaign:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","rpcCampaigns","campaigns","api","socket","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"outbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.openchannelAccountApps.rows.length){var o=g.openchannelAccountApps.rows[i]?g.openchannelAccountApps.rows[i]:g.openchannelAccountApps.rows[0];t.show({controller:"EditOpenchannelAccountApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:o}}).then(function(e){e&&(e.id?g.openchannelAccountApps.rows[i]=e:g.openchannelAccountApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.openchannelAccountApps.rows.length){var i=g.openchannelAccountApps.rows[a]?g.openchannelAccountApps.rows[a]:g.openchannelAccountApps.rows[0];t.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){for(var t=1,n=[],a=0;a"+g.selectedOpenchannelAccountApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedOpenchannelAccountApps.forEach(function(e){_.remove(g.openchannelAccountApps.rows,{id:e.id})}),g.selectedOpenchannelAccountApps=[],l()})}var g=this;g.openchannelAccount={},g.openchannelAccountApps={count:0,rows:[]},g.selectedOpenchannelAccountApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"goto",appType:"goto",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,defaultValue:300,required:!1,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,required:!0,defaultValue:30,param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getOpenchannelAccountApps=m,g.editOpenchannelAccountApp=s,g.editInterval=r,g.deleteOpenchannelAccountApp=u,g.deleteSelectedOpenchannelAccountApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];s.agent.type&&"outbound"===s.agent.type.toLowerCase()&&"outboundDial"===s.agent.appType&&(s.agent.phone=s.agent.cutdigits?(s.agent.prefix||"")+"${EXTEN:"+s.agent.cutdigits+"}":(s.agent.prefix||"")+"${EXTEN}",s.agent.record="none"!==s.agent.recordingFormat,s.agent.recordingFormat=s.agent.record?s.agent.recordingFormat:null);var t=_.find(s.agents,{name:s.agent.agent});if(t&&(s.agent.UserId=t.id),s.agent.appType&&"custom"===s.agent.appType);else switch((s.agent.app||s.agent.appType).toLowerCase()){case"set":s.agent.appdata=s.agent.name+"="+s.agent.value;break;case"custom":break;default:e[0]=s.agent.agent,e[1]=s.agent.timeout,s.agent.appdata=e.join(",")}o(s.agent)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),s.agent=angular.copy(n),s.agent.appdata)switch(s.agent.appType?s.agent.appType.toLowerCase():s.agent.app.toLowerCase()){case"custom":break;case"set":s.agent.name=s.agent.appdata.split("=")[0],s.agent.value=s.agent.appdata.split("=")[1];break;case"agi":s.agent.project=s.agent.appdata;break;default:var r=s.agent.appdata.split(",");s.agent.agent=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.agent.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else s.agent.timeout=30;s.agent.type&&"outbound"===s.agent.type.toLowerCase()&&"outbounddial"===s.agent.appType.toLowerCase()&&(s.agent.prefix=s.agent.phone?s.agent.phone.split("$")[0]:void 0,s.agent.callerId=s.agent.callerID?"CALLERID(all)="+s.agent.callerID:void 0,s.agent.recordingFormat=s.agent.record?s.agent.recordingFormat:"none"),s.saveOpenchannelAccountApp=i,s.closeDialog=o,a.user.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType&&"custom"===s.goto.appType);else switch((s.goto.app||s.goto.appType).toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.priority=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveOpenchannelAccountApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","openchannelAccountApp","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.gotoif.type&&"outbound"===s.gotoif.type.toLowerCase()&&"outboundDial"===s.gotoif.appType&&(s.gotoif.phone=s.gotoif.cutdigits?(s.gotoif.prefix||"")+"${EXTEN:"+s.gotoif.cutdigits+"}":(s.gotoif.prefix||"")+"${EXTEN}",s.gotoif.record="none"!==s.gotoif.recordingFormat,s.gotoif.recordingFormat=s.gotoif.record?s.gotoif.recordingFormat:null),s.gotoif.appType&&"custom"===s.gotoif.appType);else switch((s.gotoif.app||s.gotoif.appType).toLowerCase()){case"set":s.gotoif.appdata=s.gotoif.name+"="+s.gotoif.value;break;case"custom":break;default:e[0]=s.gotoif.condition,e[1]=s.gotoif.truepriority,e[2]=s.gotoif.falsepriority,s.gotoif.appdata=e.join(",")}o(s.gotoif)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),s.gotoif=angular.copy(n),s.gotoif.appdata)switch(s.gotoif.appType?s.gotoif.appType.toLowerCase():s.gotoif.app.toLowerCase()){case"custom":break;case"set":s.gotoif.name=s.gotoif.appdata.split("=")[0],s.gotoif.value=s.gotoif.appdata.split("=")[1];break;case"agi":s.gotoif.project=s.gotoif.appdata;break;default:var r=s.gotoif.appdata.split(",");s.gotoif.condition=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.gotoif.truepriority=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.gotoif.falsepriority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}s.gotoif.type&&"outbound"===s.gotoif.type.toLowerCase()&&"outbounddial"===s.gotoif.appType.toLowerCase()&&(s.gotoif.prefix=s.gotoif.phone?s.gotoif.phone.split("$")[0]:void 0,s.gotoif.callerId=s.gotoif.callerID?"CALLERID(all)="+s.gotoif.callerID:void 0,s.gotoif.recordingFormat=s.gotoif.record?s.gotoif.recordingFormat:"none"),s.saveOpenchannelAccountApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","openchannelAccountApp","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.noop.type&&"outbound"===s.noop.type.toLowerCase()&&"outboundDial"===s.noop.appType&&(s.noop.phone=s.noop.cutdigits?(s.noop.prefix||"")+"${EXTEN:"+s.noop.cutdigits+"}":(s.noop.prefix||"")+"${EXTEN}",s.noop.record="none"!==s.noop.recordingFormat,s.noop.recordingFormat=s.noop.record?s.noop.recordingFormat:null),s.noop.appType&&"custom"===s.noop.appType);else switch((s.noop.app||s.noop.appType).toLowerCase()){case"set":s.noop.appdata=s.noop.name+"="+s.noop.value;break;case"custom":break;default:e[0]=s.noop.value,s.noop.appdata=e.join(",")}o(s.noop)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),s.noop=angular.copy(n),s.noop.appdata)switch(s.noop.appType?s.noop.appType.toLowerCase():s.noop.app.toLowerCase()){case"custom":break;case"set":s.noop.name=s.noop.appdata.split("=")[0],s.noop.value=s.noop.appdata.split("=")[1];break;case"agi":s.noop.project=s.noop.appdata;break;default:var r=s.noop.appdata.split(",");s.noop.value=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.noop.type&&"outbound"===s.noop.type.toLowerCase()&&"outbounddial"===s.noop.appType.toLowerCase()&&(s.noop.prefix=s.noop.phone?s.noop.phone.split("$")[0]:void 0,s.noop.callerId=s.noop.callerID?"CALLERID(all)="+s.noop.callerID:void 0,s.noop.recordingFormat=s.noop.record?s.noop.recordingFormat:"none"),s.saveOpenchannelAccountApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","openchannelAccountApp","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null);var t=_.find(s.queues,{name:s.queue.queue});if(t&&(s.queue[_.capitalize("openChannel")+"QueueId"]=t.id),s.queue.appType&&"custom"===s.queue.appType);else switch((s.queue.app||s.queue.appType).toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.timeout,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="OPENCHANNEL.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}else s.queue.queue=300,s.queue.timeout=300;s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveOpenchannelAccountApp=i,s.closeDialog=o,a.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","openchannelAccountApp","api"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.openchannelAccount=e,v.query.id=v.openchannelAccount.id,v.getOpenchannelAccountInteractions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the interaction?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete interaction").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.openchannelAccountInteractions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.openchannelAccount.getInteractions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interaction:t,interactions:v.openchannelAccountInteractions.rows}})}function p(e){r.interaction.delete({id:e.id}).$promise.then(function(){_.remove(v.openchannelAccountInteractions.rows,{id:e.id}),v.openchannelAccountInteractions.count-=1,v.openchannelAccountInteractions.rows.length||v.getOpenchannelAccountInteractions(),s.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedOpenchannelAccountInteractions);return v.selectedOpenchannelAccountInteractions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected interactions?").htmlContent(""+v.selectedOpenchannelAccountInteractions.length+" selected will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOpenchannelAccountInteractions.forEach(function(e){p(e)}),v.selectedOpenchannelAccountInteractions=[]})}var v=this;v.openchannelAccount={},v.openchannelAccountInteractions={count:0,rows:[]},v.selectedOpenchannelAccountInteractions=[],v.query={fields:"createdAt,updatedAt,id,createdAt,ContactId,UserId,closedAt,disposition,note",sort:"-createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getOpenchannelAccountInteractions=m,v.createOrEditOpenchannelAccountInteraction=u,v.exportSelectedOpenchannelAccountInteractions=g,v.deleteOpenchannelAccountInteraction=p,v.deleteSelectedOpenchannelAccountInteractions=h,r.user.get({fields:"id,name"}).$promise.then(function(e){v.users=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.get({fields:"id,firstName,lastName"}).$promise.then(function(e){v.contacts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontacts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getOpenchannelAccountInteractions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){v.openchannelAccount=e,v.query.id=v.openchannelAccount.id,v.query.OpenchannelAccountId=v.openchannelAccount.id,v.getOpenchannelAccountOpenchannelDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelDisposition?").htmlContent(""+e.name+" will be deleted.").ariaLabel("delete openchannelDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.openchannelAccountOpenchannelDispositions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.openchannelAccount.getDispositions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditOpenchannelDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelDisposition:t,openchannelDispositions:v.openchannelAccountOpenchannelDispositions.rows}})}function p(e){r.openchannelDisposition.delete({id:e.id}).$promise.then(function(){_.remove(v.openchannelAccountOpenchannelDispositions.rows,{id:e.id}),v.openchannelAccountOpenchannelDispositions.count-=1,v.openchannelAccountOpenchannelDispositions.rows.length||v.getOpenchannelAccountOpenchannelDispositions(),s.success({title:"OpenchannelDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedOpenchannelAccountOpenchannelDispositions);return v.selectedOpenchannelAccountOpenchannelDispositions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelDispositions?").htmlContent(""+v.selectedOpenchannelAccountOpenchannelDispositions.length+" selected will be deleted.").ariaLabel("delete openchannelDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedOpenchannelAccountOpenchannelDispositions.forEach(function(e){p(e)}),v.selectedOpenchannelAccountOpenchannelDispositions=[]})}var v=this;v.openchannelAccount={},v.openchannelAccountOpenchannelDispositions={count:0,rows:[]},v.selectedOpenchannelAccountOpenchannelDispositions=[],v.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getOpenchannelAccountOpenchannelDispositions=m,v.createOrEditOpenchannelAccountOpenchannelDisposition=u,v.exportSelectedOpenchannelAccountOpenchannelDispositions=g,v.deleteOpenchannelAccountOpenchannelDisposition=p,v.deleteSelectedOpenchannelAccountOpenchannelDispositions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getOpenchannelAccountOpenchannelDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelDisposition.save(p.openchannelDisposition).$promise.then(function(e){p.openchannelDispositions.unshift(e.toJSON()),i.success({title:"OpenchannelDisposition properly created",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.save"}];for(var t=0;t"+(e.name||"openchannelAccount")+" will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:t,openchannelAccounts:A.openchannelAccounts.rows}})}function v(e){l.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelAccounts.rows,{id:e.id}),A.openchannelAccounts.count-=1,A.openchannelAccounts.rows.length||A.getOpenchannelAccounts(),c.success({title:"OpenchannelAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedOpenchannelAccounts);return A.selectedOpenchannelAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent(""+A.selectedOpenchannelAccounts.length+" selected will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelAccounts.forEach(function(e){v(e)}),A.selectedOpenchannelAccounts=[]})}function E(){A.selectedOpenchannelAccounts=[]}function y(){A.selectedOpenchannelAccounts=A.openchannelAccounts.rows}var A=this;A.openchannelAccounts=r||{count:0,rows:[]},A.table="openchannelAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,replyUri,ListId,description,receiveUri",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelAccounts=g,A.createOrEditOpenchannelAccount=h,A.deleteOpenchannelAccount=v,A.exportSelectedOpenchannelAccounts=b,A.deleteSelectedOpenchannelAccounts=f,A.deselectOpenchannelAccounts=E,A.selectAllOpenchannelAccounts=y,l.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelAccounts","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelQueue.save(p.openchannelQueue).$promise.then(function(e){p.openchannelQueues.unshift(e.toJSON()),i.success({title:"OpenchannelQueue properly created",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var t=0;t":"",e}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.selectedItems=m.selectedItems,r.hasRole("admin")?n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:n.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){m.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o}function c(){e.hide()}var m=this;m.openchannelQueue=a,m.penalty=0,m.items=[],m.selectedItems=[],m.closeDialog=c,m.isVoiceRealtime=d,m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:s.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,a){n.openchannelQueue[a?"removeAgents":"addAgents"]({id:m.openchannelQueue.id,ids:_.map(e,m.isVoiceRealtime()&&a?"UserId":"id"),penalty:m.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"OpenchannelQueue properly "+(a?"removed":"added"),msg:"OpenchannelQueue has been "+(a?"removed":"added")+"!"}),a||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.openchannelQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:i.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,a){n.openchannelQueue[a?"removeTeams":"addTeams"]({id:s.openchannelQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.openchannelQueue.getTeams({id:s.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","openchannelQueue","$translate"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e,t){n.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:m.openchannelQueues?m.openchannelQueues.rows:[]}})}function l(e,t){n.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:m.openchannelQueues?m.openchannelQueues.rows:[],realtime:!1}})}function d(){e.go("app.openchannel.openchannelQueues")}function c(){o.openchannelQueue.update({id:m.openchannelQueue.id},m.openchannelQueue).$promise.then(function(){i.success({title:"OpenchannelQueue updated!",msg:m.openchannelQueue.name?m.openchannelQueue.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var m=this;m.location=t.protocol()+"://"+t.host(),m.openchannelQueue=e.params.openchannelQueue||s||{},m.selectedTab=e.params.tab||0,m.teamadddialog=r,m.agentadddialog=l,m.alert=i.info,m.gotoOpenchannelQueues=d,m.saveOpenchannelQueue=c}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","openchannelQueue"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e})}function u(e,t){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:C.openchannelQueues?C.openchannelQueues.rows:[]}})}function p(e,t){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:C.openchannelQueues?C.openchannelQueues.rows:[],realtime:!1}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelQueue?").htmlContent(""+(e.name||"openchannelQueue")+" will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){C.openchannelQueues=e||{count:0,rows:[]}}function v(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.openchannelQueue.get(C.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:C.openchannelQueues.rows}})}function f(e){l.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(C.openchannelQueues.rows,{id:e.id}),C.openchannelQueues.count-=1,C.openchannelQueues.rows.length||C.getOpenchannelQueues(),c.success({title:"OpenchannelQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=angular.copy(C.selectedOpenchannelQueues);return C.selectedOpenchannelQueues=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent(""+C.selectedOpenchannelQueues.length+" selected will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedOpenchannelQueues.forEach(function(e){f(e)}),C.selectedOpenchannelQueues=[]})}function A(){C.selectedOpenchannelQueues=[]}function T(){C.selectedOpenchannelQueues=C.openchannelQueues.rows}var C=this;C.openchannelQueues=r||{count:0,rows:[]},C.table="openchannelQueues",C.listOrder="",C.listOrderAsc=null,C.selectedOpenchannelQueues=[],C.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},C.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.editstate=m,C.teamadddialog=u,C.agentadddialog=p,C.deleteconfirm=g,C.success=h,C.getOpenchannelQueues=v,C.createOrEditOpenchannelQueue=b,C.deleteOpenchannelQueue=f,C.exportSelectedOpenchannelQueues=E,C.deleteSelectedOpenchannelQueues=y,C.deselectOpenchannelQueues=A,C.selectAllOpenchannelQueues=T;var S=!0,x=1;e.$watch("vm.query.filter",function(e,t){S?s(function(){S=!1}):(t||(x=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=x),C.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelQueues","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.customization).$promise.then(function(e){p.customizations.unshift(e.toJSON()),i.success({title:"Customization properly created",msg:p.customization.name?p.customization.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t8388608)return t.error({title:"File too big",msg:"The max allowed size for image files is 8 Mb"}),!1;var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo_login",s.customization.images=[]}function a(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1;if(e.size>8388608)return t.error({title:"File too big",msg:"The max allowed size for image files is 8 Mb"}),!1;var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.general).$promise.then(function(e){p.generals.unshift(e.toJSON()),i.success({title:"General properly created",msg:p.general.name?p.general.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t"+(e.name||"network")+" will be deleted.").ariaLabel("delete network").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.networks=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.network.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:t,networks:A.networks.rows}})}function v(e){l.network.delete({id:e.id}).$promise.then(function(){_.remove(A.networks.rows,{id:e.id}),A.networks.count-=1,A.networks.rows.length||A.getNetworks(),c.success({title:"Network deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETnetwork",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedNetworks);return A.selectedNetworks=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent(""+A.selectedNetworks.length+" selected will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedNetworks.forEach(function(e){v(e)}),A.selectedNetworks=[]})}function E(){A.selectedNetworks=[]}function y(){A.selectedNetworks=A.networks.rows}var A=this;A.networks=r||{count:0,rows:[]},A.table="networks",A.listOrder="",A.listOrderAsc=null,A.selectedNetworks=[],A.query={fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getNetworks=g,A.createOrEditNetwork=h,A.deleteNetwork=v,A.exportSelectedNetworks=b,A.deleteSelectedNetworks=f,A.deselectNetworks=E,A.selectAllNetworks=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","networks","api","msUtils","toasty"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.smtp).$promise.then(function(e){p.smtps.unshift(e.toJSON()),i.success({title:"Smtp properly created",msg:p.smtp.name?p.smtp.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t
Do you agree the terms of this End User License Agreement?').ariaLabel("").targetEvent(t).clickOutsideToClose(!0).parent(angular.element(n.body)).ok("I agree").cancel("Disagree");e.show(a).then(function(){e.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!1})})}var s=this;s.version=a||{},s.updateConfirm=o}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsAccount.save(p.smsAccount).$promise.then(function(e){p.smsAccounts.unshift(e.toJSON()),i.success({title:"SmsAccount properly created",msg:p.smsAccount.name?p.smsAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete smsDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.smsAccountSmsDispositions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.smsAccount.getDispositions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditSmsDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsDisposition:t,smsDispositions:v.smsAccountSmsDispositions.rows}})}function p(e){r.smsDisposition.delete({id:e.id}).$promise.then(function(){_.remove(v.smsAccountSmsDispositions.rows,{id:e.id}),v.smsAccountSmsDispositions.count-=1,v.smsAccountSmsDispositions.rows.length||v.getSmsAccountSmsDispositions(),s.success({title:"SmsDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedSmsAccountSmsDispositions);return v.selectedSmsAccountSmsDispositions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected smsDispositions?").htmlContent(""+v.selectedSmsAccountSmsDispositions.length+" selected will be deleted.").ariaLabel("delete smsDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedSmsAccountSmsDispositions.forEach(function(e){p(e)}),v.selectedSmsAccountSmsDispositions=[]})}var v=this;v.smsAccount={},v.smsAccountSmsDispositions={count:0,rows:[]},v.selectedSmsAccountSmsDispositions=[],v.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getSmsAccountSmsDispositions=m,v.createOrEditSmsAccountSmsDisposition=u,v.exportSelectedSmsAccountSmsDispositions=g,v.deleteSmsAccountSmsDisposition=p,v.deleteSelectedSmsAccountSmsDispositions=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getSmsAccountSmsDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.sms").controller("SmsAccountSmsDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsDisposition.save(p.smsDisposition).$promise.then(function(e){p.smsDispositions.unshift(e.toJSON()),i.success({title:"SmsDisposition properly created",msg:p.smsDisposition.name?p.smsDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.save"}];for(var t=0;t"+(e.name||"smsAccount")+" will be deleted.").ariaLabel("delete smsAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:t,smsAccounts:A.smsAccounts.rows}})}function v(e){l.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.smsAccounts.rows,{id:e.id}),A.smsAccounts.count-=1,A.smsAccounts.rows.length||A.getSmsAccounts(),c.success({title:"SmsAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedSmsAccounts);return A.selectedSmsAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent(""+A.selectedSmsAccounts.length+" selected will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsAccounts.forEach(function(e){v(e)}),A.selectedSmsAccounts=[]})}function E(){A.selectedSmsAccounts=[]}function y(){A.selectedSmsAccounts=A.smsAccounts.rows}var A=this;A.smsAccounts=r||{count:0,rows:[]},A.table="smsAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedSmsAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysmstype=_.keyBy([{option:"Basic",value:"'basic'"},{option:"Classic",value:"'classic'"},{option:"Classic+",value:"'classic+'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsAccounts=g,A.createOrEditSmsAccount=h,A.deleteSmsAccount=v,A.exportSelectedSmsAccounts=b,A.deleteSelectedSmsAccounts=f,A.deselectSmsAccounts=E,A.selectAllSmsAccounts=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsAccounts","api","msUtils","toasty"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsQueue.save(p.smsQueue).$promise.then(function(e){p.smsQueues.unshift(e.toJSON()),i.success({title:"SmsQueue properly created",msg:p.smsQueue.name?p.smsQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var t=0;t"+(e.name||"smsQueue")+" will be deleted.").ariaLabel("delete smsQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:A.smsQueues.rows}})}function v(e){l.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.smsQueues.rows,{id:e.id}),A.smsQueues.count-=1,A.smsQueues.rows.length||A.getSmsQueues(),c.success({title:"SmsQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedSmsQueues);return A.selectedSmsQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent(""+A.selectedSmsQueues.length+" selected will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsQueues.forEach(function(e){v(e)}),A.selectedSmsQueues=[]})}function E(){A.selectedSmsQueues=[]}function y(){A.selectedSmsQueues=A.smsQueues.rows}var A=this;A.smsQueues=r||{count:0,rows:[]},A.table="smsQueues",A.listOrder="",A.listOrderAsc=null,A.selectedSmsQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsQueues=g,A.createOrEditSmsQueue=h,A.deleteSmsQueue=v,A.exportSelectedSmsQueues=b,A.deleteSelectedSmsQueues=f,A.deselectSmsQueues=E,A.selectAllSmsQueues=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsQueues","api","msUtils","toasty"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.agents.edit",{id:e.id,agent:e})}function u(e,t){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:T.agents?T.agents.rows:[]}})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent(""+(e.name||"agent")+" will be deleted.").ariaLabel("delete agent").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.agents=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.user.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:t,agents:T.agents.rows}})}function b(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(T.agents.rows,{id:e.id}),T.agents.count-=1,T.agents.rows.length||T.getAgents(),c.success({title:"Agent deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedAgents);return T.selectedAgents=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent(""+T.selectedAgents.length+" selected will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedAgents.forEach(function(e){b(e)}),T.selectedAgents=[]})}function y(){T.selectedAgents=[]}function A(){T.selectedAgents=T.agents.rows}var T=this;T.agents=r||{count:0,rows:[]},T.table="agents",T.listOrder="",T.listOrderAsc=null,T.selectedAgents=[],T.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,showWebBar,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarDnd,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,page:1},T.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.editstate=m,T.teamadddialog=u,T.deleteconfirm=p,T.success=g,T.getAgents=h,T.createOrEditAgent=v,T.deleteAgent=b,T.exportSelectedAgents=f,T.deleteSelectedAgents=E,T.deselectAgents=y,T.selectAllAgents=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","agents","api","msUtils","toasty"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.agent).$promise.then(function(e){p.agents.unshift(e.toJSON()),i.success({title:"Agent properly created",msg:p.agent.name?p.agent.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t8388608)return t.error({title:"File too big",msg:"The max allowed size for image files is 8 Mb"}),!1;var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.agent.images.unshift(a),!0}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.agent.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.agent={},s.ngFlowOptions={maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.agent.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Agent password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.agent=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","agent"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){n.user[u.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:u.agent.id,fields:u.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy,type",channel:i,nolimit:!0}).$promise.then(function(e){return u.isVoiceRealtime()?u.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:u.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],l.hasRole("admin")?n[u.apiname].get({fields:"id,name,strategy,type",nolimit:!0,type:"agent"===u.agent.role?s:void 0}).$promise:n.user.getQueues({id:l.getCurrentUser().id,fields:"id,name,strategy,type",nolimit:!0,type:"agent"===u.agent.role?s:void 0,channel:i}).$promise}).then(function(e){u.items=e.rows?e.rows:[],u.selectedItems=_.intersectionBy(u.selectedItems,u.items,"id"),u.dualMultiselectOptions.selectedItems=u.selectedItems,u.dualMultiselectOptions.items=_.differenceBy(u.items,u.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function c(){return o&&"voice"===i}function m(){e.hide()}var u=this;u.agent=a,u.penalty=0,u.apiname=i+"Queue",u.title=r.instant("STAFF.QUEUEADD_AGENT_"+i.toUpperCase()+"_"+s.toUpperCase()),u.items=[],u.selectedItems=[],u.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"name",line2:"type",line3:"agent"===u.agent.role?"penalty":"",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:u.agent.id,ids:_.map(e,"id"),channel:i,penalty:u.penalty||0,realtime:o}).$promise.then(function(){d(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},u.closeDialog=m,u.isVoiceRealtime=c,d()}e.$inject=["$mdDialog","toasty","api","agent","channel","realtime","direction","$translate","Auth"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.agent=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("STAFF.ALL_TEAMS"),labelSelected:i.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,a){n.user[a?"removeTeams":"addTeams"]({id:s.agent.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:agent.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.user.getTeams({id:s.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","agent","$translate"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e,t,i){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:i,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:t,realtime:!1,direction:"inbound"}})}function l(e,t){n.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[]}})}function d(e,t){n.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[]}})}function c(){e.go("app.staff.agents")}function m(){u.agent=_.omit(u.agent,"userpic"),o.user.update({id:u.agent.id},u.agent).$promise.then(function(){i.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var u=this;u.location=t.protocol()+"://"+t.host(),u.agent=e.params.agent||s||{},u.selectedTab=e.params.tab||0,u.queueaddchannel=r,u.teamadddialog=l,u.changepassworddialog=d,u.alert=i.info,u.gotoAgents=c,u.saveAgent=m}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","agent"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.team.save(p.team).$promise.then(function(e){p.teams.unshift(e.toJSON()),i.success({title:"Team properly created",msg:p.team.name?p.team.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var t=0;t":"",e}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.selectedItems=m.selectedItems,r.hasRole("admin")?n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:n.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){m.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o}function c(){e.hide()}var m=this;m.team=a,m.penalty=0,m.items=[],m.selectedItems=[],m.closeDialog=c,m.isVoiceRealtime=d,m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("STAFF.ALL_AGENTS"),labelSelected:s.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,a){n.team[a?"removeAgents":"addAgents"]({id:m.team.id,ids:_.map(e,m.isVoiceRealtime()&&a?"UserId":"id"),penalty:m.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"}),a||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:team.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","team","teams","realtime","$translate","Auth"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:T.teams.rows}})}function u(e,t){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:T.teams?T.teams.rows:[],realtime:!1}})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the team?").htmlContent(""+(e.name||"team")+" will be deleted.").ariaLabel("delete team").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.teams=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.team.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:t,teams:T.teams.rows}})}function b(e){l.team.delete({id:e.id}).$promise.then(function(){_.remove(T.teams.rows,{id:e.id}),T.teams.count-=1,T.teams.rows.length||T.getTeams(),c.success({title:"Team deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETteam",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedTeams);return T.selectedTeams=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent(""+T.selectedTeams.length+" selected will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedTeams.forEach(function(e){b(e)}),T.selectedTeams=[]})}function y(){T.selectedTeams=[]}function A(){T.selectedTeams=T.teams.rows}var T=this;T.teams=r||{count:0,rows:[]},T.table="teams",T.listOrder="",T.listOrderAsc=null,T.selectedTeams=[],T.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},T.editdialog=m,T.agentadddialog=u,T.deleteconfirm=p,T.success=g,T.getTeams=h,T.createOrEditTeam=v,T.deleteTeam=b,T.exportSelectedTeams=f,T.deleteSelectedTeams=E,T.deselectTeams=y,T.selectAllTeams=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","teams","api","msUtils","toasty"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.telephone).$promise.then(function(e){p.telephones.unshift(e.toJSON()),i.success({title:"Telephone properly created",msg:p.telephone.name?p.telephone.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t"+(e.name||"telephone")+" will be deleted.").ariaLabel("delete telephone").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.telephones=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:t,telephones:A.telephones.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.telephones.rows,{id:e.id}),A.telephones.count-=1,A.telephones.rows.length||A.getTelephones(),c.success({title:"Telephone deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedTelephones);return A.selectedTelephones=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent(""+A.selectedTelephones.length+" selected will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTelephones.forEach(function(e){v(e)}),A.selectedTelephones=[]})}function E(){A.selectedTelephones=[]}function y(){A.selectedTelephones=A.telephones.rows}var A=this;A.telephones=r||{count:0,rows:[]},A.table="telephones",A.listOrder="",A.listOrderAsc=null,A.selectedTelephones=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTelephones=g,A.createOrEditTelephone=h,A.deleteTelephone=v,A.exportSelectedTelephones=b,A.deleteSelectedTelephones=f,A.deselectTelephones=E,A.selectAllTelephones=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","telephones","api","msUtils","toasty"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.user).$promise.then(function(e){p.users.unshift(e.toJSON()),i.success({title:"User properly created",msg:p.user.name?p.user.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t8388608)return t.error({title:"File too big",msg:"The max allowed size for image files is 8 Mb"}),!1;var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.user.images.unshift(a),!0}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.user.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.user={},s.ngFlowOptions={maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id,newPassword:s.password}).$promise.then(function(){t.success({title:"User password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,t,n){function a(e){o.user=e}function i(t,a){if((a||t).enabled){if(a)a.enabled=!0,o.user.permissions.push(a.id);else for(var i=0;i"+(e.name||"user")+" will be deleted.").ariaLabel("delete user").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.users=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:t,users:A.users.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.users.rows,{id:e.id}),A.users.count-=1,A.users.rows.length||A.getUsers(),c.success({title:"User deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedUsers);return A.selectedUsers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected users?").htmlContent(""+A.selectedUsers.length+" selected will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedUsers.forEach(function(e){v(e)}),A.selectedUsers=[]})}function E(){A.selectedUsers=[]}function y(){A.selectedUsers=A.users.rows}var A=this;A.users=r||{count:0,rows:[]},A.table="users",A.listOrder="",A.listOrderAsc=null,A.selectedUsers=[],A.query={fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,page:1},A.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getUsers=g,A.createOrEditUser=h,A.deleteUser=v,A.exportSelectedUsers=b,A.deleteSelectedUsers=f,A.deselectUsers=E,A.selectAllUsers=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","users","api","msUtils","toasty"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:A.cannedAnswers.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the cannedAnswer?").htmlContent(""+(e.name||"cannedAnswer")+" will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.cannedAnswers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cannedAnswer.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:t,cannedAnswers:A.cannedAnswers.rows}})}function v(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(A.cannedAnswers.rows,{id:e.id}),A.cannedAnswers.count-=1,A.cannedAnswers.rows.length||A.getCannedAnswers(),c.success({title:"CannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcannedAnswer",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedCannedAnswers);return A.selectedCannedAnswers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent(""+A.selectedCannedAnswers.length+" selected will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCannedAnswers.forEach(function(e){v(e)}),A.selectedCannedAnswers=[]})}function E(){A.selectedCannedAnswers=[]}function y(){A.selectedCannedAnswers=A.cannedAnswers.rows}var A=this;A.cannedAnswers=r||{count:0,rows:[]},A.table="cannedAnswers",A.listOrder="",A.listOrderAsc=null,A.selectedCannedAnswers=[],A.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getCannedAnswers=g,A.createOrEditCannedAnswer=h,A.deleteCannedAnswer=v,A.exportSelectedCannedAnswers=b,A.deleteSelectedCannedAnswers=f,A.deselectCannedAnswers=E,A.selectAllCannedAnswers=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","cannedAnswers","api","msUtils","toasty"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cannedAnswer.save(p.cannedAnswer).$promise.then(function(e){p.cannedAnswers.unshift(e.toJSON()),i.success({title:"CannedAnswer properly created",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var t=0;t"+(e.name||"customDashboard")+" will be deleted.").ariaLabel("delete customDashboard").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.customDashboards=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.dashboard.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:t,customDashboards:A.customDashboards.rows}})}function v(e){l.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(A.customDashboards.rows,{id:e.id}),A.customDashboards.count-=1,A.customDashboards.rows.length||A.getCustomDashboards(),c.success({title:"CustomDashboard deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedCustomDashboards);return A.selectedCustomDashboards=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent(""+A.selectedCustomDashboards.length+" selected will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCustomDashboards.forEach(function(e){v(e)}),A.selectedCustomDashboards=[]})}function E(){A.selectedCustomDashboards=[]}function y(){A.selectedCustomDashboards=A.customDashboards.rows}var A=this;A.customDashboards=r||{count:0,rows:[]},A.table="customDashboards",A.listOrder="",A.listOrderAsc=null,A.selectedCustomDashboards=[],A.query={fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getCustomDashboards=g,A.createOrEditCustomDashboard=h,A.deleteCustomDashboard=v,A.exportSelectedCustomDashboards=b,A.deleteSelectedCustomDashboards=f,A.deselectCustomDashboards=E,A.selectAllCustomDashboards=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","customDashboards","api","msUtils","toasty"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){return console.log(e),i.dashboardItem.delete({id:e}).$promise.then(function(t){_.remove(c.items.rows,{id:e})}).catch(function(e){console.error(e)})}function s(e,t,n){return i.dashboardItem.update(n).$promise.catch(function(e){console.error(e)})}function r(e){t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{dashboarditem:null,dashboard:c.items.rows}})}function l(e){return c.customDashboard=e,d=a(function(){return i.dashboard.run({id:c.customDashboard.id})},1e3*c.customDashboard.interval),i.dashboard.getItems({id:e.id,fields:"id,type,sizeX,sizeY,row,col,data"}).$promise.then(function(e){c.items=e}).catch(function(e){console.error(e)})}var d,c=this;c.customDashboard={},c.gridOptions={resizable:{enabled:!0,stop:s},draggable:{enabled:!0,stop:s}},c.items={rows:[],count:0},c.init=l,c.addItem=r,c.updateItem=s,c.deleteItem=o,e.$on("$destroy",function(){a.cancel(d)})}e.$inject=["$scope","$mdDialog","$document","$interval","api"],angular.module("app.tools").controller("CustomDashboardCustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.addItem({id:t.params.id},p.dashboarditem).$promise.then(function(e){p.dashboard.unshift(e.toJSON()),i.success({title:"DashboardItem properly created",msg:p.dashboarditem.name?p.dashboarditem.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.intervalIntervals=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.interval.getIntervals(v.query,c).$promise}function u(e,t){i.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:v.intervalIntervals.rows}})}function p(e){r.interval.delete({id:e.id}).$promise.then(function(){_.remove(v.intervalIntervals.rows,{id:e.id}),v.intervalIntervals.count-=1,v.intervalIntervals.rows.length||v.getIntervalIntervals(),s.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedIntervalIntervals);return v.selectedIntervalIntervals=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent(""+v.selectedIntervalIntervals.length+" selected will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedIntervalIntervals.forEach(function(e){p(e)}),v.selectedIntervalIntervals=[]})}var v=this;v.interval={},v.intervalIntervals={count:0,rows:[]},v.selectedIntervalIntervals=[],v.sortableTable={animation:100,onSort:function(e){r.interval.addIntervals({id:v.interval.id},e.models).$promise.then(function(e){v.intervalIntervals.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},v.query={fields:"createdAt,updatedAt,id,name,interval,createdAt",nolimit:"true",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getIntervalIntervals=m,v.createOrEditIntervalInterval=u,v.exportSelectedIntervalIntervals=g,v.deleteIntervalInterval=p,v.deleteSelectedIntervalIntervals=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getIntervalIntervals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e.toJSON()),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t"+(e.name||"interval")+" will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.intervals=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.interval.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:A.intervals.rows}})}function v(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(A.intervals.rows,{id:e.id}),A.intervals.count-=1,A.intervals.rows.length||A.getIntervals(),c.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedIntervals);return A.selectedIntervals=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent(""+A.selectedIntervals.length+" selected will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedIntervals.forEach(function(e){v(e)}),A.selectedIntervals=[]})}function E(){A.selectedIntervals=[]}function y(){A.selectedIntervals=A.intervals.rows}var A=this;A.intervals=r||{count:0,rows:[]},A.table="intervals",A.listOrder="",A.listOrderAsc=null,A.selectedIntervals=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getIntervals=g,A.createOrEditInterval=h,A.deleteInterval=v,A.exportSelectedIntervals=b,A.deleteSelectedIntervals=f,A.deselectIntervals=E,A.selectAllIntervals=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","intervals","api","msUtils","toasty"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.pause.save(p.pause).$promise.then(function(e){p.pauses.unshift(e.toJSON()),i.success({title:"Pause properly created",msg:p.pause.name?p.pause.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var t=0;t"+(e.name||"pause")+" will be deleted.").ariaLabel("delete pause").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.pauses=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.pause.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:t,pauses:A.pauses.rows}})}function v(e){l.pause.delete({id:e.id}).$promise.then(function(){_.remove(A.pauses.rows,{id:e.id}),A.pauses.count-=1,A.pauses.rows.length||A.getPauses(),c.success({title:"Pause deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpause",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedPauses);return A.selectedPauses=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent(""+A.selectedPauses.length+" selected will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedPauses.forEach(function(e){v(e)}),A.selectedPauses=[]})}function E(){A.selectedPauses=[]}function y(){A.selectedPauses=A.pauses.rows}var A=this;A.pauses=r||{count:0,rows:[]},A.table="pauses",A.listOrder="",A.listOrderAsc=null,A.selectedPauses=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getPauses=g,A.createOrEditPause=h,A.deletePause=v,A.exportSelectedPauses=b,A.deleteSelectedPauses=f,A.deselectPauses=E,A.selectAllPauses=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","pauses","api","msUtils","toasty"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.schedule.save(p.schedule).$promise.then(function(e){p.schedules.unshift(e.toJSON()),i.success({title:"Schedule properly created",msg:p.schedule.name?p.schedule.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var t=0;t"+(e.name||"schedule")+" will be deleted.").ariaLabel("delete schedule").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.schedules=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.schedule.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:t,schedules:A.schedules.rows}})}function v(e){l.schedule.delete({id:e.id}).$promise.then(function(){_.remove(A.schedules.rows,{id:e.id}),A.schedules.count-=1,A.schedules.rows.length||A.getScheduler(),c.success({title:"Schedule deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedScheduler);return A.selectedScheduler=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent(""+A.selectedScheduler.length+" selected will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedScheduler.forEach(function(e){v(e)}),A.selectedScheduler=[]})}function E(){A.selectedScheduler=[]}function y(){A.selectedScheduler=A.schedules.rows}var A=this;A.schedules=r||{count:0,rows:[]},A.table="schedules",A.listOrder="",A.listOrderAsc=null,A.selectedScheduler=[],A.query={fields:"createdAt,updatedAt,id,name,type,DefaultReportId,CustomReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,description",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Default",value:"'default'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getScheduler=g,A.createOrEditSchedule=h,A.deleteSchedule=v,A.exportSelectedScheduler=b,A.deleteSelectedScheduler=f,A.deselectScheduler=E,A.selectAllScheduler=y,l.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.customReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.defaultReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.mailAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","schedules","api","msUtils","toasty"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.sound.save(p.sound).$promise.then(function(e){p.sounds.unshift(e.toJSON()),i.success({title:"Sound properly created",msg:p.sound.name?p.sound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var t=0;t"+(e.name||"sound")+" will be deleted.").ariaLabel("delete sound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.sounds=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.sound.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:t,sounds:C.sounds.rows}})}function b(e){l.sound.delete({id:e.id}).$promise.then(function(){_.remove(C.sounds.rows,{id:e.id}),C.sounds.count-=1,C.sounds.rows.length||C.getSounds(),c.success({title:"Sound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(C.selectedSounds);return C.selectedSounds=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent(""+C.selectedSounds.length+" selected will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedSounds.forEach(function(e){b(e)}),C.selectedSounds=[]})}function y(){C.selectedSounds=[]}function A(){C.selectedSounds=C.sounds.rows}function T(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/uploadsound/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:C.sounds.rows}})}var C=this;C.sounds=r||{count:0,rows:[]},C.table="sounds",C.listOrder="",C.listOrderAsc=null,C.selectedSounds=[],C.query={fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.downloadfile=u,C.deleteconfirm=p,C.success=g,C.getSounds=h,C.createOrEditSound=v,C.deleteSound=b,C.exportSelectedSounds=f,C.deleteSelectedSounds=E,C.deselectSounds=y,C.selectAllSounds=A,C.uploadSound=T;var S=!0,x=1;e.$watch("vm.query.filter",function(e,t){S?s(function(){S=!1}):(t||(x=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=x),C.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sounds","api","msUtils","toasty"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var t=["wav","mp3","gsm"];if(!_.includes(t,e.getExtension()))return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+t.join()}),!1;if(e.size>15728640)return n.error({title:"File too big",msg:"The max allowed size for audio files is 15 Mb"}),!1;var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return d.uploadSounds.unshift(a),!0}function s(){d.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},d.ngFlow.flow.upload()}function r(e,t){d.sounds.unshift(JSON.parse(t)),angular.forEach(d.uploadSounds,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="sound"}})}function l(){t.hide()}var d=this;d.errors=[],d.title="TOOLS.UPLOAD_SOUND",d.sounds=a,d.uploadSounds=[],d.sound={},d.ngFlowOptions={maxChunkRetries:1,chunkSize:15728640,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,target:"api/sounds"},d.ngFlow={flow:{}},d.dropping=!1,d.fileAdded=o,d.upload=s,d.fileSuccess=r,d.closeDialog=l}e.$inject=["$cookies","$mdDialog","toasty","sounds","api"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.tag.save(p.tag).$promise.then(function(e){p.tags.unshift(e.toJSON()),i.success({title:"Tag properly created",msg:p.tag.name?p.tag.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var t=0;t"+(e.name||"tag")+" will be deleted.").ariaLabel("delete tag").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.tags=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.tag.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:t,tags:A.tags.rows}})}function v(e){l.tag.delete({id:e.id}).$promise.then(function(){_.remove(A.tags.rows,{id:e.id}),A.tags.count-=1,A.tags.rows.length||A.getTags(),c.success({title:"Tag deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtag",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedTags);return A.selectedTags=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent(""+A.selectedTags.length+" selected will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTags.forEach(function(e){v(e)}),A.selectedTags=[]})}function E(){A.selectedTags=[]}function y(){A.selectedTags=A.tags.rows}var A=this;A.tags=r||{count:0,rows:[]},A.table="tags",A.listOrder="",A.listOrderAsc=null,A.selectedTags=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTags=g,A.createOrEditTag=h,A.deleteTag=v,A.exportSelectedTags=b,A.deleteSelectedTags=f,A.deselectTags=E,A.selectAllTags=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","tags","api","msUtils","toasty"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.template.save(p.template).$promise.then(function(e){p.templates.unshift(e.toJSON()),i.success({title:"Template properly created",msg:p.template.name?p.template.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var t=0;t"+(e.name||"template")+" will be deleted.").ariaLabel("delete template").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.templates=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.template.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:t,templates:A.templates.rows}})}function v(e){l.template.delete({id:e.id}).$promise.then(function(){_.remove(A.templates.rows,{id:e.id}),A.templates.count-=1,A.templates.rows.length||A.getTemplates(),c.success({title:"Template deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplate",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedTemplates);return A.selectedTemplates=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent(""+A.selectedTemplates.length+" selected will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTemplates.forEach(function(e){v(e)}),A.selectedTemplates=[]})}function E(){A.selectedTemplates=[]}function y(){A.selectedTemplates=A.templates.rows}var A=this;A.templates=r||{count:0,rows:[]},A.table="templates",A.listOrder="",A.listOrderAsc=null,A.selectedTemplates=[],A.query={fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTemplates=g,A.createOrEditTemplate=h,A.deleteTemplate=v,A.exportSelectedTemplates=b,A.deleteSelectedTemplates=f,A.deselectTemplates=E,A.selectAllTemplates=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","templates","api","msUtils","toasty"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.save(p.trigger).$promise.then(function(e){p.triggers.unshift(e.toJSON()),i.success({title:"Trigger properly created",msg:p.trigger.name?p.trigger.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete action").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.triggerActions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.trigger.getActions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{action:t,actions:v.triggerActions.rows}})}function p(e){r.action.delete({id:e.id}).$promise.then(function(){_.remove(v.triggerActions.rows,{id:e.id}),v.triggerActions.count-=1,v.triggerActions.rows.length||v.getTriggerActions(),s.success({title:"Action deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedTriggerActions);return v.selectedTriggerActions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected actions?").htmlContent(""+v.selectedTriggerActions.length+" selected will be deleted.").ariaLabel("delete actions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTriggerActions.forEach(function(e){p(e)}),v.selectedTriggerActions=[]})}var v=this;v.trigger={},v.triggerActions={count:0,rows:[]},v.selectedTriggerActions=[],v.query={fields:"createdAt,updatedAt,id,action,data1,data1,data1,data1,data2,data2,data1,data2,data2,data2,data2,data2,data2,data3,data3,data3,data3,data3,data3,data1,data2,data2,data3,data2,data2,data2,createdAt",limit:10,page:1},v.arrayaction=_.keyBy([{option:"CONTACT_MANAGER",value:"'contactManager'"},{option:"INTEGRATIONS",value:"'integration'"},{option:"MOTION_BAR",value:"'motionbar'"},{option:"JSCRIPTY",value:"'jscripty'"},{option:"URL_FORWARD",value:"'urlForward'"},{option:"BROWSER",value:"'browser'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.browserValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.urlForwardValues=_.keyBy([{option:"GET",value:"'GET'"},{option:"POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.integrationValues=_.keyBy([{option:"Zendesk",value:"'zendesk'"},{option:"Salesforce",value:"'salesforce'"},{option:"SugarCRM",value:"'sugarcrm'"},{option:"Freshdesk",value:"'freshdesk'"},{option:"Desk",value:"'desk'"},{option:"Zoho",value:"'zoho'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.motionbarValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"},{option:"Windows App",value:"'2'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.init=l,v.deleteConfirm=d,v.success=c,v.getTriggerActions=m,v.createOrEditTriggerAction=u,v.exportSelectedTriggerActions=g,v.deleteTriggerAction=p,v.deleteSelectedTriggerActions=h,r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){v.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){v.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.zendeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intDeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.deskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZohoAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.zohoAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.salesforceAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.sugarcrmAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.freshdeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){v.zendeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intDeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){v.deskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZohoConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){v.zohoConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzohoConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){v.salesforceConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){v.sugarcrmConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){v.freshdeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){v.templates=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getTriggerActions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAction({id:t.params.id},p.action).$promise.then(function(e){p.actions.unshift(e.toJSON()),i.success({title:"Action properly created",msg:p.action.name?p.action.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete allCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.triggerAllConditions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.trigger.getAllConditions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{allCondition:t,allconditions:v.triggerAllConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(v.triggerAllConditions.rows,{id:e.id}),v.triggerAllConditions.count-=1,v.triggerAllConditions.rows.length||v.getTriggerAllConditions(),s.success({title:"AllCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedTriggerAllConditions);return v.selectedTriggerAllConditions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected allconditions?").htmlContent(""+v.selectedTriggerAllConditions.length+" selected will be deleted.").ariaLabel("delete allconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTriggerAllConditions.forEach(function(e){p(e)}),v.selectedTriggerAllConditions=[]})}var v=this;v.trigger={},v.triggerAllConditions={count:0,rows:[]},v.selectedTriggerAllConditions=[],v.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},v.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayvalue=_.keyBy([{option:"Abandon",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Reject",value:"'rejected'"},{option:"Ring",value:"'called'"},{option:"Answer",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.init=l,v.deleteConfirm=d,v.success=c,v.getTriggerAllConditions=m,v.createOrEditTriggerAllCondition=u,v.exportSelectedTriggerAllConditions=g,v.deleteTriggerAllCondition=p,v.deleteSelectedTriggerAllConditions=h,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){v.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){v.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getTriggerAllConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAllCondition({id:t.params.id},p.allCondition).$promise.then(function(e){p.allconditions.unshift(e.toJSON()),i.success({title:"AllCondition properly created",msg:p.allCondition.name?p.allCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete anyCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.triggerAnyConditions=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.trigger.getAnyConditions(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{anyCondition:t,anyconditions:v.triggerAnyConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(v.triggerAnyConditions.rows,{id:e.id}),v.triggerAnyConditions.count-=1,v.triggerAnyConditions.rows.length||v.getTriggerAnyConditions(),s.success({title:"AnyCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedTriggerAnyConditions);return v.selectedTriggerAnyConditions=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected anyconditions?").htmlContent(""+v.selectedTriggerAnyConditions.length+" selected will be deleted.").ariaLabel("delete anyconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedTriggerAnyConditions.forEach(function(e){p(e)}),v.selectedTriggerAnyConditions=[]})}var v=this;v.trigger={},v.triggerAnyConditions={count:0,rows:[]},v.selectedTriggerAnyConditions=[],v.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},v.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.arrayvalue=_.keyBy([{option:"Abandon",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Reject",value:"'rejected'"},{option:"Ring",value:"'called'"},{option:"Answer",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.init=l,v.deleteConfirm=d,v.success=c,v.getTriggerAnyConditions=m,v.createOrEditTriggerAnyCondition=u,v.exportSelectedTriggerAnyConditions=g,v.deleteTriggerAnyCondition=p,v.deleteSelectedTriggerAnyConditions=h,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){v.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){v.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getTriggerAnyConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAnyCondition({id:t.params.id},p.anyCondition).$promise.then(function(e){p.anyconditions.unshift(e.toJSON()),i.success({title:"AnyCondition properly created",msg:p.anyCondition.name?p.anyCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t"+(e.name||"trigger")+" will be deleted.").ariaLabel("delete trigger").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.triggers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.trigger.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:t,triggers:A.triggers.rows}})}function v(e){l.trigger.delete({id:e.id}).$promise.then(function(){_.remove(A.triggers.rows,{id:e.id}),A.triggers.count-=1,A.triggers.rows.length||A.getTriggers(),c.success({title:"Trigger deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedTriggers);return A.selectedTriggers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected triggers?").htmlContent(""+A.selectedTriggers.length+" selected will be deleted.").ariaLabel("delete Triggers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTriggers.forEach(function(e){v(e)}),A.selectedTriggers=[]})}function E(){A.selectedTriggers=[]}function y(){A.selectedTriggers=A.triggers.rows}var A=this;A.triggers=r||{count:0,rows:[]},A.table="triggers",A.listOrder="",A.listOrderAsc=null,A.selectedTriggers=[],A.query={fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,page:1},A.arraychannel=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTriggers=g,A.createOrEditTrigger=h,A.deleteTrigger=v,A.exportSelectedTriggers=b,A.deleteSelectedTriggers=f,A.deselectTriggers=E,A.selectAllTriggers=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getTriggers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","triggers","api","msUtils","toasty"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trunk.save(p.trunk).$promise.then(function(e){p.trunks.unshift(e.toJSON()),i.success({title:"Trunk properly created",msg:p.trunk.name?p.trunk.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var t=0;t"+(e.name||"trunk")+" will be deleted.").ariaLabel("delete trunk").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){T.trunks=e||{count:0,rows:[]}}function h(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.trunk.get(T.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:t,trunks:T.trunks.rows}})}function b(e){l.trunk.delete({id:e.id}).$promise.then(function(){_.remove(T.trunks.rows,{id:e.id}),T.trunks.count-=1,T.trunks.rows.length||T.getTrunks(),c.success({title:"Trunk deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=angular.copy(T.selectedTrunks);return T.selectedTrunks=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent(""+T.selectedTrunks.length+" selected will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedTrunks.forEach(function(e){b(e)}),T.selectedTrunks=[]})}function y(){T.selectedTrunks=[]}function A(){T.selectedTrunks=T.trunks.rows}var T=this;T.trunks=r||{count:0,rows:[]},T.table="trunks",T.listOrder="",T.listOrderAsc=null,T.selectedTrunks=[],T.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,page:1},T.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),T.editstate=m,T.gotorealtimegoto=u,T.deleteconfirm=p,T.success=g,T.getTrunks=h,T.createOrEditTrunk=v,T.deleteTrunk=b,T.exportSelectedTrunks=f,T.deleteSelectedTrunks=E,T.deselectTrunks=y,T.selectAllTrunks=A;var C=!0,S=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(S=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=S),T.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","trunks","api","msUtils","toasty"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.variable.save(p.variable).$promise.then(function(e){p.variables.unshift(e.toJSON()),i.success({title:"Variable properly created",msg:p.variable.name?p.variable.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var t=0;t"+(e.name||"variable")+" will be deleted.").ariaLabel("delete variable").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.variables=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.variable.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:t,variables:A.variables.rows}})}function v(e){l.variable.delete({id:e.id}).$promise.then(function(){_.remove(A.variables.rows,{id:e.id}),A.variables.count-=1,A.variables.rows.length||A.getVariables(),c.success({title:"Variable deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariable",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedVariables);return A.selectedVariables=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent(""+A.selectedVariables.length+" selected will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVariables.forEach(function(e){v(e)}),A.selectedVariables=[]})}function E(){A.selectedVariables=[]}function y(){A.selectedVariables=A.variables.rows}var A=this;A.variables=r||{count:0,rows:[]},A.table="variables",A.listOrder="",A.listOrderAsc=null,A.selectedVariables=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getVariables=g,A.createOrEditVariable=h,A.deleteVariable=v,A.exportSelectedVariables=b,A.deleteSelectedVariables=f,A.deselectVariables=E,A.selectAllVariables=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","variables","api","msUtils","toasty"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:A.chanSpies.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chanSpy?").htmlContent(""+(e.name||"chanSpy")+" will be deleted.").ariaLabel("delete chanSpy").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chanSpies=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceChanSpy.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:t,chanSpies:A.chanSpies.rows}})}function v(e){l.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(A.chanSpies.rows,{id:e.id}),A.chanSpies.count-=1,A.chanSpies.rows.length||A.getChanSpies(),c.success({title:"chanSpy deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedChanSpies);return A.selectedChanSpies=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent(""+A.selectedChanSpies.length+" selected will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChanSpies.forEach(function(e){v(e)}),A.selectedChanSpies=[]})}function E(){A.selectedChanSpies=[]}function y(){A.selectedChanSpies=A.chanSpies.rows}var A=this;A.chanSpies=r||{count:0,rows:[]},A.table="chanSpies",A.listOrder="",A.listOrderAsc=null,A.selectedChanSpies=[],A.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},A.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getChanSpies=g,A.createOrEditchanSpy=h,A.deletechanSpy=v,A.exportSelectedChanSpies=b,A.deleteSelectedChanSpies=f,A.deselectChanSpies=E,A.selectAllChanSpies=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chanSpies","api","msUtils","toasty"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceChanSpy.save(p.chanSpy).$promise.then(function(e){p.chanSpies.unshift(e.toJSON()),i.success({title:"chanSpy properly created",msg:p.chanSpy.name?p.chanSpy.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var t=0;t"+(e.name||"context")+" will be deleted.").ariaLabel("delete context").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.contexts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceContext.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:t,contexts:A.contexts.rows}})}function v(e){l.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(A.contexts.rows,{id:e.id}),A.contexts.count-=1,A.contexts.rows.length||A.getContexts(),c.success({title:"Context deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceContext",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedContexts);return A.selectedContexts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent(""+A.selectedContexts.length+" selected will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedContexts.forEach(function(e){v(e)}),A.selectedContexts=[]})}function E(){A.selectedContexts=[]}function y(){A.selectedContexts=A.contexts.rows}var A=this;A.contexts=r||{count:0,rows:[]},A.table="contexts",A.listOrder="",A.listOrderAsc=null,A.selectedContexts=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getContexts=g,A.createOrEditContext=h,A.deleteContext=v,A.exportSelectedContexts=b,A.deleteSelectedContexts=f,A.deselectContexts=E,A.selectAllContexts=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","contexts","api","msUtils","toasty"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceContext.save(p.context).$promise.then(function(e){p.contexts.unshift(e.toJSON()),i.success({title:"Context properly created",msg:p.context.name?p.context.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var t=0;t"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.inboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.inboundrouteApps.rows.length){var o=g.inboundrouteApps.rows[i]?g.inboundrouteApps.rows[i]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundrouteApp:o}}).then(function(e){e&&(e.id?g.inboundrouteApps.rows[i]=e:g.inboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.inboundrouteApps.rows.length){var i=g.inboundrouteApps.rows[a]?g.inboundrouteApps.rows[a]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"inbound",app:"Set",appdata:"CDR(type)=inbound",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:i++,VoiceExtensionId:g.inboundroute.id});for(var s=0,r=0;s"+g.selectedInboundRouteApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInboundRouteApps.forEach(function(e){_.remove(g.inboundrouteApps.rows,{id:e.id})}),g.selectedInboundRouteApps=[],l()})}var g=this;g.inboundroute={},g.inboundrouteApps={count:0,rows:[]},g.selectedInboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-voip-provider",type:"Inbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",options:"xX",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",required:!0,type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-voip-provider",type:"Inbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",extraApi:[{name:"variables",route:"variable",filters:{fields:"name",sort:"name"}}],isApp:!0,fields:[{title:"Variable",name:"name",type:"apiselect",values:"variables",value:"name.name",option:"name.name",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"custom",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-voip-provider",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInboundRouteApps=m,g.editInboundRouteApp=s,g.editInterval=r,g.deleteInboundRouteApp=u,g.deleteSelectedInboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.agi.type&&"outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType&&"custom"===s.agi.appType);else switch((s.agi.app||s.agi.appType).toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.agi.type&&"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.custom.type&&"outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType&&"custom"===s.custom.appType);else switch((s.custom.app||s.custom.appType).toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.custom.type&&"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.dial.type&&"outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType&&"custom"===s.dial.appType);else switch((s.dial.app||s.dial.appType).toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.dial.type&&"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.externaldial.type&&"outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType&&"custom"===s.externaldial.appType);else switch((s.externaldial.app||s.externaldial.appType).toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.externaldial.type&&"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType&&"custom"===s.goto.appType);else switch((s.goto.app||s.goto.appType).toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.hangup.type&&"outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType&&"custom"===s.hangup.appType);else switch((s.hangup.app||s.hangup.appType).toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.hangup.type&&"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.internaldial.type&&"outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType&&"custom"===s.internaldial.appType);else switch((s.internaldial.app||s.internaldial.appType).toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.internaldial.type&&"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInboundAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.playback.type&&"outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType&&"custom"===s.playback.appType);else switch((s.playback.app||s.playback.appType).toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.playback.type&&"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType&&"custom"===s.queue.appType);else switch((s.queue.app||s.queue.appType).toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.ringgroup.type&&"outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType&&"custom"===s.ringgroup.appType);else switch((s.ringgroup.app||s.ringgroup.appType).toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.ringgroup.type&&"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.set.type&&"outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType&&"custom"===s.set.appType);else switch((s.set.app||s.set.appType).toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.set.type&&"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){s.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.voicemail.type&&"outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType&&"custom"===s.voicemail.appType);else switch((s.voicemail.app||s.voicemail.appType).toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.voicemail.type&&"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){e.go("app.voice.inboundroutes")}function l(){o.voiceExtension.update({id:d.inboundroute.id},d.inboundroute).$promise.then(function(){i.success({title:"InboundRoute updated!",msg:d.inboundroute.name?d.inboundroute.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.location=t.protocol()+"://"+t.host(),d.inboundroute=e.params.inboundroute||s||{},d.selectedTab=e.params.tab||0,d.alert=i.info,d.gotoInboundRoutes=r,d.saveInboundRoute=l,o.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){d.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","inboundroute"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.inboundroutes.edit",{id:e.id,inboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the inboundroute?").htmlContent(""+(e.name||"inboundroute")+" will be deleted.").ariaLabel("delete inboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.inboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundroute:t,inboundroutes:A.inboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.inboundroutes.rows,{id:e.id}),A.inboundroutes.count-=1,A.inboundroutes.rows.length||A.getInboundRoutes(),c.success({title:"InboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedInboundRoutes);return A.selectedInboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected inboundroutes?").htmlContent(""+A.selectedInboundRoutes.length+" selected will be deleted.").ariaLabel("delete InboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInboundRoutes.forEach(function(e){v(e)}),A.selectedInboundRoutes=[]})}function E(){A.selectedInboundRoutes=[]}function y(){A.selectedInboundRoutes=A.inboundroutes.rows}var A=this;A.inboundroutes=r||{count:0,rows:[]},A.table="inboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInboundRoutes=g,A.createOrEditInboundRoute=h,A.deleteInboundRoute=v,A.exportSelectedInboundRoutes=b,A.deleteSelectedInboundRoutes=f,A.deselectInboundRoutes=E,A.selectAllInboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getInboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","inboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.internalroute).$promise.then(function(e){p.internalroutes.unshift(e.toJSON()),i.success({title:"InternalRoute properly created",msg:p.internalroute.name?p.internalroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.internalrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.internalrouteApps.rows.length){var o=g.internalrouteApps.rows[i]?g.internalrouteApps.rows[i]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalrouteApp:o}}).then(function(e){e&&(e.id?g.internalrouteApps.rows[i]=e:g.internalrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.internalrouteApps.rows.length){var i=g.internalrouteApps.rows[a]?g.internalrouteApps.rows[a]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"internal",app:"Set",appdata:"CDR(type)=internal",context:g.internalroute.context,exten:g.internalroute.exten,priority:i++,VoiceExtensionId:g.internalroute.id});for(var s=0,r=0;s"+g.selectedInternalRouteApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInternalRouteApps.forEach(function(e){_.remove(g.internalrouteApps.rows,{id:e.id})}),g.selectedInternalRouteApps=[],l()})}var g=this;g.internalroute={},g.internalrouteApps={count:0,rows:[]},g.selectedInternalRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Internal",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",icon:"icon-apps",interval:"*,*,*,*",extraApi:[{name:"variables",route:"variable",filters:{fields:"name",sort:"name"}}],isApp:!0,fields:[{title:"Variable",name:"name",type:"apiselect",values:"variables",value:"name.name",option:"name.name",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"custom",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInternalRouteApps=m,g.editInternalRouteApp=s,g.editInterval=r,g.deleteInternalRouteApp=u,g.deleteSelectedInternalRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InternalRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.agi.type&&"outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType&&"custom"===s.agi.appType);else switch((s.agi.app||s.agi.appType).toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.agi.type&&"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.custom.type&&"outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType&&"custom"===s.custom.appType);else switch((s.custom.app||s.custom.appType).toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.custom.type&&"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.dial.type&&"outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType&&"custom"===s.dial.appType);else switch((s.dial.app||s.dial.appType).toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.dial.type&&"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.externaldial.type&&"outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType&&"custom"===s.externaldial.appType);else switch((s.externaldial.app||s.externaldial.appType).toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.externaldial.type&&"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType&&"custom"===s.goto.appType);else switch((s.goto.app||s.goto.appType).toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}s.goto.type&&"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.hangup.type&&"outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType&&"custom"===s.hangup.appType);else switch((s.hangup.app||s.hangup.appType).toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}s.hangup.type&&"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.internaldial.type&&"outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType&&"custom"===s.internaldial.appType);else switch((s.internaldial.app||s.internaldial.appType).toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.internaldial.type&&"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInternalAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.playback.type&&"outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType&&"custom"===s.playback.appType);else switch((s.playback.app||s.playback.appType).toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.playback.type&&"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType&&"custom"===s.queue.appType);else switch((s.queue.app||s.queue.appType).toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}s.queue.type&&"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.ringgroup.type&&"outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType&&"custom"===s.ringgroup.appType);else switch((s.ringgroup.app||s.ringgroup.appType).toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}s.ringgroup.type&&"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.set.type&&"outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType&&"custom"===s.set.appType);else switch((s.set.app||s.set.appType).toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.set.type&&"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){s.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.voicemail.type&&"outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType&&"custom"===s.voicemail.appType);else switch((s.voicemail.app||s.voicemail.appType).toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.voicemail.type&&"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){e.go("app.voice.internalroutes")}function l(){o.voiceExtension.update({id:d.internalroute.id},d.internalroute).$promise.then(function(){i.success({title:"InternalRoute updated!",msg:d.internalroute.name?d.internalroute.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.location=t.protocol()+"://"+t.host(),d.internalroute=e.params.internalroute||s||{},d.selectedTab=e.params.tab||0,d.alert=i.info,d.gotoInternalRoutes=r,d.saveInternalRoute=l,o.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){d.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","internalroute"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.internalroutes.edit",{id:e.id,internalroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the internalroute?").htmlContent(""+(e.name||"internalroute")+" will be deleted.").ariaLabel("delete internalroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.internalroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalroute:t,internalroutes:A.internalroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.internalroutes.rows,{id:e.id}),A.internalroutes.count-=1,A.internalroutes.rows.length||A.getInternalRoutes(),c.success({title:"InternalRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedInternalRoutes);return A.selectedInternalRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected internalroutes?").htmlContent(""+A.selectedInternalRoutes.length+" selected will be deleted.").ariaLabel("delete InternalRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInternalRoutes.forEach(function(e){v(e)}),A.selectedInternalRoutes=[]})}function E(){A.selectedInternalRoutes=[]}function y(){A.selectedInternalRoutes=A.internalroutes.rows}var A=this;A.internalroutes=r||{count:0,rows:[]},A.table="internalroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInternalRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInternalRoutes=g,A.createOrEditInternalRoute=h,A.deleteInternalRoute=v,A.exportSelectedInternalRoutes=b,A.deleteSelectedInternalRoutes=f,A.deselectInternalRoutes=E,A.selectAllInternalRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getInternalRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","internalroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.save(p.musiconhold).$promise.then(function(e){p.musiconholds.unshift(e.toJSON()),i.success({title:"MusicOnHold properly created",msg:p.musiconhold.name?p.musiconhold.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete mohSound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.musiconholdMohSounds=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.voiceMusicOnHold.getSounds(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mohSound:t,mohSounds:v.musiconholdMohSounds.rows}})}function p(e){r.voiceMusicOnHold.removeSound({id:n.params.id,id2:e.id}).$promise.then(function(){_.remove(v.musiconholdMohSounds.rows,{id:e.id}),v.musiconholdMohSounds.count-=1,v.musiconholdMohSounds.rows.length||v.getMusicOnHoldMohSounds(),s.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedMusicOnHoldMohSounds);return v.selectedMusicOnHoldMohSounds=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent(""+v.selectedMusicOnHoldMohSounds.length+" selected will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedMusicOnHoldMohSounds.forEach(function(e){p(e)}),v.selectedMusicOnHoldMohSounds=[]})}var v=this;v.musiconhold={},v.musiconholdMohSounds={count:0,rows:[]},v.selectedMusicOnHoldMohSounds=[],v.query={fields:"createdAt,updatedAt,id,audio,id,createdAt",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getMusicOnHoldMohSounds=m,v.createOrEditMusicOnHoldMohSound=u,v.exportSelectedMusicOnHoldMohSounds=g,v.deleteMusicOnHoldMohSound=p,v.deleteSelectedMusicOnHoldMohSounds=h,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){v.sounds=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getMusicOnHoldMohSounds())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.addSound({id:t.params.id},p.mohSound).$promise.then(function(e){p.mohSounds.unshift(e.toJSON()),i.success({title:"MohSound properly created",msg:p.mohSound.name?p.mohSound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t"+(e.name||"musiconhold")+" will be deleted.").ariaLabel("delete musiconhold").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.musiconholds=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMusicOnHold.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:t,musiconholds:A.musiconholds.rows}})}function v(e){l.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(A.musiconholds.rows,{id:e.id}),A.musiconholds.count-=1,A.musiconholds.rows.length||A.getMusicOnHolds(),c.success({title:"MusicOnHold deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedMusicOnHolds);return A.selectedMusicOnHolds=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent(""+A.selectedMusicOnHolds.length+" selected will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMusicOnHolds.forEach(function(e){v(e)}),A.selectedMusicOnHolds=[]})}function E(){A.selectedMusicOnHolds=[]}function y(){A.selectedMusicOnHolds=A.musiconholds.rows}var A=this;A.musiconholds=r||{count:0,rows:[]},A.table="musiconholds",A.listOrder="",A.listOrderAsc=null,A.selectedMusicOnHolds=[],A.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},A.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMusicOnHolds=g,A.createOrEditMusicOnHold=h,A.deleteMusicOnHold=v,A.exportSelectedMusicOnHolds=b,A.deleteSelectedMusicOnHolds=f,A.deselectMusicOnHolds=E,A.selectAllMusicOnHolds=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","musiconholds","api","msUtils","toasty"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.outboundroute).$promise.then(function(e){p.outboundroutes.unshift(e.toJSON()),i.success({title:"OutboundRoute properly created",msg:p.outboundroute.name?p.outboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t"+e.app+" will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.outboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.outboundrouteApps.rows.length){var o=g.outboundrouteApps.rows[i]?g.outboundrouteApps.rows[i]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundrouteApp:o}}).then(function(e){e&&(e.id?g.outboundrouteApps.rows[i]=e:g.outboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.outboundrouteApps.rows.length){var i=g.outboundrouteApps.rows[a]?g.outboundrouteApps.rows[a]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=2,n=[];n.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+g.outboundroute.id,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id});for(var a=0,i=0;a"+g.selectedOutboundRouteApps.length+" selected will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedOutboundRouteApps.forEach(function(e){_.remove(g.outboundrouteApps.rows,{id:e.id})}),g.selectedOutboundRouteApps=[],l()})}var g=this;g.outboundroute={},g.outboundrouteApps={count:0,rows:[]},g.selectedOutboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!1},{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}},{name:"tags",route:"tag",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Caller_ID",name:"callerID",type:"text"},{title:"Prefix",name:"prefix",type:"text"},{title:"CutDigits",name:"cutdigits",type:"number",min:0},{title:"Recording",name:"recordingFormat",type:"select",values:[{option:"none",value:"'none'"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'WAV'"},{option:"gsm",value:"'gsm'"}],defaultValue:"'none'",required:!0,general:!0,help:!0},{title:"Tags",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",defaultValues:[{value:"'--'",option:"None"}]},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:null,type:"Outbound",appType:"custom",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getOutboundRouteApps=m,g.editOutboundRouteApp=s,g.editInterval=r,g.deleteOutboundRouteApp=u,g.deleteSelectedOutboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("OutboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.custom.type&&"outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType&&"custom"===s.custom.appType);else switch((s.custom.app||s.custom.appType).toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}s.custom.type&&"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOutboundAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];if(s.outbounddial.type&&"outbound"===s.outbounddial.type.toLowerCase()&&"outboundDial"===s.outbounddial.appType&&(s.outbounddial.phone=s.outbounddial.cutdigits?(s.outbounddial.prefix||"")+"${EXTEN:"+s.outbounddial.cutdigits+"}":(s.outbounddial.prefix||"")+"${EXTEN}",s.outbounddial.record="none"!==s.outbounddial.recordingFormat,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:null),s.outbounddial.appType&&"custom"===s.outbounddial.appType);else switch((s.outbounddial.app||s.outbounddial.appType).toLowerCase()){case"set":s.outbounddial.appdata=s.outbounddial.name+"="+s.outbounddial.value;break;case"custom":break;default:e[0]=["SIP",s.outbounddial.trunk,s.outbounddial.phone].join("/"),e[1]=s.outbounddial.timeout,e[2]=s.outbounddial.options,e[3]=s.outbounddial.url,s.outbounddial.appdata=e.join(",")}o(s.outbounddial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.outbounddial=angular.copy(n),s.outbounddial.appdata)switch(s.outbounddial.appType?s.outbounddial.appType.toLowerCase():s.outbounddial.app.toLowerCase()){case"custom":break;case"set":s.outbounddial.name=s.outbounddial.appdata.split("=")[0],s.outbounddial.value=s.outbounddial.appdata.split("=")[1];break;case"agi":s.outbounddial.project=s.outbounddial.appdata;break;default:var r=s.outbounddial.appdata.split(",");s.outbounddial.trunk=r[0].split("/")[1],s.outbounddial.phone=r[0].split("/")[2],s.outbounddial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.outbounddial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.outbounddial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}else s.outbounddial.recordingFormat="none";s.outbounddial.type&&"outbound"===s.outbounddial.type.toLowerCase()&&"outbounddial"===s.outbounddial.appType.toLowerCase()&&(s.outbounddial.prefix=s.outbounddial.phone?s.outbounddial.phone.split("$")[0]:void 0,s.outbounddial.callerId=s.outbounddial.callerID?"CALLERID(all)="+s.outbounddial.callerID:void 0,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.tag.get({fields:"name",sort:"name"}).$promise.then(function(e){s.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundAppoutbounddialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.variable.get({fields:"name",sort:"name"}).$promise.then(function(e){s.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){e.go("app.voice.outboundroutes")}function l(){o.voiceExtension.update({id:d.outboundroute.id},d.outboundroute).$promise.then(function(){i.success({title:"OutboundRoute updated!",msg:d.outboundroute.name?d.outboundroute.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.location=t.protocol()+"://"+t.host(),d.outboundroute=e.params.outboundroute||s||{},d.selectedTab=e.params.tab||0,d.alert=i.info,d.gotoOutboundRoutes=r,d.saveOutboundRoute=l,o.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){d.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","outboundroute"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.outboundroutes.edit",{id:e.id,outboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the outboundroute?").htmlContent(""+(e.name||"outboundroute")+" will be deleted.").ariaLabel("delete outboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.outboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundroute:t,outboundroutes:A.outboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.outboundroutes.rows,{id:e.id}),A.outboundroutes.count-=1,A.outboundroutes.rows.length||A.getOutboundRoutes(),c.success({title:"OutboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedOutboundRoutes);return A.selectedOutboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected outboundroutes?").htmlContent(""+A.selectedOutboundRoutes.length+" selected will be deleted.").ariaLabel("delete OutboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOutboundRoutes.forEach(function(e){v(e)}),A.selectedOutboundRoutes=[]})}function E(){A.selectedOutboundRoutes=[]}function y(){A.selectedOutboundRoutes=A.outboundroutes.rows}var A=this;A.outboundroutes=r||{count:0,rows:[]},A.table="outboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedOutboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOutboundRoutes=g,A.createOrEditOutboundRoute=h,A.deleteOutboundRoute=v,A.exportSelectedOutboundRoutes=b,A.deleteSelectedOutboundRoutes=f,A.deselectOutboundRoutes=E,A.selectAllOutboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getOutboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","outboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],T))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+" properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"inbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,T))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("
TODO legend status + state
").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,T=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var C=!0,S=1;e.$watch("vm.query.filter",function(e,n){C?t(function(){C=!1}):(n||(S=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=S),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e){var t=_.find(l.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",t?_.merge(t,e):e.channel&&l.calls.rows.push(e)}function r(e){var n=_.findIndex(l.calls.rows,{channel:e.channel});n>=0&&(l.calls.rows[n].status="hangup"),t(function(){l.calls.rows.splice(n,1)},5e3)}var l=this;l.calls=i||{rows:[],count:0},l.query={limit:10,page:1,limitOptions:[10,20,30]},l.channelStatus=o.channelStatusOut,l.onSave=s,l.onRemove=r,a.on("voice_outbound_channel:save",l.onSave),a.on("voice_outbound_channel:remove",l.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"inbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","unmanaged","sumHoldTime","sumDuration","sumBillable"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;tTODO legend status + state").ok("Ok").targetEvent(e))}function c(e){p.telephones[e.id]&&_.merge(p.telephones[e.id],_.pick(e,g))}function m(e){p.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.get(p.query,m).$promise}var p=this,g=["fullname","internal","state","status"];p.count=a.count,p.attributes=["fullname","internal","state","status","address"],p.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTelephones=u,p.onSave=c,s.on("telephone:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTelephones())}),e.$on("$destroy",function(){s.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.trunks,function(e,t){p.rpcTrunks[t]&&_.merge(e,_.pick(p.rpcTrunks[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("
TODO legend status + state
").ok("Ok").targetEvent(e))}function c(e){p.trunks[e.id]&&_.merge(p.trunks[e.id],_.pick(e,g))}function m(e){p.count=e.count,p.trunks=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.trunk.get(p.query,m).$promise}var p=this,g=["status","stateRegistry","registry","host","port","internal","state","status"];p.count=a.count,p.trunks=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTrunks=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTrunks=u,p.onSave=c,s.on("trunk:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMail.save(p.voicemail).$promise.then(function(e){p.voicemails.unshift(e.toJSON()),i.success({title:"Voicemail properly created",msg:p.voicemail.name?p.voicemail.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var t=0;t"+e.name+" will be deleted.").ariaLabel("delete message").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){v.voicemailMessages=e||{count:0,rows:[]}}function m(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=r.voiceMail.getMessages(v.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:t,messages:v.voicemailMessages.rows}})}function p(e){r.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(v.voicemailMessages.rows,{id:e.id}),v.voicemailMessages.count-=1,v.voicemailMessages.rows.length||v.getVoicemailMessages(),s.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(){var e=angular.copy(v.selectedVoicemailMessages);return v.selectedVoicemailMessages=[],e}function h(e){var t=i.confirm().title("Are you sure want to delete the selected messages?").htmlContent(""+v.selectedVoicemailMessages.length+" selected will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){v.selectedVoicemailMessages.forEach(function(e){p(e)}),v.selectedVoicemailMessages=[]})}var v=this;v.voicemail={},v.voicemailMessages={count:0,rows:[]},v.selectedVoicemailMessages=[],v.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp",sort:"-stamp",limit:10,page:1},v.init=l,v.deleteConfirm=d,v.success=c,v.getVoicemailMessages=m,v.createOrEditVoicemailMessage=u,v.exportSelectedVoicemailMessages=g,v.deleteVoicemailMessage=p,v.deleteSelectedVoicemailMessages=h;var b=!0,f=1;t.$watch("vm_dc.query.filter",function(e,t){b?a(function(){b=!1}):(t||(f=v.query.page),e!==t&&(v.query.page=1),e||(v.query.page=f),v.getVoicemailMessages())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){e.go("app.voice.voicemails")}function l(){o.voiceMail.update({id:d.voicemail.id},d.voicemail).$promise.then(function(){i.success({title:"Voicemail updated!",msg:d.voicemail.name?d.voicemail.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.location=t.protocol()+"://"+t.host(),d.voicemail=e.params.voicemail||s||{},d.selectedTab=e.params.tab||0,d.alert=i.info,d.gotoVoicemails=r,d.saveVoicemail=l,o.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){d.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","voicemail"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voicemails.edit",{id:e.id,voicemail:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voicemail?").htmlContent(""+(e.name||"voicemail")+" will be deleted.").ariaLabel("delete voicemail").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voicemails=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMail.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:t,voicemails:A.voicemails.rows}})}function v(e){l.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(A.voicemails.rows,{id:e.id}),A.voicemails.count-=1,A.voicemails.rows.length||A.getVoicemails(),c.success({title:"Voicemail deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedVoicemails);return A.selectedVoicemails=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent(""+A.selectedVoicemails.length+" selected will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoicemails.forEach(function(e){v(e)}),A.selectedVoicemails=[]})}function E(){A.selectedVoicemails=[]}function y(){A.selectedVoicemails=A.voicemails.rows}var A=this;A.voicemails=r||{count:0,rows:[]},A.table="voicemails",A.listOrder="",A.listOrderAsc=null,A.selectedVoicemails=[],A.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},A.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getVoicemails=g,A.createOrEditVoicemail=h,A.deleteVoicemail=v,A.exportSelectedVoicemails=b,A.deleteSelectedVoicemails=f,A.deselectVoicemails=E,A.selectAllVoicemails=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicemails","api","msUtils","toasty"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.voiceQueue).$promise.then(function(e){p.voiceQueues.unshift(e.toJSON()),i.success({title:"VoiceQueue properly created",msg:p.voiceQueue.name?p.voiceQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t":"",e}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.selectedItems=m.selectedItems,r.hasRole("admin")?n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise:n.user.getAgents({id:r.getCurrentUser().id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){m.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.internal?"<"+e.internal+">":"",e}):[],m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o}function c(){e.hide()}var m=this;m.voiceQueue=a,m.penalty=0,m.items=[],m.selectedItems=[],m.closeDialog=c,m.isVoiceRealtime=d,m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:m.voiceQueue.id,ids:_.map(e,m.isVoiceRealtime()&&a?"UserId":"id"),penalty:m.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"VoiceQueue properly "+(a?"removed":"added"),msg:"VoiceQueue has been "+(a?"removed":"added")+"!"}),a||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.voiceQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("VOICE.ALL_TEAMS"),labelSelected:i.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.voiceQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","voiceQueue","$translate"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e,t){n.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[]}})}function l(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],realtime:!1}})}function d(t,n){e.go("app.voice.realtime.queues")}function c(){e.go("app.voice.voiceQueues")}function m(){o.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){i.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var u=this;u.location=t.protocol()+"://"+t.host(),u.voiceQueue=e.params.voiceQueue||s||{},u.selectedTab=e.params.tab||0,u.teamadddialog=r,u.agentadddialog=l,u.gotogoto=d,u.alert=i.info,u.gotoVoiceQueues=c,u.saveVoiceQueue=m,o.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.sound.get({fields:"name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","toasty","api","voiceQueue"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e})}function u(e,t){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:S.voiceQueues?S.voiceQueues.rows:[]}})}function p(e,t){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:S.voiceQueues?S.voiceQueues.rows:[],realtime:!1}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the voiceQueue?").htmlContent(""+(e.name||"voiceQueue")+" will be deleted.").ariaLabel("delete voiceQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function h(e,t){n.go("app.voice.realtime.queues")}function v(e){S.voiceQueues=e||{count:0,rows:[]}}function b(){S.query.offset=(S.query.page-1)*S.query.limit,S.promise=l.voiceQueue.get(S.query,v).$promise}function f(e,t){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:S.voiceQueues.rows}})}function E(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(S.voiceQueues.rows,{id:e.id}),S.voiceQueues.count-=1,S.voiceQueues.rows.length||S.getVoiceQueues(),c.success({title:"VoiceQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){var e=angular.copy(S.selectedVoiceQueues);return S.selectedVoiceQueues=[],e}function A(e){var t=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent(""+S.selectedVoiceQueues.length+" selected will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){S.selectedVoiceQueues.forEach(function(e){E(e)}),S.selectedVoiceQueues=[]})}function T(){S.selectedVoiceQueues=[]}function C(){S.selectedVoiceQueues=S.voiceQueues.rows}var S=this;S.voiceQueues=r||{count:0,rows:[]},S.table="voiceQueues",S.listOrder="",S.listOrderAsc=null,S.selectedVoiceQueues=[],S.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},S.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayjoinempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.editstate=m,S.teamadddialog=u,S.agentadddialog=p,S.deleteconfirm=g,S.gotorealtimegoto=h,S.success=v,S.getVoiceQueues=b,S.createOrEditVoiceQueue=f,S.deleteVoiceQueue=E,S.exportSelectedVoiceQueues=y,S.deleteSelectedVoiceQueues=A,S.deselectVoiceQueues=T,S.selectAllVoiceQueues=C;var x=!0,O=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(O=S.query.page),e!==t&&(S.query.page=1),e||(S.query.page=O),S.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceQueues","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceRecording.save(p.voiceRecording).$promise.then(function(e){p.voiceRecordings.unshift(e.toJSON()),i.success({title:"VoiceRecording properly created",msg:p.voiceRecording.name?p.voiceRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var t=0;t"+(e.name||"voiceRecording")+" will be deleted.").ariaLabel("delete voiceRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voiceRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:t,voiceRecordings:A.voiceRecordings.rows}})}function v(e){l.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.voiceRecordings.rows,{id:e.id}),A.voiceRecordings.count-=1,A.voiceRecordings.rows.length||A.getVoiceRecordings(),c.success({title:"VoiceRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=angular.copy(A.selectedVoiceRecordings);return A.selectedVoiceRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent(""+A.selectedVoiceRecordings.length+" selected will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoiceRecordings.forEach(function(e){v(e)}),A.selectedVoiceRecordings=[]})}function E(){A.selectedVoiceRecordings=[]}function y(){A.selectedVoiceRecordings=A.voiceRecordings.rows}var A=this;A.voiceRecordings=r||{count:0,rows:[]},A.table="voiceRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedVoiceRecordings=[],A.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getVoiceRecordings=g,A.createOrEditVoiceRecording=h,A.deleteVoiceRecording=v,A.exportSelectedVoiceRecordings=b,A.deleteSelectedVoiceRecordings=f,A.deselectVoiceRecordings=E,A.selectAllVoiceRecordings=y;var T=!0,C=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(C=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=C),A.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){return a.getCurrentUser()&&a.hasRole("agent")}this.isAgent=s,n.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return a.hasRole("agent")}}),o.dashboard.get().$promise.then(function(e){for(var t=0,a=102;t
Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.
',hideDelay:7e3,position:"top right",parent:"#content"})}}function T(){w.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")}function C(){u.toggleFolded()}function S(e){for(var n=[],i=u.getFlatNavigation(),o=t.defer(),s=0;s-1)return!0})),a(function(){o.resolve(n)},1e3),o.promise}function x(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}function O(e){l.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:w.user}})}function R(){return p.getCurrentUser()&&p.hasRole("agent")}function I(e){if(e.id===w.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online){var t=l.confirm().title(o.instant("TOOLBAR.WARNING")+"!").textContent(o.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")).ariaLabel(o.instant("TOOLBAR.WARNING")+"!").ok(o.instant("TOOLBAR.STAY_LOGGED")).cancel("Logout");l.show(t).then(function(){p.queueLogin()}).catch(function(e){y(!0)}).finally(function(){_.merge(w.user,e),p.updateCurrentUser(w.user)})}else _.merge(w.user,e),p.updateCurrentUser(w.user)}var w=this;e.global={search:""},w.license=v,w.bodyEl=angular.element("body"),w.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],w.languages={en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"}},w.toggleSidenav=f,w.logout=y,w.changeLanguage=A,w.setUserStatus=E,w.toggleHorizontalMobileMenu=T,w.toggleMsNavigationFolded=C,w.search=S,w.searchResultClick=x,w.changePassword=O,w.isAgent=R,w.onUserUpdate=I,w.preview=b,g.connect(),g.on("user:update",w.onUserUpdate),function(){w.user=p.getCurrentUser(),w.userStatus=w.userStatusOptions[0];var e=c.get("motion.language");e&&w.languages.hasOwnProperty(e)?w.selectedLanguage=w.languages[e]:w.selectedLanguage=w.languages[o.preferredLanguage()]}()}e.$inject=["$rootScope","$q","$state","$timeout","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var t=new Object,n=e.lastIndexOf("?");if(n>0)for(var a=e.substring(n+1).split("&"),i=0;i0&&(t[a[i].substring(0,n)]=a[i].substring(n+1));return t}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE"),IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&0>navigator.userAgent.indexOf("Chrome/"),IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0document.location.href.indexOf("http://")&&0>document.location.href.indexOf("https://"),isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,t,n){if(n=n||document,mxClient.IS_IE6)n.write('');else{var a=n.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",t),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),n.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write(' + + + + + + + + \ No newline at end of file diff --git a/snippet/scripts/app.a926a3b0.js b/snippet/scripts/app.a926a3b0.js new file mode 100644 index 0000000..85e30d5 --- /dev/null +++ b/snippet/scripts/app.a926a3b0.js @@ -0,0 +1,286 @@ +! function() { + "use strict"; + angular.module("motion", ["ngAnimate", "ngAria", "ngMessages", "ngMaterial", "ngResource", "ngSanitize", "ngCsv", "ngEmbed", "ngEmojiPicker", "ui.router", "LocalStorageModule"]).constant("STORAGE_PREFIX", "motion_chat").constant("STORAGE_VISITOR", "visitor").constant("STORAGE_LAYOUT", "layout").directive("ngEnter", function() { + return function(e, t, n) { + t.bind("keydown keypress", function(t) { + 13 === t.which && (e.$apply(function() { + e.$eval(n.ngEnter) + }), t.preventDefault()) + }) + } + }) +}(), +function() { + "use strict"; + + function e(e, t, n, i, o, r, s, a, l, c, d, m) { + function p() { + w.visitor && w.visitor.interaction && w.visitor.interaction.id && d.chatInteraction.get({ + id: w.visitor.interaction.id + }).$promise.then(function(e) { + delete w.errors.getInteraction, e.closed && (c.remove(m), t.$emit("hide"), t.settings.online ? r.go("app.online") : r.go("app.offline")) + }).catch(g("getInteraction")) + } + + function u() { + t.loading = !1, t.settings.showMenu = !0, w.replyMessage = "", y = i(v, 2e3), T = i(p, 1e4), b() + } + + function g(e) { + return function(t) { + w.errors[e] = t.data, b() + } + } + + function f(e) { + d.chatWebsite.notify(e).$promise.then(function(e) { + delete w.errors.sendMessageError, _.isNil(w.visitor.interaction) && (w.visitor.interaction = { + id: e.interaction.id + }, c.set(m, w.visitor)), x() + }).catch(g("sendMessageError")) + } + + function v() { + w.visitor && w.visitor.interaction && w.visitor.interaction.id && d.chatInteraction.getMessages({ + id: w.visitor.interaction.id, + $gte: $ ? ["updatedAt", $].join() : void 0 + }).$promise.then(function(e) { + if (delete w.errors.getMessagesError, $ = moment().format("YYYY-MM-DD HH:mm:ss"), e.count) { + for (var t = 0; t < e.rows.length; t++) w.messages[e.rows[t].id] = e.rows[t], "out" === e.rows[t].direction && h(e.rows[t].id); + b() + } + }).catch(g("getMessagesError")) + } + + function h(e) { + d.chatMessage.update({ + id: e, + read: !0 + }).$promise.catch(function(e) { + console.error(e) + }) + } + + function x() { + S.value = "", w.textareaGrow = !1 + } + + function b() { + n(function() { + var e = o[0].getElementById("chat-content"); + e.scrollTop = e.scrollHeight + }) + } + var y, T, $, w = this, + S = document.getElementById("emoji-area"); + w.errors = {}, w.messages = {}, w.visitor = c.get(m) || {}, w.$onInit = u, w.$onDestroy = u, w.reply = function(e) { + var t = S.value.replace(/\n$/, ""); + e && 13 === e.keyCode && e.shiftKey ? w.textareaGrow = !0 : e && 13 !== e.keyCode || ("" !== t ? f(_.merge({ + body: t + }, w.visitor)) : x()) + }, e.$on("$destroy", function() { + i.cancel(y), i.cancel(T), y = null, T = null + }), t.$on("$download", function(e, t) { + t && t(_.values(w.messages)) + }) + } + e.$inject = ["$scope", "$rootScope", "$timeout", "$interval", "$document", "$state", "$http", "$q", "$mdDialog", "localStorageService", "api", "STORAGE_VISITOR"], angular.module("motion").controller("ChatIndexController", e) +}(), +function() { + "use strict"; + + function e(e, t, n, i, o, r, s, a, l, c) { + function d(e) { + n.parent.postMessage({ + cmd: e + }, "*") + } + + function m(e) { + u.layout.up = e, s.set(l, u.layout), d(e ? "show" : "hide") + } + + function p() { + return u.visitor.interaction || (u.visitor.interaction = s.get(c).interaction), u.visitor.interaction + } + var u = this; + u.$onInit = function() { + u.layout = s.get(l) || { + up: !1 + }, u.visitor = s.get(c) || {}, m(!!u.layout.up), t.settings.online ? i.go("app.online") : i.go("app.offline") + }, u.toggle = m, u.download = function() { + var e = r.defer(); + return s.get(c).interaction && a.chatInteraction.getMessages({ + id: p().id + }).$promise.then(function(t) { + e.resolve(_.map(t.rows, function(e) { + return { + sender: "in" === e.direction ? "Visitor" + e.ContactId : e.UserId ? "Agent" + e.UserId : "System", + message: e.body, + createdAt: moment(e.createdAt).format("MM/DD/YYYY HH:mm:ss") + } + })) + }).catch(function(e) { + console.error(e) + }), e.promise + }, u.getHeaderShape = function() { + return "rounded" === t.settings.header_shape ? "15px" : "0px" + }, u.exit = function(e) { + var n = o.confirm().textContent("Are you sure?").ok("Ok").cancel("Cancel"); + o.show(n).then(function() { + if (p()) return a.chatInteraction.update({ + id: p().id, + closed: !0, + closedAt: moment().format("YYYY-MM-DD HH:mm:ss") + }).$promise + }).then(function() { + s.remove(c), t.$emit("hide"), i.go("app.online") + }).catch(function(e) { + console.error(e) + }) + }, t.$on("show", function() { + m(!0) + }), t.$on("hide", function() { + m(!1) + }) + } + e.$inject = ["$scope", "$rootScope", "$window", "$state", "$mdDialog", "$q", "localStorageService", "api", "STORAGE_LAYOUT", "STORAGE_VISITOR"], angular.module("motion").controller("IndexController", e) +}(), +function() { + "use strict"; + + function e(e, t) { + var n = { + baseUrl: e.settings.remote + "/api/" + }, + i = { + id: "@id", + token: e.settings.token + }; + return n.chatWebsite = t(n.baseUrl + "chat/websites/:id", i, { + notify: { + method: "POST", + url: n.baseUrl + "chat/websites/:id/notify" + }, + getFields: { + method: "GET", + url: n.baseUrl + "chat/websites/:id/fields" + } + }), n.chatInteraction = t(n.baseUrl + "chat/interactions/:id", i, { + update: { + method: "PUT", + url: n.baseUrl + "chat/interactions/:id" + }, + getMessages: { + method: "GET", + url: n.baseUrl + "chat/interactions/:id/messages" + } + }), n.chatMessage = t(n.baseUrl + "chat/messages/:id", i, { + update: { + method: "PUT", + url: n.baseUrl + "chat/messages/:id" + } + }), n + } + e.$inject = ["$rootScope", "$resource"], angular.module("motion").factory("api", e) +}(), +function() { + "use strict"; + + function e(e, t) { + var n = t.search(); + e.settings = { + cursor: "pointer", + hide: !0 + }, _.forIn(n, function(t, n) { + "" === t || _.isNil(t) || ("true" === t && (t = !0), "false" === t && (t = !1), e.settings[n] = t) + }) + } + + function t(e, t, n, i, o) { + n.html5Mode(!0), i.setPrefix(o), e.state("app", { + url: "/app", + abstract: !0 + }).state("app.online", { + url: "/online", + templateUrl: "app/online/index.html", + controller: "OnlineIndexController as vm" + }).state("app.offline", { + url: "/offline", + templateUrl: "app/offline/index.html", + controller: "OfflineIndexController as vm" + }).state("app.chat", { + url: "/chat", + templateUrl: "app/chat/index.html", + controller: "ChatIndexController as vm" + }) + } + e.$inject = ["$rootScope", "$location"], t.$inject = ["$stateProvider", "$urlRouterProvider", "$locationProvider", "localStorageServiceProvider", "STORAGE_PREFIX"], angular.module("motion").config(t).run(e) +}(), +function() { + "use strict"; + + function e(e, t, n, i, o, r, s, a, l, c) { + var d = this; + d.$onInit = function() { + t.settings.showMenu = !1, a.chatWebsite.getFields({ + id: t.settings.id, + online: !1 + }).$promise.then(function(e) { + e.count && (d.fields = e.rows) + }).catch(function(e) { + console.error(e) + }) + }, d.submit = function() { + r.remove(c), t.$emit("hide"), d.form = {} + }, d.toggle = function(e, t) { + d.form[e] || (d.form[e] = []); + var n = d.form[e].indexOf(t); + n > -1 ? d.form[e].splice(n, 1) : d.form[e].push(t) + }, d.exists = function(e, t) { + return d.form[e] || (d.form[e] = []), d.form[e].indexOf(t) > -1 + }, d.form = {} + } + e.$inject = ["$scope", "$rootScope", "$state", "$window", "$timeout", "localStorageService", "$http", "api", "STORAGE_PREFIX", "STORAGE_VISITOR"], angular.module("motion").controller("OfflineIndexController", e) +}(), +function() { + "use strict"; + + function e(e, t, n, i, o, r, s, a, l, c) { + function d() { + return "Anonymous" + _.random(1, 99999) + } + var m = this, + p = null; + m.$onInit = function() { + r.get(c) && (m.visitor = r.get(c)), m.visitor ? n.go("app.chat") : (m.visitor = { + id: t.settings.id, + mapKey: "firstName", + from: d() + }, t.settings.showMenu = !1, a.chatWebsite.getFields({ + id: t.settings.id, + online: !0 + }).$promise.then(function(e) { + e.count ? (p = e.fromKey, m.fields = e.rows) : (r.set(c, m.visitor), n.go("app.chat")) + }).catch(function(e) { + console.error(e) + })) + }, m.submit = function() { + for (var e = 0; e < m.fields.length; e++) { + var i = m.fields[e]; + i.props && m.form.hasOwnProperty(i.props.title) && (_.isNil(i.variable) || (m.visitor[i.variable] = _.isArray(m.form[i.props.title]) ? m.form[i.props.title].join() : m.form[i.props.title]), _.isNil(i.cmField) || (m.visitor[i.cmField] = _.isArray(m.form[i.props.title]) ? m.form[i.props.title].join() : m.form[i.props.title]), e === p && (_.isNil(t.settings.mapKey) || (m.visitor.mapKey = t.settings.mapKey, m.visitor.from = _.isArray(m.form[i.props.title]) ? m.form[i.props.title].join() : m.form[i.props.title]))) + } + r.set(c, m.visitor), t.loading = !0, n.go("app.chat") + }, m.toggle = function(e, t) { + m.form[e] || (m.form[e] = []); + var n = m.form[e].indexOf(t); + n > -1 ? m.form[e].splice(n, 1) : m.form[e].push(t) + }, m.exists = function(e, t) { + return m.form[e] || (m.form[e] = []), m.form[e].indexOf(t) > -1 + }, m.form = {} + } + e.$inject = ["$scope", "$rootScope", "$state", "$window", "$timeout", "localStorageService", "$http", "api", "STORAGE_PREFIX", "STORAGE_VISITOR"], angular.module("motion").controller("OnlineIndexController", e) +}(), angular.module("motion").run(["$templateCache", function(e) { + "use strict"; + e.put("app/chat/index.html", '\x3c!-- CHAT CONTENT --\x3e\n\n \x3c!-- CHAT MESSAGES --\x3e\n
\n\n system\n agent\n customer\n\n
\n
\n \n {{message.direction === \'out\' ? (message.UserId ? \'Agent\' + message.UserId : \'System\') : (vm.visitor.from || \'Visitor\' + message.ContactId)}} - {{message.createdAt | date : \'h:mm\'}}\n \n
\n
\n
\n
\n
\n\n
\n \x3c!-- CHAT MESSAGES --\x3e\n\n \x3c!-- CHAT ERROR --\x3e\n
\n \n {{error.message || \'Service temporarily unavailable.\'}}\n {{error.message || \'Service temporarily unavailable.\'}}\n
\n \x3c!-- CHAT ERROR --\x3e\n\n
\n\x3c!-- / CHAT CONTENT --\x3e\n\n\x3c!-- CHAT FOOTER --\x3e\n\n\x3c!-- / CHAT FOOTER--\x3e\n'), e.put("app/offline/index.html", '\x3c!-- CHAT CONTENT --\x3e\n\n
\n \n \x3c!-- START textinput --\x3e\n
\n \n \n
{{field.props.helpText}}
\n
\n \x3c!-- END textinput --\x3e\n\n \x3c!-- START textarea --\x3e\n
\n \n \n
{{field.props.helpText}}
\n
\n \x3c!-- END textarea --\x3e\n\n \x3c!-- START select --\x3e\n
\n \n \n {{option.value}}\n \n
{{field.props.helpText}}
\n
\n \x3c!-- END select --\x3e\n\n \x3c!-- START radio --\x3e\n
\n

{{field.props.title}}

\n \n {{option.value}}\n \n
{{field.props.helpText}}
\n
\n \x3c!-- END radio --\x3e\n\n \x3c!-- START checkbox --\x3e\n
\n

{{field.props.title}}

\n
\n \n {{option.value}}\n \n
\n
\n \x3c!-- END checkbox --\x3e\n
\n\n SEND\n
\n\n \n {{ settings.defaultWhiteLabel ? \'Powered By XCALLY\' : settings.whiteLabel }}\n \n\n
\n\x3c!-- / CHAT CONTENT --\x3e\n'), e.put("app/online/index.html", '\x3c!-- CHAT CONTENT --\x3e\n\n
\n\n \n \x3c!-- START textinput --\x3e\n
\n \n \n
{{field.props.helpText}}
\n
\n \x3c!-- END textinput --\x3e\n\n \x3c!-- START textarea --\x3e\n
\n \n \n
{{field.props.helpText}}
\n
\n \x3c!-- END textarea --\x3e\n\n \x3c!-- START select --\x3e\n
\n \n \n {{option.value}}\n \n
{{field.props.helpText}}
\n
\n \x3c!-- END select --\x3e\n\n \x3c!-- START radio --\x3e\n
\n

{{field.props.title}}

\n \n {{option.value}}\n \n
{{field.props.helpText}}
\n
\n \x3c!-- END radio --\x3e\n\n \x3c!-- START checkbox --\x3e\n
\n

{{field.props.title}}

\n
\n \n {{option.value}}\n \n
\n
{{field.props.helpText}}
\n
\n \x3c!-- END checkbox --\x3e\n
\n\n {{settings.start_chat_button}}\n
\n\n \n {{ settings.defaultWhiteLabel ? \'Powered By XCALLY\' : settings.whiteLabel }}\n \n\n
\n\x3c!-- / CHAT CONTENT --\x3e\n') +}]); \ No newline at end of file diff --git a/snippet/scripts/vendor.d8450845.js b/snippet/scripts/vendor.d8450845.js new file mode 100644 index 0000000..6ff9f44 --- /dev/null +++ b/snippet/scripts/vendor.d8450845.js @@ -0,0 +1,40098 @@ +function buildMap() { + var e = [], + t = []; + for (var n in Config.emoji_data) { + for (var r = 0; r < Config.emoji_data[n][0].length; r++) e.push(Config.escape_rx(":" + Config.emoji_data[n][3][0]) + ":"), t.push(Config.emoji_data[n][0][0]), Config.map[Config.emoji_data[n][3][0]] = Config.emoji_data[n][0][0], Config.mapcolon[":" + Config.emoji_data[n][3][0] + ":"] = Config.emoji_data[n][0][0], Config.reversemap[Config.emoji_data[n][0][0]] = Config.emoji_data[n][3][0]; + Config.rx_colons = new RegExp("(" + e.join("|") + ")", "g"), Config.rx_codes = new RegExp("(" + t.join("|") + ")", "g") + } +} + +function cancelEvent(e) { + return (e = e || window.event) && ((e = e.originalEvent || e).stopPropagation && e.stopPropagation(), e.preventDefault && e.preventDefault()), !1 +} + +function getGuid() { + return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e) { + var t = 16 * Math.random() | 0; + return ("x" == e ? t : 3 & t | 8).toString(16) + }) +}! function(e) { + "use strict"; + + function t(e) { + if (!_(e)) return Ir; + $(e.objectMaxDepth) && (Ir.objectMaxDepth = n(e.objectMaxDepth) ? e.objectMaxDepth : NaN) + } + + function n(e) { + return C(e) && e > 0 + } + + function r(e, t) { + return t = t || Error, + function() { + var n, r, i = arguments[0], + o = arguments[1], + a = "[" + (e ? e + ":" : "") + i + "] ", + s = Y(arguments, 2).map(function(e) { + return Ee(e, Ir.objectMaxDepth) + }); + for (a += o.replace(/\{\d+\}/g, function(e) { + var t = +e.slice(1, -1); + return t < s.length ? s[t] : e + }), a += "\nhttp://errors.angularjs.org/1.6.6/" + (e ? e + "/" : "") + i, r = 0, n = "?"; r < s.length; r++, n = "&") a += n + "p" + r + "=" + encodeURIComponent(s[r]); + return new t(a) + } + } + + function i(e) { + if (null == e || S(e)) return !1; + if (Jr(e) || E(e) || qr && e instanceof qr) return !0; + var t = "length" in Object(e) && e.length; + return C(t) && (t >= 0 && (t - 1 in e || e instanceof Array) || "function" == typeof e.item) + } + + function o(e, t, n) { + var r, a; + if (e) + if (T(e)) + for (r in e) "prototype" !== r && "length" !== r && "name" !== r && e.hasOwnProperty(r) && t.call(n, e[r], r, e); + else if (Jr(e) || i(e)) { + var s = "object" != typeof e; + for (r = 0, a = e.length; r < a; r++)(s || r in e) && t.call(n, e[r], r, e) + } else if (e.forEach && e.forEach !== o) e.forEach(t, n, e); + else if (w(e)) + for (r in e) t.call(n, e[r], r, e); + else if ("function" == typeof e.hasOwnProperty) + for (r in e) e.hasOwnProperty(r) && t.call(n, e[r], r, e); + else + for (r in e) Hr.call(e, r) && t.call(n, e[r], r, e); + return e + } + + function a(e, t, n) { + for (var r = Object.keys(e).sort(), i = 0; i < r.length; i++) t.call(n, e[r[i]], r[i]); + return r + } + + function s(e) { + return function(t, n) { + e(n, t) + } + } + + function c() { + return ++Xr + } + + function l(e, t) { + t ? e.$$hashKey = t : delete e.$$hashKey + } + + function u(e, t, n) { + for (var r = e.$$hashKey, i = 0, o = t.length; i < o; ++i) { + var a = t[i]; + if (_(a) || T(a)) + for (var s = Object.keys(a), c = 0, d = s.length; c < d; c++) { + var f = s[c], + h = a[f]; + n && _(h) ? x(h) ? e[f] = new Date(h.valueOf()) : M(h) ? e[f] = new RegExp(h) : h.nodeName ? e[f] = h.cloneNode(!0) : j(h) ? e[f] = h.clone() : (_(e[f]) || (e[f] = Jr(h) ? [] : {}), u(e[f], [h], !0)) : e[f] = h + } + } + return l(e, r), e + } + + function d(e) { + return u(e, Br.call(arguments, 1), !1) + } + + function f(e) { + return u(e, Br.call(arguments, 1), !0) + } + + function h(e) { + return parseInt(e, 10) + } + + function p(e, t) { + return d(Object.create(e), t) + } + + function m() {} + + function g(e) { + return e + } + + function v(e) { + return function() { + return e + } + } + + function b(e) { + return T(e.toString) && e.toString !== Yr + } + + function y(e) { + return void 0 === e + } + + function $(e) { + return void 0 !== e + } + + function _(e) { + return null !== e && "object" == typeof e + } + + function w(e) { + return null !== e && "object" == typeof e && !Gr(e) + } + + function E(e) { + return "string" == typeof e + } + + function C(e) { + return "number" == typeof e + } + + function x(e) { + return "[object Date]" === Yr.call(e) + } + + function k(e) { + switch (Yr.call(e)) { + case "[object Error]": + case "[object Exception]": + case "[object DOMException]": + return !0; + default: + return e instanceof Error + } + } + + function T(e) { + return "function" == typeof e + } + + function M(e) { + return "[object RegExp]" === Yr.call(e) + } + + function S(e) { + return e && e.window === e + } + + function A(e) { + return e && e.$evalAsync && e.$watch + } + + function O(e) { + return "[object File]" === Yr.call(e) + } + + function D(e) { + return "[object FormData]" === Yr.call(e) + } + + function N(e) { + return "[object Blob]" === Yr.call(e) + } + + function I(e) { + return "boolean" == typeof e + } + + function R(e) { + return e && T(e.then) + } + + function P(e) { + return e && C(e.length) && ei.test(Yr.call(e)) + } + + function H(e) { + return "[object ArrayBuffer]" === Yr.call(e) + } + + function j(e) { + return !(!e || !(e.nodeName || e.prop && e.attr && e.find)) + } + + function L(e) { + var t, n = {}, + r = e.split(","); + for (t = 0; t < r.length; t++) n[r[t]] = !0; + return n + } + + function F(e) { + return jr(e.nodeName || e[0] && e[0].nodeName) + } + + function q(e, t) { + return -1 !== Array.prototype.indexOf.call(e, t) + } + + function U(e, t) { + var n = e.indexOf(t); + return n >= 0 && e.splice(n, 1), n + } + + function V(e, t, r) { + function i(e, t, n) { + if (--n < 0) return "..."; + var r, i = t.$$hashKey; + if (Jr(e)) + for (var o = 0, s = e.length; o < s; o++) t.push(a(e[o], n)); + else if (w(e)) + for (r in e) t[r] = a(e[r], n); + else if (e && "function" == typeof e.hasOwnProperty) + for (r in e) e.hasOwnProperty(r) && (t[r] = a(e[r], n)); + else + for (r in e) Hr.call(e, r) && (t[r] = a(e[r], n)); + return l(t, i), t + } + + function a(e, t) { + if (!_(e)) return e; + var n = c.indexOf(e); + if (-1 !== n) return u[n]; + if (S(e) || A(e)) throw Kr("cpws", "Can't copy! Making copies of Window or Scope instances is not supported."); + var r = !1, + o = s(e); + return void 0 === o && (o = Jr(e) ? [] : Object.create(Gr(e)), r = !0), c.push(e), u.push(o), r ? i(e, o, t) : o + } + + function s(e) { + switch (Yr.call(e)) { + case "[object Int8Array]": + case "[object Int16Array]": + case "[object Int32Array]": + case "[object Float32Array]": + case "[object Float64Array]": + case "[object Uint8Array]": + case "[object Uint8ClampedArray]": + case "[object Uint16Array]": + case "[object Uint32Array]": + return new e.constructor(a(e.buffer), e.byteOffset, e.length); + case "[object ArrayBuffer]": + if (!e.slice) { + var t = new ArrayBuffer(e.byteLength); + return new Uint8Array(t).set(new Uint8Array(e)), t + } + return e.slice(0); + case "[object Boolean]": + case "[object Number]": + case "[object String]": + case "[object Date]": + return new e.constructor(e.valueOf()); + case "[object RegExp]": + var n = new RegExp(e.source, e.toString().match(/[^/]*$/)[0]); + return n.lastIndex = e.lastIndex, n; + case "[object Blob]": + return new e.constructor([e], { + type: e.type + }) + } + if (T(e.cloneNode)) return e.cloneNode(!0) + } + var c = [], + u = []; + if (r = n(r) ? r : NaN, t) { + if (P(t) || H(t)) throw Kr("cpta", "Can't copy! TypedArray destination cannot be mutated."); + if (e === t) throw Kr("cpi", "Can't copy! Source and destination are identical."); + return Jr(t) ? t.length = 0 : o(t, function(e, n) { + "$$hashKey" !== n && delete t[n] + }), c.push(e), u.push(t), i(e, t, r) + } + return a(e, r) + } + + function B(e, t) { + return e === t || e !== e && t !== t + } + + function z(e, t) { + if (e === t) return !0; + if (null === e || null === t) return !1; + if (e !== e && t !== t) return !0; + var n, r, i, o = typeof e; + if (o === typeof t && "object" === o) { + if (!Jr(e)) { + if (x(e)) return !!x(t) && B(e.getTime(), t.getTime()); + if (M(e)) return !!M(t) && e.toString() === t.toString(); + if (A(e) || A(t) || S(e) || S(t) || Jr(t) || x(t) || M(t)) return !1; + i = be(); + for (r in e) + if ("$" !== r.charAt(0) && !T(e[r])) { + if (!z(e[r], t[r])) return !1; + i[r] = !0 + } + for (r in t) + if (!(r in i) && "$" !== r.charAt(0) && $(t[r]) && !T(t[r])) return !1; + return !0 + } + if (!Jr(t)) return !1; + if ((n = e.length) === t.length) { + for (r = 0; r < n; r++) + if (!z(e[r], t[r])) return !1; + return !0 + } + } + return !1 + } + + function W(e, t, n) { + return e.concat(Br.call(t, n)) + } + + function Y(e, t) { + return Br.call(e, t || 0) + } + + function G(e, t) { + var n = arguments.length > 2 ? Y(arguments, 2) : []; + return !T(t) || t instanceof RegExp ? t : n.length ? function() { + return arguments.length ? t.apply(e, W(n, arguments, 0)) : t.apply(e, n) + } : function() { + return arguments.length ? t.apply(e, arguments) : t.call(e) + } + } + + function K(t, n) { + var r = n; + return "string" == typeof t && "$" === t.charAt(0) && "$" === t.charAt(1) ? r = void 0 : S(n) ? r = "$WINDOW" : n && e.document === n ? r = "$DOCUMENT" : A(n) && (r = "$SCOPE"), r + } + + function Z(e, t) { + if (!y(e)) return C(t) || (t = t ? 2 : null), JSON.stringify(e, K, t) + } + + function X(e) { + return E(e) ? JSON.parse(e) : e + } + + function Q(e, t) { + e = e.replace(oi, ""); + var n = Date.parse("Jan 01, 1970 00:00:00 " + e) / 6e4; + return Qr(n) ? t : n + } + + function J(e, t) { + return (e = new Date(e.getTime())).setMinutes(e.getMinutes() + t), e + } + + function ee(e, t, n) { + n = n ? -1 : 1; + var r = e.getTimezoneOffset(); + return J(e, n * (Q(t, r) - r)) + } + + function te(e) { + e = qr(e).clone().empty(); + var t = qr("
").append(e).html(); + try { + return e[0].nodeType === di ? jr(t) : t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/, function(e, t) { + return "<" + jr(t) + }) + } catch (e) { + return jr(t) + } + } + + function ne(e) { + try { + return decodeURIComponent(e) + } catch (e) {} + } + + function re(e) { + var t = {}; + return o((e || "").split("&"), function(e) { + var n, r, i; + e && (r = e = e.replace(/\+/g, "%20"), -1 !== (n = e.indexOf("=")) && (r = e.substring(0, n), i = e.substring(n + 1)), $(r = ne(r)) && (i = !$(i) || ne(i), Hr.call(t, r) ? Jr(t[r]) ? t[r].push(i) : t[r] = [t[r], i] : t[r] = i)) + }), t + } + + function ie(e) { + var t = []; + return o(e, function(e, n) { + Jr(e) ? o(e, function(e) { + t.push(ae(n, !0) + (!0 === e ? "" : "=" + ae(e, !0))) + }) : t.push(ae(n, !0) + (!0 === e ? "" : "=" + ae(e, !0))) + }), t.length ? t.join("&") : "" + } + + function oe(e) { + return ae(e, !0).replace(/%26/gi, "&").replace(/%3D/gi, "=").replace(/%2B/gi, "+") + } + + function ae(e, t) { + return encodeURIComponent(e).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%3B/gi, ";").replace(/%20/g, t ? "%20" : "+") + } + + function se(e, t) { + var n, r, i = ai.length; + for (r = 0; r < i; ++r) + if (n = ai[r] + t, E(n = e.getAttribute(n))) return n; + return null + } + + function ce(t, n) { + var r, i, a = {}; + if (o(ai, function(e) { + var n = e + "app"; + !r && t.hasAttribute && t.hasAttribute(n) && (r = t, i = t.getAttribute(n)) + }), o(ai, function(e) { + var n, o = e + "app"; + !r && (n = t.querySelector("[" + o.replace(":", "\\:") + "]")) && (r = n, i = n.getAttribute(o)) + }), r) { + if (!si) return void e.console.error("Angular: disabling automatic bootstrap.