patch_ruby 1.24.2 → 2.1.1

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/CHANGELOG.md +19 -0
  3. data/Gemfile.lock +9 -10
  4. data/lib/patch_ruby/api/estimates_api.rb +72 -2
  5. data/lib/patch_ruby/api/order_line_items_api.rb +269 -0
  6. data/lib/patch_ruby/api/orders_api.rb +99 -4
  7. data/lib/patch_ruby/api/projects_api.rb +12 -2
  8. data/lib/patch_ruby/api/technology_types_api.rb +7 -2
  9. data/lib/patch_ruby/api_client.rb +3 -3
  10. data/lib/patch_ruby/api_error.rb +2 -2
  11. data/lib/patch_ruby/configuration.rb +3 -4
  12. data/lib/patch_ruby/models/create_air_shipping_estimate_request.rb +2 -2
  13. data/lib/patch_ruby/models/create_bitcoin_estimate_request.rb +2 -2
  14. data/lib/patch_ruby/models/create_ecommerce_estimate_request.rb +2 -2
  15. data/lib/patch_ruby/models/create_ethereum_estimate_request.rb +2 -2
  16. data/lib/patch_ruby/models/create_flight_estimate_request.rb +2 -2
  17. data/lib/patch_ruby/models/create_hotel_estimate_request.rb +2 -2
  18. data/lib/patch_ruby/models/create_mass_estimate_request.rb +7 -7
  19. data/lib/patch_ruby/models/create_order_line_item_request.rb +443 -0
  20. data/lib/patch_ruby/models/create_order_request.rb +79 -70
  21. data/lib/patch_ruby/models/create_rail_shipping_estimate_request.rb +2 -2
  22. data/lib/patch_ruby/models/create_road_shipping_estimate_request.rb +13 -3
  23. data/lib/patch_ruby/models/create_sea_shipping_estimate_request.rb +2 -2
  24. data/lib/patch_ruby/models/create_shipping_estimate_request.rb +2 -2
  25. data/lib/patch_ruby/models/create_success_response.rb +2 -2
  26. data/lib/patch_ruby/models/create_vehicle_estimate_request.rb +2 -2
  27. data/lib/patch_ruby/models/delete_order_line_item_response.rb +257 -0
  28. data/lib/patch_ruby/models/delete_order_response.rb +257 -0
  29. data/lib/patch_ruby/models/disclaimer.rb +282 -0
  30. data/lib/patch_ruby/models/error_response.rb +2 -2
  31. data/lib/patch_ruby/models/estimate.rb +2 -2
  32. data/lib/patch_ruby/models/estimate_list_response.rb +2 -2
  33. data/lib/patch_ruby/models/estimate_response.rb +2 -2
  34. data/lib/patch_ruby/models/highlight.rb +2 -2
  35. data/lib/patch_ruby/models/inventory.rb +33 -3
  36. data/lib/patch_ruby/models/meta_index_object.rb +2 -2
  37. data/lib/patch_ruby/models/order.rb +17 -121
  38. data/lib/patch_ruby/models/order_issued_to.rb +2 -2
  39. data/lib/patch_ruby/models/{order_inventory.rb → order_line_item.rb} +49 -9
  40. data/lib/patch_ruby/models/{order_inventory_project.rb → order_line_item_project.rb} +7 -7
  41. data/lib/patch_ruby/models/{allocation.rb → order_line_item_response.rb} +33 -40
  42. data/lib/patch_ruby/models/order_list_response.rb +2 -2
  43. data/lib/patch_ruby/models/order_response.rb +2 -2
  44. data/lib/patch_ruby/models/parent_technology_type.rb +2 -2
  45. data/lib/patch_ruby/models/photo.rb +2 -2
  46. data/lib/patch_ruby/models/place_order_request.rb +2 -2
  47. data/lib/patch_ruby/models/project.rb +72 -56
  48. data/lib/patch_ruby/models/project_list_response.rb +2 -2
  49. data/lib/patch_ruby/models/project_response.rb +2 -2
  50. data/lib/patch_ruby/models/sdg.rb +2 -2
  51. data/lib/patch_ruby/models/standard.rb +2 -2
  52. data/lib/patch_ruby/models/technology_type.rb +2 -2
  53. data/lib/patch_ruby/models/technology_type_list_response.rb +2 -2
  54. data/lib/patch_ruby/models/update_order_line_item_request.rb +434 -0
  55. data/lib/patch_ruby/version.rb +3 -3
  56. data/lib/patch_ruby.rb +11 -5
  57. data/patch_ruby.gemspec +2 -2
  58. data/spec/api/order_line_items_api_spec.rb +78 -0
  59. data/spec/api_client_spec.rb +2 -2
  60. data/spec/configuration_spec.rb +2 -2
  61. data/spec/factories/create_order_requests.rb +4 -2
  62. data/spec/factories/orders.rb +5 -4
  63. data/spec/factories/projects.rb +1 -4
  64. data/spec/integration/estimates_spec.rb +1 -1
  65. data/spec/integration/orders_spec.rb +121 -44
  66. data/spec/integration/projects_spec.rb +19 -7
  67. data/spec/models/create_order_request_spec.rb +10 -3
  68. data/spec/models/order_spec.rb +8 -23
  69. data/spec/models/project_spec.rb +1 -4
  70. data/spec/spec_helper.rb +2 -2
  71. metadata +35 -31
  72. data/spec/factories/allocations.rb +0 -7
  73. data/spec/models/allocation_spec.rb +0 -59
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -15,10 +15,6 @@ require 'time'
15
15
 
