bandwidth-sdk 6.1.0 → 8.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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +89 -12
  3. data/lib/bandwidth.rb +5 -2
  4. data/lib/bandwidth/api_helper.rb +5 -17
  5. data/lib/bandwidth/client.rb +23 -9
  6. data/lib/bandwidth/configuration.rb +54 -18
  7. data/lib/bandwidth/http/auth/{two_factor_auth_basic_auth.rb → multi_factor_auth_basic_auth.rb} +3 -3
  8. data/lib/bandwidth/http/auth/phone_number_lookup_basic_auth.rb +22 -0
  9. data/lib/bandwidth/http/faraday_client.rb +5 -2
  10. data/lib/bandwidth/messaging_lib/messaging/client.rb +14 -5
  11. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +25 -29
  12. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +47 -2
  13. data/lib/bandwidth/messaging_lib/messaging/models/media.rb +5 -75
  14. data/lib/bandwidth/models/base_model.rb +19 -8
  15. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +23 -0
  16. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/client.rb +15 -6
  17. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/base_controller.rb +0 -0
  18. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/mfa_controller.rb +7 -7
  19. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/error_with_request_exception.rb +0 -0
  20. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/forbidden_request_exception.rb +0 -0
  21. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/exceptions/unauthorized_request_exception.rb +0 -0
  22. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_code_request_schema.rb +0 -0
  23. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_messaging_response.rb +0 -0
  24. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_code_response.rb +0 -0
  25. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_verify_request_schema.rb +0 -0
  26. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/models/two_factor_voice_response.rb +0 -0
  27. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +20 -0
  28. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/client.rb +60 -0
  29. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +1551 -0
  30. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +49 -0
  31. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb +29 -0
  32. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +35 -0
  33. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +45 -0
  34. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +74 -0
  35. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +107 -0
  36. data/lib/bandwidth/utilities/date_time_helper.rb +156 -0
  37. data/lib/bandwidth/voice_lib/voice.rb +14 -18
  38. data/lib/bandwidth/voice_lib/voice/client.rb +14 -5
  39. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +248 -230
  40. data/lib/bandwidth/voice_lib/voice/exceptions/{api_error_response_exception.rb → api_error_exception.rb} +2 -2
  41. data/lib/bandwidth/voice_lib/voice/models/{recording_metadata_response.rb → call_recording_metadata.rb} +47 -28
  42. data/lib/bandwidth/voice_lib/voice/models/call_state.rb +232 -0
  43. data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +2 -20
  44. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +2 -20
  45. data/lib/bandwidth/voice_lib/voice/models/{conference_member_detail.rb → conference_member_state.rb} +8 -8
  46. data/lib/bandwidth/voice_lib/voice/models/{conference_recording_metadata_response.rb → conference_recording_metadata.rb} +34 -18
  47. data/lib/bandwidth/voice_lib/voice/models/{conference_detail.rb → conference_state.rb} +22 -14
  48. data/lib/bandwidth/voice_lib/voice/models/{api_create_call_request.rb → create_call_request.rb} +35 -59
  49. data/lib/bandwidth/voice_lib/voice/models/{api_call_response.rb → create_call_response.rb} +28 -23
  50. data/lib/bandwidth/voice_lib/voice/models/{modify_call_recording_state.rb → modify_call_recording_request.rb} +4 -4
  51. data/lib/bandwidth/voice_lib/voice/models/{api_modify_call_request.rb → modify_call_request.rb} +25 -25
  52. data/lib/bandwidth/voice_lib/voice/models/{api_modify_conference_request.rb → modify_conference_request.rb} +11 -11
  53. data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +7 -4
  54. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +4 -7
  55. data/lib/bandwidth/voice_lib/voice/models/{api_transcribe_recording_request.rb → transcribe_recording_request.rb} +8 -8
  56. data/lib/bandwidth/voice_lib/voice/models/{transcription.rb → transcription_metadata.rb} +19 -10
  57. data/lib/bandwidth/web_rtc_lib/utils/web_rtc_transfer.rb +7 -2
  58. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +14 -5
  59. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +14 -14
  60. data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +2 -2
  61. data/test/controllers/controller_test_base.rb +21 -0
  62. data/test/http_response_catcher.rb +19 -0
  63. data/test/integration/test_integration.rb +39 -13
  64. data/test/test_helper.rb +94 -0
  65. metadata +47 -37
  66. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +0 -22
  67. data/lib/bandwidth/voice_lib/voice/models/api_call_state_response.rb +0 -164
  68. data/lib/bandwidth/voice_lib/voice/models/disconnect_cause_enum.rb +0 -47
  69. data/lib/bandwidth/voice_lib/voice/models/state2_enum.rb +0 -20
  70. data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +0 -29
  71. data/lib/bandwidth/voice_lib/voice/models/status3_enum.rb +0 -32
