pingram 1.0.11 → 1.0.13

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.
@@ -14,7 +14,7 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Pingram
17
- # One phone number owned by the account
17
+ # Represents a phone number in the account
18
18
  class ListPhoneNumbersResponseNumbersInner < ApiModelBase
19
19
  # E.164
20
20
  attr_accessor :phone_number
@@ -24,12 +24,62 @@ module Pingram
24
24
  # ISO timestamp when the number was registered
25
25
  attr_accessor :created_at
26
26
 
27
+ # ISO 3166-1 alpha-2 country code
28
+ attr_accessor :country_code
29
+
30
+ # e.g. local, toll_free
31
+ attr_accessor :number_type
32
+
33
+ # active or released
34
+ attr_accessor :billing_status
35
+
36
+ # YYYY-MM-DD next monthly rent charge
37
+ attr_accessor :next_billing_date
38
+
39
+ # Monthly cost in USD
40
+ attr_accessor :monthly_price
41
+
42
+ # US 10DLC readiness derived from stored campaign assignment
43
+ attr_accessor :a2p_status
44
+
45
+ # ISO timestamp when the number was released (released numbers only)
46
+ attr_accessor :released_at
47
+
48
+ class EnumAttributeValidator
49
+ attr_reader :datatype
50
+ attr_reader :allowable_values
51
+
52
+ def initialize(datatype, allowable_values)
53
+ @allowable_values = allowable_values.map do |value|
54
+ case datatype.to_s
55
+ when /Integer/i
56
+ value.to_i
57
+ when /Float/i
58
+ value.to_f
59
+ else
60
+ value
61
+ end
62
+ end
63
+ end
64
+
65
+ def valid?(value)
66
+ !value || allowable_values.include?(value)
67
+ end
68
+ end
69
+
27
70
  # Attribute mapping from ruby-style variable name to JSON key.
28
71
  def self.attribute_map
29
72
  {
30
73
  :'phone_number' => :'phoneNumber',
31
74
  :'label' => :'label',
32
- :'created_at' => :'createdAt'
75
+ :'created_at' => :'createdAt',
76
+ :'country_code' => :'countryCode',
77
+ :'number_type' => :'numberType',
78
+ :'billing_status' => :'billingStatus',
79
+ :'next_billing_date' => :'nextBillingDate',
80
+ :'monthly_price' => :'monthlyPrice',
81
+ :'a2p_status' => :'a2pStatus',
82
+ :'released_at' => :'releasedAt'
33
83
  }
34
84
  end
35
85
 
@@ -48,7 +98,14 @@ module Pingram
48
98
  {
49
99
  :'phone_number' => :'String',
50
100
  :'label' => :'String',
51
- :'created_at' => :'String'
101
+ :'created_at' => :'String',
102
+ :'country_code' => :'String',
103
+ :'number_type' => :'String',
104
+ :'billing_status' => :'String',
105
+ :'next_billing_date' => :'String',
106
+ :'monthly_price' => :'Float',
107
+ :'a2p_status' => :'String',
108
+ :'released_at' => :'String'
52
109
  }
53
110
  end
54
111
 
@@ -89,6 +146,44 @@ module Pingram
89
146
  else
90
147
  self.created_at = nil
91
148
  end
149
+
150
+ if attributes.key?(:'country_code')
151
+ self.country_code = attributes[:'country_code']
152
+ else
153
+ self.country_code = nil
154
+ end
155
+
156
+ if attributes.key?(:'number_type')
157
+ self.number_type = attributes[:'number_type']
158
+ else
159
+ self.number_type = nil
160
+ end
161
+
162
+ if attributes.key?(:'billing_status')
163
+ self.billing_status = attributes[:'billing_status']
164
+ else
165
+ self.billing_status = nil
166
+ end
167
+
168
+ if attributes.key?(:'next_billing_date')
169
+ self.next_billing_date = attributes[:'next_billing_date']
170
+ else
171
+ self.next_billing_date = nil
172
+ end
173
+
174
+ if attributes.key?(:'monthly_price')
175
+ self.monthly_price = attributes[:'monthly_price']
176
+ else
177
+ self.monthly_price = nil
178
+ end
179
+
180
+ if attributes.key?(:'a2p_status')
181
+ self.a2p_status = attributes[:'a2p_status']
182
+ end
183
+
184
+ if attributes.key?(:'released_at')
185
+ self.released_at = attributes[:'released_at']
186
+ end
92
187
  end