16
16
  module Patch
17
17
  class CreateOrderRequest
18
- attr_accessor :mass_g
19
-
20
- attr_accessor :total_price_cents_usd
21
-
22
18
  attr_accessor :project_id
23
19
 
24
20
  attr_accessor :metadata
@@ -27,6 +23,10 @@ module Patch
27
23
 
28
24
  attr_accessor :vintage_year
29
25
 
26
+ attr_accessor :vintage_start_year
27
+
28
+ attr_accessor :vintage_end_year
29
+
30
30
  attr_accessor :total_price
31
31
 
32
32
  attr_accessor :currency
@@ -62,12 +62,12 @@ module Patch
62
62
  # Attribute mapping from ruby-style variable name to JSON key.
63
63
  def self.attribute_map
64
64
  {
65
- :'mass_g' => :'mass_g',
66
- :'total_price_cents_usd' => :'total_price_cents_usd',
67
65
  :'project_id' => :'project_id',
68
66
  :'metadata' => :'metadata',
69
67
  :'state' => :'state',
70
68
  :'vintage_year' => :'vintage_year',
69
+ :'vintage_start_year' => :'vintage_start_year',
70
+ :'vintage_end_year' => :'vintage_end_year',
71
71
  :'total_price' => :'total_price',
72
72
  :'currency' => :'currency',
73
73
  :'amount' => :'amount',
@@ -84,12 +84,12 @@ module Patch
84
84
  # Attribute type mapping.
85
85
  def self.openapi_types
86
86
  {
87
- :'mass_g' => :'Integer',
88
- :'total_price_cents_usd' => :'Integer',
89
87
  :'project_id' => :'String',
90
88
  :'metadata' => :'Object',
91
89
  :'state' => :'String',
92
90
  :'vintage_year' => :'Integer',
91
+ :'vintage_start_year' => :'Integer',
92
+ :'vintage_end_year' => :'Integer',
93
93
  :'total_price' => :'Integer',
94
94
  :'currency' => :'String',
95
95
  :'amount' => :'Integer',
@@ -101,12 +101,12 @@ module Patch
101
101
  # List of attributes with nullable: true
102
102
  def self.openapi_nullable
103
103
  Set.new([
104
- :'mass_g',
105
- :'total_price_cents_usd',
106
104
  :'project_id',
107
105
  :'metadata',
108
106
  :'state',
109
107
  :'vintage_year',
108
+ :'vintage_start_year',
109
+ :'vintage_end_year',
110
110
  :'total_price',
111
111
  :'currency',
112
112
  :'amount',
@@ -141,14 +141,6 @@ module Patch
141
141
  h[k.to_sym] = v
142
142
  }
143
143
 
144
- if attributes.key?(:'mass_g')
145
- self.mass_g = attributes[:'mass_g']
146
- end
147
-
148
- if attributes.key?(:'total_price_cents_usd')
149
- self.total_price_cents_usd = attributes[:'total_price_cents_usd']
150
- end
151
-
152
144
  if attributes.key?(:'project_id')
153
145
  self.project_id = attributes[:'project_id']
154
146
  end
@@ -165,6 +157,14 @@ module Patch
165
157
  self.vintage_year = attributes[:'vintage_year']
166
158
  end
167
159
 
160
+ if attributes.key?(:'vintage_start_year')
161
+ self.vintage_start_year = attributes[:'vintage_start_year']
162
+ end
163
+
164
+ if attributes.key?(:'vintage_end_year')
165
+ self.vintage_end_year = attributes[:'vintage_end_year']
166
+ end
167
+
168
168
  if attributes.key?(:'total_price')
169
169
  self.total_price = attributes[:'total_price']
170
170
  end
@@ -190,32 +190,36 @@ module Patch
190
190
  # @return Array for valid properties with the reasons
191
191
  def list_invalid_properties
192
192
  invalid_properties = Array.new
193
- if !@mass_g.nil? && @mass_g > 100000000000
194
- invalid_properties.push('invalid value for "mass_g", must be smaller than or equal to 100000000000.')
193
+ if !@vintage_year.nil? && @vintage_year > 2100
194
+ invalid_properties.push('invalid value for "vintage_year", must be smaller than or equal to 2100.')
195
195
  end
196
196
 
197
- if !@mass_g.nil? && @mass_g < 0
198
- invalid_properties.push('invalid value for "mass_g", must be greater than or equal to 0.')
197
+ if !@vintage_year.nil? && @vintage_year < 1900
198
+ invalid_properties.push('invalid value for "vintage_year", must be greater than or equal to 1900.')
199
199
  end
200
200
 
201
- if !@total_price_cents_usd.nil? && @total_price_cents_usd < 1
202
- invalid_properties.push('invalid value for "total_price_cents_usd", must be greater than or equal to 1.')
201
+ if !@vintage_start_year.nil? && @vintage_start_year > 2100
202
+ invalid_properties.push('invalid value for "vintage_start_year", must be smaller than or equal to 2100.')
203
203
  end
204
204
 
205
- if !@vintage_year.nil? && @vintage_year > 2100
206
- invalid_properties.push('invalid value for "vintage_year", must be smaller than or equal to 2100.')
205
+ if !@vintage_start_year.nil? && @vintage_start_year < 1900
206
+ invalid_properties.push('invalid value for "vintage_start_year", must be greater than or equal to 1900.')
207
207
  end
208
208
 
209
- if !@vintage_year.nil? && @vintage_year < 1900
210
- invalid_properties.push('invalid value for "vintage_year", must be greater than or equal to 1900.')
209
+ if !@vintage_end_year.nil? && @vintage_end_year > 2100
210
+ invalid_properties.push('invalid value for "vintage_end_year", must be smaller than or equal to 2100.')
211
+ end
212
+
213
+ if !@vintage_end_year.nil? && @vintage_end_year < 1900
214
+ invalid_properties.push('invalid value for "vintage_end_year", must be greater than or equal to 1900.')
211
215
  end
212
216
 
213
- if !@total_price.nil? && @total_price < 1
214
- invalid_properties.push('invalid value for "total_price", must be greater than or equal to 1.')
217
+ if !@total_price.nil? && @total_price < 2
218
+ invalid_properties.push('invalid value for "total_price", must be greater than or equal to 2.')
215
219
  end
216
220
 
217
- if !@amount.nil? && @amount > 100000000000
218
- invalid_properties.push('invalid value for "amount", must be smaller than or equal to 100000000000.')
221
+ if !@amount.nil? && @amount > 100000000000000
222
+ invalid_properties.push('invalid value for "amount", must be smaller than or equal to 100000000000000.')
219
223
  end
220
224
 
221
225
  if !@amount.nil? && @amount < 0
@@ -228,45 +232,22 @@ module Patch
228
232
  # Check to see if the all the properties in the model are valid
229
233
  # @return true if the model is valid
230
234
  def valid?
231
- return false if !@mass_g.nil? && @mass_g > 100000000000
232
- return false if !@mass_g.nil? && @mass_g < 0
233
- return false if !@total_price_cents_usd.nil? && @total_price_cents_usd < 1
234
235
  state_validator = EnumAttributeValidator.new('String', ["draft", "reserved", "placed"])
235
236
  return false unless state_validator.valid?(@state)
236
237
  return false if !@vintage_year.nil? && @vintage_year > 2100
237
238
  return false if !@vintage_year.nil? && @vintage_year < 1900
238
- return false if !@total_price.nil? && @total_price < 1
239
- return false if !@amount.nil? && @amount > 100000000000
239
+ return false if !@vintage_start_year.nil? && @vintage_start_year > 2100
240
+ return false if !@vintage_start_year.nil? && @vintage_start_year < 1900
241
+ return false if !@vintage_end_year.nil? && @vintage_end_year > 2100
242
+ return false if !@vintage_end_year.nil? && @vintage_end_year < 1900
243
+ return false if !@total_price.nil? && @total_price < 2
244
+ return false if !@amount.nil? && @amount > 100000000000000
240
245
  return false if !@amount.nil? && @amount < 0
241
246
  unit_validator = EnumAttributeValidator.new('String', ["g", "Wh"])
242
247
  return false unless unit_validator.valid?(@unit)
243
248
  true
244
249
  end
245
250
 
246
- # Custom attribute writer method with validation
247
- # @param [Object] mass_g Value to be assigned
248
- def mass_g=(mass_g)
249
- if !mass_g.nil? && mass_g > 100000000000
250
- fail ArgumentError, 'invalid value for "mass_g", must be smaller than or equal to 100000000000.'
251
- end
252
-
253
- if !mass_g.nil? && mass_g < 0
254
- fail ArgumentError, 'invalid value for "mass_g", must be greater than or equal to 0.'
255
- end
256
-
257
- @mass_g = mass_g
258
- end
259
-
260
- # Custom attribute writer method with validation
261
- # @param [Object] total_price_cents_usd Value to be assigned
262
- def total_price_cents_usd=(total_price_cents_usd)
263
- if !total_price_cents_usd.nil? && total_price_cents_usd < 1
264
- fail ArgumentError, 'invalid value for "total_price_cents_usd", must be greater than or equal to 1.'
265
- end
266
-
267
- @total_price_cents_usd = total_price_cents_usd
268
- end
269
-
270
251
  # Custom attribute writer method checking allowed values (enum).
271
252
  # @param [Object] state Object to be assigned
272
253
  def state=(state)
@@ -291,11 +272,39 @@ module Patch
291
272
  @vintage_year = vintage_year
292
273
  end
293
274
 
275
+ # Custom attribute writer method with validation
276
+ # @param [Object] vintage_start_year Value to be assigned
277
+ def vintage_start_year=(vintage_start_year)
278
+ if !vintage_start_year.nil? && vintage_start_year > 2100
279
+ fail ArgumentError, 'invalid value for "vintage_start_year", must be smaller than or equal to 2100.'
280
+ end
281
+
282
+ if !vintage_start_year.nil? && vintage_start_year < 1900
283
+ fail ArgumentError, 'invalid value for "vintage_start_year", must be greater than or equal to 1900.'
284
+ end
285
+
286
+ @vintage_start_year = vintage_start_year
287
+ end
288
+
289
+ # Custom attribute writer method with validation
290
+ # @param [Object] vintage_end_year Value to be assigned
291
+ def vintage_end_year=(vintage_end_year)
292
+ if !vintage_end_year.nil? && vintage_end_year > 2100
293
+ fail ArgumentError, 'invalid value for "vintage_end_year", must be smaller than or equal to 2100.'
294
+ end
295
+
296
+ if !vintage_end_year.nil? && vintage_end_year < 1900
297
+ fail ArgumentError, 'invalid value for "vintage_end_year", must be greater than or equal to 1900.'
298
+ end
299
+
300
+ @vintage_end_year = vintage_end_year
301
+ end
302
+
294
303
  # Custom attribute writer method with validation
295
304
  # @param [Object] total_price Value to be assigned
296
305
  def total_price=(total_price)
297
- if !total_price.nil? && total_price < 1
298
- fail ArgumentError, 'invalid value for "total_price", must be greater than or equal to 1.'
306
+ if !total_price.nil? && total_price < 2
307
+ fail ArgumentError, 'invalid value for "total_price", must be greater than or equal to 2.'
299
308
  end
300
309
 
301
310
  @total_price = total_price
@@ -304,8 +313,8 @@ module Patch
304
313
  # Custom attribute writer method with validation
305
314
  # @param [Object] amount Value to be assigned
306
315
  def amount=(amount)
307
- if !amount.nil? && amount > 100000000000
308
- fail ArgumentError, 'invalid value for "amount", must be smaller than or equal to 100000000000.'
316
+ if !amount.nil? && amount > 100000000000000
317
+ fail ArgumentError, 'invalid value for "amount", must be smaller than or equal to 100000000000000.'
309
318
  end
310
319
 
311
320
  if !amount.nil? && amount < 0
@@ -330,12 +339,12 @@ module Patch
330
339
  def ==(o)
331
340
  return true if self.equal?(o)
332
341
  self.class == o.class &&
333
- mass_g == o.mass_g &&
334
- total_price_cents_usd == o.total_price_cents_usd &&
335
342
  project_id == o.project_id &&
336
343
  metadata == o.metadata &&
337
344
  state == o.state &&
338
345
  vintage_year == o.vintage_year &&
346
+ vintage_start_year == o.vintage_start_year &&
347
+ vintage_end_year == o.vintage_end_year &&
339
348
  total_price == o.total_price &&
340
349
  currency == o.currency &&
341
350
  amount == o.amount &&
@@ -352,7 +361,7 @@ module Patch
352
361
  # Calculates hash code according to all attributes.
353
362
  # @return [Integer] Hash code
354
363
  def hash
355
- [mass_g, total_price_cents_usd, project_id, metadata, state, vintage_year, total_price, currency, amount, unit, issued_to].hash
364
+ [project_id, metadata, state, vintage_year, vintage_start_year, vintage_end_year, total_price, currency, amount, unit, issued_to].hash
356
365
  end
357
366
 
358
367
  # Builds the object from hash
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -41,6 +41,8 @@ module Patch
41
41
 
42
42
  attr_accessor :truck_weight_t
43
43
 
44
+ attr_accessor :carrier_scac
45
+
44
46
  attr_accessor :project_id
45
47
 
46
48
  attr_accessor :create_order
@@ -83,6 +85,7 @@ module Patch
83
85
  :'fuel_type' => :'fuel_type',
84
86
  :'number_of_containers' => :'number_of_containers',
85
87
  :'truck_weight_t' => :'truck_weight_t',
88
+ :'carrier_scac' => :'carrier_scac',
86
89
  :'project_id' => :'project_id',
87
90
  :'create_order' => :'create_order'
88
91
  }
@@ -109,6 +112,7 @@ module Patch
109
112
  :'fuel_type' => :'String',
110
113
  :'number_of_containers' => :'Integer',
111
114
  :'truck_weight_t' => :'Integer',
115
+ :'carrier_scac' => :'String',
112
116
  :'project_id' => :'String',
113
117
  :'create_order' => :'Boolean'
114
118
  }
@@ -127,6 +131,7 @@ module Patch
127
131
  :'fuel_type',
128
132
  :'number_of_containers',
129
133
  :'truck_weight_t',
134
+ :'carrier_scac',
130
135
  :'project_id',
131
136
  :'create_order'
132
137
  ])
