bandwidth-sdk 5.0.0 → 7.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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +90 -13
  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.rb +1 -0
  11. data/lib/bandwidth/messaging_lib/messaging/client.rb +14 -5
  12. data/lib/bandwidth/messaging_lib/messaging/controllers/api_controller.rb +25 -29
  13. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message.rb +11 -2
  14. data/lib/bandwidth/messaging_lib/messaging/models/bandwidth_message_item.rb +47 -2
  15. data/lib/bandwidth/messaging_lib/messaging/models/media.rb +5 -75
  16. data/lib/bandwidth/messaging_lib/messaging/models/message_request.rb +13 -2
  17. data/lib/bandwidth/messaging_lib/messaging/models/priority_enum.rb +19 -0
  18. data/lib/bandwidth/models/base_model.rb +19 -8
  19. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth.rb +23 -0
  20. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/client.rb +60 -0
  21. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → multi_factor_auth_lib/multi_factor_auth}/controllers/base_controller.rb +0 -0
  22. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth/controllers/api_controller.rb → multi_factor_auth_lib/multi_factor_auth/controllers/mfa_controller.rb} +69 -18
  23. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/error_with_request_exception.rb +34 -0
  24. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/forbidden_request_exception.rb +29 -0
  25. data/lib/bandwidth/multi_factor_auth_lib/multi_factor_auth/exceptions/unauthorized_request_exception.rb +29 -0
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup.rb +20 -0
  32. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth → phone_number_lookup_lib/phone_number_lookup}/client.rb +15 -6
  33. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/api_controller.rb +1551 -0
  34. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/controllers/base_controller.rb +49 -0
  35. data/lib/bandwidth/{two_factor_auth_lib/two_factor_auth/exceptions/invalid_request_exception.rb → phone_number_lookup_lib/phone_number_lookup/exceptions/accounts_tnlookup400_error_exception.rb} +5 -5
  36. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_request.rb +35 -0
  37. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_response.rb +45 -0
  38. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/order_status.rb +74 -0
  39. data/lib/bandwidth/phone_number_lookup_lib/phone_number_lookup/models/result.rb +107 -0
  40. data/lib/bandwidth/utilities/date_time_helper.rb +156 -0
  41. data/lib/bandwidth/voice_lib/voice.rb +14 -18
  42. data/lib/bandwidth/voice_lib/voice/client.rb +14 -5
  43. data/lib/bandwidth/voice_lib/voice/controllers/api_controller.rb +248 -230
  44. data/lib/bandwidth/voice_lib/voice/exceptions/{api_error_response_exception.rb → api_error_exception.rb} +2 -2
  45. data/lib/bandwidth/voice_lib/voice/models/{recording_metadata_response.rb → call_recording_metadata.rb} +47 -28
  46. data/lib/bandwidth/voice_lib/voice/models/call_state.rb +232 -0
  47. data/lib/bandwidth/voice_lib/voice/models/callback_method_enum.rb +2 -20
  48. data/lib/bandwidth/voice_lib/voice/models/conference_event_method_enum.rb +2 -20
  49. data/lib/bandwidth/voice_lib/voice/models/{conference_member_detail.rb → conference_member_state.rb} +8 -8
  50. data/lib/bandwidth/voice_lib/voice/models/{conference_recording_metadata_response.rb → conference_recording_metadata.rb} +34 -18
  51. data/lib/bandwidth/voice_lib/voice/models/{conference_detail.rb → conference_state.rb} +22 -14
  52. data/lib/bandwidth/voice_lib/voice/models/{api_create_call_request.rb → create_call_request.rb} +35 -59
  53. data/lib/bandwidth/voice_lib/voice/models/{api_call_response.rb → create_call_response.rb} +28 -23
  54. data/lib/bandwidth/voice_lib/voice/models/{modify_call_recording_state.rb → modify_call_recording_request.rb} +4 -4
  55. data/lib/bandwidth/voice_lib/voice/models/{api_modify_call_request.rb → modify_call_request.rb} +25 -25
  56. data/lib/bandwidth/voice_lib/voice/models/{api_modify_conference_request.rb → modify_conference_request.rb} +11 -11
  57. data/lib/bandwidth/voice_lib/voice/models/state1_enum.rb +7 -4
  58. data/lib/bandwidth/voice_lib/voice/models/state_enum.rb +4 -7
  59. data/lib/bandwidth/voice_lib/voice/models/{api_transcribe_recording_request.rb → transcribe_recording_request.rb} +8 -8
  60. data/lib/bandwidth/voice_lib/voice/models/{transcription.rb → transcription_metadata.rb} +19 -10
  61. data/lib/bandwidth/web_rtc_lib/web_rtc.rb +1 -0
  62. data/lib/bandwidth/web_rtc_lib/web_rtc/client.rb +14 -5
  63. data/lib/bandwidth/web_rtc_lib/web_rtc/controllers/api_controller.rb +14 -14
  64. data/lib/bandwidth/web_rtc_lib/web_rtc/models/device_api_version_enum.rb +17 -0
  65. data/lib/bandwidth/web_rtc_lib/web_rtc/models/participant.rb +11 -2
  66. data/test/integration/test_integration.rb +583 -0
  67. metadata +47 -35
  68. data/lib/bandwidth/two_factor_auth_lib/two_factor_auth.rb +0 -20
  69. data/lib/bandwidth/voice_lib/voice/models/api_call_state_response.rb +0 -164
  70. data/lib/bandwidth/voice_lib/voice/models/disconnect_cause_enum.rb +0 -47
  71. data/lib/bandwidth/voice_lib/voice/models/state2_enum.rb +0 -20
  72. data/lib/bandwidth/voice_lib/voice/models/status1_enum.rb +0 -29
  73. data/lib/bandwidth/voice_lib/voice/models/status3_enum.rb +0 -32