93
188
 
94
189
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -104,6 +199,26 @@ module Pingram
104
199
  invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
105
200
  end
106
201
 
202
+ if @country_code.nil?
203
+ invalid_properties.push('invalid value for "country_code", country_code cannot be nil.')
204
+ end
205
+
206
+ if @number_type.nil?
207
+ invalid_properties.push('invalid value for "number_type", number_type cannot be nil.')
208
+ end
209
+
210
+ if @billing_status.nil?
211
+ invalid_properties.push('invalid value for "billing_status", billing_status cannot be nil.')
212
+ end
213
+
214
+ if @next_billing_date.nil?
215
+ invalid_properties.push('invalid value for "next_billing_date", next_billing_date cannot be nil.')
216
+ end
217
+
218
+ if @monthly_price.nil?
219
+ invalid_properties.push('invalid value for "monthly_price", monthly_price cannot be nil.')
220
+ end
221
+
107
222
  invalid_properties
108
223
  end
109
224
 
@@ -113,6 +228,15 @@ module Pingram
113
228
  warn '[DEPRECATED] the `valid?` method is obsolete'
114
229
  return false if @phone_number.nil?
115
230
  return false if @created_at.nil?
231
+ return false if @country_code.nil?
232
+ return false if @number_type.nil?
233
+ return false if @billing_status.nil?
234
+ billing_status_validator = EnumAttributeValidator.new('String', ["active", "released"])
235
+ return false unless billing_status_validator.valid?(@billing_status)
236
+ return false if @next_billing_date.nil?
237
+ return false if @monthly_price.nil?
238
+ a2p_status_validator = EnumAttributeValidator.new('String', ["pending", "testing", "approved"])
239
+ return false unless a2p_status_validator.valid?(@a2p_status)
116
240
  true
117
241
  end
118
242
 
@@ -136,6 +260,66 @@ module Pingram
136
260
  @created_at = created_at
137
261
  end
138
262
 
263
+ # Custom attribute writer method with validation
264
+ # @param [Object] country_code Value to be assigned
265
+ def country_code=(country_code)
266
+ if country_code.nil?
267
+ fail ArgumentError, 'country_code cannot be nil'
268
+ end
269
+
270
+ @country_code = country_code
271
+ end
272
+
273
+ # Custom attribute writer method with validation
274
+ # @param [Object] number_type Value to be assigned
275
+ def number_type=(number_type)
276
+ if number_type.nil?
277
+ fail ArgumentError, 'number_type cannot be nil'
278
+ end
279
+
280
+ @number_type = number_type
281
+ end
282
+
283
+ # Custom attribute writer method checking allowed values (enum).
284
+ # @param [Object] billing_status Object to be assigned
285
+ def billing_status=(billing_status)
286
+ validator = EnumAttributeValidator.new('String', ["active", "released"])
287
+ unless validator.valid?(billing_status)
288
+ fail ArgumentError, "invalid value for \"billing_status\", must be one of #{validator.allowable_values}."
289
+ end
290
+ @billing_status = billing_status
291
+ end
292
+
293
+ # Custom attribute writer method with validation
294
+ # @param [Object] next_billing_date Value to be assigned
295
+ def next_billing_date=(next_billing_date)
296
+ if next_billing_date.nil?
297
+ fail ArgumentError, 'next_billing_date cannot be nil'
298
+ end
299
+
300
+ @next_billing_date = next_billing_date
301
+ end
302
+
303
+ # Custom attribute writer method with validation
304
+ # @param [Object] monthly_price Value to be assigned
305
+ def monthly_price=(monthly_price)
306
+ if monthly_price.nil?
307
+ fail ArgumentError, 'monthly_price cannot be nil'
308
+ end
309
+
310
+ @monthly_price = monthly_price
311
+ end
312
+
313
+ # Custom attribute writer method checking allowed values (enum).
314
+ # @param [Object] a2p_status Object to be assigned
315
+ def a2p_status=(a2p_status)
316
+ validator = EnumAttributeValidator.new('String', ["pending", "testing", "approved"])
317
+ unless validator.valid?(a2p_status)
318
+ fail ArgumentError, "invalid value for \"a2p_status\", must be one of #{validator.allowable_values}."
319
+ end
320
+ @a2p_status = a2p_status
321
+ end
322
+
139
323
  # Checks equality by comparing each attribute.