@@ -217,6 +222,10 @@ module Patch
217
222
  self.truck_weight_t = attributes[:'truck_weight_t']
218
223
  end
219
224
 
225
+ if attributes.key?(:'carrier_scac')
226
+ self.carrier_scac = attributes[:'carrier_scac']
227
+ end
228
+
220
229
  if attributes.key?(:'project_id')
221
230
  self.project_id = attributes[:'project_id']
222
231
  end
@@ -370,6 +379,7 @@ module Patch
370
379
  fuel_type == o.fuel_type &&
371
380
  number_of_containers == o.number_of_containers &&
372
381
  truck_weight_t == o.truck_weight_t &&
382
+ carrier_scac == o.carrier_scac &&
373
383
  project_id == o.project_id &&
374
384
  create_order == o.create_order
375
385
  end
@@ -383,7 +393,7 @@ module Patch
383
393
  # Calculates hash code according to all attributes.
384
394
  # @return [Integer] Hash code
385
395
  def hash
386
- [destination_country_code, destination_locode, destination_postal_code, origin_country_code, origin_locode, origin_postal_code, cargo_type, container_size_code, emissions_scope, freight_mass_g, fuel_type, number_of_containers, truck_weight_t, project_id, create_order].hash
396
+ [destination_country_code, destination_locode, destination_postal_code, origin_country_code, origin_locode, origin_postal_code, cargo_type, container_size_code, emissions_scope, freight_mass_g, fuel_type, number_of_containers, truck_weight_t, carrier_scac, project_id, create_order].hash
387
397
  end
