UNPKG

twilio

Version:
620 lines (619 loc) 24.9 kB
"use strict"; /* * This code was generated by * ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __ * | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/ * | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \ * * Conversation Orchestrator * Manage configurations, conversations, participants, and communications. Create configurations to define capture rules and channel settings, then use conversations to group related communications. * * NOTE: This class is auto generated by OpenAPI Generator. * https://openapi-generator.tech * Do not edit the class manually. */ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigurationPage = exports.ConfigurationInstance = exports.ConfigurationContextImpl = exports.UpdateConfigurationRequestStatusCallbacks = exports.UpdateConfigurationRequestChannelSettingsValueStatusTimeouts = exports.UpdateConfigurationRequestChannelSettingsValueCaptureRules = exports.UpdateConfigurationRequestChannelSettingsValue = exports.UpdateConfigurationRequest = exports.CreateConfigurationRequestStatusCallbacks = exports.CreateConfigurationRequestChannelSettingsValueStatusTimeouts = exports.CreateConfigurationRequestChannelSettingsValueCaptureRules = exports.CreateConfigurationRequestChannelSettingsValue = exports.CreateConfigurationRequest = exports.ConversationsV2StatusTimeouts = exports.ConversationsV2StatusCallbackConfig = exports.ConversationsV2ConversationsV1Bridge = exports.ConversationsV2ChannelSetting = exports.ConversationsV2CaptureRule = void 0; exports.ConfigurationListInstance = ConfigurationListInstance; const util_1 = require("util"); const TokenPage_1 = __importDefault(require("../../../base/TokenPage")); const deserialize = require("../../../base/deserialize"); const serialize = require("../../../base/serialize"); const utility_1 = require("../../../base/utility"); /** * Defines a capture rule with from and to addresses. Supports wildcard `*` for omnidirectional matching. */ class ConversationsV2CaptureRule { constructor(payload) { this.from = payload["from"]; this.to = payload["to"]; this.metadata = payload["metadata"]; } } exports.ConversationsV2CaptureRule = ConversationsV2CaptureRule; /** * Configuration settings for a specific channel type. */ class ConversationsV2ChannelSetting { constructor(payload) { this.statusTimeouts = payload["statusTimeouts"]; this.captureRules = payload["captureRules"]; } } exports.ConversationsV2ChannelSetting = ConversationsV2ChannelSetting; /** * Configuration for Conversations V1 bridge. When set, messaging channels route through Conversations V1. Use this to integrate with existing Conversations V1 applications. */ class ConversationsV2ConversationsV1Bridge { constructor(payload) { this.serviceId = payload["serviceId"]; } } exports.ConversationsV2ConversationsV1Bridge = ConversationsV2ConversationsV1Bridge; /** * Default webhook configuration for Conversation-level events under this Configuration. */ class ConversationsV2StatusCallbackConfig { constructor(payload) { this.url = payload["url"]; this.method = payload["method"]; } } exports.ConversationsV2StatusCallbackConfig = ConversationsV2StatusCallbackConfig; /** * Timeout settings for channel status transitions. */ class ConversationsV2StatusTimeouts { constructor(payload) { this.inactive = payload["inactive"]; this.closed = payload["closed"]; } } exports.ConversationsV2StatusTimeouts = ConversationsV2StatusTimeouts; class CreateConfigurationRequest { constructor(payload) { this.displayName = payload["displayName"]; this.description = payload["description"]; this.conversationGroupingType = payload["conversationGroupingType"]; this.memoryStoreId = payload["memoryStoreId"]; this.channelSettings = payload["channelSettings"]; this.statusCallbacks = payload["statusCallbacks"]; this.intelligenceConfigurationIds = payload["intelligenceConfigurationIds"]; this.memoryExtractionEnabled = payload["memoryExtractionEnabled"]; } } exports.CreateConfigurationRequest = CreateConfigurationRequest; class CreateConfigurationRequestChannelSettingsValue { constructor(payload) { this.statusTimeouts = payload["statusTimeouts"]; this.captureRules = payload["captureRules"]; } } exports.CreateConfigurationRequestChannelSettingsValue = CreateConfigurationRequestChannelSettingsValue; class CreateConfigurationRequestChannelSettingsValueCaptureRules { constructor(payload) { this.from = payload["from"]; this.to = payload["to"]; this.metadata = payload["metadata"]; } } exports.CreateConfigurationRequestChannelSettingsValueCaptureRules = CreateConfigurationRequestChannelSettingsValueCaptureRules; class CreateConfigurationRequestChannelSettingsValueStatusTimeouts { constructor(payload) { this.inactive = payload["inactive"]; this.closed = payload["closed"]; } } exports.CreateConfigurationRequestChannelSettingsValueStatusTimeouts = CreateConfigurationRequestChannelSettingsValueStatusTimeouts; class CreateConfigurationRequestStatusCallbacks { constructor(payload) { this.url = payload["url"]; this.method = payload["method"]; } } exports.CreateConfigurationRequestStatusCallbacks = CreateConfigurationRequestStatusCallbacks; class UpdateConfigurationRequest { constructor(payload) { this.displayName = payload["displayName"]; this.description = payload["description"]; this.conversationGroupingType = payload["conversationGroupingType"]; this.memoryStoreId = payload["memoryStoreId"]; this.channelSettings = payload["channelSettings"]; this.statusCallbacks = payload["statusCallbacks"]; this.intelligenceConfigurationIds = payload["intelligenceConfigurationIds"]; this.memoryExtractionEnabled = payload["memoryExtractionEnabled"]; } } exports.UpdateConfigurationRequest = UpdateConfigurationRequest; class UpdateConfigurationRequestChannelSettingsValue { constructor(payload) { this.statusTimeouts = payload["statusTimeouts"]; this.captureRules = payload["captureRules"]; } } exports.UpdateConfigurationRequestChannelSettingsValue = UpdateConfigurationRequestChannelSettingsValue; class UpdateConfigurationRequestChannelSettingsValueCaptureRules { constructor(payload) { this.from = payload["from"]; this.to = payload["to"]; this.metadata = payload["metadata"]; } } exports.UpdateConfigurationRequestChannelSettingsValueCaptureRules = UpdateConfigurationRequestChannelSettingsValueCaptureRules; class UpdateConfigurationRequestChannelSettingsValueStatusTimeouts { constructor(payload) { this.inactive = payload["inactive"]; this.closed = payload["closed"]; } } exports.UpdateConfigurationRequestChannelSettingsValueStatusTimeouts = UpdateConfigurationRequestChannelSettingsValueStatusTimeouts; class UpdateConfigurationRequestStatusCallbacks { constructor(payload) { this.url = payload["url"]; this.method = payload["method"]; } } exports.UpdateConfigurationRequestStatusCallbacks = UpdateConfigurationRequestStatusCallbacks; class ConfigurationContextImpl { constructor(_version, sid) { this._version = _version; if (!(0, utility_1.isValidPathParam)(sid)) { throw new Error("Parameter 'sid' is not valid."); } this._solution = { sid }; this._uri = `/ControlPlane/Configurations/${sid}`; } remove(params, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; const headers = {}; headers["Accept"] = "application/json"; if (params["idempotencyKey"] !== undefined) headers["Idempotency-Key"] = params["idempotencyKey"]; const instance = this; let operationVersion = instance._version, operationPromise = operationVersion.fetch({ uri: instance._uri, method: "delete", params: data, headers, }); operationPromise = operationPromise.then((payload) => new ConfigurationInstance(operationVersion, payload, instance._solution.sid)); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; } removeWithHttpInfo(params, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; const headers = {}; headers["Accept"] = "application/json"; if (params["idempotencyKey"] !== undefined) headers["Idempotency-Key"] = params["idempotencyKey"]; const instance = this; let operationVersion = instance._version; // DELETE operation that returns a response model let operationPromise = operationVersion .fetchWithResponseInfo({ uri: instance._uri, method: "delete", params: data, headers, }) .then((response) => ({ ...response, body: new ConfigurationInstance(operationVersion, response.body, instance._solution.sid), })); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; } fetch(callback) { const headers = {}; headers["Accept"] = "application/json"; const instance = this; let operationVersion = instance._version, operationPromise = operationVersion.fetch({ uri: instance._uri, method: "get", headers, }); operationPromise = operationPromise.then((payload) => new ConfigurationInstance(operationVersion, payload, instance._solution.sid)); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; } fetchWithHttpInfo(callback) { const headers = {}; headers["Accept"] = "application/json"; const instance = this; let operationVersion = instance._version; // CREATE, FETCH, UPDATE operations let operationPromise = operationVersion .fetchWithResponseInfo({ uri: instance._uri, method: "get", headers, }) .then((response) => ({ ...response, body: new ConfigurationInstance(operationVersion, response.body, instance._solution.sid), })); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; } update(params, headers, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; data = params; if (headers === null || headers === undefined) { headers = {}; } headers["Content-Type"] = "application/json"; headers["Accept"] = "application/json"; const instance = this; let operationVersion = instance._version, operationPromise = operationVersion.update({ uri: instance._uri, method: "put", data, headers, }); operationPromise = operationPromise.then((payload) => new ConfigurationInstance(operationVersion, payload, instance._solution.sid)); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; } updateWithHttpInfo(params, headers, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; data = params; if (headers === null || headers === undefined) { headers = {}; } headers["Content-Type"] = "application/json"; headers["Accept"] = "application/json"; const instance = this; let operationVersion = instance._version; // CREATE, FETCH, UPDATE operations let operationPromise = operationVersion .updateWithResponseInfo({ uri: instance._uri, method: "put", data, headers, }) .then((response) => ({ ...response, body: new ConfigurationInstance(operationVersion, response.body, instance._solution.sid), })); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; } /** * Provide a user-friendly representation * * @returns Object */ toJSON() { return this._solution; } [util_1.inspect.custom](_depth, options) { return (0, util_1.inspect)(this.toJSON(), options); } } exports.ConfigurationContextImpl = ConfigurationContextImpl; /** * Slim response for an accepted long-running operation. */ class ConfigurationInstance { constructor(_version, _payload, sid) { this._version = _version; const payload = _payload; this.statusUrl = payload.statusUrl; this.related = payload.related; this.id = payload.id; this.displayName = payload.displayName; this.description = payload.description; this.conversationGroupingType = payload.conversationGroupingType; this.memoryStoreId = payload.memoryStoreId; this.channelSettings = payload.channelSettings; this.statusCallbacks = payload.statusCallbacks !== null && payload.statusCallbacks !== undefined ? payload.statusCallbacks.map((payload) => new ConversationsV2StatusCallbackConfig(payload)) : null; this.intelligenceConfigurationIds = payload.intelligenceConfigurationIds; this.memoryExtractionEnabled = payload.memoryExtractionEnabled; this.conversationsV1Bridge = payload.conversationsV1Bridge !== null && payload.conversationsV1Bridge !== undefined ? new ConversationsV2ConversationsV1Bridge(payload.conversationsV1Bridge) : null; this.createdAt = deserialize.iso8601DateTime(payload.createdAt); this.updatedAt = deserialize.iso8601DateTime(payload.updatedAt); this.version = payload.version; this._solution = { sid: sid }; } get _proxy() { this._context = this._context || new ConfigurationContextImpl(this._version, this._solution.sid); return this._context; } remove(params, callback) { return this._proxy.remove(params, callback); } removeWithHttpInfo(params, callback) { return this._proxy.removeWithHttpInfo(params, callback); } /** * Fetch a ConfigurationInstance * * @param callback - Callback to handle processed record * * @returns Resolves to processed ConfigurationInstance */ fetch(callback) { return this._proxy.fetch(callback); } /** * Fetch a ConfigurationInstance and return HTTP info * * @param callback - Callback to handle processed record * * @returns Resolves to processed ConfigurationInstance with HTTP metadata */ fetchWithHttpInfo(callback) { return this._proxy.fetchWithHttpInfo(callback); } update(params, callback) { return this._proxy.update(params, callback); } updateWithHttpInfo(params, callback) { return this._proxy.updateWithHttpInfo(params, callback); } /** * Provide a user-friendly representation * * @returns Object */ toJSON() { return { statusUrl: this.statusUrl, related: this.related, id: this.id, displayName: this.displayName, description: this.description, conversationGroupingType: this.conversationGroupingType, memoryStoreId: this.memoryStoreId, channelSettings: this.channelSettings, statusCallbacks: this.statusCallbacks, intelligenceConfigurationIds: this.intelligenceConfigurationIds, memoryExtractionEnabled: this.memoryExtractionEnabled, conversationsV1Bridge: this.conversationsV1Bridge, createdAt: this.createdAt, updatedAt: this.updatedAt, version: this.version, }; } [util_1.inspect.custom](_depth, options) { return (0, util_1.inspect)(this.toJSON(), options); } } exports.ConfigurationInstance = ConfigurationInstance; function ConfigurationListInstance(version) { const instance = ((sid) => instance.get(sid)); instance.get = function get(sid) { return new ConfigurationContextImpl(version, sid); }; instance._version = version; instance._solution = {}; instance._uri = `/ControlPlane/Configurations`; instance.create = function create(params, headers, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; data = params; if (headers === null || headers === undefined) { headers = {}; } headers["Content-Type"] = "application/json"; headers["Accept"] = "application/json"; let operationVersion = version, operationPromise = operationVersion.create({ uri: instance._uri, method: "post", data, headers, }); operationPromise = operationPromise.then((payload) => new ConfigurationInstance(operationVersion, payload)); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; }; instance.createWithHttpInfo = function createWithHttpInfo(params, headers, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; data = params; if (headers === null || headers === undefined) { headers = {}; } headers["Content-Type"] = "application/json"; headers["Accept"] = "application/json"; let operationVersion = version; // CREATE, FETCH, UPDATE operations let operationPromise = operationVersion .createWithResponseInfo({ uri: instance._uri, method: "post", data, headers, }) .then((response) => ({ ...response, body: new ConfigurationInstance(operationVersion, response.body), })); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; }; instance.page = function page(params, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; if (params["pageSize"] !== undefined) data["pageSize"] = params["pageSize"]; if (params["pageToken"] !== undefined) data["pageToken"] = params["pageToken"]; if (params["memoryStoreId"] !== undefined) data["memoryStoreId"] = params["memoryStoreId"]; const headers = {}; headers["Accept"] = "application/json"; let operationVersion = version, operationPromise = operationVersion.page({ uri: instance._uri, method: "get", params: data, headers, }); operationPromise = operationPromise.then((payload) => new ConfigurationPage(operationVersion, payload, instance._uri, data, instance._solution)); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; }; instance.each = instance._version.each; instance.list = instance._version.list; instance.getPage = function getPage(targetUrl, callback) { const operationPromise = instance._version._domain.twilio.request({ method: "get", uri: targetUrl, }); let pagePromise = operationPromise.then((payload) => new ConfigurationPage(instance._version, payload, instance._uri, {}, instance._solution)); pagePromise = instance._version.setPromiseCallback(pagePromise, callback); return pagePromise; }; instance.pageWithHttpInfo = function pageWithHttpInfo(params, callback) { if (params instanceof Function) { callback = params; params = {}; } else { params = params || {}; } let data = {}; if (params["pageSize"] !== undefined) data["pageSize"] = params["pageSize"]; if (params["pageToken"] !== undefined) data["pageToken"] = params["pageToken"]; if (params["memoryStoreId"] !== undefined) data["memoryStoreId"] = params["memoryStoreId"]; const headers = {}; headers["Accept"] = "application/json"; let operationVersion = version; // For page operations, use page() directly as it already returns { statusCode, body, headers } // IMPORTANT: Pass full response to Page constructor, not response.body let operationPromise = operationVersion .page({ uri: instance._uri, method: "get", params: data, headers }) .then((response) => ({ statusCode: response.statusCode, headers: response.headers, body: new ConfigurationPage(operationVersion, response, instance._uri, data, instance._solution), })); operationPromise = instance._version.setPromiseCallback(operationPromise, callback); return operationPromise; }; instance.each = instance._version.each; instance.eachWithHttpInfo = instance._version.eachWithHttpInfo; instance.list = instance._version.list; instance.listWithHttpInfo = instance._version.listWithHttpInfo; instance.getPageWithHttpInfo = function getPageWithHttpInfo(targetUrl, callback) { // Use request() directly as it already returns { statusCode, body, headers } const operationPromise = instance._version._domain.twilio.request({ method: "get", uri: targetUrl, }); let pagePromise = operationPromise.then((response) => ({ statusCode: response.statusCode, headers: response.headers, body: new ConfigurationPage(instance._version, response, instance._uri, {}, instance._solution), })); pagePromise = instance._version.setPromiseCallback(pagePromise, callback); return pagePromise; }; instance.toJSON = function toJSON() { return instance._solution; }; instance[util_1.inspect.custom] = function inspectImpl(_depth, options) { return (0, util_1.inspect)(instance.toJSON(), options); }; return instance; } class ConfigurationPage extends TokenPage_1.default { /** * Initialize the ConfigurationPage * * @param version - Version of the resource * @param response - Response from the API * @param uri - URI of the resource * @param params - Query parameters * @param solution - Path solution */ constructor(version, response, uri, params, solution) { super(version, response, uri, params, solution); } /** * Build an instance of ConfigurationInstance * * @param payload - Payload response from the API */ getInstance(payload) { return new ConfigurationInstance(this._version, payload); } [util_1.inspect.custom](depth, options) { return (0, util_1.inspect)(this.toJSON(), options); } } exports.ConfigurationPage = ConfigurationPage;