bandwidth-sdk 6.2.0 → 9.0.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bandwidth/api_helper.rb +19 -29
  3. data/lib/bandwidth/client.rb +8 -8
  4. data/lib/bandwidth/configuration.rb +20 -32
  5. data/lib/bandwidth/http/auth/{two_factor_auth_basic_auth.rb → multi_factor_auth_basic_auth.rb} +3 -3
  6. data/lib/bandwidth/http/faraday_client.rb +1 -1
  7. data/lib/bandwidth/messaging_lib/messaging/client.rb +14 -5
  8. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +78 -71
  9. data/lib/bandwidth/messaging_lib/messaging/controllers/base_controller.rb +3 -5
  10. data/lib/bandwidth/messaging_lib/messaging/exceptions/messaging_exception.rb +5 -2
  11. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_callback_message.rb +31 -11
  12. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +54 -25
  13. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +102 -24
  14. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_messages_list.rb +23 -4
  15. data/lib/bandwidth/messaging_lib/messaging/models/deferred_result.rb +20 -4
  16. data/lib/bandwidth/messaging_lib/messaging/models/media.rb +27 -80
  17. data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +32 -14
  18. data/lib/bandwidth/messaging_lib/messaging/models/page_info.rb +28 -8
  19. data/lib/bandwidth/messaging_lib/messaging/models/tag.rb +20 -4
  20. data/lib/bandwidth/models/base_model.rb +30 -8
  21. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/client.rb +15 -6
  22. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/base_controller.rb +3 -5
  23. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/mfa_controller.rb +28 -23
  24. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/error_with_request_exception.rb +5 -2
  25. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/forbidden_request_exception.rb +4 -1
  26. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/unauthorized_request_exception.rb +4 -1
  27. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_code_request_schema.rb +27 -12
  28. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_messaging_response.rb +17 -2
  29. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_code_response.rb +17 -2
  30. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_request_schema.rb +29 -10
  31. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_voice_response.rb +17 -2
  32. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +23 -0
  33. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +212 -210
  34. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +3 -5
  35. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +4 -1
  36. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +17 -2
  37. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +20 -4
  38. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +28 -7
  39. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +43 -18
  40. data/lib/bandwidth/utilities/date_time_helper.rb +156 -0
  41. data/lib/bandwidth/utilities/file_wrapper.rb +1 -2
  42. data/lib/bandwidth/voice_lib/voice/client.rb +14 -5
  43. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +418 -379
  44. data/lib/bandwidth/voice_lib/voice/controllers/base_controller.rb +3 -5
  45. data/lib/bandwidth/voice_lib/voice/exceptions/{api_error_response_exception.rb → api_error_exception.rb} +8 -5
  46. data/lib/bandwidth/voice_lib/voice/models/call_callback.rb +343 -0
  47. data/lib/bandwidth/voice_lib/voice/models/call_recording_metadata.rb +250 -0
  48. data/lib/bandwidth/voice_lib/voice/models/call_state.rb +284 -0
  49. data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +2 -20
  50. data/lib/bandwidth/voice_lib/voice/models/conference_callback.rb +211 -0
  51. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +2 -20
  52. data/lib/bandwidth/voice_lib/voice/models/{conference_member_detail.rb → conference_member_state.rb} +43 -20
  53. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata.rb +173 -0
  54. data/lib/bandwidth/voice_lib/voice/models/conference_state.rb +153 -0
  55. data/lib/bandwidth/voice_lib/voice/models/create_call_request.rb +301 -0
  56. data/lib/bandwidth/voice_lib/voice/models/create_call_response.rb +256 -0
  57. data/lib/bandwidth/voice_lib/voice/models/diversion.rb +80 -0
  58. data/lib/bandwidth/voice_lib/voice/models/fallback_method_enum.rb +17 -0
  59. data/lib/bandwidth/voice_lib/voice/models/machine_detection_configuration.rb +218 -0
  60. data/lib/bandwidth/voice_lib/voice/models/mode_enum.rb +20 -0
  61. data/lib/bandwidth/voice_lib/voice/models/{modify_call_recording_state.rb → modify_call_recording_request.rb} +19 -6
  62. data/lib/bandwidth/voice_lib/voice/models/modify_call_request.rb +156 -0
  63. data/lib/bandwidth/voice_lib/voice/models/modify_conference_request.rb +144 -0
  64. data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +7 -4
  65. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +4 -7
  66. data/lib/bandwidth/voice_lib/voice/models/transcribe_recording_request.rb +108 -0
  67. data/lib/bandwidth/voice_lib/voice/models/transcript.rb +20 -4
  68. data/lib/bandwidth/voice_lib/voice/models/transcription.rb +35 -17
  69. data/lib/bandwidth/voice_lib/voice/models/transcription_metadata.rb +89 -0
  70. data/lib/bandwidth/voice_lib/voice/models/transcription_response.rb +18 -1
  71. data/lib/bandwidth/voice_lib/voice.rb +20 -18
  72. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +7 -2
  73. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +4 -4
  74. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +75 -64
  75. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/base_controller.rb +3 -5
  76. data/lib/bandwidth/web_rtc_lib/web_rtc/exceptions/error_exception.rb +5 -2
  77. data/lib/bandwidth/web_rtc_lib/web_rtc/models/accounts_participants_response.rb +20 -5
  78. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +37 -14
  79. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant_subscription.rb +15 -2
  80. data/lib/bandwidth/web_rtc_lib/web_rtc/models/session.rb +20 -4
  81. data/lib/bandwidth/web_rtc_lib/web_rtc/models/subscriptions.rb +20 -3
  82. data/lib/bandwidth.rb +20 -18
  83. data/test/integration/test_integration.rb +92 -57
  84. metadata +35 -31
  85. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +0 -22
  86. data/lib/bandwidth/voice_lib/voice/models/api_call_response.rb +0 -207
  87. data/lib/bandwidth/voice_lib/voice/models/api_call_state_response.rb +0 -164
  88. data/lib/bandwidth/voice_lib/voice/models/api_create_call_request.rb +0 -248
  89. data/lib/bandwidth/voice_lib/voice/models/api_modify_call_request.rb +0 -116
  90. data/lib/bandwidth/voice_lib/voice/models/api_modify_conference_request.rb +0 -107
  91. data/lib/bandwidth/voice_lib/voice/models/api_transcribe_recording_request.rb +0 -80
  92. data/lib/bandwidth/voice_lib/voice/models/conference_detail.rb +0 -108
  93. data/lib/bandwidth/voice_lib/voice/models/conference_recording_metadata_response.rb +0 -126
  94. data/lib/bandwidth/voice_lib/voice/models/disconnect_cause_enum.rb +0 -47
  95. data/lib/bandwidth/voice_lib/voice/models/recording_metadata_response.rb +0 -190
  96. data/lib/bandwidth/voice_lib/voice/models/state2_enum.rb +0 -20
  97. data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +0 -29
  98. data/lib/bandwidth/voice_lib/voice/models/status3_enum.rb +0 -32
