twilio 3.70.0 → 3.72.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGES.md +100 -0
  2. package/README.md +1 -1
  3. package/lib/jwt/ClientCapability.d.ts +1 -1
  4. package/lib/rest/Insights.d.ts +2 -0
  5. package/lib/rest/Insights.js +8 -0
  6. package/lib/rest/Supersim.d.ts +2 -0
  7. package/lib/rest/Supersim.js +8 -0
  8. package/lib/rest/Voice.d.ts +2 -0
  9. package/lib/rest/Voice.js +9 -0
  10. package/lib/rest/api/v2010/account/call.d.ts +1 -1
  11. package/lib/rest/api/v2010/account/call.js +1 -1
  12. package/lib/rest/api/v2010/account/message.d.ts +2 -0
  13. package/lib/rest/api/v2010/account/message.js +4 -1
  14. package/lib/rest/conversations/v1/service/configuration/webhook.d.ts +172 -0
  15. package/lib/rest/conversations/v1/service/configuration/webhook.js +400 -0
  16. package/lib/rest/conversations/v1/service/configuration.d.ts +2 -0
  17. package/lib/rest/conversations/v1/service/configuration.js +13 -0
  18. package/lib/rest/flexApi/v1/configuration.d.ts +4 -0
  19. package/lib/rest/flexApi/v1/configuration.js +5 -0
  20. package/lib/rest/frontlineApi/v1/user.d.ts +4 -0
  21. package/lib/rest/frontlineApi/v1/user.js +10 -1
  22. package/lib/rest/insights/V1.d.ts +3 -0
  23. package/lib/rest/insights/V1.js +11 -0
  24. package/lib/rest/insights/v1/setting.d.ts +181 -0
  25. package/lib/rest/insights/v1/setting.js +384 -0
  26. package/lib/rest/media/v1/mediaProcessor.d.ts +4 -0
  27. package/lib/rest/media/v1/mediaProcessor.js +5 -1
  28. package/lib/rest/messaging/v1/brandRegistration/brandVetting.d.ts +46 -2
  29. package/lib/rest/messaging/v1/brandRegistration/brandVetting.js +139 -5
  30. package/lib/rest/messaging/v1/brandRegistration.d.ts +1 -1
  31. package/lib/rest/messaging/v1/brandRegistration.js +1 -1
  32. package/lib/rest/serverless/v1/service/build.d.ts +1 -1
  33. package/lib/rest/supersim/V1.d.ts +3 -0
  34. package/lib/rest/supersim/V1.js +11 -0
  35. package/lib/rest/supersim/v1/ipCommand.d.ts +362 -0
  36. package/lib/rest/supersim/v1/ipCommand.js +679 -0
  37. package/lib/rest/verify/v2/service/accessToken.d.ts +2 -0
  38. package/lib/rest/verify/v2/service/accessToken.js +3 -1
  39. package/lib/rest/verify/v2/service/entity/factor.d.ts +4 -2
  40. package/lib/rest/verify/v2/service/entity/factor.js +8 -3
  41. package/lib/rest/verify/v2/service/entity/newFactor.d.ts +2 -2
  42. package/lib/rest/verify/v2/service/entity/newFactor.js +1 -1
  43. package/lib/rest/verify/v2/service/verification.d.ts +4 -0
  44. package/lib/rest/verify/v2/service/verification.js +6 -1
  45. package/lib/rest/verify/v2/service.d.ts +6 -0
  46. package/lib/rest/verify/v2/service.js +12 -2
  47. package/lib/rest/verify/v2/verificationAttempt.d.ts +1 -1
  48. package/lib/rest/video/v1/room.d.ts +12 -0
  49. package/lib/rest/video/v1/room.js +19 -1
  50. package/lib/rest/voice/V1.d.ts +3 -0
  51. package/lib/rest/voice/V1.js +12 -0
  52. package/lib/rest/voice/v1/archivedCall.d.ts +136 -0
  53. package/lib/rest/voice/v1/archivedCall.js +325 -0
  54. package/lib/rest/wireless/v1/ratePlan.d.ts +1 -1
  55. package/lib/rest/wireless/v1/ratePlan.js +3 -3
  56. package/lib/rest/wireless/v1/sim.d.ts +4 -4
  57. package/lib/rest/wireless/v1/sim.js +17 -27
  58. package/lib/twiml/VoiceResponse.d.ts +1296 -24
  59. package/lib/twiml/VoiceResponse.js +2170 -82
  60. package/package.json +1 -1