@@ -32,6 +32,12 @@ module Bandwidth
32
32
  # @return [String]
33
33
  attr_accessor :tag
34
34
 
35
+ # The message's priority, currently for toll-free or short code SMS only.
36
+ # Messages with a priority value of `"high"` are given preference over your
37
+ # other traffic.
38
+ # @return [PriorityEnum]
39
+ attr_accessor :priority
40
+
35
41
  # A mapping from model property names to API property names.
36
42
  def self.names
37
43
  @_hash = {} if @_hash.nil?
@@ -41,6 +47,7 @@ module Bandwidth
41
47
  @_hash['text'] = 'text'
42
48
  @_hash['media'] = 'media'
43
49
  @_hash['tag'] = 'tag'
50
+ @_hash['priority'] = 'priority'
44
51
  @_hash
45
52
  end
46
53
 
@@ -49,13 +56,15 @@ module Bandwidth
49
56
  from = nil,
50
57
  text = nil,
51
58
  media = nil,
52
- tag = nil)
59
+ tag = nil,
60
+ priority = nil)
53
61
  @application_id = application_id
54
62
  @to = to
55
63
  @from = from
56
64
  @text = text
57
65
  @media = media
58
66
  @tag = tag
67
+ @priority = priority
59
68
  end
60
69
 
61
70
  # Creates an instance of the object from a hash.
@@ -69,6 +78,7 @@ module Bandwidth
69
78
  text = hash['text']
70
79
  media = hash['media']
71
80
  tag = hash['tag']
81
+ priority = hash['priority']
72
82
 
73
83
  # Create object from extracted values.
74
84
  MessageRequest.new(application_id,
@@ -76,7 +86,8 @@ module Bandwidth
76
86
  from,
77
87
  text,
78
88
  media,
79
- tag)
89
+ tag,
90
+ priority)
80
91
  end
81
92
  end
82
93
  end
@@ -0,0 +1,19 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ # The message's priority, currently for toll-free or short code SMS only.
8
+ # Messages with a priority value of `"high"` are given preference over your
9
+ # other traffic.
10
+ class PriorityEnum
11
+ PRIORITY_ENUM = [
12
+ # TODO: Write general description for DEFAULT
13
+ DEFAULT = 'default'.freeze,
14
+
15
+ # TODO: Write general description for HIGH
16
+ HIGH = 'high'.freeze
17
+ ].freeze
18
+ end
19
+ end
@@ -13,15 +13,26 @@ module Bandwidth
13
13
  value = instance_variable_get(name)
14
14
  name = name[1..-1]
15
15
  key = self.class.names.key?(name) ? self.class.names[name] : name