@@ -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
@@ -0,0 +1,22 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'base64'
7
+
8
+ module Bandwidth
9
+ # Utility class for basic authorization.
10
+ class PhoneNumberLookupBasicAuth
11
+ # Add basic authentication to the request.
12
+ # @param [HttpRequest] The HttpRequest object to which authentication will
13
+ # be added.
14
+ def self.apply(config, http_request)
15
+ username = config.phone_number_lookup_basic_auth_user_name
16
+ password = config.phone_number_lookup_basic_auth_password
17
+ value = Base64.strict_encode64("#{username}:#{password}")
18
+ header_value = "Basic #{value}"
19
+ http_request.headers['Authorization'] = header_value
20
+ end
21
+ end
22
+ end
@@ -11,7 +11,8 @@ module Bandwidth
11
11
  class FaradayClient < HttpClient
12
12
  # The constructor.
13
13
  def initialize(timeout:, max_retries:, retry_interval:,
14
- backoff_factor:, cache: false, verify: true)
14
+ backoff_factor:, retry_statuses:, retry_methods:,
15
+ cache: false, verify: true)
15
16
  @connection = Faraday.new do |faraday|
16
17
  faraday.use Faraday::HttpCache, serializer: Marshal if cache
17
18
  faraday.use FaradayMiddleware::FollowRedirects
@@ -21,7 +22,9 @@ module Bandwidth
21
22
  faraday.ssl[:ca_file] = Certifi.where
22
23
  faraday.ssl[:verify] = verify
23
24
  faraday.request :retry, max: max_retries, interval: retry_interval,
24
- backoff_factor: backoff_factor
25
+ backoff_factor: backoff_factor,
26
+ retry_statuses: retry_statuses,
27
+ methods: retry_methods
25
28
  faraday.adapter Faraday.default_adapter
26
29
  faraday.options[:params_encoder] = Faraday::FlatParamsEncoder
27
30
  faraday.options[:timeout] = timeout if timeout > 0
@@ -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,
@@ -12,18 +12,18 @@ module Messaging
12
12
  end
13
13
 
14
14
  # listMedia
15
- # @param [String] user_id Required parameter: User's account ID
15
+ # @param [String] account_id Required parameter: User's account ID
16
16
  # @param [String] continuation_token Optional parameter: Continuation token
17
17
  # used to retrieve subsequent media.
18
18
  # @return [List of Media] response from the API call