@@ -0,0 +1,400 @@
1
+ 'use strict';
2
+
3
+ /* jshint ignore:start */
4
+ /**
5
+ * This code was generated by
6
+ * \ / _ _ _| _ _
7
+ * | (_)\/(_)(_|\/| |(/_ v1.0.0
8
+ * / /
9
+ */
10
+ /* jshint ignore:end */
11
+
12
+ var Q = require('q'); /* jshint ignore:line */
13
+ var _ = require('lodash'); /* jshint ignore:line */
14
+ var util = require('util'); /* jshint ignore:line */
15
+ var Page = require('../../../../../base/Page'); /* jshint ignore:line */
16
+ var serialize = require(
17
+ '../../../../../base/serialize'); /* jshint ignore:line */
18
+ var values = require('../../../../../base/values'); /* jshint ignore:line */
19
+
20
+ var WebhookList;
21
+ var WebhookPage;
22
+ var WebhookInstance;
23
+ var WebhookContext;
24
+
25
+ /* jshint ignore:start */
26
+ /**
27
+ * Initialize the WebhookList
28
+ *
29
+ * @constructor Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookList
30
+ *
31
+ * @param {Twilio.Conversations.V1} version - Version of the resource
32
+ * @param {string} chatServiceSid - The unique string that identifies the resource
33
+ */
34
+ /* jshint ignore:end */
35
+ WebhookList = function WebhookList(version, chatServiceSid) {
36
+ /* jshint ignore:start */
37
+ /**
38
+ * @function webhooks
39
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext#
40
+ *
41
+ * @param {string} sid - sid of instance
42
+ *
43
+ * @returns {Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookContext}
44
+ */
45
+ /* jshint ignore:end */
46
+ function WebhookListInstance(sid) {
47
+ return WebhookListInstance.get(sid);
48
+ }
49
+
50
+ WebhookListInstance._version = version;
51
+ // Path Solution
52
+ WebhookListInstance._solution = {chatServiceSid: chatServiceSid};
53
+ /* jshint ignore:start */
54
+ /**
55
+ * Constructs a webhook
56
+ *
57
+ * @function get
58
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookList#
59
+ *
60
+ * @returns {Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookContext}
61
+ */
62
+ /* jshint ignore:end */
63
+ WebhookListInstance.get = function get() {
64
+ return new WebhookContext(this._version, this._solution.chatServiceSid);
65
+ };
66
+
67
+ /* jshint ignore:start */
68
+ /**
69
+ * Provide a user-friendly representation
70
+ *
71
+ * @function toJSON
72
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookList#
73
+ *
74
+ * @returns Object
75
+ */
76
+ /* jshint ignore:end */
77
+ WebhookListInstance.toJSON = function toJSON() {
78
+ return this._solution;
79
+ };
80
+
81
+ WebhookListInstance[util.inspect.custom] = function inspect(depth, options) {
82
+ return util.inspect(this.toJSON(), options);
83
+ };
84
+
85
+ return WebhookListInstance;
86
+ };
87
+
88
+
89
+ /* jshint ignore:start */
90
+ /**
91
+ * Initialize the WebhookPage
92
+ *
93
+ * @constructor Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookPage
94
+ *
95
+ * @param {V1} version - Version of the resource
96
+ * @param {Response<string>} response - Response from the API
97
+ * @param {WebhookSolution} solution - Path solution
98
+ *
99
+ * @returns WebhookPage
100
+ */
101
+ /* jshint ignore:end */
102
+ WebhookPage = function WebhookPage(version, response, solution) {
103
+ // Path Solution
104
+ this._solution = solution;
105
+
106
+ Page.prototype.constructor.call(this, version, response, this._solution);
107
+ };
108
+
109
+ _.extend(WebhookPage.prototype, Page.prototype);
110
+ WebhookPage.prototype.constructor = WebhookPage;
111
+
112
+ /* jshint ignore:start */
113
+ /**
114
+ * Build an instance of WebhookInstance
115
+ *
116
+ * @function getInstance
117
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookPage#
118
+ *
119
+ * @param {WebhookPayload} payload - Payload response from the API
120
+ *
121
+ * @returns WebhookInstance
122
+ */
123
+ /* jshint ignore:end */
124
+ WebhookPage.prototype.getInstance = function getInstance(payload) {
125
+ return new WebhookInstance(this._version, payload, this._solution.chatServiceSid);
126
+ };
127
+
128
+ /* jshint ignore:start */
129
+ /**
130
+ * Provide a user-friendly representation
131
+ *
132
+ * @function toJSON
133
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookPage#
134
+ *
135
+ * @returns Object
136
+ */
137
+ /* jshint ignore:end */
138
+ WebhookPage.prototype.toJSON = function toJSON() {
139
+ let clone = {};
140
+ _.forOwn(this, function(value, key) {
141
+ if (!_.startsWith(key, '_') && ! _.isFunction(value)) {
142
+ clone[key] = value;
143
+ }
144
+ });
145
+ return clone;
146
+ };
147
+
148
+ WebhookPage.prototype[util.inspect.custom] = function inspect(depth, options) {
149
+ return util.inspect(this.toJSON(), options);
150
+ };
151
+
152
+
153
+ /* jshint ignore:start */
154
+ /**
155
+ * Initialize the WebhookContext
156
+ *
157
+ * @constructor Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookInstance
158
+ *
159
+ * @property {string} accountSid -
160
+ * The unique ID of the Account responsible for this service.
161
+ * @property {string} chatServiceSid -
162
+ * The unique ID of the {@link https://www.twilio.com/docs/conversations/api/service-resource|Conversation Service} this conversation belongs to.
163
+ * @property {string} preWebhookUrl -
164
+ * The absolute url the pre-event webhook request should be sent to.
165
+ * @property {string} postWebhookUrl -
166
+ * The absolute url the post-event webhook request should be sent to.
167
+ * @property {string} filters -
168
+ * The list of events that your configured webhook targets will receive. Events not configured here will not fire.
169
+ * @property {webhook.method} method -
170
+ * The HTTP method to be used when sending a webhook request
171
+ * @property {string} url - An absolute URL for this webhook.
172
+ *
173
+ * @param {V1} version - Version of the resource
174
+ * @param {WebhookPayload} payload - The instance payload
175
+ * @param {sid} chatServiceSid - The unique string that identifies the resource
176
+ */
177
+ /* jshint ignore:end */
178
+ WebhookInstance = function WebhookInstance(version, payload, chatServiceSid) {
179
+ this._version = version;
180
+
181
+ // Marshaled Properties
182
+ this.accountSid = payload.account_sid; // jshint ignore:line
183
+ this.chatServiceSid = payload.chat_service_sid; // jshint ignore:line
184
+ this.preWebhookUrl = payload.pre_webhook_url; // jshint ignore:line
185
+ this.postWebhookUrl = payload.post_webhook_url; // jshint ignore:line
186
+ this.filters = payload.filters; // jshint ignore:line
187
+ this.method = payload.method; // jshint ignore:line
188
+ this.url = payload.url; // jshint ignore:line
189
+
190
+ // Context
191
+ this._context = undefined;
192
+ this._solution = {chatServiceSid: chatServiceSid, };
193
+ };
194
+
195
+ Object.defineProperty(WebhookInstance.prototype,
196
+ '_proxy', {
197
+ get: function() {
198
+ if (!this._context) {
199
+ this._context = new WebhookContext(this._version, this._solution.chatServiceSid);
200
+ }
201
+
202
+ return this._context;
203
+ }
204
+ });
205
+
206
+ /* jshint ignore:start */
207
+ /**
208
+ * update a WebhookInstance
209
+ *
210
+ * @function update
211
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookInstance#
212
+ *
213
+ * @param {object} [opts] - Options for request
214
+ * @param {string} [opts.preWebhookUrl] -
215
+ * The absolute url the pre-event webhook request should be sent to.
216
+ * @param {string} [opts.postWebhookUrl] -
217
+ * The absolute url the post-event webhook request should be sent to.
218
+ * @param {string|list} [opts.filters] -
219
+ * The list of events that your configured webhook targets will receive. Events not configured here will not fire.
220
+ * @param {string} [opts.method] -
221
+ * The HTTP method to be used when sending a webhook request
222
+ * @param {function} [callback] - Callback to handle processed record
223
+ *
224
+ * @returns {Promise} Resolves to processed WebhookInstance
225
+ */
226
+ /* jshint ignore:end */
227
+ WebhookInstance.prototype.update = function update(opts, callback) {
228
+ return this._proxy.update(opts, callback);
229
+ };
230
+
231
+ /* jshint ignore:start */
232
+ /**
233
+ * fetch a WebhookInstance
234
+ *
235
+ * @function fetch
236
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookInstance#
237
+ *
238
+ * @param {function} [callback] - Callback to handle processed record
239
+ *
240
+ * @returns {Promise} Resolves to processed WebhookInstance
241
+ */
242
+ /* jshint ignore:end */
243
+ WebhookInstance.prototype.fetch = function fetch(callback) {
244
+ return this._proxy.fetch(callback);
245
+ };
246
+
247
+ /* jshint ignore:start */
248
+ /**
249
+ * Provide a user-friendly representation
250
+ *
251
+ * @function toJSON
252
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookInstance#
253
+ *
254
+ * @returns Object
255
+ */
256
+ /* jshint ignore:end */
257
+ WebhookInstance.prototype.toJSON = function toJSON() {
258
+ let clone = {};
259
+ _.forOwn(this, function(value, key) {
260
+ if (!_.startsWith(key, '_') && ! _.isFunction(value)) {
261
+ clone[key] = value;
262
+ }
263
+ });
264
+ return clone;
265
+ };
266
+
267
+ WebhookInstance.prototype[util.inspect.custom] = function inspect(depth,
268
+ options) {
269
+ return util.inspect(this.toJSON(), options);
270
+ };
271
+
272
+
273
+ /* jshint ignore:start */
274
+ /**
275
+ * Initialize the WebhookContext
276
+ *
277
+ * @constructor Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookContext
278
+ *
279
+ * @param {V1} version - Version of the resource
280
+ * @param {sid} chatServiceSid -
281
+ * The unique ID of the {@link https://www.twilio.com/docs/conversations/api/service-resource|Conversation Service} this conversation belongs to.
282
+ */
283
+ /* jshint ignore:end */
284
+ WebhookContext = function WebhookContext(version, chatServiceSid) {
285
+ this._version = version;
286
+
287
+ // Path Solution
288
+ this._solution = {chatServiceSid: chatServiceSid, };
289
+ this._uri = `/Services/${chatServiceSid}/Configuration/Webhooks`;
290
+ };
291
+
292
+ /* jshint ignore:start */
293
+ /**
294
+ * update a WebhookInstance
295
+ *
296
+ * @function update
297
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookContext#
298
+ *
299
+ * @param {object} [opts] - Options for request
300
+ * @param {string} [opts.preWebhookUrl] -
301
+ * The absolute url the pre-event webhook request should be sent to.
302
+ * @param {string} [opts.postWebhookUrl] -
303
+ * The absolute url the post-event webhook request should be sent to.
304
+ * @param {string|list} [opts.filters] -
305
+ * The list of events that your configured webhook targets will receive. Events not configured here will not fire.
306
+ * @param {string} [opts.method] -
307
+ * The HTTP method to be used when sending a webhook request
308
+ * @param {function} [callback] - Callback to handle processed record
309
+ *
310
+ * @returns {Promise} Resolves to processed WebhookInstance
311
+ */
312
+ /* jshint ignore:end */
313
+ WebhookContext.prototype.update = function update(opts, callback) {
314
+ if (_.isFunction(opts)) {
315
+ callback = opts;
316
+ opts = {};
317
+ }
318
+ opts = opts || {};
319
+
320
+ var deferred = Q.defer();
321
+ var data = values.of({
322
+ 'PreWebhookUrl': _.get(opts, 'preWebhookUrl'),
323
+ 'PostWebhookUrl': _.get(opts, 'postWebhookUrl'),
324
+ 'Filters': serialize.map(_.get(opts, 'filters'), function(e) { return e; }),
325
+ 'Method': _.get(opts, 'method')
326
+ });
327
+
328
+ var promise = this._version.update({uri: this._uri, method: 'POST', data: data});
329
+
330
+ promise = promise.then(function(payload) {
331
+ deferred.resolve(new WebhookInstance(this._version, payload, this._solution.chatServiceSid));
332
+ }.bind(this));
333
+
334
+ promise.catch(function(error) {
335
+ deferred.reject(error);
336
+ });
337
+
338
+ if (_.isFunction(callback)) {
339
+ deferred.promise.nodeify(callback);
340
+ }
341
+
342
+ return deferred.promise;
343
+ };
344
+
345
+ /* jshint ignore:start */
346
+ /**
347
+ * fetch a WebhookInstance
348
+ *
349
+ * @function fetch
350
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookContext#
351
+ *
352
+ * @param {function} [callback] - Callback to handle processed record
353
+ *
354
+ * @returns {Promise} Resolves to processed WebhookInstance
355
+ */
356
+ /* jshint ignore:end */
357
+ WebhookContext.prototype.fetch = function fetch(callback) {
358
+ var deferred = Q.defer();
359
+ var promise = this._version.fetch({uri: this._uri, method: 'GET'});
360
+
361
+ promise = promise.then(function(payload) {
362
+ deferred.resolve(new WebhookInstance(this._version, payload, this._solution.chatServiceSid));
363
+ }.bind(this));
364
+
365
+ promise.catch(function(error) {
366
+ deferred.reject(error);
367
+ });
368
+
369
+ if (_.isFunction(callback)) {
370
+ deferred.promise.nodeify(callback);
371
+ }
372
+
373
+ return deferred.promise;
374
+ };
375
+
376
+ /* jshint ignore:start */
377
+ /**
378
+ * Provide a user-friendly representation
379
+ *
380
+ * @function toJSON
381
+ * @memberof Twilio.Conversations.V1.ServiceContext.ConfigurationContext.WebhookContext#
382
+ *
383
+ * @returns Object
384
+ */
385
+ /* jshint ignore:end */
386
+ WebhookContext.prototype.toJSON = function toJSON() {
387
+ return this._solution;
388
+ };
389
+
390
+ WebhookContext.prototype[util.inspect.custom] = function inspect(depth, options)
391
+ {
392
+ return util.inspect(this.toJSON(), options);
393
+ };
394
+
395
+ module.exports = {
396
+ WebhookList: WebhookList,
397
+ WebhookPage: WebhookPage,
398
+ WebhookInstance: WebhookInstance,
399
+ WebhookContext: WebhookContext
400
+ };
@@ -10,6 +10,7 @@ import Response = require('../../../../http/response');
10
10
  import V1 = require('../../V1');
