bandwidth-sdk 2.1.1 → 6.1.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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +85 -70
- data/lib/bandwidth.rb +31 -2
- data/lib/bandwidth/api_helper.rb +14 -9
- data/lib/bandwidth/client.rb +22 -2
- data/lib/bandwidth/configuration.rb +67 -12
- data/lib/bandwidth/http/api_response.rb +2 -0
- data/lib/bandwidth/http/auth/two_factor_auth_basic_auth.rb +22 -0
- data/lib/bandwidth/http/auth/web_rtc_basic_auth.rb +22 -0
- data/lib/bandwidth/http/faraday_client.rb +5 -2
- data/lib/bandwidth/messaging_lib/messaging.rb +5 -3
- data/lib/bandwidth/messaging_lib/messaging/client.rb +13 -2
- data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +191 -113
- data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/messaging_lib/messaging/exceptions/{generic_client_exception.rb → messaging_exception.rb} +2 -14
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +23 -13
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +125 -0
- data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +60 -0
- data/lib/bandwidth/messaging_lib/messaging/models/media.rb +4 -4
- data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +21 -8
- data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +62 -0
- data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +19 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +22 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/client.rb +51 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/base_controller.rb +49 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/controllers/mfa_controller.rb +209 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/exceptions/error_with_request_exception.rb +34 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/exceptions/forbidden_request_exception.rb +29 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/exceptions/unauthorized_request_exception.rb +29 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_code_request_schema.rb +88 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_messaging_response.rb +35 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_verify_code_response.rb +35 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_verify_request_schema.rb +75 -0
- data/lib/bandwidth/two_factor_auth_lib/two_factor_auth/models/two_factor_voice_response.rb +35 -0
- data/lib/bandwidth/utilities/file_wrapper.rb +17 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/bridge.rb +28 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/conference.rb +32 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/gather.rb +13 -1
- data/lib/bandwidth/voice_lib/bxml/verbs/phone_number.rb +7 -1
- data/lib/bandwidth/voice_lib/bxml/verbs/record.rb +9 -1
- data/lib/bandwidth/voice_lib/bxml/verbs/redirect.rb +5 -1
- data/lib/bandwidth/voice_lib/bxml/verbs/ring.rb +15 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/send_dtmf.rb +4 -1
- data/lib/bandwidth/voice_lib/bxml/verbs/sip_uri.rb +25 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/start_gather.rb +20 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/start_recording.rb +4 -1
- data/lib/bandwidth/voice_lib/bxml/verbs/stop_gather.rb +14 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/tag.rb +13 -0
- data/lib/bandwidth/voice_lib/bxml/verbs/transfer.rb +14 -3
- data/lib/bandwidth/voice_lib/voice.rb +19 -4
- data/lib/bandwidth/voice_lib/voice/client.rb +13 -2
- data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +1219 -133
- data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +1 -1
- data/lib/bandwidth/voice_lib/voice/exceptions/{error_response_exception.rb → api_error_response_exception.rb} +3 -3
- data/lib/bandwidth/voice_lib/voice/models/answer_fallback_method_enum.rb +17 -0
- data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +56 -2
- data/lib/bandwidth/voice_lib/voice/models/api_call_state_response.rb +164 -0
- data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +135 -12
- data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +37 -1
- data/lib/bandwidth/voice_lib/voice/models/api_modify_conference_request.rb +107 -0
- data/lib/bandwidth/voice_lib/voice/models/api_transcribe_recording_request.rb +80 -0
- data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +35 -0
- data/lib/bandwidth/voice_lib/voice/models/conference_detail.rb +108 -0
- data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +35 -0
- data/lib/bandwidth/voice_lib/voice/models/conference_member_detail.rb +80 -0
- data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata_response.rb +126 -0
- data/lib/bandwidth/voice_lib/voice/models/disconnect_cause_enum.rb +47 -0
- data/lib/bandwidth/voice_lib/voice/models/modify_call_recording_state.rb +1 -1
- data/lib/bandwidth/voice_lib/voice/models/recording_metadata_response.rb +66 -28
- data/lib/bandwidth/voice_lib/voice/models/redirect_fallback_method_enum.rb +17 -0
- data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +4 -7
- data/lib/bandwidth/voice_lib/voice/models/state2_enum.rb +20 -0
- data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +7 -4
- data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +29 -0
- data/lib/bandwidth/voice_lib/voice/models/status3_enum.rb +32 -0
- data/lib/bandwidth/voice_lib/voice/models/status_enum.rb +17 -0
- data/lib/bandwidth/{messaging_lib/messaging/models/field_error.rb → voice_lib/voice/models/transcript.rb} +15 -15
- data/lib/bandwidth/voice_lib/voice/models/transcription.rb +62 -0
- data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +42 -0
- data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +13 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc.rb +22 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +51 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +692 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +49 -0
- data/lib/bandwidth/{messaging_lib/messaging/exceptions/path_client_exception.rb → web_rtc_lib/web_rtc/exceptions/error_exception.rb} +4 -19
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +47 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +17 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +92 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +35 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/publish_permission_enum.rb +17 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +44 -0
- data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +54 -0
- data/test/integration/test_integration.rb +570 -0
- metadata +132 -19
- data/lib/bandwidth/voice_lib/voice/models/api_get_account_recordings_metadata_request.rb +0 -65
- data/lib/bandwidth/voice_lib/voice/models/transcription_status_enum.rb +0 -20
- data/lib/bandwidth/voice_lib/voice/models/type_enum.rb +0 -32
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# bandwidth
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module Bandwidth
|
|
7
|
+
# ConferenceMemberDetail Model.
|
|
8
|
+
class ConferenceMemberDetail < BaseModel
|
|
9
|
+
# TODO: Write general description for this method
|
|
10
|
+
# @return [String]
|
|
11
|
+
attr_accessor :call_id
|
|
12
|
+
|
|
13
|
+
# TODO: Write general description for this method
|
|
14
|
+
# @return [String]
|
|
15
|
+
attr_accessor :conference_id
|
|
16
|
+
|
|
17
|
+
# TODO: Write general description for this method
|
|
18
|
+
# @return [String]
|
|
19
|
+
attr_accessor :member_url
|
|
20
|
+
|
|
21
|
+
# TODO: Write general description for this method
|
|
22
|
+
# @return [Boolean]
|
|
23
|
+
attr_accessor :mute
|
|
24
|
+
|
|
25
|
+
# TODO: Write general description for this method
|
|
26
|
+
# @return [Boolean]
|
|
27
|
+
attr_accessor :hold
|
|
28
|
+
|
|
29
|
+
# TODO: Write general description for this method
|
|
30
|
+
# @return [List of String]
|
|
31
|
+
attr_accessor :call_ids_to_coach
|
|
32
|
+
|
|
33
|
+
# A mapping from model property names to API property names.
|
|
34
|
+
def self.names
|
|
35
|
+
@_hash = {} if @_hash.nil?
|
|
36
|
+
@_hash['call_id'] = 'callId'
|
|
37
|
+
@_hash['conference_id'] = 'conferenceId'
|
|
38
|
+
@_hash['member_url'] = 'memberUrl'
|
|
39
|
+
@_hash['mute'] = 'mute'
|
|
40
|
+
@_hash['hold'] = 'hold'
|
|
41
|
+
@_hash['call_ids_to_coach'] = 'callIdsToCoach'
|
|
42
|
+
@_hash
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def initialize(call_id = nil,
|
|
46
|
+
conference_id = nil,
|
|
47
|
+
member_url = nil,
|
|
48
|
+
mute = nil,
|
|
49
|
+
hold = nil,
|
|
50
|
+
call_ids_to_coach = nil)
|
|
51
|
+
@call_id = call_id
|
|
52
|
+
@conference_id = conference_id
|
|
53
|
+
@member_url = member_url
|
|
54
|
+
@mute = mute
|
|
55
|
+
@hold = hold
|
|
56
|
+
@call_ids_to_coach = call_ids_to_coach
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Creates an instance of the object from a hash.
|
|
60
|
+
def self.from_hash(hash)
|
|
61
|
+
return nil unless hash
|
|
62
|
+
|
|
63
|
+
# Extract variables from the hash.
|
|
64
|
+
call_id = hash['callId']
|
|
65
|
+
conference_id = hash['conferenceId']
|
|
66
|
+
member_url = hash['memberUrl']
|
|
67
|
+
mute = hash['mute']
|
|
68
|
+
hold = hash['hold']
|
|
69
|
+
call_ids_to_coach = hash['callIdsToCoach']
|
|
70
|
+
|
|
71
|
+
# Create object from extracted values.
|
|
72
|
+
ConferenceMemberDetail.new(call_id,
|
|
73
|
+
conference_id,
|
|
74
|
+
member_url,
|
|
75
|
+
mute,
|
|
76
|
+
hold,
|
|
77
|
+
call_ids_to_coach)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# bandwidth
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
require 'date'
|
|
7
|
+
module Bandwidth
|
|
8
|
+
# ConferenceRecordingMetadataResponse Model.
|
|
9
|
+
class ConferenceRecordingMetadataResponse < BaseModel
|
|
10
|
+
# TODO: Write general description for this method
|
|
11
|
+
# @return [String]
|
|
12
|
+
attr_accessor :account_id
|
|
13
|
+
|
|
14
|
+
# TODO: Write general description for this method
|
|
15
|
+
# @return [String]
|
|
16
|
+
attr_accessor :conference_id
|
|
17
|
+
|
|
18
|
+
# TODO: Write general description for this method
|
|
19
|
+
# @return [String]
|
|
20
|
+
attr_accessor :name
|
|
21
|
+
|
|
22
|
+
# TODO: Write general description for this method
|
|
23
|
+
# @return [String]
|
|
24
|
+
attr_accessor :recording_id
|
|
25
|
+
|
|
26
|
+
# Format is ISO-8601
|
|
27
|
+
# @return [String]
|
|
28
|
+
attr_accessor :duration
|
|
29
|
+
|
|
30
|
+
# Format is ISO-8601
|
|
31
|
+
# @return [Integer]
|
|
32
|
+
attr_accessor :channels
|
|
33
|
+
|
|
34
|
+
# Format is ISO-8601
|
|
35
|
+
# @return [DateTime]
|
|
36
|
+
attr_accessor :start_time
|
|
37
|
+
|
|
38
|
+
# Format is ISO-8601
|
|
39
|
+
# @return [DateTime]
|
|
40
|
+
attr_accessor :end_time
|
|
41
|
+
|
|
42
|
+
# Format is ISO-8601
|
|
43
|
+
# @return [FileFormatEnum]
|
|
44
|
+
attr_accessor :file_format
|
|
45
|
+
|
|
46
|
+
# Format is ISO-8601
|
|
47
|
+
# @return [Status1Enum]
|
|
48
|
+
attr_accessor :status
|
|
49
|
+
|
|
50
|
+
# Format is ISO-8601
|
|
51
|
+
# @return [String]
|
|
52
|
+
attr_accessor :media_url
|
|
53
|
+
|
|
54
|
+
# A mapping from model property names to API property names.
|
|
55
|
+
def self.names
|
|
56
|
+
@_hash = {} if @_hash.nil?
|
|
57
|
+
@_hash['account_id'] = 'accountId'
|
|
58
|
+
@_hash['conference_id'] = 'conferenceId'
|
|
59
|
+
@_hash['name'] = 'name'
|
|
60
|
+
@_hash['recording_id'] = 'recordingId'
|
|
61
|
+
@_hash['duration'] = 'duration'
|
|
62
|
+
@_hash['channels'] = 'channels'
|
|
63
|
+
@_hash['start_time'] = 'startTime'
|
|
64
|
+
@_hash['end_time'] = 'endTime'
|
|
65
|
+
@_hash['file_format'] = 'fileFormat'
|
|
66
|
+
@_hash['status'] = 'status'
|
|
67
|
+
@_hash['media_url'] = 'mediaUrl'
|
|
68
|
+
@_hash
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def initialize(account_id = nil,
|
|
72
|
+
conference_id = nil,
|
|
73
|
+
name = nil,
|
|
74
|
+
recording_id = nil,
|
|
75
|
+
duration = nil,
|
|
76
|
+
channels = nil,
|
|
77
|
+
start_time = nil,
|
|
78
|
+
end_time = nil,
|
|
79
|
+
file_format = nil,
|
|
80
|
+
status = nil,
|
|
81
|
+
media_url = nil)
|
|
82
|
+
@account_id = account_id
|
|
83
|
+
@conference_id = conference_id
|
|
84
|
+
@name = name
|
|
85
|
+
@recording_id = recording_id
|
|
86
|
+
@duration = duration
|
|
87
|
+
@channels = channels
|
|
88
|
+
@start_time = start_time
|
|
89
|
+
@end_time = end_time
|
|
90
|
+
@file_format = file_format
|
|
91
|
+
@status = status
|
|
92
|
+
@media_url = media_url
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
# Creates an instance of the object from a hash.
|
|
96
|
+
def self.from_hash(hash)
|
|
97
|
+
return nil unless hash
|
|
98
|
+
|
|
99
|
+
# Extract variables from the hash.
|
|
100
|
+
account_id = hash['accountId']
|
|
101
|
+
conference_id = hash['conferenceId']
|
|
102
|
+
name = hash['name']
|
|
103
|
+
recording_id = hash['recordingId']
|
|
104
|
+
duration = hash['duration']
|
|
105
|
+
channels = hash['channels']
|
|
106
|
+
start_time = APIHelper.rfc3339(hash['startTime']) if hash['startTime']
|
|
107
|
+
end_time = APIHelper.rfc3339(hash['endTime']) if hash['endTime']
|
|
108
|
+
file_format = hash['fileFormat']
|
|
109
|
+
status = hash['status']
|
|
110
|
+
media_url = hash['mediaUrl']
|
|
111
|
+
|
|
112
|
+
# Create object from extracted values.
|
|
113
|
+
ConferenceRecordingMetadataResponse.new(account_id,
|
|
114
|
+
conference_id,
|
|
115
|
+
name,
|
|
116
|
+
recording_id,
|
|
117
|
+
duration,
|
|
118
|
+
channels,
|
|
119
|
+
start_time,
|
|
120
|
+
end_time,
|
|
121
|
+
file_format,
|
|
122
|
+
status,
|
|
123
|
+
media_url)
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# bandwidth
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
|
4
|
+
# ( https://apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module Bandwidth
|
|
7
|
+
# DisconnectCause.
|
|
8
|
+
class DisconnectCauseEnum
|
|
9
|
+
DISCONNECT_CAUSE_ENUM = [
|
|
10
|
+
# TODO: Write general description for BUSY
|
|
11
|
+
BUSY = 'busy'.freeze,
|
|
12
|
+
|
|
13
|
+
# TODO: Write general description for CALLBACKERROR
|
|
14
|
+
CALLBACKERROR = 'callback-error'.freeze,
|
|
15
|
+
|
|
16
|
+
# TODO: Write general description for CANCEL
|
|
17
|
+
CANCEL = 'cancel'.freeze,
|
|
18
|
+
|
|
19
|
+
# TODO: Write general description for ERROR
|
|
20
|
+
ERROR = 'error'.freeze,
|
|
21
|
+
|
|
22
|
+
# TODO: Write general description for HANGUP
|
|
23
|
+
HANGUP = 'hangup'.freeze,
|
|
24
|
+
|
|
25
|
+
# TODO: Write general description for INVALIDBXML
|
|
26
|
+
INVALIDBXML = 'invalid-bxml'.freeze,
|
|
27
|
+
|
|
28
|
+
# TODO: Write general description for REJECTED
|
|
29
|
+
REJECTED = 'rejected'.freeze,
|
|
30
|
+
|
|
31
|
+
# TODO: Write general description for TIMEOUT
|
|
32
|
+
TIMEOUT = 'timeout'.freeze,
|
|
33
|
+
|
|
34
|
+
# TODO: Write general description for ACCOUNTLIMIT
|
|
35
|
+
ACCOUNTLIMIT = 'account-limit'.freeze,
|
|
36
|
+
|
|
37
|
+
# TODO: Write general description for NODECAPACITYEXCEEDED
|
|
38
|
+
NODECAPACITYEXCEEDED = 'node-capacity-exceeded'.freeze,
|
|
39
|
+
|
|
40
|
+
# TODO: Write general description for UNKNOWN
|
|
41
|
+
UNKNOWN = 'unknown'.freeze,
|
|
42
|
+
|
|
43
|
+
# TODO: Write general description for APPLICATIONERROR
|
|
44
|
+
APPLICATIONERROR = 'application-error'.freeze
|
|
45
|
+
].freeze
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -7,7 +7,7 @@ module Bandwidth
|
|
|
7
7
|
# ModifyCallRecordingState Model.
|
|
8
8
|
class ModifyCallRecordingState < BaseModel
|
|
9
9
|
# TODO: Write general description for this method
|
|
10
|
-
# @return [
|
|
10
|
+
# @return [State2Enum]
|
|
11
11
|
attr_accessor :state
|
|
12
12
|
|
|
13
13
|
# A mapping from model property names to API property names.
|
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
# This file was automatically generated by APIMATIC v2.0
|
|
4
4
|
# ( https://apimatic.io ).
|
|
5
5
|
|
|
6
|
+
require 'date'
|
|
6
7
|
module Bandwidth
|
|
7
8
|
# RecordingMetadataResponse Model.
|
|
8
9
|
class RecordingMetadataResponse < BaseModel
|
|
10
|
+
# TODO: Write general description for this method
|
|
11
|
+
# @return [String]
|
|
12
|
+
attr_accessor :application_id
|
|
13
|
+
|
|
9
14
|
# TODO: Write general description for this method
|
|
10
15
|
# @return [String]
|
|
11
16
|
attr_accessor :account_id
|
|
@@ -14,6 +19,10 @@ module Bandwidth
|
|
|
14
19
|
# @return [String]
|
|
15
20
|
attr_accessor :call_id
|
|
16
21
|
|
|
22
|
+
# TODO: Write general description for this method
|
|
23
|
+
# @return [String]
|
|
24
|
+
attr_accessor :parent_call_id
|
|
25
|
+
|
|
17
26
|
# TODO: Write general description for this method
|
|
18
27
|
# @return [String]
|
|
19
28
|
attr_accessor :recording_id
|
|
@@ -28,88 +37,108 @@ module Bandwidth
|
|
|
28
37
|
|
|
29
38
|
# TODO: Write general description for this method
|
|
30
39
|
# @return [String]
|
|
31
|
-
attr_accessor :
|
|
40
|
+
attr_accessor :transfer_caller_id
|
|
32
41
|
|
|
33
42
|
# TODO: Write general description for this method
|
|
43
|
+
# @return [String]
|
|
44
|
+
attr_accessor :transfer_to
|
|
45
|
+
|
|
46
|
+
# Format is ISO-8601
|
|
47
|
+
# @return [String]
|
|
48
|
+
attr_accessor :duration
|
|
49
|
+
|
|
50
|
+
# Format is ISO-8601
|
|
34
51
|
# @return [DirectionEnum]
|
|
35
52
|
attr_accessor :direction
|
|
36
53
|
|
|
37
|
-
#
|
|
54
|
+
# Format is ISO-8601
|
|
38
55
|
# @return [Integer]
|
|
39
56
|
attr_accessor :channels
|
|
40
57
|
|
|
41
|
-
#
|
|
42
|
-
# @return [
|
|
58
|
+
# Format is ISO-8601
|
|
59
|
+
# @return [DateTime]
|
|
43
60
|
attr_accessor :start_time
|
|
44
61
|
|
|
45
|
-
#
|
|
46
|
-
# @return [
|
|
62
|
+
# Format is ISO-8601
|
|
63
|
+
# @return [DateTime]
|
|
47
64
|
attr_accessor :end_time
|
|
48
65
|
|
|
49
|
-
#
|
|
66
|
+
# Format is ISO-8601
|
|
50
67
|
# @return [FileFormatEnum]
|
|
51
68
|
attr_accessor :file_format
|
|
52
69
|
|
|
53
|
-
#
|
|
54
|
-
# @return [
|
|
55
|
-
attr_accessor :
|
|
70
|
+
# Format is ISO-8601
|
|
71
|
+
# @return [Status1Enum]
|
|
72
|
+
attr_accessor :status
|
|
56
73
|
|
|
57
|
-
#
|
|
74
|
+
# Format is ISO-8601
|
|
58
75
|
# @return [String]
|
|
59
76
|
attr_accessor :media_url
|
|
60
77
|
|
|
61
|
-
#
|
|
62
|
-
# @return [
|
|
63
|
-
attr_accessor :
|
|
78
|
+
# Format is ISO-8601
|
|
79
|
+
# @return [Transcription]
|
|
80
|
+
attr_accessor :transcription
|
|
64
81
|
|
|
65
82
|
# A mapping from model property names to API property names.
|
|
66
83
|
def self.names
|
|
67
84
|
@_hash = {} if @_hash.nil?
|
|
85
|
+
@_hash['application_id'] = 'applicationId'
|
|
68
86
|
@_hash['account_id'] = 'accountId'
|
|
69
87
|
@_hash['call_id'] = 'callId'
|
|
88
|
+
@_hash['parent_call_id'] = 'parentCallId'
|
|
70
89
|
@_hash['recording_id'] = 'recordingId'
|
|
71
90
|
@_hash['to'] = 'to'
|
|
72
91
|
@_hash['from'] = 'from'
|
|
92
|
+
@_hash['transfer_caller_id'] = 'transferCallerId'
|
|
93
|
+
@_hash['transfer_to'] = 'transferTo'
|
|
73
94
|
@_hash['duration'] = 'duration'
|
|
74
95
|
@_hash['direction'] = 'direction'
|
|
75
96
|
@_hash['channels'] = 'channels'
|
|
76
97
|
@_hash['start_time'] = 'startTime'
|
|
77
98
|
@_hash['end_time'] = 'endTime'
|
|
78
99
|
@_hash['file_format'] = 'fileFormat'
|
|
79
|
-
@_hash['
|
|
100
|
+
@_hash['status'] = 'status'
|
|
80
101
|
@_hash['media_url'] = 'mediaUrl'
|
|
81
|
-
@_hash['
|
|
102
|
+
@_hash['transcription'] = 'transcription'
|
|
82
103
|
@_hash
|
|
83
104
|
end
|
|
84
105
|
|
|
85
|
-
def initialize(
|
|
106
|
+
def initialize(application_id = nil,
|
|
107
|
+
account_id = nil,
|
|
86
108
|
call_id = nil,
|
|
109
|
+
parent_call_id = nil,
|
|
87
110
|
recording_id = nil,
|
|
88
111
|
to = nil,
|
|
89
112
|
from = nil,
|
|
113
|
+
transfer_caller_id = nil,
|
|
114
|
+
transfer_to = nil,
|
|
90
115
|
duration = nil,
|
|
91
116
|
direction = nil,
|
|
92
117
|
channels = nil,
|
|
93
118
|
start_time = nil,
|
|
94
119
|
end_time = nil,
|
|
95
120
|
file_format = nil,
|
|
96
|
-
|
|
121
|
+
status = nil,
|
|
97
122
|
media_url = nil,
|
|
98
|
-
|
|
123
|
+
transcription = nil)
|
|
124
|
+
@application_id = application_id
|
|
99
125
|
@account_id = account_id
|
|
100
126
|
@call_id = call_id
|
|
127
|
+
@parent_call_id = parent_call_id
|
|
101
128
|
@recording_id = recording_id
|
|
102
129
|
@to = to
|
|
103
130
|
@from = from
|
|
131
|
+
@transfer_caller_id = transfer_caller_id
|
|
132
|
+
@transfer_to = transfer_to
|
|
104
133
|
@duration = duration
|
|
105
134
|
@direction = direction
|
|
106
135
|
@channels = channels
|
|
107
136
|
@start_time = start_time
|
|
108
137
|
@end_time = end_time
|
|
109
138
|
@file_format = file_format
|
|
110
|
-
@
|
|
139
|
+
@status = status
|
|
111
140
|
@media_url = media_url
|
|
112
|
-
@
|
|
141
|
+
@transcription = transcription
|
|
113
142
|
end
|
|
114
143
|
|
|
115
144
|
# Creates an instance of the object from a hash.
|
|
@@ -117,36 +146,45 @@ module Bandwidth
|
|
|
117
146
|
return nil unless hash
|
|
118
147
|
|
|
119
148
|
# Extract variables from the hash.
|
|
149
|
+
application_id = hash['applicationId']
|
|
120
150
|
account_id = hash['accountId']
|
|
121
151
|
call_id = hash['callId']
|
|
152
|
+
parent_call_id = hash['parentCallId']
|
|
122
153
|
recording_id = hash['recordingId']
|
|
123
154
|
to = hash['to']
|
|
124
155
|
from = hash['from']
|
|
156
|
+
transfer_caller_id = hash['transferCallerId']
|
|
157
|
+
transfer_to = hash['transferTo']
|
|
125
158
|
duration = hash['duration']
|
|
126
159
|
direction = hash['direction']
|
|
127
160
|
channels = hash['channels']
|
|
128
|
-
start_time = hash['startTime']
|
|
129
|
-
end_time = hash['endTime']
|
|
161
|
+
start_time = APIHelper.rfc3339(hash['startTime']) if hash['startTime']
|
|
162
|
+
end_time = APIHelper.rfc3339(hash['endTime']) if hash['endTime']
|
|
130
163
|
file_format = hash['fileFormat']
|
|
131
|
-
|
|
164
|
+
status = hash['status']
|
|
132
165
|
media_url = hash['mediaUrl']
|
|
133
|
-
|
|
166
|
+
transcription = Transcription.from_hash(hash['transcription']) if
|
|
167
|
+
hash['transcription']
|
|
134
168
|
|
|
135
169
|
# Create object from extracted values.
|
|
136
|
-
RecordingMetadataResponse.new(
|
|
170
|
+
RecordingMetadataResponse.new(application_id,
|
|
171
|
+
account_id,
|
|
137
172
|
call_id,
|
|
173
|
+
parent_call_id,
|
|
138
174
|
recording_id,
|
|
139
175
|
to,
|
|
140
176
|
from,
|
|
177
|
+
transfer_caller_id,
|
|
178
|
+
transfer_to,
|
|
141
179
|
duration,
|
|
142
180
|
direction,
|
|
143
181
|
channels,
|
|
144
182
|
start_time,
|
|
145
183
|
end_time,
|
|
146
184
|
file_format,
|
|
147
|
-
|
|
185
|
+
status,
|
|
148
186
|
media_url,
|
|
149
|
-
|
|
187
|
+
transcription)
|
|
150
188
|
end
|
|
151
189
|
end
|
|
152
190
|
end
|