twilio 3.71.3 → 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.
@@ -0,0 +1,384 @@
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('../../../base/serialize'); /* jshint ignore:line */
17
+ var values = require('../../../base/values'); /* jshint ignore:line */
18
+
19
+ var SettingList;
20
+ var SettingPage;
21
+ var SettingInstance;
22
+ var SettingContext;
23
+
24
+ /* jshint ignore:start */
25
+ /**
26
+ * Initialize the SettingList
27
+ *
28
+ * @constructor Twilio.Insights.V1.SettingList
29
+ *
30
+ * @param {Twilio.Insights.V1} version - Version of the resource
31
+ */
32
+ /* jshint ignore:end */
33
+ SettingList = function SettingList(version) {
34
+ /* jshint ignore:start */
35
+ /**
36
+ * @function settings
37
+ * @memberof Twilio.Insights.V1#
38
+ *
39
+ * @param {string} sid - sid of instance
40
+ *
41
+ * @returns {Twilio.Insights.V1.SettingContext}
42
+ */
43
+ /* jshint ignore:end */
44
+ function SettingListInstance(sid) {
45
+ return SettingListInstance.get(sid);
46
+ }
47
+
48
+ SettingListInstance._version = version;
49
+ // Path Solution
50
+ SettingListInstance._solution = {};
51
+ /* jshint ignore:start */
52
+ /**
53
+ * Constructs a setting
54
+ *
55
+ * @function get
56
+ * @memberof Twilio.Insights.V1.SettingList#
57
+ *
58
+ * @returns {Twilio.Insights.V1.SettingContext}
59
+ */
60
+ /* jshint ignore:end */
61
+ SettingListInstance.get = function get() {
62
+ return new SettingContext(this._version);
63
+ };
64
+
65
+ /* jshint ignore:start */
66
+ /**
67
+ * Provide a user-friendly representation
68
+ *
69
+ * @function toJSON
70
+ * @memberof Twilio.Insights.V1.SettingList#
71
+ *
72
+ * @returns Object
73
+ */
74
+ /* jshint ignore:end */
75
+ SettingListInstance.toJSON = function toJSON() {
76
+ return this._solution;
77
+ };
78
+
79
+ SettingListInstance[util.inspect.custom] = function inspect(depth, options) {
80
+ return util.inspect(this.toJSON(), options);
81
+ };
82
+
83
+ return SettingListInstance;
84
+ };
85
+
86
+
87
+ /* jshint ignore:start */
88
+ /**
89
+ * Initialize the SettingPage
90
+ *
91
+ * @constructor Twilio.Insights.V1.SettingPage
92
+ *
93
+ * @param {V1} version - Version of the resource
94
+ * @param {Response<string>} response - Response from the API
95
+ * @param {SettingSolution} solution - Path solution
96
+ *
97
+ * @returns SettingPage
98
+ */
99
+ /* jshint ignore:end */
100
+ SettingPage = function SettingPage(version, response, solution) {
101
+ // Path Solution
102
+ this._solution = solution;
103
+
104
+ Page.prototype.constructor.call(this, version, response, this._solution);
105
+ };
106
+
107
+ _.extend(SettingPage.prototype, Page.prototype);
108
+ SettingPage.prototype.constructor = SettingPage;
109
+
110
+ /* jshint ignore:start */
111
+ /**
112
+ * Build an instance of SettingInstance
113
+ *
114
+ * @function getInstance
115
+ * @memberof Twilio.Insights.V1.SettingPage#
116
+ *
117
+ * @param {SettingPayload} payload - Payload response from the API
118
+ *
119
+ * @returns SettingInstance
120
+ */
121
+ /* jshint ignore:end */
122
+ SettingPage.prototype.getInstance = function getInstance(payload) {
123
+ return new SettingInstance(this._version, payload);
124
+ };
125
+
126
+ /* jshint ignore:start */
127
+ /**
128
+ * Provide a user-friendly representation
129
+ *
130
+ * @function toJSON
131
+ * @memberof Twilio.Insights.V1.SettingPage#
132
+ *
133
+ * @returns Object
134
+ */
135
+ /* jshint ignore:end */
136
+ SettingPage.prototype.toJSON = function toJSON() {
137
+ let clone = {};
138
+ _.forOwn(this, function(value, key) {
139
+ if (!_.startsWith(key, '_') && ! _.isFunction(value)) {
140
+ clone[key] = value;
141
+ }
142
+ });
143
+ return clone;
144
+ };
145
+
146
+ SettingPage.prototype[util.inspect.custom] = function inspect(depth, options) {
147
+ return util.inspect(this.toJSON(), options);
148
+ };
149
+
150
+
151
+ /* jshint ignore:start */
152
+ /**
153
+ * Initialize the SettingContext
154
+ *
155
+ * @constructor Twilio.Insights.V1.SettingInstance
156
+ *
157
+ * @property {string} accountSid - The account_sid
158
+ * @property {boolean} advancedFeatures - The advanced_features
159
+ * @property {boolean} voiceTrace - The voice_trace
160
+ * @property {string} url - The url
161
+ *
162
+ * @param {V1} version - Version of the resource
163
+ * @param {SettingPayload} payload - The instance payload
164
+ */
165
+ /* jshint ignore:end */
166
+ SettingInstance = function SettingInstance(version, payload) {
167
+ this._version = version;
168
+
169
+ // Marshaled Properties
170
+ this.accountSid = payload.account_sid; // jshint ignore:line
171
+ this.advancedFeatures = payload.advanced_features; // jshint ignore:line
172
+ this.voiceTrace = payload.voice_trace; // jshint ignore:line
173
+ this.url = payload.url; // jshint ignore:line
174
+
175
+ // Context
176
+ this._context = undefined;
177
+ this._solution = {};
178
+ };
179
+
180
+ Object.defineProperty(SettingInstance.prototype,
181
+ '_proxy', {
182
+ get: function() {
183
+ if (!this._context) {
184
+ this._context = new SettingContext(this._version);
185
+ }
186
+
187
+ return this._context;
188
+ }
189
+ });
190
+
191
+ /* jshint ignore:start */
192
+ /**
193
+ * fetch a SettingInstance
194
+ *
195
+ * @function fetch
196
+ * @memberof Twilio.Insights.V1.SettingInstance#
197
+ *
198
+ * @param {object} [opts] - Options for request
199
+ * @param {string} [opts.subaccountSid] - The subaccount_sid
200
+ * @param {function} [callback] - Callback to handle processed record
201
+ *
202
+ * @returns {Promise} Resolves to processed SettingInstance
203
+ */
204
+ /* jshint ignore:end */
205
+ SettingInstance.prototype.fetch = function fetch(opts, callback) {
206
+ return this._proxy.fetch(opts, callback);
207
+ };
208
+
209
+ /* jshint ignore:start */
210
+ /**
211
+ * update a SettingInstance
212
+ *
213
+ * @function update
214
+ * @memberof Twilio.Insights.V1.SettingInstance#
215
+ *
216
+ * @param {object} [opts] - Options for request
217
+ * @param {boolean} [opts.advancedFeatures] - The advanced_features
218
+ * @param {boolean} [opts.voiceTrace] - The voice_trace
219
+ * @param {string} [opts.subaccountSid] - The subaccount_sid
220
+ * @param {function} [callback] - Callback to handle processed record
221
+ *
222
+ * @returns {Promise} Resolves to processed SettingInstance
223
+ */
224
+ /* jshint ignore:end */
225
+ SettingInstance.prototype.update = function update(opts, callback) {
226
+ return this._proxy.update(opts, callback);
227
+ };
228
+
229
+ /* jshint ignore:start */
230
+ /**
231
+ * Provide a user-friendly representation
232
+ *
233
+ * @function toJSON
234
+ * @memberof Twilio.Insights.V1.SettingInstance#
235
+ *
236
+ * @returns Object
237
+ */
238
+ /* jshint ignore:end */
239
+ SettingInstance.prototype.toJSON = function toJSON() {
240
+ let clone = {};
241
+ _.forOwn(this, function(value, key) {
242
+ if (!_.startsWith(key, '_') && ! _.isFunction(value)) {
243
+ clone[key] = value;
244
+ }
245
+ });
246
+ return clone;
247
+ };
248
+
249
+ SettingInstance.prototype[util.inspect.custom] = function inspect(depth,
250
+ options) {
251
+ return util.inspect(this.toJSON(), options);
252
+ };
253
+
254
+
255
+ /* jshint ignore:start */
256
+ /**
257
+ * Initialize the SettingContext
258
+ *
259
+ * @constructor Twilio.Insights.V1.SettingContext
260
+ *
261
+ * @param {V1} version - Version of the resource
262
+ */
263
+ /* jshint ignore:end */
264
+ SettingContext = function SettingContext(version) {
265
+ this._version = version;
266
+
267
+ // Path Solution
268
+ this._solution = {};
269
+ this._uri = `/Voice/Settings`;
270
+ };
271
+
272
+ /* jshint ignore:start */
273
+ /**
274
+ * fetch a SettingInstance
275
+ *
276
+ * @function fetch
277
+ * @memberof Twilio.Insights.V1.SettingContext#
278
+ *
279
+ * @param {object} [opts] - Options for request
280
+ * @param {string} [opts.subaccountSid] - The subaccount_sid
281
+ * @param {function} [callback] - Callback to handle processed record
282
+ *
283
+ * @returns {Promise} Resolves to processed SettingInstance
284
+ */
285
+ /* jshint ignore:end */
286
+ SettingContext.prototype.fetch = function fetch(opts, callback) {
287
+ if (_.isFunction(opts)) {
288
+ callback = opts;
289
+ opts = {};
290
+ }
291
+ opts = opts || {};
292
+
293
+ var deferred = Q.defer();
294
+ var data = values.of({'SubaccountSid': _.get(opts, 'subaccountSid')});
295
+
296
+ var promise = this._version.fetch({uri: this._uri, method: 'GET', params: data});
297
+
298
+ promise = promise.then(function(payload) {
299
+ deferred.resolve(new SettingInstance(this._version, payload));
300
+ }.bind(this));
301
+
302
+ promise.catch(function(error) {
303
+ deferred.reject(error);
304
+ });
305
+
306
+ if (_.isFunction(callback)) {
307
+ deferred.promise.nodeify(callback);
308
+ }
309
+
310
+ return deferred.promise;
311
+ };
312
+
313
+ /* jshint ignore:start */
314
+ /**
315
+ * update a SettingInstance
316
+ *
317
+ * @function update
318
+ * @memberof Twilio.Insights.V1.SettingContext#
319
+ *
320
+ * @param {object} [opts] - Options for request
321
+ * @param {boolean} [opts.advancedFeatures] - The advanced_features
322
+ * @param {boolean} [opts.voiceTrace] - The voice_trace
323
+ * @param {string} [opts.subaccountSid] - The subaccount_sid
324
+ * @param {function} [callback] - Callback to handle processed record
325
+ *
326
+ * @returns {Promise} Resolves to processed SettingInstance
327
+ */
328
+ /* jshint ignore:end */
329
+ SettingContext.prototype.update = function update(opts, callback) {
330
+ if (_.isFunction(opts)) {
331
+ callback = opts;
332
+ opts = {};
333
+ }
334
+ opts = opts || {};
335
+
336
+ var deferred = Q.defer();
337
+ var data = values.of({
338
+ 'AdvancedFeatures': serialize.bool(_.get(opts, 'advancedFeatures')),
339
+ 'VoiceTrace': serialize.bool(_.get(opts, 'voiceTrace')),
340
+ 'SubaccountSid': _.get(opts, 'subaccountSid')
341
+ });
342
+
343
+ var promise = this._version.update({uri: this._uri, method: 'POST', data: data});
344
+
345
+ promise = promise.then(function(payload) {
346
+ deferred.resolve(new SettingInstance(this._version, payload));
347
+ }.bind(this));
348
+
349
+ promise.catch(function(error) {
350
+ deferred.reject(error);
351
+ });
352
+
353
+ if (_.isFunction(callback)) {
354
+ deferred.promise.nodeify(callback);
355
+ }
356
+
357
+ return deferred.promise;
358
+ };
359
+
360
+ /* jshint ignore:start */
361
+ /**
362
+ * Provide a user-friendly representation
363
+ *
364
+ * @function toJSON
365
+ * @memberof Twilio.Insights.V1.SettingContext#
366
+ *
367
+ * @returns Object
368
+ */
369
+ /* jshint ignore:end */
370
+ SettingContext.prototype.toJSON = function toJSON() {
371
+ return this._solution;
372
+ };
373
+
374
+ SettingContext.prototype[util.inspect.custom] = function inspect(depth, options)
375
+ {
376
+ return util.inspect(this.toJSON(), options);
377
+ };
378
+
379
+ module.exports = {
380
+ SettingList: SettingList,
381
+ SettingPage: SettingPage,
382
+ SettingInstance: SettingInstance,
383
+ SettingContext: SettingContext
384
+ };
@@ -158,6 +158,7 @@ interface MediaProcessorListInstance {
158
158
  * @property extension - The Media Extension name or URL
159
159
  * @property extensionContext - The Media Extension context
160
160
  * @property extensionEnvironment - The Media Extension environment
161
+ * @property maxDuration - Maximum MediaProcessor duration in minutes
161
162
  * @property statusCallback - The URL to send MediaProcessor event updates to your application
162
163
  * @property statusCallbackMethod - The HTTP method Twilio should use to call the `status_callback` URL
163
164
  */
@@ -165,6 +166,7 @@ interface MediaProcessorListInstanceCreateOptions {
165
166
  extension: string;
166
167
  extensionContext: string;
167
168
  extensionEnvironment?: object;
169
+ maxDuration?: number;
168
170
  statusCallback?: string;
169
171
  statusCallbackMethod?: string;
170
172
  }
@@ -248,6 +250,7 @@ interface MediaProcessorResource {
248
250
  ended_reason: string;
249
251
  extension: string;
250
252
  extension_context: string;
253
+ max_duration: number;
251
254
  sid: string;
252
255
  status: MediaProcessorStatus;
253
256
  status_callback: string;
@@ -311,6 +314,7 @@ declare class MediaProcessorInstance extends SerializableClass {
311
314
  * @param callback - Callback to handle processed record
312
315
  */
313
316
  fetch(callback?: (error: Error | null, items: MediaProcessorInstance) => any): Promise<MediaProcessorInstance>;
317
+ maxDuration: number;
314
318
  sid: string;
315
319
  status: MediaProcessorStatus;
316
320
  statusCallback: string;
@@ -66,6 +66,7 @@ MediaProcessorList = function MediaProcessorList(version) {
66
66
  * The URL to send MediaProcessor event updates to your application
67
67
  * @param {string} [opts.statusCallbackMethod] -
68
68
  * The HTTP method Twilio should use to call the `status_callback` URL
69
+ * @param {number} [opts.maxDuration] - Maximum MediaProcessor duration in minutes
69
70
  * @param {function} [callback] - Callback to handle processed record
70
71
  *
71
72
  * @returns {Promise} Resolves to processed MediaProcessorInstance
@@ -88,7 +89,8 @@ MediaProcessorList = function MediaProcessorList(version) {
88
89
  'ExtensionContext': _.get(opts, 'extensionContext'),
89
90
  'ExtensionEnvironment': serialize.object(_.get(opts, 'extensionEnvironment')),
90
91
  'StatusCallback': _.get(opts, 'statusCallback'),
91
- 'StatusCallbackMethod': _.get(opts, 'statusCallbackMethod')
92
+ 'StatusCallbackMethod': _.get(opts, 'statusCallbackMethod'),
93
+ 'MaxDuration': _.get(opts, 'maxDuration')
92
94
  });
93
95
 
94
96
  var promise = this._version.create({uri: this._uri, method: 'POST', data: data});
@@ -483,6 +485,7 @@ MediaProcessorPage.prototype[util.inspect.custom] = function inspect(depth,
483
485
  * The URL to which Twilio will send MediaProcessor event updates
484
486
  * @property {string} statusCallbackMethod -
485
487
  * The HTTP method Twilio should use to call the `status_callback` URL
488
+ * @property {number} maxDuration - Maximum MediaProcessor duration in minutes
486
489
  *
487
490
  * @param {V1} version - Version of the resource
488
491
  * @param {MediaProcessorPayload} payload - The instance payload
@@ -505,6 +508,7 @@ MediaProcessorInstance = function MediaProcessorInstance(version, payload, sid)
505
508
  this.endedReason = payload.ended_reason; // jshint ignore:line
506
509
  this.statusCallback = payload.status_callback; // jshint ignore:line
507
510
  this.statusCallbackMethod = payload.status_callback_method; // jshint ignore:line
511
+ this.maxDuration = deserialize.integer(payload.max_duration); // jshint ignore:line
508
512
 
509
513
  // Context
510
514
  this._context = undefined;
@@ -168,6 +168,7 @@ interface RoomListInstance {
168
168
  * Options to pass to create
169
169
  *
170
170
  * @property audioOnly - Indicates whether the room will only contain audio track participants for group rooms.
171
+ * @property emptyRoomTimeout - Configures the time a room will remain active after last participant leaves.
171
172
  * @property enableTurn - Enable Twilio's Network Traversal TURN service
172
173
  * @property maxParticipantDuration - The maximum number of seconds a Participant can be connected to the room
173
174
  * @property maxParticipants - The maximum number of concurrent Participants allowed in the room
@@ -178,10 +179,12 @@ interface RoomListInstance {
178
179
  * @property statusCallbackMethod - The HTTP method we should use to call status_callback
179
180
  * @property type - The type of room
180
181
  * @property uniqueName - An application-defined string that uniquely identifies the resource
182
+ * @property unusedRoomTimeout - Configures the time a room will remain active when no one joins.
181
183
  * @property videoCodecs - An array of the video codecs that are supported when publishing a track in the room
182
184
  */
183
185
  interface RoomListInstanceCreateOptions {
184
186
  audioOnly?: boolean;
187
+ emptyRoomTimeout?: number;
185
188
  enableTurn?: boolean;
186
189
  maxParticipantDuration?: number;
187
190
  maxParticipants?: number;
@@ -192,6 +195,7 @@ interface RoomListInstanceCreateOptions {
192
195
  statusCallbackMethod?: string;
193
196
  type?: RoomRoomType;
194
197
  uniqueName?: string;
198
+ unusedRoomTimeout?: number;
195
199
  videoCodecs?: RoomVideoCodec | RoomVideoCodec[];
196
200
  }
197
201
 
@@ -285,6 +289,7 @@ interface RoomResource {
285
289
  date_created: Date;
286
290
  date_updated: Date;
287
291
  duration: number;
292
+ empty_room_timeout: number;
288
293
  enable_turn: boolean;
289
294
  end_time: Date;
290
295
  links: string;
@@ -299,6 +304,7 @@ interface RoomResource {
299
304
  status_callback_method: string;
300
305
  type: RoomRoomType;
301
306
  unique_name: string;
307
+ unused_room_timeout: number;
302
308
  url: string;
303
309
  video_codecs: RoomVideoCodec[];
304
310
  }
@@ -355,6 +361,7 @@ declare class RoomInstance extends SerializableClass {
355
361
  dateCreated: Date;
356
362
  dateUpdated: Date;
357
363
  duration: number;
364
+ emptyRoomTimeout: number;
358
365
  enableTurn: boolean;
359
366
  endTime: Date;
360
367
  /**
@@ -391,6 +398,7 @@ declare class RoomInstance extends SerializableClass {
391
398
  toJSON(): any;
392
399
  type: RoomRoomType;
393
400
  uniqueName: string;
401
+ unusedRoomTimeout: number;
394
402
  /**
395
403
  * update a RoomInstance
396
404
  *
@@ -84,6 +84,10 @@ RoomList = function RoomList(version) {
84
84
  * Indicates whether the room will only contain audio track participants for group rooms.
85
85
  * @param {number} [opts.maxParticipantDuration] -
86
86
  * The maximum number of seconds a Participant can be connected to the room
87
+ * @param {number} [opts.emptyRoomTimeout] -
88
+ * Configures the time a room will remain active after last participant leaves.
89
+ * @param {number} [opts.unusedRoomTimeout] -
90
+ * Configures the time a room will remain active when no one joins.
87
91
  * @param {function} [callback] - Callback to handle processed record
88
92
  *
89
93
  * @returns {Promise} Resolves to processed RoomInstance
@@ -109,7 +113,9 @@ RoomList = function RoomList(version) {
109
113
  'MediaRegion': _.get(opts, 'mediaRegion'),
110
114
  'RecordingRules': serialize.object(_.get(opts, 'recordingRules')),
111
115
  'AudioOnly': serialize.bool(_.get(opts, 'audioOnly')),
112
- 'MaxParticipantDuration': _.get(opts, 'maxParticipantDuration')
116
+ 'MaxParticipantDuration': _.get(opts, 'maxParticipantDuration'),
117
+ 'EmptyRoomTimeout': _.get(opts, 'emptyRoomTimeout'),
118
+ 'UnusedRoomTimeout': _.get(opts, 'unusedRoomTimeout')
113
119
  });
114
120
 
115
121
  var promise = this._version.create({uri: this._uri, method: 'POST', data: data});
@@ -531,6 +537,10 @@ RoomPage.prototype[util.inspect.custom] = function inspect(depth, options) {
531
537
  * @property {string} mediaRegion - The region for the media server in Group Rooms
532
538
  * @property {boolean} audioOnly -
533
539
  * Indicates whether the room will only contain audio track participants for group rooms.
540
+ * @property {number} emptyRoomTimeout -
541
+ * The time a room will remain active after last participant leaves.
542
+ * @property {number} unusedRoomTimeout -
543
+ * The time a room will remain active when no one joins.
534
544
  * @property {string} url - The absolute URL of the resource
535
545
  * @property {string} links - The URLs of related resources
536
546
  *
@@ -562,6 +572,8 @@ RoomInstance = function RoomInstance(version, payload, sid) {
562
572
  this.videoCodecs = payload.video_codecs; // jshint ignore:line
563
573
  this.mediaRegion = payload.media_region; // jshint ignore:line
564
574
  this.audioOnly = payload.audio_only; // jshint ignore:line
575
+ this.emptyRoomTimeout = deserialize.integer(payload.empty_room_timeout); // jshint ignore:line
576
+ this.unusedRoomTimeout = deserialize.integer(payload.unused_room_timeout); // jshint ignore:line
565
577
  this.url = payload.url; // jshint ignore:line
566
578
  this.links = payload.links; // jshint ignore:line
567
579
 
@@ -7,6 +7,8 @@
7
7
 
8
8
  import Version = require('../../base/Version');
9
9
  import Voice = require('../Voice');
10
+ import { ArchivedCallList } from './v1/archivedCall';
11
+ import { ArchivedCallListInstance } from './v1/archivedCall';
10
12
  import { ByocTrunkList } from './v1/byocTrunk';
11
13
  import { ByocTrunkListInstance } from './v1/byocTrunk';
12
14
  import { ConnectionPolicyList } from './v1/connectionPolicy';
@@ -27,6 +29,7 @@ declare class V1 extends Version {
27
29
  */
28
30
  constructor(domain: Voice);
29
31
 
32
+ readonly archivedCalls: ArchivedCallListInstance;
30
33
  readonly byocTrunks: ByocTrunkListInstance;
31
34
  readonly connectionPolicies: ConnectionPolicyListInstance;
32
35
  readonly dialingPermissions: DialingPermissionsListInstance;
@@ -10,6 +10,7 @@
10
10
  /* jshint ignore:end */
11
11
 
12
12
  var _ = require('lodash'); /* jshint ignore:line */
13
+ var ArchivedCallList = require('./v1/archivedCall').ArchivedCallList;
13
14
  var ByocTrunkList = require('./v1/byocTrunk').ByocTrunkList;
14
15
  var ConnectionPolicyList = require(
15
16
  './v1/connectionPolicy').ConnectionPolicyList;
@@ -26,6 +27,8 @@ var Version = require('../../base/Version'); /* jshint ignore:line */
26
27
  *
27
28
  * @constructor Twilio.Voice.V1
28
29
  *
30
+ * @property {Twilio.Voice.V1.ArchivedCallList} archivedCalls -
31
+ * archivedCalls resource
29
32
  * @property {Twilio.Voice.V1.ByocTrunkList} byocTrunks - byocTrunks resource
30
33
  * @property {Twilio.Voice.V1.ConnectionPolicyList} connectionPolicies -
31
34
  * connectionPolicies resource
@@ -42,6 +45,7 @@ function V1(domain) {
42
45
  Version.prototype.constructor.call(this, domain, 'v1');
43
46
 
44
47
  // Resources
48
+ this._archivedCalls = undefined;
45
49
  this._byocTrunks = undefined;
46
50
  this._connectionPolicies = undefined;
47
51
  this._dialingPermissions = undefined;
@@ -52,6 +56,14 @@ function V1(domain) {
52
56
  _.extend(V1.prototype, Version.prototype);
53
57
  V1.prototype.constructor = V1;
54
58
 
59
+ Object.defineProperty(V1.prototype,
60
+ 'archivedCalls', {
61
+ get: function() {
62
+ this._archivedCalls = this._archivedCalls || new ArchivedCallList(this);
63
+ return this._archivedCalls;
64
+ }
65
+ });
66
+
55
67
  Object.defineProperty(V1.prototype,
56
68
  'byocTrunks', {
57
69
  get: function() {