ultracart_api 4.1.51 → 4.1.54

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -2
  3. data/docs/ConversationApi.md +111 -0
  4. data/docs/ConversationPbxAgent.md +2 -0
  5. data/docs/ConversationPbxCall.md +60 -0
  6. data/docs/ConversationPbxCallAgent.md +34 -0
  7. data/docs/ConversationPbxCallAiCost.md +24 -0
  8. data/docs/ConversationPbxCallAiEngagement.md +36 -0
  9. data/docs/ConversationPbxCallAiToolCall.md +34 -0
  10. data/docs/ConversationPbxCallAiWhisper.md +24 -0
  11. data/docs/ConversationPbxCallCaller.md +26 -0
  12. data/docs/ConversationPbxCallFinancial.md +30 -0
  13. data/docs/ConversationPbxCallHold.md +24 -0
  14. data/docs/ConversationPbxCallQueue.md +28 -0
  15. data/docs/ConversationPbxCallRecording.md +30 -0
  16. data/docs/ConversationPbxCallResponse.md +26 -0
  17. data/docs/ConversationPbxCallRouting.md +22 -0
  18. data/docs/ConversationPbxCallSearchRequest.md +48 -0
  19. data/docs/ConversationPbxCallSearchResponse.md +26 -0
  20. data/docs/ConversationPbxCallTimeline.md +28 -0
  21. data/docs/ConversationPbxCallTranscript.md +30 -0
  22. data/docs/ConversationPbxCallTranscriptSegment.md +30 -0
  23. data/docs/ConversationPbxCallTransfer.md +26 -0
  24. data/docs/ConversationPbxPhoneNumber.md +2 -0
  25. data/lib/ultracart_api/api/conversation_api.rb +142 -0
  26. data/lib/ultracart_api/models/conversation_pbx_agent.rb +11 -1
  27. data/lib/ultracart_api/models/conversation_pbx_call.rb +438 -0
  28. data/lib/ultracart_api/models/conversation_pbx_call_agent.rb +300 -0
  29. data/lib/ultracart_api/models/conversation_pbx_call_ai_cost.rb +250 -0
  30. data/lib/ultracart_api/models/conversation_pbx_call_ai_engagement.rb +347 -0
  31. data/lib/ultracart_api/models/conversation_pbx_call_ai_tool_call.rb +300 -0
  32. data/lib/ultracart_api/models/conversation_pbx_call_ai_whisper.rb +250 -0
  33. data/lib/ultracart_api/models/conversation_pbx_call_caller.rb +260 -0
  34. data/lib/ultracart_api/models/conversation_pbx_call_financial.rb +280 -0
  35. data/lib/ultracart_api/models/conversation_pbx_call_hold.rb +250 -0
  36. data/lib/ultracart_api/models/conversation_pbx_call_queue.rb +270 -0
  37. data/lib/ultracart_api/models/conversation_pbx_call_recording.rb +279 -0
  38. data/lib/ultracart_api/models/conversation_pbx_call_response.rb +256 -0
  39. data/lib/ultracart_api/models/conversation_pbx_call_routing.rb +239 -0
  40. data/lib/ultracart_api/models/conversation_pbx_call_search_request.rb +376 -0
  41. data/lib/ultracart_api/models/conversation_pbx_call_search_response.rb +259 -0
  42. data/lib/ultracart_api/models/conversation_pbx_call_timeline.rb +270 -0
  43. data/lib/ultracart_api/models/conversation_pbx_call_transcript.rb +282 -0
  44. data/lib/ultracart_api/models/conversation_pbx_call_transcript_segment.rb +314 -0
  45. data/lib/ultracart_api/models/conversation_pbx_call_transfer.rb +260 -0
  46. data/lib/ultracart_api/models/conversation_pbx_phone_number.rb +11 -1
  47. data/lib/ultracart_api/version.rb +1 -1
  48. data/lib/ultracart_api.rb +19 -0
  49. metadata +40 -2