19
- def list_media(user_id,
19
+ def list_media(account_id,
20
20
  continuation_token: nil)
21
21
  # Prepare query url.
22
22
  _query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
23
- _query_builder << '/users/{userId}/media'
23
+ _query_builder << '/users/{accountId}/media'
24
24
  _query_builder = APIHelper.append_url_with_template_parameters(
25
25
  _query_builder,
26
- 'userId' => { 'value' => user_id, 'encode' => false }
26
+ 'accountId' => { 'value' => account_id, 'encode' => false }
27
27
  )
28
28
  _query_url = APIHelper.clean_url _query_builder
29
29
 
@@ -84,17 +84,17 @@ module Messaging
84
84
  end
85
85
 
86
86
  # getMedia
87
- # @param [String] user_id Required parameter: User's account ID
87
+ # @param [String] account_id Required parameter: User's account ID
88
88
  # @param [String] media_id Required parameter: Media ID to retrieve
89
89
  # @return [Binary] response from the API call
90
- def get_media(user_id,
90
+ def get_media(account_id,
91
91
  media_id)
92
92
  # Prepare query url.
93
93
  _query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
94
- _query_builder << '/users/{userId}/media/{mediaId}'
94
+ _query_builder << '/users/{accountId}/media/{mediaId}'
95
95
  _query_builder = APIHelper.append_url_with_template_parameters(
96
96
  _query_builder,
97
- 'userId' => { 'value' => user_id, 'encode' => false },
97
+ 'accountId' => { 'value' => account_id, 'encode' => false },
98
98
  'mediaId' => { 'value' => media_id, 'encode' => false }
99
99
  )
100
100
  _query_url = APIHelper.clean_url _query_builder
@@ -147,11 +147,9 @@ module Messaging
147
147
  end
148
148
 
149
149
  # uploadMedia
150
- # @param [String] user_id Required parameter: User's account ID
150
+ # @param [String] account_id Required parameter: User's account ID
151
151
  # @param [String] media_id Required parameter: The user supplied custom
152
152
  # media ID
153
- # @param [Long] content_length Required parameter: The size of the
154
- # entity-body
155
153
  # @param [File | UploadIO] body Required parameter: Example:
156
154
  # @param [String] content_type Optional parameter: The media type of the
157
155
  # entity-body
@@ -159,18 +157,17 @@ module Messaging
159
157
  # used to specify directives that MUST be obeyed by all caching mechanisms
160
158
  # along the request/response chain.
161
159
  # @return [void] response from the API call
162
- def upload_media(user_id,
160
+ def upload_media(account_id,
163
161
  media_id,
164
- content_length,
165
162
  body,
166
163
  content_type: 'application/octet-stream',
167
164
  cache_control: nil)
168
165
  # Prepare query url.
169
166
  _query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
170
- _query_builder << '/users/{userId}/media/{mediaId}'
167
+ _query_builder << '/users/{accountId}/media/{mediaId}'
171
168
  _query_builder = APIHelper.append_url_with_template_parameters(
172
169
  _query_builder,
173
- 'userId' => { 'value' => user_id, 'encode' => false },
170
+ 'accountId' => { 'value' => account_id, 'encode' => false },
174
171
  'mediaId' => { 'value' => media_id, 'encode' => false }
175
172
  )
176
173
  _query_url = APIHelper.clean_url _query_builder
@@ -187,7 +184,6 @@ module Messaging
187
184
  _headers = {
188
185
  'content-type' => body_content_type,
189
186
  'content-length' => body_wrapper.size.to_s,
190
- 'Content-Length' => content_length,
191
187
  'Cache-Control' => cache_control
192
188
  }
193
189
 
@@ -239,17 +235,17 @@ module Messaging
239
235
  end
240
236
 
241
237
  # deleteMedia
242
- # @param [String] user_id Required parameter: User's account ID
238
+ # @param [String] account_id Required parameter: User's account ID
243
239
  # @param [String] media_id Required parameter: The media ID to delete
244
240
  # @return [void] response from the API call
245
- def delete_media(user_id,
241
+ def delete_media(account_id,
246
242
  media_id)
247
243
  # Prepare query url.
248
244
  _query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
249
- _query_builder << '/users/{userId}/media/{mediaId}'
245
+ _query_builder << '/users/{accountId}/media/{mediaId}'
250
246
  _query_builder = APIHelper.append_url_with_template_parameters(
251
247
  _query_builder,
252
- 'userId' => { 'value' => user_id, 'encode' => false },
248
+ 'accountId' => { 'value' => account_id, 'encode' => false },
253
249
  'mediaId' => { 'value' => media_id, 'encode' => false }
254
250
  )
255
251
  _query_url = APIHelper.clean_url _query_builder
@@ -300,7 +296,7 @@ module Messaging
300
296
  end
301
297
 
302
298
  # getMessages
303
- # @param [String] user_id Required parameter: User's account ID
299
+ # @param [String] account_id Required parameter: User's account ID
304
300
  # @param [String] message_id Optional parameter: The ID of the message to
305
301
  # search for. Special characters need to be encoded using URL encoding
306
302
  # @param [String] source_tn Optional parameter: The phone number that sent
@@ -309,7 +305,7 @@ module Messaging
309
305
  # received the message
310
306
  # @param [String] message_status Optional parameter: The status of the
311
307
  # message. One of RECEIVED, QUEUED, SENDING, SENT, FAILED, DELIVERED,
312
- # DLR_EXPIRED
308
+ # ACCEPTED, UNDELIVERED
313
309
  # @param [Integer] error_code Optional parameter: The error code of the
314
310
  # message
315
311
  # @param [String] from_date_time Optional parameter: The start of the date
@@ -324,7 +320,7 @@ module Messaging
324
320
  # in search result. Default 100. The sum of limit and after cannot be more
325
321
  # than 10000
326
322
  # @return [BandwidthMessagesList] response from the API call
327
- def get_messages(user_id,
323
+ def get_messages(account_id,
328
324
  message_id: nil,
329
325
  source_tn: nil,
330
326
  destination_tn: nil,
@@ -336,10 +332,10 @@ module Messaging
336
332
  limit: nil)
337
333
  # Prepare query url.
338
334
  _query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
339
- _query_builder << '/users/{userId}/messages'
335
+ _query_builder << '/users/{accountId}/messages'
340
336
  _query_builder = APIHelper.append_url_with_template_parameters(
341
337
  _query_builder,
342
- 'userId' => { 'value' => user_id, 'encode' => false }
338
+ 'accountId' => { 'value' => account_id, 'encode' => false }
343
339
  )
344
340
  _query_builder = APIHelper.append_url_with_query_parameters(
345
341
  _query_builder,
@@ -410,17 +406,17 @@ module Messaging
410
406
  end
411
407
 
412
408
  # createMessage
413
- # @param [String] user_id Required parameter: User's account ID
409
+ # @param [String] account_id Required parameter: User's account ID
414
410
  # @param [MessageRequest] body Required parameter: Example:
415
411
  # @return [BandwidthMessage] response from the API call
416
- def create_message(user_id,
412
+ def create_message(account_id,
417
413
  body)
418
414
  # Prepare query url.
419
415
  _query_builder = config.get_base_uri(Server::MESSAGINGDEFAULT)
420
- _query_builder << '/users/{userId}/messages'
416
+ _query_builder << '/users/{accountId}/messages'
421
417
  _query_builder = APIHelper.append_url_with_template_parameters(
422
418
  _query_builder,
423
- 'userId' => { 'value' => user_id, 'encode' => false }
419
+ 'accountId' => { 'value' => account_id, 'encode' => false }
424
420
  )
425
421
  _query_url = APIHelper.clean_url _query_builder
426
422
 
@@ -50,6 +50,26 @@ module Bandwidth
50
50
  # @return [String]
51
51
  attr_accessor :carrier_name
52
52
 
53
+ # The size of the message including message content and headers
54
+ # @return [Integer]
55
+ attr_accessor :message_size
56
+
57
+ # The length of the message content
58
+ # @return [Integer]
59
+ attr_accessor :message_length
60
+
61
+ # The number of attachments the message has
62
+ # @return [Integer]
63
+ attr_accessor :attachment_count
64
+
65
+ # The number of recipients the message has
66
+ # @return [Integer]
67
+ attr_accessor :recipient_count
68
+
69
+ # The campaign class of the message, if it has one
70
+ # @return [String]
71
+ attr_accessor :campaign_class
72
+
53
73
  # A mapping from model property names to API property names.
54
74
  def self.names
55
75
  @_hash = {} if @_hash.nil?
@@ -64,6 +84,11 @@ module Bandwidth
64
84
  @_hash['error_code'] = 'errorCode'
65
85
  @_hash['receive_time'] = 'receiveTime'
66
86
  @_hash['carrier_name'] = 'carrierName'
87
+ @_hash['message_size'] = 'messageSize'
88
+ @_hash['message_length'] = 'messageLength'
89
+ @_hash['attachment_count'] = 'attachmentCount'
90
+ @_hash['recipient_count'] = 'recipientCount'
91
+ @_hash['campaign_class'] = 'campaignClass'
67
92
  @_hash
68
93
  end
69
94
 
@@ -77,7 +102,12 @@ module Bandwidth
77
102
  segment_count = nil,
78
103
  error_code = nil,
79
104
  receive_time = nil,
80
- carrier_name = nil)
105
+ carrier_name = nil,
106
+ message_size = nil,
107
+ message_length = nil,
108
+ attachment_count = nil,
109
+ recipient_count = nil,
110
+ campaign_class = nil)
81
111
  @message_id = message_id
82
112
  @account_id = account_id
83
113
  @source_tn = source_tn
@@ -89,6 +119,11 @@ module Bandwidth
89
119
  @error_code = error_code
90
120
  @receive_time = receive_time
91
121
  @carrier_name = carrier_name
122
+ @message_size = message_size
123
+ @message_length = message_length
124
+ @attachment_count = attachment_count
125
+ @recipient_count = recipient_count
126
+ @campaign_class = campaign_class
92
127
  end
93
128
 
94
129
  # Creates an instance of the object from a hash.
@@ -107,6 +142,11 @@ module Bandwidth
107
142
  error_code = hash['errorCode']
108
143
  receive_time = hash['receiveTime']
109
144
  carrier_name = hash['carrierName']
145
+ message_size = hash['messageSize']
146
+ message_length = hash['messageLength']
147
+ attachment_count = hash['attachmentCount']
148
+ recipient_count = hash['recipientCount']
149
+ campaign_class = hash['campaignClass']
110
150
 
111
151
  # Create object from extracted values.
112
152
  BandwidthMessageItem.new(message_id,
@@ -119,7 +159,12 @@ module Bandwidth
119
159
  segment_count,
120
160
  error_code,
121
161
  receive_time,
122
- carrier_name)
162
+ carrier_name,
163
+ message_size,
164
+ message_length,
165
+ attachment_count,
166
+ recipient_count,
167
+ campaign_class)
123
168
  end
124
169
  end
125
170
  end
@@ -6,82 +6,33 @@
6
6
  module Bandwidth
7
7
  # Media Model.
8
8
  class Media < BaseModel
9
- # TODO: Write general description for this method
10
- # @return [Object]
11
- attr_accessor :input_stream
12
-
13
9
  # TODO: Write general description for this method
14
10
  # @return [String]
15
11
  attr_accessor :content
16
12
 
17
13
  # TODO: Write general description for this method
18
- # @return [String]
19
- attr_accessor :url
20
-
21
- # TODO: Write general description for this method
22
- # @return [String]
14
+ # @return [Integer]
23
15
  attr_accessor :content_length
24
16
 
25
17
  # TODO: Write general description for this method
26
18
  # @return [String]
27
- attr_accessor :content_type
28
-
29
- # TODO: Write general description for this method
30
- # @return [List of Tag]
31
- attr_accessor :tags
32
-
33
- # User's account ID
34
- # @return [String]
35
- attr_accessor :user_id
36
-
37
- # User's account ID
38
- # @return [String]
39
19
  attr_accessor :media_name
40
20
 
41
- # User's account ID
42
- # @return [String]
43
- attr_accessor :media_id
44
-
45
- # User's account ID
46
- # @return [String]
47
- attr_accessor :cache_control
48
-
49
21
  # A mapping from model property names to API property names.
50
22
  def self.names
51
23
  @_hash = {} if @_hash.nil?
52
- @_hash['input_stream'] = 'inputStream'
53
24
  @_hash['content'] = 'content'
54
- @_hash['url'] = 'url'
55
25
  @_hash['content_length'] = 'contentLength'
56
- @_hash['content_type'] = 'contentType'
57
- @_hash['tags'] = 'tags'
58
- @_hash['user_id'] = 'userId'
59
26
  @_hash['media_name'] = 'mediaName'
60
- @_hash['media_id'] = 'mediaId'
61
- @_hash['cache_control'] = 'cacheControl'
62
27
  @_hash
63
28
  end
64
29
 
65
- def initialize(input_stream = nil,
66
- content = nil,
67
- url = nil,
30
+ def initialize(content = nil,
68
31
  content_length = nil,
69
- content_type = nil,
70
- tags = nil,
71
- user_id = nil,
72
- media_name = nil,
73
- media_id = nil,
74
- cache_control = nil)
75
- @input_stream = input_stream
32
+ media_name = nil)
76
33
  @content = content
77
- @url = url
78
34
  @content_length = content_length
79
- @content_type = content_type
80
- @tags = tags
81
- @user_id = user_id
82
35
  @media_name = media_name
83
- @media_id = media_id
84
- @cache_control = cache_control
85
36
  end
86
37
 
87
38
  # Creates an instance of the object from a hash.
@@ -89,35 +40,14 @@ module Bandwidth
89
40
  return nil unless hash
90
41
 
91
42
  # Extract variables from the hash.
92
- input_stream = hash['inputStream']
93
43
  content = hash['content']
94
- url = hash['url']
95
44
  content_length = hash['contentLength']
96
- content_type = hash['contentType']
97
- # Parameter is an array, so we need to iterate through it
98
- tags = nil
99
- unless hash['tags'].nil?
100
- tags = []
101
- hash['tags'].each do |structure|
102
- tags << (Tag.from_hash(structure) if structure)
103
- end
104
- end
105
- user_id = hash['userId']
106
45
  media_name = hash['mediaName']
107
- media_id = hash['mediaId']
108
- cache_control = hash['cacheControl']
109
46
 
110
47
  # Create object from extracted values.
111
- Media.new(input_stream,
112
- content,
113
- url,
48
+ Media.new(content,
114
49
  content_length,
115
- content_type,
116
- tags,
117
- user_id,
118
- media_name,
119
- media_id,
120
- cache_control)
50
+ media_name)
121
51
  end
122
52
  end
123
53
  end