16
- if value.instance_of? Array
17
- hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
18
- elsif value.instance_of? Hash
19
- hash[key] = {}
20
- value.each do |k, v|
21
- hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
16
+
17
+ hash[key] = nil
18
+ unless value.nil?
19
+ if respond_to?("to_#{name}")
20
+ if (value.instance_of? Array) || (value.instance_of? Hash)
21
+ params = [hash, key]
22
+ hash[key] = send("to_#{name}", *params)
23
+ else
24
+ hash[key] = send("to_#{name}")
25
+ end
26
+ elsif value.instance_of? Array
27
+ hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
28
+ elsif value.instance_of? Hash
29
+ hash[key] = {}
30
+ value.each do |k, v|
31
+ hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
32
+ end
33
+ else
34
+ hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
22
35
  end
23
- else
24
- hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
25
36
  end
26
37
  end
27
38
  hash
@@ -0,0 +1,23 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+
7
+ require_relative 'multi_factor_auth/client.rb'
8
+
9
+ # Models
10
+ require_relative 'multi_factor_auth/models/two_factor_code_request_schema.rb'
11
+ require_relative 'multi_factor_auth/models/two_factor_voice_response.rb'
12
+ require_relative 'multi_factor_auth/models/two_factor_messaging_response.rb'
13
+ require_relative 'multi_factor_auth/models/two_factor_verify_request_schema.rb'
14
+ require_relative 'multi_factor_auth/models/two_factor_verify_code_response.rb'
15
+
16
+ # Exceptions
17
+ require_relative 'multi_factor_auth/exceptions/error_with_request_exception.rb'
18
+ require_relative 'multi_factor_auth/exceptions/unauthorized_request' \
19
+ '_exception.rb'
20
+ require_relative 'multi_factor_auth/exceptions/forbidden_request_exception.rb'
21
+ # Controllers
22
+ require_relative 'multi_factor_auth/controllers/base_controller.rb'
23
+ require_relative 'multi_factor_auth/controllers/mfa_controller.rb'
@@ -0,0 +1,60 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ module MultiFactorAuth
8
+ # bandwidth client class.
9
+ class Client
10
+ attr_reader :config
11
+
12
+ # Access to mfa controller.
13
+ # @return [MFAController] Returns the controller instance.
14
+ def mfa
15
+ @mfa ||= MFAController.new config
16
+ end
17
+
18
+ def initialize(timeout: 60, max_retries: 0, retry_interval: 1,
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,
23
+ base_url: 'https://www.example.com',
24
+ messaging_basic_auth_user_name: 'TODO: Replace',
25
+ messaging_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',
30
+ voice_basic_auth_user_name: 'TODO: Replace',
31
+ voice_basic_auth_password: 'TODO: Replace',
32
+ web_rtc_basic_auth_user_name: 'TODO: Replace',
33
+ web_rtc_basic_auth_password: 'TODO: Replace',
34
+ config: nil)
35
+ @config = if config.nil?
36
+ Configuration.new(timeout: timeout,
37
+ max_retries: max_retries,
38
+ retry_interval: retry_interval,
39
+ backoff_factor: backoff_factor,
40
+ retry_statuses: retry_statuses,
41
+ retry_methods: retry_methods,
42
+ environment: environment,
43
+ base_url: base_url,
44
+ messaging_basic_auth_user_name: messaging_basic_auth_user_name,
45
+ messaging_basic_auth_password: messaging_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,
50
+ voice_basic_auth_user_name: voice_basic_auth_user_name,
51
+ voice_basic_auth_password: voice_basic_auth_password,
52
+ web_rtc_basic_auth_user_name: web_rtc_basic_auth_user_name,
53
+ web_rtc_basic_auth_password: web_rtc_basic_auth_password)
54
+ else
55
+ config
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -4,14 +4,14 @@
4
4
  # ( https://apimatic.io ).
5
5
 
6
6
  module Bandwidth
7
- module TwoFactorAuth
8
- # APIController
9
- class APIController < BaseController
7
+ module MultiFactorAuth
8
+ # MFAController
9
+ class MFAController < BaseController
10
10
  def initialize(config, http_call_back: nil)
11
11
  super(config, http_call_back: http_call_back)
12
12
  end
13
13
 
14
- # Two-Factor authentication with Bandwidth Voice services
14
+ # Allows a user to send a MFA code through a phone call
15
15
  # @param [String] account_id Required parameter: Bandwidth Account ID with
16
16
  # Voice service enabled
17
17
  # @param [TwoFactorCodeRequestSchema] body Required parameter: Example:
@@ -19,7 +19,7 @@ module TwoFactorAuth
19
19
  def create_voice_two_factor(account_id,
20
20
  body)
21
21
  # Prepare query url.
