bandwidth-sdk 6.2.0 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5539a17ccb877e0e80a53959cbbc354314c0300c3c3ce1e90de0c4b5eae9f18a
4
- data.tar.gz: 1f0466592184f21361287991b49a596c46d5de6f34dca9b727884f077591bf72
3
+ metadata.gz: ee8c7426138e841e2fea1dbff5d5e3c79372a5cd30c20fe6f2b271104d9101d6
4
+ data.tar.gz: d6463c59e3d52f560968494124e4563a61d7f2aa0b2b0f04f23e92f65f97247a
5
5
  SHA512:
6
- metadata.gz: fd6452d48d8a62e0bce5fb173132aac42f52918632c696e4153bfedc6d3c6db9769ab2941c0031d5c70b4ed245d35f0bee4929c54a6511441ad60e59c77c1fb5
7
- data.tar.gz: 677a0c3e526b2d0f90d4d7905f7b914ce44f8d7a8eee47760693682da200c441cd476030a5e051dc87fdb716aea287d0184584d3c91691cb636ed49ecdaa07be
6
+ metadata.gz: 255385a80dbc57bccc6dab0f124b9588481eb8075dadce183677b9ca5c7f7d62a65512b876d076d51f051a7de96ca920948e70c4d9b4c1be01cbda03b37f8898
7
+ data.tar.gz: 755608aac58ac160de2711c5c3e8b0e57426a023f32c80dc047a2d3c7ee3d345eeb3188dfdfdaeec315690dac6cb377253799119a816a5ae3d34f3135686e24c
@@ -13,13 +13,14 @@ module Bandwidth
13
13
  def self.serialize_array(key, array, formatting: 'indexed')
14
14
  tuples = []
15
15
 
16
- if formatting == 'unindexed'
16
+ case formatting
17
+ when 'unindexed'
17
18
  tuples += array.map { |element| ["#{key}[]", element] }
18
- elsif formatting == 'indexed'
19
+ when 'indexed'
19
20
  tuples += array.map.with_index do |element, index|
20
21
  ["#{key}[#{index}]", element]
21
22
  end
22
- elsif formatting == 'plain'
23
+ when 'plain'
23
24
  tuples += array.map { |element| [key, element] }
24
25
  else
25
26
  raise ArgumentError, 'Invalid format provided.'
@@ -60,7 +61,7 @@ module Bandwidth
60
61
  end
61
62
 
62
63
  # Find the template parameter and replace it with its value.
63
- query_builder = query_builder.gsub('{' + key.to_s + '}', replace_value)
64
+ query_builder = query_builder.gsub("{#{key}}", replace_value)
64
65
  end
65
66
  query_builder
66
67
  end
@@ -85,15 +86,16 @@ module Bandwidth
85
86
  unless value.nil?
86
87
  if value.instance_of? Array
87
88
  value.compact!
88
- query_builder += if array_serialization == 'csv'
89
+ query_builder += case array_serialization
90
+ when 'csv'
89
91
  "#{seperator}#{key}=#{value.map do |element|
90
92
  CGI.escape(element.to_s)
91
93
  end.join(',')}"
92
- elsif array_serialization == 'psv'
94
+ when 'psv'
93
95
  "#{seperator}#{key}=#{value.map do |element|
94
96
  CGI.escape(element.to_s)
95
97
  end.join('|')}"
96
- elsif array_serialization == 'tsv'
98
+ when 'tsv'
97
99
  "#{seperator}#{key}=#{value.map do |element|
98
100
  CGI.escape(element.to_s)
99
101
  end.join("\t")}"
@@ -119,7 +121,7 @@ module Bandwidth
119
121
  raise ArgumentError, 'Invalid Url.' unless url.instance_of? String
120
122
 
121
123
  # Ensure that the urls are absolute.