@@ -0,0 +1,173 @@
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
+ # ConferenceRecordingMetadata Model.
9
+ class ConferenceRecordingMetadata < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [String]
15
+ attr_accessor :account_id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :conference_id
20
+
21
+ # TODO: Write general description for this method
22
+ # @return [String]
23
+ attr_accessor :name
24
+
25
+ # TODO: Write general description for this method
26
+ # @return [String]
27
+ attr_accessor :recording_id
28
+
29
+ # Format is ISO-8601
30
+ # @return [String]
31
+ attr_accessor :duration
32
+
33
+ # Format is ISO-8601
34
+ # @return [Integer]
35
+ attr_accessor :channels
36
+
37
+ # Format is ISO-8601
38
+ # @return [DateTime]
39
+ attr_accessor :start_time
40
+
41
+ # Format is ISO-8601
42
+ # @return [DateTime]
43
+ attr_accessor :end_time
44
+
45
+ # Format is ISO-8601
46
+ # @return [FileFormatEnum]
47
+ attr_accessor :file_format
48
+
49
+ # The current status of the recording. Current possible values are
50
+ # 'processing', 'partial', 'complete', 'deleted', and 'error'. Additional
51
+ # states may be added in the future, so your application must be tolerant of
52
+ # unknown values.
53
+ # @return [String]
54
+ attr_accessor :status
55
+
56
+ # The current status of the recording. Current possible values are
57
+ # 'processing', 'partial', 'complete', 'deleted', and 'error'. Additional
58
+ # states may be added in the future, so your application must be tolerant of
59
+ # unknown values.
60
+ # @return [String]
61
+ attr_accessor :media_url
62
+
63
+ # A mapping from model property names to API property names.
64
+ def self.names
65
+ @_hash = {} if @_hash.nil?
66
+ @_hash['account_id'] = 'accountId'
67
+ @_hash['conference_id'] = 'conferenceId'
68
+ @_hash['name'] = 'name'
69
+ @_hash['recording_id'] = 'recordingId'
70
+ @_hash['duration'] = 'duration'
71
+ @_hash['channels'] = 'channels'
72
+ @_hash['start_time'] = 'startTime'
73
+ @_hash['end_time'] = 'endTime'
74
+ @_hash['file_format'] = 'fileFormat'
75
+ @_hash['status'] = 'status'
76
+ @_hash['media_url'] = 'mediaUrl'
77
+ @_hash
78
+ end
79
+
80
+ # An array for optional fields
81
+ def optionals
82
+ %w[
83
+ account_id
84
+ conference_id
85
+ name
86
+ recording_id
87
+ duration
88
+ channels
89
+ start_time
90
+ end_time
91
+ file_format
92
+ status
93
+ media_url
94
+ ]
95
+ end
96
+
97
+ # An array for nullable fields
98
+ def nullables
99
+ []
100
+ end
101
+
102
+ def initialize(account_id = nil,
103
+ conference_id = nil,
104
+ name = nil,
105
+ recording_id = nil,
106
+ duration = nil,
107
+ channels = nil,
108
+ start_time = nil,
109
+ end_time = nil,
110
+ file_format = nil,
111
+ status = nil,
112
+ media_url = nil)
113
+ @account_id = account_id unless account_id == SKIP
114
+ @conference_id = conference_id unless conference_id == SKIP
115
+ @name = name unless name == SKIP
116
+ @recording_id = recording_id unless recording_id == SKIP
117
+ @duration = duration unless duration == SKIP
118
+ @channels = channels unless channels == SKIP
119
+ @start_time = start_time unless start_time == SKIP
120
+ @end_time = end_time unless end_time == SKIP
121
+ @file_format = file_format unless file_format == SKIP
122
+ @status = status unless status == SKIP
123
+ @media_url = media_url unless media_url == SKIP
124
+ end
125
+
126
+ # Creates an instance of the object from a hash.
127
+ def self.from_hash(hash)
128
+ return nil unless hash
129
+
130
+ # Extract variables from the hash.
131
+ account_id = hash.key?('accountId') ? hash['accountId'] : SKIP
132
+ conference_id = hash.key?('conferenceId') ? hash['conferenceId'] : SKIP
133
+ name = hash.key?('name') ? hash['name'] : SKIP
134
+ recording_id = hash.key?('recordingId') ? hash['recordingId'] : SKIP
135
+ duration = hash.key?('duration') ? hash['duration'] : SKIP
136
+ channels = hash.key?('channels') ? hash['channels'] : SKIP
137
+ start_time = if hash.key?('startTime')
138
+ (DateTimeHelper.from_rfc3339(hash['startTime']) if hash['startTime'])
139
+ else
140
+ SKIP
141
+ end
142
+ end_time = if hash.key?('endTime')
143
+ (DateTimeHelper.from_rfc3339(hash['endTime']) if hash['endTime'])
144
+ else
145
+ SKIP
146
+ end
147
+ file_format = hash.key?('fileFormat') ? hash['fileFormat'] : SKIP
148
+ status = hash.key?('status') ? hash['status'] : SKIP
149
+ media_url = hash.key?('mediaUrl') ? hash['mediaUrl'] : SKIP
150
+
151
+ # Create object from extracted values.
152
+ ConferenceRecordingMetadata.new(account_id,
153
+ conference_id,
154
+ name,
155
+ recording_id,
156
+ duration,
157
+ channels,
158
+ start_time,
159
+ end_time,
160
+ file_format,
161
+ status,
162
+ media_url)
163
+ end
164
+
165
+ def to_start_time
166
+ DateTimeHelper.to_rfc3339(start_time)
167
+ end
168
+
169
+ def to_end_time
170
+ DateTimeHelper.to_rfc3339(end_time)
171
+ end
172
+ end
173
+ end
@@ -0,0 +1,153 @@
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
+ # ConferenceState Model.
9
+ class ConferenceState < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # TODO: Write general description for this method
14
+ # @return [String]
15
+ attr_accessor :id
16
+
17
+ # TODO: Write general description for this method
18
+ # @return [String]
19
+ attr_accessor :name
20
+
21
+ # TODO: Write general description for this method
22
+ # @return [DateTime]
23
+ attr_accessor :created_time
24
+
25
+ # TODO: Write general description for this method
26
+ # @return [DateTime]
27
+ attr_accessor :completed_time
28
+
29
+ # TODO: Write general description for this method
30
+ # @return [String]
31
+ attr_accessor :conference_event_url
32
+
33
+ # TODO: Write general description for this method
34
+ # @return [ConferenceEventMethodEnum]
35
+ attr_accessor :conference_event_method
36
+
37
+ # TODO: Write general description for this method
38
+ # @return [String]
39
+ attr_accessor :tag
40
+
41
+ # TODO: Write general description for this method
42
+ # @return [List of ConferenceMemberState]
43
+ attr_accessor :active_members
44
+
45
+ # A mapping from model property names to API property names.
46
+ def self.names
47
+ @_hash = {} if @_hash.nil?
48
+ @_hash['id'] = 'id'
49
+ @_hash['name'] = 'name'
50
+ @_hash['created_time'] = 'createdTime'
51
+ @_hash['completed_time'] = 'completedTime'
52
+ @_hash['conference_event_url'] = 'conferenceEventUrl'
53
+ @_hash['conference_event_method'] = 'conferenceEventMethod'
54
+ @_hash['tag'] = 'tag'
55
+ @_hash['active_members'] = 'activeMembers'
56
+ @_hash
57
+ end
58
+
59
+ # An array for optional fields
60
+ def optionals
61
+ %w[
62
+ id
63
+ name
64
+ created_time
65
+ completed_time
66
+ conference_event_url
67
+ conference_event_method
68
+ tag
69
+ active_members
70
+ ]
71
+ end
72
+
73
+ # An array for nullable fields
74
+ def nullables
75
+ %w[
76
+ completed_time
77
+ conference_event_url
78
+ conference_event_method
79
+ tag
80
+ ]
81
+ end
82
+
83
+ def initialize(id = nil,
84
+ name = nil,
85
+ created_time = nil,
86
+ completed_time = nil,
87
+ conference_event_url = nil,
88
+ conference_event_method = nil,
89
+ tag = nil,
90
+ active_members = nil)
91
+ @id = id unless id == SKIP
92
+ @name = name unless name == SKIP
93
+ @created_time = created_time unless created_time == SKIP
94
+ @completed_time = completed_time unless completed_time == SKIP
95
+ @conference_event_url = conference_event_url unless conference_event_url == SKIP
96
+ @conference_event_method = conference_event_method unless conference_event_method == SKIP
97
+ @tag = tag unless tag == SKIP
98
+ @active_members = active_members unless active_members == SKIP
99
+ end
100
+
101
+ # Creates an instance of the object from a hash.
102
+ def self.from_hash(hash)
103
+ return nil unless hash
104
+
105
+ # Extract variables from the hash.
106
+ id = hash.key?('id') ? hash['id'] : SKIP
107
+ name = hash.key?('name') ? hash['name'] : SKIP
108
+ created_time = if hash.key?('createdTime')
109
+ (DateTimeHelper.from_rfc3339(hash['createdTime']) if hash['createdTime'])
110
+ else
111
+ SKIP
112
+ end
113
+ completed_time = if hash.key?('completedTime')
114
+ (DateTimeHelper.from_rfc3339(hash['completedTime']) if hash['completedTime'])
115
+ else
116
+ SKIP
117
+ end
118
+ conference_event_url =
119
+ hash.key?('conferenceEventUrl') ? hash['conferenceEventUrl'] : SKIP
120
+ conference_event_method =
121
+ hash.key?('conferenceEventMethod') ? hash['conferenceEventMethod'] : SKIP
122
+ tag = hash.key?('tag') ? hash['tag'] : SKIP
123
+ # Parameter is an array, so we need to iterate through it
124
+ active_members = nil
125
+ unless hash['activeMembers'].nil?
126
+ active_members = []
127
+ hash['activeMembers'].each do |structure|
128
+ active_members << (ConferenceMemberState.from_hash(structure) if structure)
129
+ end
130
+ end
131
+
132
+ active_members = SKIP unless hash.key?('activeMembers')
133
+
134
+ # Create object from extracted values.
135
+ ConferenceState.new(id,
136
+ name,
137
+ created_time,
138
+ completed_time,
139
+ conference_event_url,
140
+ conference_event_method,
141
+ tag,
142
+ active_members)
143
+ end
144
+
145
+ def to_created_time
146
+ DateTimeHelper.to_rfc3339(created_time)
147
+ end
148
+
149
+ def to_completed_time
150
+ DateTimeHelper.to_rfc3339(completed_time)
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,301 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ # CreateCallRequest Model.
8
+ class CreateCallRequest < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Format is E164
13
+ # @return [String]
14
+ attr_accessor :from
15
+
16
+ # Format is E164 or SIP URI
17
+ # @return [String]
18
+ attr_accessor :to
19
+
20
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
21
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
22
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
23
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
24
+ # characters, including parameters and separators.
25
+ # @return [String]
26
+ attr_accessor :uui
27
+
28
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
29
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
30
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
31
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
32
+ # characters, including parameters and separators.
33
+ # @return [Float]
34
+ attr_accessor :call_timeout
35
+
36
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
37
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
38
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
39
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
40
+ # characters, including parameters and separators.
41
+ # @return [Float]
42
+ attr_accessor :callback_timeout
43
+
44
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
45
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
46
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
47
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
48
+ # characters, including parameters and separators.
49
+ # @return [String]
50
+ attr_accessor :answer_url
51
+
52
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
53
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
54
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
55
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
56
+ # characters, including parameters and separators.
57
+ # @return [String]
58
+ attr_accessor :answer_fallback_url
59
+
60
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
61
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
62
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
63
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
64
+ # characters, including parameters and separators.
65
+ # @return [String]
66
+ attr_accessor :username
67
+
68
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
69
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
70
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
71
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
72
+ # characters, including parameters and separators.
73
+ # @return [String]
74
+ attr_accessor :password
75
+
76
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
77
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
78
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
79
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
80
+ # characters, including parameters and separators.
81
+ # @return [String]
82
+ attr_accessor :fallback_username
83
+
84
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
85
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
86
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
87
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
88
+ # characters, including parameters and separators.
89
+ # @return [String]
90
+ attr_accessor :fallback_password
91
+
92
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
93
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
94
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
95
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
96
+ # characters, including parameters and separators.
97
+ # @return [AnswerMethodEnum]
98
+ attr_accessor :answer_method
99
+
100
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
101
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
102
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
103
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
104
+ # characters, including parameters and separators.
105
+ # @return [AnswerFallbackMethodEnum]
106
+ attr_accessor :answer_fallback_method
107
+
108
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
109
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
110
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
111
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
112
+ # characters, including parameters and separators.
113
+ # @return [String]
114
+ attr_accessor :disconnect_url
115
+
116
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
117
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
118
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
119
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
120
+ # characters, including parameters and separators.
121
+ # @return [DisconnectMethodEnum]
122
+ attr_accessor :disconnect_method
123
+
124
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
125
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
126
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
127
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
128
+ # characters, including parameters and separators.
129
+ # @return [String]
130
+ attr_accessor :tag
131
+
132
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
133
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
134
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
135
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
136
+ # characters, including parameters and separators.
137
+ # @return [String]
138
+ attr_accessor :application_id
139
+
140
+ # A comma-separated list of 'User-To-User' headers to be sent in the INVITE
141
+ # when calling a SIP URI. Each value must end with an 'encoding' parameter
142
+ # as described in https://tools.ietf.org/html/rfc7433. Only 'jwt' and
143
+ # 'base64' encodings are allowed. The entire value cannot exceed 350
144
+ # characters, including parameters and separators.
145
+ # @return [MachineDetectionRequest]
146
+ attr_accessor :machine_detection
147
+
148
+ # A mapping from model property names to API property names.
149
+ def self.names
150
+ @_hash = {} if @_hash.nil?
151
+ @_hash['from'] = 'from'
152
+ @_hash['to'] = 'to'
153
+ @_hash['uui'] = 'uui'
154
+ @_hash['call_timeout'] = 'callTimeout'
155
+ @_hash['callback_timeout'] = 'callbackTimeout'
156
+ @_hash['answer_url'] = 'answerUrl'
157
+ @_hash['answer_fallback_url'] = 'answerFallbackUrl'
158
+ @_hash['username'] = 'username'
159
+ @_hash['password'] = 'password'
160
+ @_hash['fallback_username'] = 'fallbackUsername'
161
+ @_hash['fallback_password'] = 'fallbackPassword'
162
+ @_hash['answer_method'] = 'answerMethod'
163
+ @_hash['answer_fallback_method'] = 'answerFallbackMethod'
164
+ @_hash['disconnect_url'] = 'disconnectUrl'
165
+ @_hash['disconnect_method'] = 'disconnectMethod'
166
+ @_hash['tag'] = 'tag'
167
+ @_hash['application_id'] = 'applicationId'
168
+ @_hash['machine_detection'] = 'machineDetection'
169
+ @_hash
170
+ end
171
+
172
+ # An array for optional fields
173
+ def optionals
174
+ %w[
175
+ uui
176
+ call_timeout
177
+ callback_timeout
178
+ answer_fallback_url
179
+ username
180
+ password
181
+ fallback_username
182
+ fallback_password
183
+ answer_method
184
+ answer_fallback_method
185
+ disconnect_url
186
+ disconnect_method
187
+ tag
188
+ machine_detection
189
+ ]
190
+ end
191
+
192
+ # An array for nullable fields
193
+ def nullables
194
+ %w[
195
+ uui
196
+ call_timeout
197
+ callback_timeout
198
+ answer_fallback_url
199
+ username
200
+ password
201
+ fallback_username
202
+ fallback_password
203
+ answer_method
204
+ answer_fallback_method
205
+ disconnect_url
206
+ disconnect_method
207
+ tag
208
+ ]
209
+ end
210
+
211
+ def initialize(from = nil,
212
+ to = nil,
213
+ answer_url = nil,
214
+ application_id = nil,
215
+ uui = nil,
216
+ call_timeout = nil,
217
+ callback_timeout = nil,
218
+ answer_fallback_url = nil,
219
+ username = nil,
220
+ password = nil,
221
+ fallback_username = nil,
222
+ fallback_password = nil,
223
+ answer_method = nil,
224
+ answer_fallback_method = nil,
225
+ disconnect_url = nil,
226
+ disconnect_method = nil,
227
+ tag = nil,
228
+ machine_detection = nil)
229
+ @from = from unless from == SKIP
230
+ @to = to unless to == SKIP
231
+ @uui = uui unless uui == SKIP
232
+ @call_timeout = call_timeout unless call_timeout == SKIP
233
+ @callback_timeout = callback_timeout unless callback_timeout == SKIP
234
+ @answer_url = answer_url unless answer_url == SKIP
235
+ @answer_fallback_url = answer_fallback_url unless answer_fallback_url == SKIP
236
+ @username = username unless username == SKIP
237
+ @password = password unless password == SKIP
238
+ @fallback_username = fallback_username unless fallback_username == SKIP
239
+ @fallback_password = fallback_password unless fallback_password == SKIP
240
+ @answer_method = answer_method unless answer_method == SKIP
241
+ @answer_fallback_method = answer_fallback_method unless answer_fallback_method == SKIP
242
+ @disconnect_url = disconnect_url unless disconnect_url == SKIP
243
+ @disconnect_method = disconnect_method unless disconnect_method == SKIP
244
+ @tag = tag unless tag == SKIP
245
+ @application_id = application_id unless application_id == SKIP
246
+ @machine_detection = machine_detection unless machine_detection == SKIP
247
+ end
248
+
249
+ # Creates an instance of the object from a hash.
250
+ def self.from_hash(hash)
251
+ return nil unless hash
252
+
253
+ # Extract variables from the hash.
254
+ from = hash.key?('from') ? hash['from'] : SKIP
255
+ to = hash.key?('to') ? hash['to'] : SKIP
256
+ answer_url = hash.key?('answerUrl') ? hash['answerUrl'] : SKIP
257
+ application_id = hash.key?('applicationId') ? hash['applicationId'] : SKIP
258
+ uui = hash.key?('uui') ? hash['uui'] : SKIP
259
+ call_timeout = hash.key?('callTimeout') ? hash['callTimeout'] : SKIP
260
+ callback_timeout =
261
+ hash.key?('callbackTimeout') ? hash['callbackTimeout'] : SKIP
262
+ answer_fallback_url =
263
+ hash.key?('answerFallbackUrl') ? hash['answerFallbackUrl'] : SKIP
264
+ username = hash.key?('username') ? hash['username'] : SKIP
265
+ password = hash.key?('password') ? hash['password'] : SKIP
266
+ fallback_username =
267
+ hash.key?('fallbackUsername') ? hash['fallbackUsername'] : SKIP
268
+ fallback_password =
269
+ hash.key?('fallbackPassword') ? hash['fallbackPassword'] : SKIP
270
+ answer_method = hash.key?('answerMethod') ? hash['answerMethod'] : SKIP
271
+ answer_fallback_method =
272
+ hash.key?('answerFallbackMethod') ? hash['answerFallbackMethod'] : SKIP
273
+ disconnect_url = hash.key?('disconnectUrl') ? hash['disconnectUrl'] : SKIP
274
+ disconnect_method =
275
+ hash.key?('disconnectMethod') ? hash['disconnectMethod'] : SKIP
276
+ tag = hash.key?('tag') ? hash['tag'] : SKIP
277
+ machine_detection = MachineDetectionConfiguration.from_hash(hash['machineDetection']) if
278
+ hash['machineDetection']
279
+
280
+ # Create object from extracted values.
281
+ CreateCallRequest.new(from,
282
+ to,
283
+ answer_url,
284
+ application_id,
285
+ uui,
286
+ call_timeout,
287
+ callback_timeout,
288
+ answer_fallback_url,
289
+ username,
290
+ password,
291
+ fallback_username,
292
+ fallback_password,
293
+ answer_method,
294
+ answer_fallback_method,
295
+ disconnect_url,
296
+ disconnect_method,
297
+ tag,
298
+ machine_detection)
299
+ end
300
+ end
301
+ end