140
324
  # @param [Object] Object to be compared
141
325
  def ==(o)
@@ -143,7 +327,14 @@ module Pingram
143
327
  self.class == o.class &&
144
328
  phone_number == o.phone_number &&
145
329
  label == o.label &&
146
- created_at == o.created_at
330
+ created_at == o.created_at &&
331
+ country_code == o.country_code &&
332
+ number_type == o.number_type &&
333
+ billing_status == o.billing_status &&
334
+ next_billing_date == o.next_billing_date &&
335
+ monthly_price == o.monthly_price &&
336
+ a2p_status == o.a2p_status &&
337
+ released_at == o.released_at
147
338
  end
148
339
 
149
340
  # @see the `==` method
@@ -155,7 +346,7 @@ module Pingram
155
346
  # Calculates hash code according to all attributes.
156
347
  # @return [Integer] Hash code
157
348
  def hash
158
- [phone_number, label, created_at].hash
349
+ [phone_number, label, created_at, country_code, number_type, billing_status, next_billing_date, monthly_price, a2p_status, released_at].hash
159
350
  end
160
351
 
161
352
  # Builds the object from hash
@@ -0,0 +1,166 @@
1
+ =begin
2
+ #Pingram
3
+
4
+ #Internal API for notification delivery and management
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Pingram
17
+ class ListReleasedPhoneNumbersResponse < ApiModelBase
18
+ attr_accessor :numbers
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'numbers' => :'numbers'
24
+ }
25
+ end
26
+
27
+ # Returns attribute mapping this model knows about
28
+ def self.acceptable_attribute_map
29
+ attribute_map
30
+ end
31
+
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ acceptable_attribute_map.values
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.openapi_types
39
+ {
40
+ :'numbers' => :'Array<ListPhoneNumbersResponseNumbersInner>'
41
+ }
42
+ end
43
+
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::ListReleasedPhoneNumbersResponse` initialize method"
55
+ end
56
+
57
+ # check to see if the attribute exists and convert string to symbol for hash key
58
+ acceptable_attribute_map = self.class.acceptable_attribute_map
59
+ attributes = attributes.each_with_object({}) { |(k, v), h|
60
+ if (!acceptable_attribute_map.key?(k.to_sym))
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::ListReleasedPhoneNumbersResponse`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
62
+ end
63
+ h[k.to_sym] = v
64
+ }
65
+
66
+ if attributes.key?(:'numbers')
67
+ if (value = attributes[:'numbers']).is_a?(Array)
68
+ self.numbers = value
69
+ end
70
+ else
71
+ self.numbers = nil
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
79
+ invalid_properties = Array.new
80
+ if @numbers.nil?
81
+ invalid_properties.push('invalid value for "numbers", numbers cannot be nil.')
82
+ end
83
+
84
+ invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ warn '[DEPRECATED] the `valid?` method is obsolete'
91
+ return false if @numbers.nil?
92
+ true
93
+ end
94
+
95
+ # Custom attribute writer method with validation
96
+ # @param [Object] numbers Value to be assigned
97
+ def numbers=(numbers)
98
+ if numbers.nil?
99
+ fail ArgumentError, 'numbers cannot be nil'
100
+ end
101
+
102
+ @numbers = numbers
103
+ end
104
+
105
+ # Checks equality by comparing each attribute.
106
+ # @param [Object] Object to be compared
107
+ def ==(o)
108
+ return true if self.equal?(o)
109
+ self.class == o.class &&
110
+ numbers == o.numbers
111
+ end
112
+
113
+ # @see the `==` method
114
+ # @param [Object] Object to be compared
115
+ def eql?(o)
116
+ self == o
117
+ end
118
+
119
+ # Calculates hash code according to all attributes.
120
+ # @return [Integer] Hash code
121
+ def hash
122
+ [numbers].hash
123
+ end
124
+
125
+ # Builds the object from hash
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ # @return [Object] Returns the model itself
128
+ def self.build_from_hash(attributes)
129
+ return nil unless attributes.is_a?(Hash)
130
+ attributes = attributes.transform_keys(&:to_sym)
131
+ transformed_hash = {}
132
+ openapi_types.each_pair do |key, type|
133
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
134
+ transformed_hash["#{key}"] = nil
135
+ elsif type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[attribute_map[key]].is_a?(Array)
139
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
140
+ end
141
+ elsif !attributes[attribute_map[key]].nil?
142
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
143
+ end
144
+ end
145
+ new(transformed_hash)
146
+ end
147
+
148
+ # Returns the object in the form of hash
149
+ # @return [Hash] Returns the object in the form of hash
150
+ def to_hash
151
+ hash = {}
152
+ self.class.attribute_map.each_pair do |attr, param|
153
+ value = self.send(attr)
154
+ if value.nil?
155
+ is_nullable = self.class.openapi_nullable.include?(attr)
156
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
157
+ end
158
+
159
+ hash[param] = _to_hash(value)
160
+ end
161
+ hash
162
+ end
163
+
164
+ end
165
+
166
+ end
@@ -14,7 +14,6 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Pingram
17
- # Request body for POST /numbers/order
18
17
  class OrderPhoneNumberRequest < ApiModelBase