122
- matches = url.match(%r{^(https?:\/\/[^\/]+)})
124
+ matches = url.match(%r{^(https?://[^/]+)})
123
125
  raise ArgumentError, 'Invalid Url format.' if matches.nil?
124
126
 
125
127
  # Get the http protocol match.
@@ -130,7 +132,7 @@ module Bandwidth
130
132
 
131
133
  # Remove redundant forward slashes.
132
134
  query = url[protocol.length...(!index.nil? ? index : url.length)]
133
- query.gsub!(%r{\/\/+}, '/')
135
+ query.gsub!(%r{//+}, '/')
134
136
 
135
137
  # Get the parameters.
136
138
  parameters = !index.nil? ? url[url.index('?')...url.length] : ''
@@ -142,7 +144,7 @@ module Bandwidth
142
144
  # Parses JSON string.
143
145
  # @param [String] A JSON string.
144
146
  def self.json_deserialize(json)
145
- return JSON.parse(json)
147
+ JSON.parse(json)
146
148
  rescue StandardError
147
149
  raise TypeError, 'Server responded with invalid JSON.'
148
150
  end
@@ -171,6 +173,7 @@ module Bandwidth
171
173
  a.each do |key, value_a|
172
174
  b.each do |k, value_b|
173
175
  next unless key == k
176
+
174
177
  x[k] = []
175
178
  if value_a.instance_of? Array
176
179
  value_a.each do |v|
@@ -215,13 +218,12 @@ module Bandwidth
215
218
  elsif obj.instance_of? Array
216
219
  if formatting == 'indexed'
217
220
  obj.each_with_index do |value, index|
218
- retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
219
- index.to_s + ']'))
221
+ retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{index}]"))
220
222
  end
221
223
  elsif serializable_types.map { |x| obj[0].is_a? x }.any?
222
224
  obj.each do |value|
223
225
  abc = if formatting == 'unindexed'
224
- APIHelper.form_encode(value, instance_name + '[]',
226
+ APIHelper.form_encode(value, "#{instance_name}[]",
225
227
  formatting: formatting)
226
228
  else
227
229
  APIHelper.form_encode(value, instance_name,
@@ -231,14 +233,14 @@ module Bandwidth
231
233
  end
232
234
  else
233
235
  obj.each_with_index do |value, index|
234
- retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
235
- index.to_s + ']', formatting: formatting))
236
+ retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{index}]",
237
+ formatting: formatting))
236
238
  end
237
239
  end
238
240
  elsif obj.instance_of? Hash
239
241
  obj.each do |key, value|
240
- retval.merge!(APIHelper.form_encode(value, instance_name + '[' +
241
- key.to_s + ']', formatting: formatting))
242
+ retval.merge!(APIHelper.form_encode(value, "#{instance_name}[#{key}]",
243
+ formatting: formatting))
242
244
  end
243
245
  elsif obj.instance_of? File