@@ -0,0 +1,48 @@
1
+ # UltracartClient::ConversationPbxCallSearchRequest
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **agent_ids** | **Array<String>** | Filter by agent IDs | [optional] |
8
+ | **customer_name** | **String** | Filter by customer name | [optional] |
9
+ | **direction** | **String** | Filter by call direction (inbound/outbound) | [optional] |
10
+ | **disposition** | **String** | Filter by call disposition | [optional] |
11
+ | **end_date** | **String** | Filter calls created on or before this date (ISO 8601) | [optional] |
12
+ | **has_ai_engagement** | **Boolean** | Filter to calls with AI agent engagement | [optional] |
13
+ | **has_recording** | **Boolean** | Filter to calls that have a recording | [optional] |
14
+ | **has_transcript** | **Boolean** | Filter to calls that have a transcript | [optional] |
15
+ | **max_duration_seconds** | **Integer** | Filter by maximum call duration in seconds | [optional] |
16
+ | **min_duration_seconds** | **Integer** | Filter by minimum call duration in seconds | [optional] |
17
+ | **phone_number** | **String** | Filter by phone number (partial match supported) | [optional] |
18
+ | **queue_uuids** | **Array<String>** | Filter by queue UUIDs | [optional] |
19
+ | **search_term** | **String** | Free text search term - smart-routed based on content (phone, email, UUID, or general text) | [optional] |
20
+ | **start_date** | **String** | Filter calls created on or after this date (ISO 8601) | [optional] |
21
+ | **statuses** | **Array<String>** | Filter by call statuses | [optional] |
22
+ | **transcript_search** | **String** | Search within transcript text | [optional] |
23
+
24
+ ## Example
25
+
26
+ ```ruby
27
+ require 'ultracart_api'
28
+
29
+ instance = UltracartClient::ConversationPbxCallSearchRequest.new(
30
+ agent_ids: null,
31
+ customer_name: null,
32
+ direction: null,
33
+ disposition: null,
34
+ end_date: null,
35
+ has_ai_engagement: null,
36
+ has_recording: null,
37
+ has_transcript: null,
38
+ max_duration_seconds: null,
39
+ min_duration_seconds: null,
40
+ phone_number: null,
41
+ queue_uuids: null,
42
+ search_term: null,
43
+ start_date: null,
44
+ statuses: null,
45
+ transcript_search: null
46
+ )
47
+ ```
48
+
@@ -0,0 +1,26 @@
1
+ # UltracartClient::ConversationPbxCallSearchResponse
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **calls** | [**Array<ConversationPbxCall>**](ConversationPbxCall.md) | calls | [optional] |
8
+ | **error** | [**Error**](Error.md) | | [optional] |
9
+ | **metadata** | [**ResponseMetadata**](ResponseMetadata.md) | | [optional] |
10
+ | **success** | **Boolean** | Indicates if API call was successful | [optional] |
11
+ | **warning** | [**Warning**](Warning.md) | | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'ultracart_api'
17
+
18
+ instance = UltracartClient::ConversationPbxCallSearchResponse.new(
19
+ calls: null,
20
+ error: null,
21
+ metadata: null,
22
+ success: null,
23
+ warning: null
24
+ )
25
+ ```
26
+
@@ -0,0 +1,28 @@
1
+ # UltracartClient::ConversationPbxCallTimeline
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **answer_dts** | **String** | Timestamp when the call was answered | [optional] |
8
+ | **created_dts** | **String** | Timestamp when the call was created/initiated | [optional] |
9
+ | **end_dts** | **String** | Timestamp when the call ended | [optional] |
10
+ | **queue_wait_seconds** | **Integer** | Time spent waiting in queue in seconds | [optional] |
11
+ | **talk_time_seconds** | **Integer** | Actual talk time in seconds (excluding hold time and queue wait) | [optional] |
12
+ | **total_duration_seconds** | **Integer** | Total duration of the call in seconds from creation to end | [optional] |
13
+
14
+ ## Example
15
+
16
+ ```ruby
17
+ require 'ultracart_api'
18
+
19
+ instance = UltracartClient::ConversationPbxCallTimeline.new(
20
+ answer_dts: null,
21
+ created_dts: null,
22
+ end_dts: null,
23
+ queue_wait_seconds: null,
24
+ talk_time_seconds: null,
25
+ total_duration_seconds: null
26
+ )
27
+ ```
28
+
@@ -0,0 +1,30 @@
1
+ # UltracartClient::ConversationPbxCallTranscript
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **full_transcript_s3_key** | **String** | S3 key for the full transcript text file | [optional] |
8
+ | **job_name** | **String** | AWS Transcribe job name | [optional] |
9
+ | **language_code** | **String** | Language code for transcription | [optional] |
10
+ | **provider** | **String** | Transcription service provider | [optional] |
11
+ | **segments** | [**Array<ConversationPbxCallTranscriptSegment>**](ConversationPbxCallTranscriptSegment.md) | Transcript segments with speaker labels and timestamps | [optional] |
12
+ | **status** | **String** | Status of the transcription | [optional] |
13
+ | **transcript_json_s3_key** | **String** | S3 key for the detailed transcript JSON with speaker diarization | [optional] |
14
+
15
+ ## Example
16
+
17
+ ```ruby
18
+ require 'ultracart_api'
19
+
20
+ instance = UltracartClient::ConversationPbxCallTranscript.new(
21
+ full_transcript_s3_key: null,
22
+ job_name: null,
23
+ language_code: null,
24
+ provider: null,
25
+ segments: null,
26
+ status: null,
27
+ transcript_json_s3_key: null
28
+ )
29
+ ```
30
+
@@ -0,0 +1,30 @@
1
+ # UltracartClient::ConversationPbxCallTranscriptSegment
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **agent_id** | **String** | Agent ID if speaker is an agent | [optional] |
8
+ | **channel** | **String** | Audio channel identifier (e.g. ch_0, ch_1) | [optional] |
9
+ | **confidence** | **Float** | Transcription confidence score (0-1) | [optional] |
10
+ | **end_time** | **Float** | End time in seconds from beginning of recording | [optional] |
11
+ | **speaker** | **String** | Speaker role | [optional] |
12
+ | **start_time** | **Float** | Start time in seconds from beginning of recording | [optional] |
13
+ | **text** | **String** | Transcribed text for this segment | [optional] |
14
+
15
+ ## Example
16
+
17
+ ```ruby
18
+ require 'ultracart_api'
19
+
20
+ instance = UltracartClient::ConversationPbxCallTranscriptSegment.new(
21
+ agent_id: null,
22
+ channel: null,
23
+ confidence: null,
24
+ end_time: null,
25
+ speaker: null,
26
+ start_time: null,
27
+ text: null
28
+ )
29
+ ```
30
+
@@ -0,0 +1,26 @@
1
+ # UltracartClient::ConversationPbxCallTransfer
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **transfer_reason** | **String** | Reason provided for the transfer | [optional] |
8
+ | **transfer_type** | **String** | Type of transfer performed | [optional] |
9
+ | **transferred_at_dts** | **String** | Timestamp when the transfer occurred | [optional] |
10
+ | **transferred_by_agent_id** | **String** | ID of the agent who initiated the transfer | [optional] |
11
+ | **transferred_to** | **String** | Destination of the transfer (agent ID, queue name, or phone number) | [optional] |
12
+
13
+ ## Example
14
+
15
+ ```ruby
16
+ require 'ultracart_api'
17
+
18
+ instance = UltracartClient::ConversationPbxCallTransfer.new(
19
+ transfer_reason: null,
20
+ transfer_type: null,
21
+ transferred_at_dts: null,
22
+ transferred_by_agent_id: null,
23
+ transferred_to: null
24
+ )
25
+ ```
26
+
@@ -8,6 +8,7 @@
8
8
  | **action_target** | **String** | Action target. This is the UUID associated with the configuration object of that particular type. | [optional] |
9
9
  | **address_sid** | **String** | Twilio Address SID linked to this phone number for regulatory compliance | [optional] |
10
10
  | **conversation_pbx_phone_number_uuid** | **String** | Conversation Pbx Phone Number UUID | [optional] |
11
+ | **default_phone_number** | **Boolean** | Default phone number for outbound calling. | [optional] |
11
12
  | **deletion_protected** | **Boolean** | If true, this phone number cannot be deleted through the API. It must be deleted via the Twilio console. | [optional] |
12
13
  | **merchant_id** | **String** | Merchant Id | [optional] |
13
14
  | **phone_number** | **String** | Phone number | [optional] |
@@ -22,6 +23,7 @@ instance = UltracartClient::ConversationPbxPhoneNumber.new(
22
23
  action_target: null,
23
24
  address_sid: null,
24
25
  conversation_pbx_phone_number_uuid: null,
26
+ default_phone_number: null,
25
27
  deletion_protected: null,
26
28
  merchant_id: null,
27
29
  phone_number: null
@@ -3275,6 +3275,70 @@ module UltracartClient
3275
3275
  return data, status_code, headers
3276
3276
  end
3277
3277
 
3278
+ # Get pbx call record
3279
+ # Retrieve a single PBX call record with full details
3280
+ # @param call_uuid [String]
3281
+ # @param [Hash] opts the optional parameters
3282
+ # @return [ConversationPbxCallResponse]
3283
+ def get_pbx_call(call_uuid, opts = {})
3284
+ data, _status_code, _headers = get_pbx_call_with_http_info(call_uuid, opts)
3285
+ data
3286
+ end
3287
+
3288
+ # Get pbx call record
3289
+ # Retrieve a single PBX call record with full details
3290
+ # @param call_uuid [String]
3291
+ # @param [Hash] opts the optional parameters
3292
+ # @return [Array<(ConversationPbxCallResponse, Integer, Hash)>] ConversationPbxCallResponse data, response status code and response headers
3293
+ def get_pbx_call_with_http_info(call_uuid, opts = {})
3294
+ if @api_client.config.debugging
3295
+ @api_client.config.logger.debug 'Calling API: ConversationApi.get_pbx_call ...'
3296
+ end
3297
+ # verify the required parameter 'call_uuid' is set
3298
+ if @api_client.config.client_side_validation && call_uuid.nil?
3299
+ fail ArgumentError, "Missing the required parameter 'call_uuid' when calling ConversationApi.get_pbx_call"
3300
+ end
3301
+ # resource path
3302
+ local_var_path = '/conversation/pbx/call/{callUuid}'.sub('{' + 'callUuid' + '}', CGI.escape(call_uuid.to_s))
3303
+
3304
+ # query parameters
3305
+ query_params = opts[:query_params] || {}
3306
+
3307
+ # header parameters
3308
+ header_params = opts[:header_params] || {}
3309
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
3310
+ # HTTP header 'Accept' (if needed)
3311
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
3312
+
3313
+ # form parameters
3314
+ form_params = opts[:form_params] || {}
3315
+
3316
+ # http body (model)
3317
+ post_body = opts[:debug_body]
3318
+
3319
+ # return_type
3320
+ return_type = opts[:debug_return_type] || 'ConversationPbxCallResponse'
3321
+
3322
+ # auth_names
3323
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
3324
+
3325
+ new_options = opts.merge(
3326
+ :operation => :"ConversationApi.get_pbx_call",
3327
+ :header_params => header_params,
3328
+ :query_params => query_params,
3329
+ :form_params => form_params,
3330
+ :body => post_body,
3331
+ :auth_names => auth_names,
3332
+ :return_type => return_type
3333
+ )
3334
+
3335
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
3336
+ if @api_client.config.debugging
3337
+ @api_client.config.logger.debug "API called: ConversationApi#get_pbx_call\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
3338
+ end
3339
+ return data, status_code, headers
3340
+ end
3341
+
3278
3342
  # Get pbx hardware phone
3279
3343
  # Retrieve a pbx hardware phone
3280
3344
  # @param conversation_pbx_hardware_phone_uuid [String]
@@ -6103,6 +6167,84 @@ module UltracartClient
6103
6167
  return data, status_code, headers
6104
6168
  end
6105
6169
 
6170
+ # Search pbx call records
6171
+ # Search and list PBX call records with filtering, sorting, and pagination
6172
+ # @param search_request [ConversationPbxCallSearchRequest] Search Request
6173
+ # @param [Hash] opts the optional parameters
6174
+ # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 200) (default to 100)
6175
+ # @option opts [Integer] :_offset Pagination of the record set. Offset is a zero based index. (default to 0)
6176
+ # @option opts [String] :_sort The sort order of the calls.
6177
+ # @return [ConversationPbxCallSearchResponse]
6178
+ def search_pbx_calls(search_request, opts = {})
6179
+ data, _status_code, _headers = search_pbx_calls_with_http_info(search_request, opts)
6180
+ data
6181
+ end
6182
+
6183
+ # Search pbx call records
6184
+ # Search and list PBX call records with filtering, sorting, and pagination
6185
+ # @param search_request [ConversationPbxCallSearchRequest] Search Request
6186
+ # @param [Hash] opts the optional parameters
6187
+ # @option opts [Integer] :_limit The maximum number of records to return on this one API call. (Maximum 200) (default to 100)
6188
+ # @option opts [Integer] :_offset Pagination of the record set. Offset is a zero based index. (default to 0)
6189
+ # @option opts [String] :_sort The sort order of the calls.
6190
+ # @return [Array<(ConversationPbxCallSearchResponse, Integer, Hash)>] ConversationPbxCallSearchResponse data, response status code and response headers
6191
+ def search_pbx_calls_with_http_info(search_request, opts = {})
6192
+ if @api_client.config.debugging
6193
+ @api_client.config.logger.debug 'Calling API: ConversationApi.search_pbx_calls ...'
6194
+ end
6195
+ # verify the required parameter 'search_request' is set
6196
+ if @api_client.config.client_side_validation && search_request.nil?
6197
+ fail ArgumentError, "Missing the required parameter 'search_request' when calling ConversationApi.search_pbx_calls"
6198
+ end
6199
+ # resource path
6200
+ local_var_path = '/conversation/pbx/call/search'
6201
+
6202
+ # query parameters
6203
+ query_params = opts[:query_params] || {}
6204
+ query_params[:'_limit'] = opts[:'_limit'] if !opts[:'_limit'].nil?
6205
+ query_params[:'_offset'] = opts[:'_offset'] if !opts[:'_offset'].nil?
6206
+ query_params[:'_sort'] = opts[:'_sort'] if !opts[:'_sort'].nil?
6207
+
6208
+ # header parameters
6209
+ header_params = opts[:header_params] || {}
6210
+ header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
6211
+ # HTTP header 'Accept' (if needed)
6212
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
6213
+ # HTTP header 'Content-Type'
6214
+ content_type = @api_client.select_header_content_type(['application/json'])
6215
+ if !content_type.nil?
6216
+ header_params['Content-Type'] = content_type
6217
+ end
6218
+
6219
+ # form parameters
6220
+ form_params = opts[:form_params] || {}
6221
+
6222
+ # http body (model)
6223
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(search_request)
6224
+
6225
+ # return_type
6226
+ return_type = opts[:debug_return_type] || 'ConversationPbxCallSearchResponse'
6227
+
6228
+ # auth_names
6229
+ auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
6230
+
6231
+ new_options = opts.merge(
6232
+ :operation => :"ConversationApi.search_pbx_calls",
6233
+ :header_params => header_params,
6234
+ :query_params => query_params,
6235
+ :form_params => form_params,
6236
+ :body => post_body,
6237
+ :auth_names => auth_names,
6238
+ :return_type => return_type
6239
+ )
6240
+
6241
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
6242
+ if @api_client.config.debugging
6243
+ @api_client.config.logger.debug "API called: ConversationApi#search_pbx_calls\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
6244
+ end
6245
+ return data, status_code, headers
6246
+ end
6247
+
6106
6248
  # Unsubscribe any SMS participants in this conversation
6107
6249
  # Unsubscribe any SMS participants in this conversation
6108
6250
  # @param conversation_uuid [String]
@@ -27,6 +27,9 @@ module UltracartClient
27
27
  # Conversation Pbx Agent unique identifier
28
28
  attr_accessor :conversation_pbx_agent_uuid
29
29
 
30
+ # The default phone number that this agent should dial out to the PSTN with.
31
+ attr_accessor :default_phone_number_uuid
32
+
30
33
  # Extension
31
34
  attr_accessor :extension
32
35
 
@@ -101,6 +104,7 @@ module UltracartClient
101
104
  :'call_routing_preference' => :'call_routing_preference',
102
105
  :'cellphone' => :'cellphone',
103
106
  :'conversation_pbx_agent_uuid' => :'conversation_pbx_agent_uuid',
107
+ :'default_phone_number_uuid' => :'default_phone_number_uuid',
104
108
  :'extension' => :'extension',
105
109
  :'full_name' => :'full_name',
106
110
  :'hardware_phone_uuids' => :'hardware_phone_uuids',
@@ -131,6 +135,7 @@ module UltracartClient
131
135
  :'call_routing_preference' => :'String',
132
136
  :'cellphone' => :'String',
133
137
  :'conversation_pbx_agent_uuid' => :'String',
138
+ :'default_phone_number_uuid' => :'String',
134
139
  :'extension' => :'Integer',
135
140
  :'full_name' => :'String',
136
141
  :'hardware_phone_uuids' => :'Array<String>',
@@ -186,6 +191,10 @@ module UltracartClient
186
191
  self.conversation_pbx_agent_uuid = attributes[:'conversation_pbx_agent_uuid']
187
192
  end
188
193
 
194
+ if attributes.key?(:'default_phone_number_uuid')
195
+ self.default_phone_number_uuid = attributes[:'default_phone_number_uuid']
196
+ end
197
+
189
198
  if attributes.key?(:'extension')
190
199
  self.extension = attributes[:'extension']
191
200
  end
@@ -388,6 +397,7 @@ module UltracartClient
388
397
  call_routing_preference == o.call_routing_preference &&
389
398
  cellphone == o.cellphone &&
390
399
  conversation_pbx_agent_uuid == o.conversation_pbx_agent_uuid &&
400
+ default_phone_number_uuid == o.default_phone_number_uuid &&
391
401
  extension == o.extension &&
392
402
  full_name == o.full_name &&
393
403
  hardware_phone_uuids == o.hardware_phone_uuids &&
@@ -414,7 +424,7 @@ module UltracartClient
414
424
  # Calculates hash code according to all attributes.
415
425
  # @return [Integer] Hash code
416
426
  def hash
417
- [ai, call_routing_preference, cellphone, conversation_pbx_agent_uuid, extension, full_name, hardware_phone_uuids, login, merchant_id, personal_conversation_pbx_voicemail_mailbox_uuid, preferred_hardware_phone_uuid, record_outgoing_automatically, shared_conversation_pbx_voicemail_mailbox_uuid, twilio_taskrouter_worker_id, unavailable_play_audio_uuid, unavailable_say, unavailable_say_voice, user_id, voicemail].hash
427
+ [ai, call_routing_preference, cellphone, conversation_pbx_agent_uuid, default_phone_number_uuid, extension, full_name, hardware_phone_uuids, login, merchant_id, personal_conversation_pbx_voicemail_mailbox_uuid, preferred_hardware_phone_uuid, record_outgoing_automatically, shared_conversation_pbx_voicemail_mailbox_uuid, twilio_taskrouter_worker_id, unavailable_play_audio_uuid, unavailable_say, unavailable_say_voice, user_id, voicemail].hash
418
428
  end
419
429
 
420
430
  # Builds the object from hash