19
18
  # E.164 from search results
20
19
  attr_accessor :phone_number
@@ -14,7 +14,6 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Pingram
17
- # Response for POST /numbers/order
18
17
  class OrderPhoneNumberResponse < ApiModelBase
19
18
  attr_accessor :order_id
20
19
 
@@ -19,7 +19,7 @@ module Pingram
19
19
  # Total message usage (EMAIL + INAPP_WEB + WEB_PUSH + PUSH + SLACK)
20
20
  attr_accessor :message_usage
21
21
 
22
- # Total budget usage in USD (cost_SMS + cost_CALL)
22
+ # Total budget usage in USD (cost_SMS + cost_CALL + cost_NUMBER)
23
23
  attr_accessor :budget_usage
24
24
 
25
25
  # SMS cost in USD
@@ -28,6 +28,9 @@ module Pingram
28
28
  # Call cost in USD
29
29
  attr_accessor :cost_call
30
30
 
31
+ # Phone number rent in USD
32
+ attr_accessor :cost_number
33
+
31
34
  # Per-channel usage breakdown
32
35
  attr_accessor :channel_usages
33
36
 
@@ -44,6 +47,7 @@ module Pingram
44
47
  :'budget_usage' => :'budgetUsage',
45
48
  :'cost_sms' => :'costSms',
46
49
  :'cost_call' => :'costCall',
50
+ :'cost_number' => :'costNumber',
47
51
  :'channel_usages' => :'channelUsages',
48
52
  :'billing_cycle_start' => :'billingCycleStart',