244
246
  retval[instance_name] = UploadIO.new(
@@ -273,17 +275,5 @@ module Bandwidth
273
275
  end
274
276
  val
275
277
  end
276
-
277
- # Safely converts a string into an rfc3339 DateTime object
278
- # @param [String] The datetime string
279
- # @return [DateTime] A DateTime object of rfc3339 format
280
- def self.rfc3339(date_time)
281
- # missing timezone information
282
- if date_time.end_with?('Z') || date_time.index('+')
283
- DateTime.rfc3339(date_time)
284
- else
285
- DateTime.rfc3339(date_time + 'Z')
286
- end
287
- end
288
278
  end
289
279
  end
@@ -12,10 +12,10 @@ module Bandwidth
12
12
  def messaging_client
13
13
  @messaging_client ||= Messaging::Client.new(config: config)
14
14
  end
15
- # Access to two_factor_auth_client controller.
16
- # @return [TwoFactorAuth::Client] Returns the client instance.
17
- def two_factor_auth_client
18
- @two_factor_auth_client ||= TwoFactorAuth::Client.new(config: config)
15
+ # Access to multi_factor_auth_client controller.
16
+ # @return [MultiFactorAuth::Client] Returns the client instance.
17
+ def multi_factor_auth_client
18
+ @multi_factor_auth_client ||= MultiFactorAuth::Client.new(config: config)
19
19
  end
20
20
  # Access to phone_number_lookup_client controller.
21
21
  # @return [PhoneNumberLookup::Client] Returns the client instance.
@@ -41,8 +41,8 @@ module Bandwidth
41
41
  base_url: 'https://www.example.com',
42
42
  messaging_basic_auth_user_name: 'TODO: Replace',
43
43
  messaging_basic_auth_password: 'TODO: Replace',
44
- two_factor_auth_basic_auth_user_name: 'TODO: Replace',
45
- two_factor_auth_basic_auth_password: 'TODO: Replace',
44
+ multi_factor_auth_basic_auth_user_name: 'TODO: Replace',
45
+ multi_factor_auth_basic_auth_password: 'TODO: Replace',
46
46
  phone_number_lookup_basic_auth_user_name: 'TODO: Replace',
47
47
  phone_number_lookup_basic_auth_password: 'TODO: Replace',
48
48
  voice_basic_auth_user_name: 'TODO: Replace',
@@ -59,8 +59,8 @@ module Bandwidth
59
59
  base_url: base_url,
60
60
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
61
61
  messaging_basic_auth_password: messaging_basic_auth_password,
62
- two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
63
- two_factor_auth_basic_auth_password: two_factor_auth_basic_auth_password,
62
+ multi_factor_auth_basic_auth_user_name: multi_factor_auth_basic_auth_user_name,
63
+ multi_factor_auth_basic_auth_password: multi_factor_auth_basic_auth_password,
64
64
  phone_number_lookup_basic_auth_user_name: phone_number_lookup_basic_auth_user_name,
65
65
  phone_number_lookup_basic_auth_password: phone_number_lookup_basic_auth_password,
66
66
  voice_basic_auth_user_name: voice_basic_auth_user_name,
@@ -17,7 +17,7 @@ module Bandwidth
17
17
  SERVER = [
18
18
  DEFAULT = 'default'.freeze,
19
19
  MESSAGINGDEFAULT = 'MessagingDefault'.freeze,
20
- TWOFACTORAUTHDEFAULT = 'TwoFactorAuthDefault'.freeze,
20
+ MULTIFACTORAUTHDEFAULT = 'MultiFactorAuthDefault'.freeze,
21
21
  PHONENUMBERLOOKUPDEFAULT = 'PhoneNumberLookupDefault'.freeze,
22
22
  VOICEDEFAULT = 'VoiceDefault'.freeze,
23
23
  WEBRTCDEFAULT = 'WebRtcDefault'.freeze
@@ -28,25 +28,13 @@ module Bandwidth
28
28
  # are configured in this class.
29
29
  class Configuration
30
30
  # The attribute readers for properties.
31
- attr_reader :http_client
32
- attr_reader :timeout
33
- attr_reader :max_retries
34
- attr_reader :retry_interval
35
- attr_reader :backoff_factor
36
- attr_reader :retry_statuses
37
- attr_reader :retry_methods
38
- attr_reader :environment
39
- attr_reader :base_url
40
- attr_reader :messaging_basic_auth_user_name
41
- attr_reader :messaging_basic_auth_password
42
- attr_reader :two_factor_auth_basic_auth_user_name
43
- attr_reader :two_factor_auth_basic_auth_password
44
- attr_reader :phone_number_lookup_basic_auth_user_name
45
- attr_reader :phone_number_lookup_basic_auth_password
46
- attr_reader :voice_basic_auth_user_name
47
- attr_reader :voice_basic_auth_password
48
- attr_reader :web_rtc_basic_auth_user_name
49
- attr_reader :web_rtc_basic_auth_password
31
+ attr_reader :http_client, :timeout, :max_retries, :retry_interval, :backoff_factor,
32
+ :retry_statuses, :retry_methods, :environment, :base_url,
33
+ :messaging_basic_auth_user_name, :messaging_basic_auth_password,
34
+ :multi_factor_auth_basic_auth_user_name, :multi_factor_auth_basic_auth_password,
35
+ :phone_number_lookup_basic_auth_user_name, :phone_number_lookup_basic_auth_password,
36
+ :voice_basic_auth_user_name, :voice_basic_auth_password,
37
+ :web_rtc_basic_auth_user_name, :web_rtc_basic_auth_password
50
38
 
51
39
  class << self
52
40
  attr_reader :environments
@@ -60,8 +48,8 @@ module Bandwidth
60
48
  base_url: 'https://www.example.com',
61
49
  messaging_basic_auth_user_name: 'TODO: Replace',
62
50
  messaging_basic_auth_password: 'TODO: Replace',
63
- two_factor_auth_basic_auth_user_name: 'TODO: Replace',
64
- two_factor_auth_basic_auth_password: 'TODO: Replace',
51
+ multi_factor_auth_basic_auth_user_name: 'TODO: Replace',
52
+ multi_factor_auth_basic_auth_password: 'TODO: Replace',
65
53
  phone_number_lookup_basic_auth_user_name: 'TODO: Replace',
66
54
  phone_number_lookup_basic_auth_password: 'TODO: Replace',
67
55
  voice_basic_auth_user_name: 'TODO: Replace',
@@ -100,10 +88,10 @@ module Bandwidth
100
88
  @messaging_basic_auth_password = messaging_basic_auth_password
101
89
 
102
90
  # The username to use with basic authentication
103
- @two_factor_auth_basic_auth_user_name = two_factor_auth_basic_auth_user_name
91
+ @multi_factor_auth_basic_auth_user_name = multi_factor_auth_basic_auth_user_name
104
92
 
105
93
  # The password to use with basic authentication
106
- @two_factor_auth_basic_auth_password = two_factor_auth_basic_auth_password
94
+ @multi_factor_auth_basic_auth_password = multi_factor_auth_basic_auth_password
107
95
 
108
96
  # The username to use with basic authentication
109
97
  @phone_number_lookup_basic_auth_user_name = phone_number_lookup_basic_auth_user_name
@@ -132,8 +120,8 @@ module Bandwidth
132
120
  environment: nil, base_url: nil,
133
121
  messaging_basic_auth_user_name: nil,
134
122
  messaging_basic_auth_password: nil,
135
- two_factor_auth_basic_auth_user_name: nil,
136
- two_factor_auth_basic_auth_password: nil,
123
+ multi_factor_auth_basic_auth_user_name: nil,
124
+ multi_factor_auth_basic_auth_password: nil,
137
125
  phone_number_lookup_basic_auth_user_name: nil,
138
126
  phone_number_lookup_basic_auth_password: nil,
139
127
  voice_basic_auth_user_name: nil,
@@ -150,8 +138,8 @@ module Bandwidth
150
138
  base_url ||= self.base_url
151
139
  messaging_basic_auth_user_name ||= self.messaging_basic_auth_user_name
152
140
  messaging_basic_auth_password ||= self.messaging_basic_auth_password
153
- two_factor_auth_basic_auth_user_name ||= self.two_factor_auth_basic_auth_user_name
154
- two_factor_auth_basic_auth_password ||= self.two_factor_auth_basic_auth_password
141
+ multi_factor_auth_basic_auth_user_name ||= self.multi_factor_auth_basic_auth_user_name
142
+ multi_factor_auth_basic_auth_password ||= self.multi_factor_auth_basic_auth_password
155
143
  phone_number_lookup_basic_auth_user_name ||= self.phone_number_lookup_basic_auth_user_name
156
144
  phone_number_lookup_basic_auth_password ||= self.phone_number_lookup_basic_auth_password
157
145
  voice_basic_auth_user_name ||= self.voice_basic_auth_user_name
@@ -166,8 +154,8 @@ module Bandwidth
166
154
  environment: environment, base_url: base_url,
167
155
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
168
156
  messaging_basic_auth_password: messaging_basic_auth_password,
169
- two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
170
- two_factor_auth_basic_auth_password: two_factor_auth_basic_auth_password,
157
+ multi_factor_auth_basic_auth_user_name: multi_factor_auth_basic_auth_user_name,
158
+ multi_factor_auth_basic_auth_password: multi_factor_auth_basic_auth_password,
171
159
  phone_number_lookup_basic_auth_user_name: phone_number_lookup_basic_auth_user_name,
172
160
  phone_number_lookup_basic_auth_password: phone_number_lookup_basic_auth_password,
173
161
  voice_basic_auth_user_name: voice_basic_auth_user_name,
@@ -190,7 +178,7 @@ module Bandwidth
190
178
  Environment::PRODUCTION => {
191
179
  Server::DEFAULT => 'api.bandwidth.com',
192
180
  Server::MESSAGINGDEFAULT => 'https://messaging.bandwidth.com/api/v2',
193
- Server::TWOFACTORAUTHDEFAULT => 'https://mfa.bandwidth.com/api/v1',
181
+ Server::MULTIFACTORAUTHDEFAULT => 'https://mfa.bandwidth.com/api/v1',
194
182
  Server::PHONENUMBERLOOKUPDEFAULT => 'https://numbers.bandwidth.com/api/v1',
195
183
  Server::VOICEDEFAULT => 'https://voice.bandwidth.com',
196
184
  Server::WEBRTCDEFAULT => 'https://api.webrtc.bandwidth.com/v1'
@@ -198,7 +186,7 @@ module Bandwidth
198
186
  Environment::CUSTOM => {
199
187
  Server::DEFAULT => '{base_url}',
200
188
  Server::MESSAGINGDEFAULT => '{base_url}',
201
- Server::TWOFACTORAUTHDEFAULT => '{base_url}',
189
+ Server::MULTIFACTORAUTHDEFAULT => '{base_url}',
202
190
  Server::PHONENUMBERLOOKUPDEFAULT => '{base_url}',
203
191
  Server::VOICEDEFAULT => '{base_url}',
204
192
  Server::WEBRTCDEFAULT => '{base_url}'
@@ -7,13 +7,13 @@ require 'base64'
7
7
 
8
8
  module Bandwidth
9
9
  # Utility class for basic authorization.
10
- class TwoFactorAuthBasicAuth
10
+ class MultiFactorAuthBasicAuth
11
11
  # Add basic authentication to the request.
12
12
  # @param [HttpRequest] The HttpRequest object to which authentication will
13
13
  # be added.
14
14
  def self.apply(config, http_request)
15
- username = config.two_factor_auth_basic_auth_user_name
16
- password = config.two_factor_auth_basic_auth_password
15
+ username = config.multi_factor_auth_basic_auth_user_name
16
+ password = config.multi_factor_auth_basic_auth_password
17
17
  value = Base64.strict_encode64("#{username}:#{password}")
18
18
  header_value = "Basic #{value}"
19
19
  http_request.headers['Authorization'] = header_value
@@ -27,7 +27,7 @@ module Bandwidth
27
27
  methods: retry_methods
28
28
  faraday.adapter Faraday.default_adapter
29
29
  faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
30
- faraday.options[:timeout] = timeout if timeout > 0
30
+ faraday.options[:timeout] = timeout if timeout.positive?
31
31
  end
32
32
  end
33
33
 
@@ -16,12 +16,17 @@ module Bandwidth
16
16
  end
17
17
 
18
18
  def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
19
- backoff_factor: 1, environment: Environment::PRODUCTION,
19
+ backoff_factor: 2,
20
+ retry_statuses: [408, 413, 429, 500, 502, 503, 504, 521, 522, 524, 408, 413, 429, 500, 502, 503, 504, 521, 522, 524],
21
+ retry_methods: %i[get put get put],
22
+ environment: Environment::PRODUCTION,
20
23
  base_url: 'https://www.example.com',
21
24
  messaging_basic_auth_user_name: 'TODO: Replace',
22
25
  messaging_basic_auth_password: 'TODO: Replace',
23
- two_factor_auth_basic_auth_user_name: 'TODO: Replace',
24
- two_factor_auth_basic_auth_password: 'TODO: Replace',
26
+ multi_factor_auth_basic_auth_user_name: 'TODO: Replace',
27
+ multi_factor_auth_basic_auth_password: 'TODO: Replace',
28
+ phone_number_lookup_basic_auth_user_name: 'TODO: Replace',
29
+ phone_number_lookup_basic_auth_password: 'TODO: Replace',
25
30
  voice_basic_auth_user_name: 'TODO: Replace',
26
31
  voice_basic_auth_password: 'TODO: Replace',
27
32
  web_rtc_basic_auth_user_name: 'TODO: Replace',
@@ -32,12 +37,16 @@ module Bandwidth
32
37
  max_retries: max_retries,
33
38
  retry_interval: retry_interval,
34
39
  backoff_factor: backoff_factor,
40
+ retry_statuses: retry_statuses,
41
+ retry_methods: retry_methods,
35
42
  environment: environment,
36
43
  base_url: base_url,
37
44
  messaging_basic_auth_user_name: messaging_basic_auth_user_name,
38
45
  messaging_basic_auth_password: messaging_basic_auth_password,
39
- two_factor_auth_basic_auth_user_name: two_factor_auth_basic_auth_user_name,
40
- two_factor_auth_basic_auth_password: two_factor_auth_basic_auth_password,
46
+ multi_factor_auth_basic_auth_user_name: multi_factor_auth_basic_auth_user_name,
47
+ multi_factor_auth_basic_auth_password: multi_factor_auth_basic_auth_password,
48
+ phone_number_lookup_basic_auth_user_name: phone_number_lookup_basic_auth_user_name,
49
+ phone_number_lookup_basic_auth_password: phone_number_lookup_basic_auth_password,
41
50
  voice_basic_auth_user_name: voice_basic_auth_user_name,
42
51
  voice_basic_auth_password: voice_basic_auth_password,
43
52
  web_rtc_basic_auth_user_name: web_rtc_basic_auth_user_name,