22
- _query_builder = config.get_base_uri(Server::TWOFACTORAUTHDEFAULT)
22
+ _query_builder = config.get_base_uri(Server::MULTIFACTORAUTHDEFAULT)
23
23
  _query_builder << '/accounts/{accountId}/code/voice'
24
24
  _query_builder = APIHelper.append_url_with_template_parameters(
25
25
  _query_builder,
@@ -39,13 +39,28 @@ module TwoFactorAuth
39
39
  headers: _headers,
40
40
  parameters: body.to_json
41
41
  )
42
- TwoFactorAuthBasicAuth.apply(config, _request)
42
+ MultiFactorAuthBasicAuth.apply(config, _request)
43
43
  _response = execute_request(_request)
44
44
 
45
45
  # Validate response against endpoint and global error codes.
46
46
  if _response.status_code == 400
47
- raise InvalidRequestException.new(
48
- 'client request error',
47
+ raise ErrorWithRequestException.new(
48
+ 'If there is any issue with values passed in by the user',
49
+ _response
50
+ )
51
+ elsif _response.status_code == 401
52
+ raise UnauthorizedRequestException.new(
53
+ 'Authentication is either incorrect or not present',
54
+ _response
55
+ )
56
+ elsif _response.status_code == 403
57
+ raise ForbiddenRequestException.new(
58
+ 'The user is not authorized to access this resource',
59
+ _response
60
+ )
61
+ elsif _response.status_code == 500
62
+ raise ErrorWithRequestException.new(
63
+ 'An internal server error occurred',
49
64
  _response
50
65
  )
51
66
  end
@@ -58,7 +73,7 @@ module TwoFactorAuth
58
73
  )
59
74
  end
60
75
 
61
- # Two-Factor authentication with Bandwidth messaging services
76
+ # Allows a user to send a MFA code through a text message (SMS)
62
77
  # @param [String] account_id Required parameter: Bandwidth Account ID with
63
78
  # Messaging service enabled
64
79
  # @param [TwoFactorCodeRequestSchema] body Required parameter: Example:
@@ -66,7 +81,7 @@ module TwoFactorAuth
66
81
  def create_messaging_two_factor(account_id,
67
82
  body)
68
83
  # Prepare query url.
69
- _query_builder = config.get_base_uri(Server::TWOFACTORAUTHDEFAULT)
84
+ _query_builder = config.get_base_uri(Server::MULTIFACTORAUTHDEFAULT)
70
85
  _query_builder << '/accounts/{accountId}/code/messaging'
71
86
  _query_builder = APIHelper.append_url_with_template_parameters(
72
87
  _query_builder,
@@ -86,13 +101,28 @@ module TwoFactorAuth
86
101
  headers: _headers,
87
102
  parameters: body.to_json
88
103
  )
89
- TwoFactorAuthBasicAuth.apply(config, _request)
104
+ MultiFactorAuthBasicAuth.apply(config, _request)
90
105
  _response = execute_request(_request)
91
106
 
92
107
  # Validate response against endpoint and global error codes.
93
108
  if _response.status_code == 400
94
- raise InvalidRequestException.new(
95
- 'client request error',
109
+ raise ErrorWithRequestException.new(
110
+ 'If there is any issue with values passed in by the user',
111
+ _response
112
+ )
113
+ elsif _response.status_code == 401
114
+ raise UnauthorizedRequestException.new(
115
+ 'Authentication is either incorrect or not present',
116
+ _response
117
+ )
118
+ elsif _response.status_code == 403
119
+ raise ForbiddenRequestException.new(
120
+ 'The user is not authorized to access this resource',
121
+ _response
122
+ )
123
+ elsif _response.status_code == 500
124
+ raise ErrorWithRequestException.new(
125
+ 'An internal server error occurred',
96
126
  _response
97
127
  )
98
128
  end
@@ -106,7 +136,7 @@ module TwoFactorAuth
106
136
  )
107
137
  end
108
138
 
109
- # Verify a previously sent two-factor authentication code
139
+ # Allows a user to verify an MFA code
110
140
  # @param [String] account_id Required parameter: Bandwidth Account ID with
111
141
  # Two-Factor enabled
112
142
  # @param [TwoFactorVerifyRequestSchema] body Required parameter: Example:
@@ -114,7 +144,7 @@ module TwoFactorAuth
114
144
  def create_verify_two_factor(account_id,
115
145
  body)
116
146
  # Prepare query url.