49
53
  :'billing_cycle_end' => :'billingCycleEnd'
@@ -67,6 +71,7 @@ module Pingram
67
71
  :'budget_usage' => :'Float',
68
72
  :'cost_sms' => :'Float',
69
73
  :'cost_call' => :'Float',
74
+ :'cost_number' => :'Float',
70
75
  :'channel_usages' => :'Hash<String, Float>',
71
76
  :'billing_cycle_start' => :'String',
72
77
  :'billing_cycle_end' => :'String'
@@ -119,6 +124,12 @@ module Pingram
119
124
  self.cost_call = nil
120
125
  end
121
126
 
127
+ if attributes.key?(:'cost_number')
128
+ self.cost_number = attributes[:'cost_number']
129
+ else
130
+ self.cost_number = nil
131
+ end
132
+
122
133
  if attributes.key?(:'channel_usages')
123
134
  if (value = attributes[:'channel_usages']).is_a?(Hash)
124
135
  self.channel_usages = value
@@ -161,6 +172,10 @@ module Pingram
161
172
  invalid_properties.push('invalid value for "cost_call", cost_call cannot be nil.')
162
173
  end
163
174
 
175
+ if @cost_number.nil?
176
+ invalid_properties.push('invalid value for "cost_number", cost_number cannot be nil.')
177
+ end
178
+
164
179
  if @channel_usages.nil?
165
180
  invalid_properties.push('invalid value for "channel_usages", channel_usages cannot be nil.')
166
181
  end
@@ -184,6 +199,7 @@ module Pingram
184
199
  return false if @budget_usage.nil?
185
200
  return false if @cost_sms.nil?
186
201
  return false if @cost_call.nil?
202
+ return false if @cost_number.nil?
187
203
  return false if @channel_usages.nil?
188
204
  return false if @billing_cycle_start.nil?
189
205
  return false if @billing_cycle_end.nil?
@@ -230,6 +246,16 @@ module Pingram
230
246
  @cost_call = cost_call
231
247
  end
232
248
 
249
+ # Custom attribute writer method with validation
250
+ # @param [Object] cost_number Value to be assigned
251
+ def cost_number=(cost_number)
252
+ if cost_number.nil?
253
+ fail ArgumentError, 'cost_number cannot be nil'
254
+ end
255
+
256
+ @cost_number = cost_number
257
+ end
258
+
233
259
  # Custom attribute writer method with validation
234
260
  # @param [Object] channel_usages Value to be assigned
235
261
  def channel_usages=(channel_usages)
@@ -269,6 +295,7 @@ module Pingram
269
295
  budget_usage == o.budget_usage &&
270
296
  cost_sms == o.cost_sms &&
271
297
  cost_call == o.cost_call &&
298
+ cost_number == o.cost_number &&
272
299
  channel_usages == o.channel_usages &&
273
300
  billing_cycle_start == o.billing_cycle_start &&
274
301
  billing_cycle_end == o.billing_cycle_end
@@ -283,7 +310,7 @@ module Pingram
283
310
  # Calculates hash code according to all attributes.
284
311
  # @return [Integer] Hash code
285
312
  def hash
286
- [message_usage, budget_usage, cost_sms, cost_call, channel_usages, billing_cycle_start, billing_cycle_end].hash
313
+ [message_usage, budget_usage, cost_sms, cost_call, cost_number, channel_usages, billing_cycle_start, billing_cycle_end].hash
287
314
  end
288
315
 
289
316
  # Builds the object from hash
@@ -22,7 +22,7 @@ module Pingram
22
22
  # Total message usage (EMAIL + INAPP_WEB + WEB_PUSH + PUSH + SLACK)
23
23
  attr_accessor :message_usage
24
24
 
25
- # Total budget usage in USD (cost_SMS + cost_CALL)
25
+ # Total budget usage in USD (cost_SMS + cost_CALL + cost_NUMBER)
26
26
  attr_accessor :budget_usage