388
398
 
389
399
  # Builds the object from hash
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -1,9 +1,9 @@
1
1
  =begin
2
- #Patch API V1
2
+ #Patch API V2
3
3
 
4
4
  #The core API used to integrate with Patch's service
5
5
 
6
- The version of the OpenAPI document: v1
6
+ The version of the OpenAPI document: 2
7
7
  Contact: engineering@usepatch.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 5.3.1
@@ -0,0 +1,257 @@
1
+ =begin
2
+ #Patch API V2
3
+
4
+ #The core API used to integrate with Patch's service
5
+
6
+ The version of the OpenAPI document: 2
7
+ Contact: engineering@usepatch.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Patch
17
+ class DeleteOrderLineItemResponse
18
+ attr_accessor :success
19
+
20
+ attr_accessor :error
21
+
22
+ attr_accessor :data
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'success' => :'success',
28
+ :'error' => :'error',
29
+ :'data' => :'data'
30
+ }
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'success' => :'Boolean',
42
+ :'error' => :'Object',
43
+ :'data' => :'String'
44
+ }
45
+ end
46
+
47
+ # List of attributes with nullable: true
48
+ def self.openapi_nullable
49
+ Set.new([
50
+ :'error',
51
+ ])
52
+ end
53
+
54
+
55
+ # Allows models with corresponding API classes to delegate API operations to those API classes
56
+ # Exposes Model.operation_id which delegates to ModelsApi.new.operation_id
57
+ # Eg. Order.create_order delegates to OrdersApi.new.create_order
58
+ def self.method_missing(message, *args, &block)
59
+ if Object.const_defined?('Patch::DeleteOrderLineItemResponsesApi::OPERATIONS') && Patch::DeleteOrderLineItemResponsesApi::OPERATIONS.include?(message)
60
+ Patch::DeleteOrderLineItemResponsesApi.new.send(message, *args)
61
+ else
62
+ super
63
+ end
64
+ end
65
+
66
+ # Initializes the object
67
+ # @param [Hash] attributes Model attributes in the form of hash
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Patch::DeleteOrderLineItemResponse` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ attributes = attributes.each_with_object({}) { |(k, v), h|
75
+ if (!self.class.attribute_map.key?(k.to_sym))
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Patch::DeleteOrderLineItemResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
77
+ end
78
+ h[k.to_sym] = v
79
+ }
80
+
81
+ if attributes.key?(:'success')
82
+ self.success = attributes[:'success']
83
+ end
84
+
85
+ if attributes.key?(:'error')
86
+ self.error = attributes[:'error']
87
+ end
88
+
89
+ if attributes.key?(:'data')
90
+ self.data = attributes[:'data']
91
+ end
92
+ end
93
+
94
+ # Show invalid properties with the reasons. Usually used together with valid?
95
+ # @return Array for valid properties with the reasons
96
+ def list_invalid_properties
97
+ invalid_properties = Array.new
98
+ if @success.nil?
99
+ invalid_properties.push('invalid value for "success", success cannot be nil.')
100
+ end
101
+
102
+ if @data.nil?
103
+ invalid_properties.push('invalid value for "data", data cannot be nil.')
104
+ end
105
+
106
+ invalid_properties
107
+ end
108
+
109
+ # Check to see if the all the properties in the model are valid
110
+ # @return true if the model is valid
111
+ def valid?
112
+ return false if @success.nil?
113
+ return false if @data.nil?
114
+ true
115
+ end
116
+
117
+ # Checks equality by comparing each attribute.
118
+ # @param [Object] Object to be compared
119
+ def ==(o)
120
+ return true if self.equal?(o)
121
+ self.class == o.class &&
122
+ success == o.success &&
123
+ error == o.error &&
124
+ data == o.data
125
+ end
126
+
127
+ # @see the `==` method
128
+ # @param [Object] Object to be compared
129
+ def eql?(o)
130
+ self == o
131
+ end
132
+
133
+ # Calculates hash code according to all attributes.
134
+ # @return [Integer] Hash code
135
+ def hash
136
+ [success, error, data].hash
137
+ end
138
+
139
+ # Builds the object from hash
140
+ # @param [Hash] attributes Model attributes in the form of hash
141
+ # @return [Object] Returns the model itself
142
+ def self.build_from_hash(attributes)
143
+ new.build_from_hash(attributes)
144
+ end
145
+
146
+ # Builds the object from hash
147
+ # @param [Hash] attributes Model attributes in the form of hash
148
+ # @return [Object] Returns the model itself
149
+ def build_from_hash(attributes)
150
+ return nil unless attributes.is_a?(Hash)
151
+ self.class.openapi_types.each_pair do |key, type|
152
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
153
+ self.send("#{key}=", nil)
154
+ elsif type =~ /\AArray<(.*)>/i
155
+ # check to ensure the input is an array given that the attribute
156
+ # is documented as an array but the input is not
157
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
158
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
159
+ end
160
+ elsif !attributes[self.class.attribute_map[key]].nil?
161
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
162
+ end
163
+ end
164
+
165
+ self
166
+ end
167
+
168
+ # Deserializes the data based on type
169
+ # @param string type Data type
170
+ # @param string value Value to be deserialized
171
+ # @return [Object] Deserialized data
172
+ def _deserialize(type, value)
173
+ case type.to_sym
174
+ when :Time
175
+ Time.parse(value)
176
+ when :Date
177
+ Date.parse(value)
178
+ when :String
179
+ value.to_s
180
+ when :Integer
181
+ value.to_i
182
+ when :Float
183
+ value.to_f
184
+ when :Boolean
185
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
186
+ true
187
+ else
188
+ false
189
+ end
190
+ when :Object
191
+ # generic object (usually a Hash), return directly
192
+ value
193
+ when /\AArray<(?<inner_type>.+)>\z/
194
+ inner_type = Regexp.last_match[:inner_type]
195
+ value.map { |v| _deserialize(inner_type, v) }
196
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
197
+ k_type = Regexp.last_match[:k_type]
198
+ v_type = Regexp.last_match[:v_type]
199
+ {}.tap do |hash|
200
+ value.each do |k, v|
201
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
202
+ end
203
+ end
204
+ else # model
205
+ # models (e.g. Pet) or oneOf
206
+ klass = Patch.const_get(type)
207
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
208
+ end
209
+ end
210
+
211
+ # Returns the string representation of the object
212
+ # @return [String] String presentation of the object
213
+ def to_s
214
+ to_hash.to_s
215
+ end
216
+
217
+ # to_body is an alias to to_hash (backward compatibility)
218
+ # @return [Hash] Returns the object in the form of hash
219
+ def to_body
220
+ to_hash
221
+ end
222
+
223
+ # Returns the object in the form of hash
224
+ # @return [Hash] Returns the object in the form of hash
225
+ def to_hash
226
+ hash = {}
227
+ self.class.attribute_map.each_pair do |attr, param|
228
+ value = self.send(attr)
229
+ if value.nil?
230
+ is_nullable = self.class.openapi_nullable.include?(attr)
231
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
232
+ end
233
+
234
+ hash[param] = _to_hash(value)
235
+ end
236
+ hash
237
+ end
238
+
239
+ # Outputs non-array value in the form of hash
240
+ # For object, use to_hash. Otherwise, just return the value
241
+ # @param [Object] value Any valid value
242
+ # @return [Hash] Returns the value in the form of hash
243
+ def _to_hash(value)
244
+ if value.is_a?(Array)
245
+ value.compact.map { |v| _to_hash(v) }
246
+ elsif value.is_a?(Hash)
247
+ {}.tap do |hash|
248
+ value.each { |k, v| hash[k] = _to_hash(v) }
249
+ end
250
+ elsif value.respond_to? :to_hash
251
+ value.to_hash
252
+ else
253
+ value
254
+ end
255
+ end
256
+ end
257
+ end