117
- _query_builder = config.get_base_uri(Server::TWOFACTORAUTHDEFAULT)
147
+ _query_builder = config.get_base_uri(Server::MULTIFACTORAUTHDEFAULT)
118
148
  _query_builder << '/accounts/{accountId}/code/verify'
119
149
  _query_builder = APIHelper.append_url_with_template_parameters(
120
150
  _query_builder,
@@ -134,13 +164,34 @@ module TwoFactorAuth
134
164
  headers: _headers,
135
165
  parameters: body.to_json
136
166
  )
137
- TwoFactorAuthBasicAuth.apply(config, _request)
167
+ MultiFactorAuthBasicAuth.apply(config, _request)
138
168
  _response = execute_request(_request)
139
169
 
140
170
  # Validate response against endpoint and global error codes.
141
171
  if _response.status_code == 400
142
- raise InvalidRequestException.new(
143
- 'client request error',
172
+ raise ErrorWithRequestException.new(
173
+ 'If there is any issue with values passed in by the user',
174
+ _response
175
+ )
176
+ elsif _response.status_code == 401
177
+ raise UnauthorizedRequestException.new(
178
+ 'Authentication is either incorrect or not present',
179
+ _response
180
+ )
181
+ elsif _response.status_code == 403
182
+ raise ForbiddenRequestException.new(
183
+ 'The user is not authorized to access this resource',
184
+ _response
185
+ )
186
+ elsif _response.status_code == 429
187
+ raise ErrorWithRequestException.new(
188
+ 'The user has made too many bad requests and is temporarily locked' \
189
+ ' out',
190
+ _response
191
+ )
192
+ elsif _response.status_code == 500
193
+ raise ErrorWithRequestException.new(
194
+ 'An internal server error occurred',
144
195
  _response
145
196
  )
146
197
  end
@@ -0,0 +1,34 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ # ErrorWithRequest class.
8
+ class ErrorWithRequestException < APIException
9
+ # An error message pertaining to what the issue could be
10
+ # @return [String]
11
+ attr_accessor :error
12
+
13
+ # The associated requestId from AWS
14
+ # @return [String]
15
+ attr_accessor :request_id
16
+
17
+ # The constructor.
18
+ # @param [String] The reason for raising an exception.
19
+ # @param [HttpResponse] The HttpReponse of the API call.
20
+ def initialize(reason, response)
21
+ super(reason, response)
22
+ hash = APIHelper.json_deserialize(@response.raw_body)
23
+ unbox(hash)
24
+ end
25
+
26
+ # Populates this object by extracting properties from a hash.
27
+ # @param [Hash] The deserialized response sent by the server in the
28
+ # response body.
29
+ def unbox(hash)
30
+ @error = hash['error']
31
+ @request_id = hash['requestId']
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,29 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ # ForbiddenRequest class.
8
+ class ForbiddenRequestException < APIException
9
+ # The message containing the reason behind the request being forbidden
10
+ # @return [String]
11
+ attr_accessor :message
12
+
13
+ # The constructor.
14
+ # @param [String] The reason for raising an exception.
15
+ # @param [HttpResponse] The HttpReponse of the API call.
16
+ def initialize(reason, response)
17
+ super(reason, response)
18
+ hash = APIHelper.json_deserialize(@response.raw_body)
19
+ unbox(hash)
20
+ end
21
+
22
+ # Populates this object by extracting properties from a hash.
23
+ # @param [Hash] The deserialized response sent by the server in the
24
+ # response body.
25
+ def unbox(hash)
26
+ @message = hash['Message']
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ # bandwidth
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module Bandwidth
7
+ # UnauthorizedRequest class.
8
+ class UnauthorizedRequestException < APIException
9
+ # The message containing the reason behind the request being unauthorized
10
+ # @return [String]
11
+ attr_accessor :message
12
+
13
+ # The constructor.
14
+ # @param [String] The reason for raising an exception.
15
+ # @param [HttpResponse] The HttpReponse of the API call.
16
+ def initialize(reason, response)
17
+ super(reason, response)
18
+ hash = APIHelper.json_deserialize(@response.raw_body)
19
+ unbox(hash)
20
+ end
21
+
22
+ # Populates this object by extracting properties from a hash.
23
+ # @param [Hash] The deserialized response sent by the server in the
24
+ # response body.
25
+ def unbox(hash)
26
+ @message = hash['message']
27
+ end
28
+ end
29
+ end