11
11
  import { NotificationListInstance } from './configuration/notification';
12
12
  import { SerializableClass } from '../../../../interfaces';
13
+ import { WebhookListInstance } from './configuration/webhook';
13
14
 
14
15
  /**
15
16
  * Initialize the ConfigurationList
@@ -48,6 +49,7 @@ interface ConfigurationListInstance {
48
49
  * Provide a user-friendly representation
49
50
  */
50
51
  toJSON(): any;
52
+ webhooks?: WebhookListInstance;
51
53
  }
52
54
 
53
55
  interface ConfigurationPayload extends ConfigurationResource, Page.TwilioResponsePayload {
@@ -14,6 +14,7 @@ var _ = require('lodash'); /* jshint ignore:line */
14
14
  var util = require('util'); /* jshint ignore:line */
15
15
  var NotificationList = require('./configuration/notification').NotificationList;
16
16
  var Page = require('../../../../base/Page'); /* jshint ignore:line */
17
+ var WebhookList = require('./configuration/webhook').WebhookList;
17
18
  var serialize = require('../../../../base/serialize'); /* jshint ignore:line */
18
19
  var values = require('../../../../base/values'); /* jshint ignore:line */
19
20
 
@@ -53,6 +54,7 @@ ConfigurationList = function ConfigurationList(version, chatServiceSid) {
53
54
 
54
55
  // Components
55
56
  ConfigurationListInstance._notifications = undefined;
57
+ ConfigurationListInstance._webhooks = undefined;
56
58
 
57
59
  /* jshint ignore:start */
58
60
  /**
@@ -79,6 +81,17 @@ ConfigurationList = function ConfigurationList(version, chatServiceSid) {
79
81
  }
80
82
  });
81
83
 
84
+ Object.defineProperty(ConfigurationListInstance,
85
+ 'webhooks', {
86
+ get: function webhooks() {
87
+ if (!this._webhooks) {
88
+ this._webhooks = new WebhookList(this._version, this._solution.chatServiceSid);
89
+ }
90
+
91
+ return this._webhooks;
92
+ }
93
+ });
94
+
82
95
  /* jshint ignore:start */
83
96
  /**
84
97
  * Provide a user-friendly representation
@@ -59,8 +59,10 @@ interface ConfigurationResource {
59
59
  crm_type: string;
60
60
  date_created: Date;
61
61
  date_updated: Date;
62
+ flex_insights_drilldown: boolean;
62
63
  flex_insights_hr: object;
63
64
  flex_service_instance_sid: string;
65
+ flex_url: string;
64
66
  integrations: object[];
65
67
  markdown: object;
66
68
  messaging_service_instance_sid: string;
@@ -174,8 +176,10 @@ declare class ConfigurationInstance extends SerializableClass {
174
176
  * @param callback - Callback to handle processed record
175
177
  */
176
178
  fetch(opts?: ConfigurationInstanceFetchOptions, callback?: (error: Error | null, items: ConfigurationInstance) => any): Promise<ConfigurationInstance>;
179
+ flexInsightsDrilldown: boolean;
177
180
  flexInsightsHr: any;
178
181
  flexServiceInstanceSid: string;
182
+ flexUrl: string;
179
183
  integrations: object[];
180
184
  markdown: any;
181
185
  messagingServiceInstanceSid: string;
@@ -211,6 +211,9 @@ ConfigurationPage.prototype[util.inspect.custom] = function inspect(depth,
211
211
  * @property {object} markdown - Configurable parameters for Markdown
212
212
  * @property {string} url - The absolute URL of the Configuration resource
213
213
  * @property {object} flexInsightsHr - Object that controls workspace reporting
214
+ * @property {boolean} flexInsightsDrilldown -
215
+ * Setting to enable Flex UI redirection
216
+ * @property {string} flexUrl - URL to redirect to in case drilldown is enabled.
214
217
  *
215
218
  * @param {V1} version - Version of the resource
216
219
  * @param {ConfigurationPayload} payload - The instance payload
@@ -260,6 +263,8 @@ ConfigurationInstance = function ConfigurationInstance(version, payload) {
260
263
  this.markdown = payload.markdown; // jshint ignore:line
261
264
  this.url = payload.url; // jshint ignore:line
262
265
  this.flexInsightsHr = payload.flex_insights_hr; // jshint ignore:line
266
+ this.flexInsightsDrilldown = payload.flex_insights_drilldown; // jshint ignore:line
267
+ this.flexUrl = payload.flex_url; // jshint ignore:line
263
268
 
264
269
  // Context
265
270
  this._context = undefined;
@@ -27,11 +27,13 @@ declare function UserList(version: V1): UserListInstance;
27
27
  *
28
28
  * @property avatar - The avatar URL which will be shown in Frontline application
29
29
  * @property friendlyName - The string that you assigned to describe the User
30
+ * @property isAvailable - Whether the User is available for new conversations
30
31
  * @property state - Current state of this user
31
32
  */
32
33
  interface UserInstanceUpdateOptions {
33
34
  avatar?: string;
34
35
  friendlyName?: string;
36
+ isAvailable?: boolean;
35
37
  state?: UserStateType;
36
38
  }
37
39
 
@@ -59,6 +61,7 @@ interface UserResource {
59
61
  avatar: string;
60
62
  friendly_name: string;
61
63
  identity: string;
64
+ is_available: boolean;
62
65
  sid: string;
63
66
  state: UserStateType;
64
67
  url: string;
@@ -129,6 +132,7 @@ declare class UserInstance extends SerializableClass {
129
132
  fetch(callback?: (error: Error | null, items: UserInstance) => any): Promise<UserInstance>;
130
133
  friendlyName: string;
131
134
  identity: string;
135
+ isAvailable: boolean;
132
136
  sid: string;
133
137
  state: UserStateType;
134
138
  /**
@@ -13,6 +13,7 @@ var Q = require('q'); /* jshint ignore:line */
13
13
  var _ = require('lodash'); /* jshint ignore:line */
14
14
  var util = require('util'); /* jshint ignore:line */
15
15
  var Page = require('../../../base/Page'); /* jshint ignore:line */
16
+ var serialize = require('../../../base/serialize'); /* jshint ignore:line */
16
17
  var values = require('../../../base/values'); /* jshint ignore:line */
17
18
 
18
19
  var UserList;
@@ -171,6 +172,8 @@ UserPage.prototype[util.inspect.custom] = function inspect(depth, options) {
171
172
  * @property {string} avatar -
172
173
  * The avatar URL which will be shown in Frontline application
173
174
  * @property {user.state_type} state - Current state of this user
175
+ * @property {boolean} isAvailable -
176
+ * Whether the User is available for new conversations
174
177
  * @property {string} url - An absolute URL for this user.
175
178
  *
176
179
  * @param {V1} version - Version of the resource
@@ -187,6 +190,7 @@ UserInstance = function UserInstance(version, payload, sid) {
187
190
  this.friendlyName = payload.friendly_name; // jshint ignore:line
188
191
  this.avatar = payload.avatar; // jshint ignore:line
189
192
  this.state = payload.state; // jshint ignore:line
193
+ this.isAvailable = payload.is_available; // jshint ignore:line
190
194
  this.url = payload.url; // jshint ignore:line
191
195
 
192
196
  // Context
@@ -234,6 +238,8 @@ UserInstance.prototype.fetch = function fetch(callback) {
234
238
  * @param {string} [opts.avatar] -
235
239
  * The avatar URL which will be shown in Frontline application
236
240
  * @param {user.state_type} [opts.state] - Current state of this user
241
+ * @param {boolean} [opts.isAvailable] -
242
+ * Whether the User is available for new conversations
237
243
  * @param {function} [callback] - Callback to handle processed record
238
244
  *
239
245
  * @returns {Promise} Resolves to processed UserInstance
@@ -333,6 +339,8 @@ UserContext.prototype.fetch = function fetch(callback) {
333
339
  * @param {string} [opts.avatar] -
334
340
  * The avatar URL which will be shown in Frontline application
335
341
  * @param {user.state_type} [opts.state] - Current state of this user
342
+ * @param {boolean} [opts.isAvailable] -
343
+ * Whether the User is available for new conversations
336
344
  * @param {function} [callback] - Callback to handle processed record
337
345
  *
338
346
  * @returns {Promise} Resolves to processed UserInstance
@@ -349,7 +357,8 @@ UserContext.prototype.update = function update(opts, callback) {
349
357
  var data = values.of({
350
358
  'FriendlyName': _.get(opts, 'friendlyName'),
351
359
  'Avatar': _.get(opts, 'avatar'),
352
- 'State': _.get(opts, 'state')
360
+ 'State': _.get(opts, 'state'),
361
+ 'IsAvailable': serialize.bool(_.get(opts, 'isAvailable'))
353
362
  });
354
363
 
355
364
  var promise = this._version.update({uri: this._uri, method: 'POST', data: data});
@@ -13,6 +13,8 @@ import { CallSummariesList } from './v1/callSummaries';
13
13
  import { CallSummariesListInstance } from './v1/callSummaries';
14
14
  import { RoomList } from './v1/room';
15
15
  import { RoomListInstance } from './v1/room';
16
+ import { SettingList } from './v1/setting';
17
+ import { SettingListInstance } from './v1/setting';
16
18
 
17
19
 
18
20
  declare class V1 extends Version {
@@ -26,6 +28,7 @@ declare class V1 extends Version {
26
28
  readonly callSummaries: CallSummariesListInstance;
27
29
  readonly calls: CallListInstance;
28
30
  readonly rooms: RoomListInstance;
31
+ readonly settings: SettingListInstance;
29
32
  }
30
33
 
31
34
  export = V1;
@@ -13,6 +13,7 @@ var _ = require('lodash'); /* jshint ignore:line */
13
13
  var CallList = require('./v1/call').CallList;
14
14
  var CallSummariesList = require('./v1/callSummaries').CallSummariesList;
15
15
  var RoomList = require('./v1/room').RoomList;
16
+ var SettingList = require('./v1/setting').SettingList;
16
17
  var Version = require('../../base/Version'); /* jshint ignore:line */
17
18
 
18
19
 
@@ -22,6 +23,7 @@ var Version = require('../../base/Version'); /* jshint ignore:line */
22
23
  *
23
24
  * @constructor Twilio.Insights.V1
24
25
  *
26
+ * @property {Twilio.Insights.V1.SettingList} settings - settings resource
25
27
  * @property {Twilio.Insights.V1.CallList} calls - calls resource
26
28
  * @property {Twilio.Insights.V1.CallSummariesList} callSummaries -
27
29
  * callSummaries resource
@@ -34,6 +36,7 @@ function V1(domain) {
34
36
  Version.prototype.constructor.call(this, domain, 'v1');
35
37
 
36
38
  // Resources
39
+ this._settings = undefined;
37
40
  this._calls = undefined;
38
41
  this._callSummaries = undefined;
39
42
  this._rooms = undefined;
@@ -42,6 +45,14 @@ function V1(domain) {
42
45
  _.extend(V1.prototype, Version.prototype);
43
46
  V1.prototype.constructor = V1;
44
47
 
48
+ Object.defineProperty(V1.prototype,
49
+ 'settings', {
50
+ get: function() {
51
+ this._settings = this._settings || new SettingList(this);
52
+ return this._settings;
53
+ }
54
+ });
55
+
45
56
  Object.defineProperty(V1.prototype,
46
57
  'calls', {
47
58
  get: function() {