27
27
 
28
28
  # SMS cost in USD
@@ -31,6 +31,9 @@ module Pingram
31
31
  # Call cost in USD
32
32
  attr_accessor :cost_call
33
33
 
34
+ # Phone number rent in USD
35
+ attr_accessor :cost_number
36
+
34
37
  # Per-channel usage breakdown
35
38
  attr_accessor :channel_usages
36
39
 
@@ -42,6 +45,7 @@ module Pingram
42
45
  :'budget_usage' => :'budgetUsage',
43
46
  :'cost_sms' => :'costSms',
44
47
  :'cost_call' => :'costCall',
48
+ :'cost_number' => :'costNumber',
45
49
  :'channel_usages' => :'channelUsages'
46
50
  }
47
51
  end
@@ -64,6 +68,7 @@ module Pingram
64
68
  :'budget_usage' => :'Float',
65
69
  :'cost_sms' => :'Float',
66
70
  :'cost_call' => :'Float',
71
+ :'cost_number' => :'Float',
67
72
  :'channel_usages' => :'Hash<String, Float>'
68
73
  }
69
74
  end
@@ -120,6 +125,12 @@ module Pingram
120
125
  self.cost_call = nil
121
126
  end
122
127
 
128
+ if attributes.key?(:'cost_number')
129
+ self.cost_number = attributes[:'cost_number']
130
+ else
131
+ self.cost_number = nil
132
+ end
133
+
123
134
  if attributes.key?(:'channel_usages')
124
135
  if (value = attributes[:'channel_usages']).is_a?(Hash)
125
136
  self.channel_usages = value
@@ -154,6 +165,10 @@ module Pingram
154
165
  invalid_properties.push('invalid value for "cost_call", cost_call cannot be nil.')
155
166
  end
156
167
 
168
+ if @cost_number.nil?
169
+ invalid_properties.push('invalid value for "cost_number", cost_number cannot be nil.')
170
+ end
171
+
157
172
  if @channel_usages.nil?
158
173
  invalid_properties.push('invalid value for "channel_usages", channel_usages cannot be nil.')
159
174
  end
@@ -170,6 +185,7 @@ module Pingram
170
185
  return false if @budget_usage.nil?
171
186
  return false if @cost_sms.nil?
172
187
  return false if @cost_call.nil?
188
+ return false if @cost_number.nil?
173
189
  return false if @channel_usages.nil?
174
190
  true
175
191
  end
@@ -224,6 +240,16 @@ module Pingram
224
240
  @cost_call = cost_call
225
241
  end
226
242
 
243
+ # Custom attribute writer method with validation
244
+ # @param [Object] cost_number Value to be assigned
245
+ def cost_number=(cost_number)
246
+ if cost_number.nil?
247
+ fail ArgumentError, 'cost_number cannot be nil'
248
+ end
249
+
250
+ @cost_number = cost_number
251
+ end
252
+
227
253
  # Custom attribute writer method with validation
228
254
  # @param [Object] channel_usages Value to be assigned
229
255
  def channel_usages=(channel_usages)
@@ -244,6 +270,7 @@ module Pingram
244
270
  budget_usage == o.budget_usage &&
245
271
  cost_sms == o.cost_sms &&
246
272
  cost_call == o.cost_call &&
273
+ cost_number == o.cost_number &&
247
274
  channel_usages == o.channel_usages
248
275
  end
249
276
 
@@ -256,7 +283,7 @@ module Pingram
256
283
  # Calculates hash code according to all attributes.
257
284
  # @return [Integer] Hash code
258
285
  def hash
259
- [year_month, message_usage, budget_usage, cost_sms, cost_call, channel_usages].hash
286
+ [year_month, message_usage, budget_usage, cost_sms, cost_call, cost_number, channel_usages].hash
260
287
  end
261
288
 
262
289
  # Builds the object from hash