aftership-tracking-sdk 9.0.0 → 10.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 (63) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +14 -13
  4. data/lib/aftership-tracking-sdk/api/courier.rb +3 -3
  5. data/lib/aftership-tracking-sdk/api/estimated_delivery_date.rb +55 -1
  6. data/lib/aftership-tracking-sdk/api/tracking.rb +16 -16
  7. data/lib/aftership-tracking-sdk/models/additional_fields_v1.rb +3 -3
  8. data/lib/aftership-tracking-sdk/models/checkpoint.rb +22 -12
  9. data/lib/aftership-tracking-sdk/models/courier.rb +7 -7
  10. data/lib/aftership-tracking-sdk/models/create_tracking_request.rb +47 -67
  11. data/lib/aftership-tracking-sdk/models/create_tracking_response.rb +63 -83
  12. data/lib/aftership-tracking-sdk/models/{next_couriers_tracking.rb → customers_create_tracking_request.rb} +37 -37
  13. data/lib/aftership-tracking-sdk/models/customers_create_tracking_response.rb +193 -0
  14. data/lib/aftership-tracking-sdk/models/customers_delete_tracking_by_id_response.rb +193 -0
  15. data/lib/aftership-tracking-sdk/models/customers_get_tracking_by_id_response.rb +193 -0
  16. data/lib/aftership-tracking-sdk/models/customers_mark_tracking_completed_by_id_response.rb +193 -0
  17. data/lib/aftership-tracking-sdk/models/customers_retrack_tracking_by_id_response.rb +193 -0
  18. data/lib/aftership-tracking-sdk/models/customers_tracking.rb +193 -0
  19. data/lib/aftership-tracking-sdk/models/customers_update_tracking_by_id_request.rb +193 -0
  20. data/lib/aftership-tracking-sdk/models/customers_update_tracking_by_id_response.rb +193 -0
  21. data/lib/aftership-tracking-sdk/models/delete_tracking_by_id_response.rb +63 -83
  22. data/lib/aftership-tracking-sdk/models/destination_address_estimated_delivery_date_request.rb +6 -6
  23. data/lib/aftership-tracking-sdk/models/destination_address_estimated_delivery_date_response.rb +6 -6
  24. data/lib/aftership-tracking-sdk/models/destination_address_predict_request.rb +193 -0
  25. data/lib/aftership-tracking-sdk/models/destination_address_predict_response.rb +193 -0
  26. data/lib/aftership-tracking-sdk/models/detect_courier_request.rb +24 -24
  27. data/lib/aftership-tracking-sdk/models/estimated_pickup_predict_request.rb +183 -0
  28. data/lib/aftership-tracking-sdk/models/estimated_pickup_predict_response.rb +193 -0
  29. data/lib/aftership-tracking-sdk/models/{next_couriers_delete_tracking_by_id_response.rb → first_mile_create_tracking_response.rb} +29 -29
  30. data/lib/aftership-tracking-sdk/models/{next_couriers_get_tracking_by_id_response.rb → first_mile_delete_tracking_by_id_response.rb} +29 -29
  31. data/lib/aftership-tracking-sdk/models/first_mile_get_tracking_by_id_response.rb +193 -0
  32. data/lib/aftership-tracking-sdk/models/first_mile_mark_tracking_completed_by_id_response.rb +193 -0
  33. data/lib/aftership-tracking-sdk/models/first_mile_retrack_tracking_by_id_response.rb +193 -0
  34. data/lib/aftership-tracking-sdk/models/{next_couriers_mark_tracking_completed_by_id_response.rb → first_mile_tracking.rb} +29 -29
  35. data/lib/aftership-tracking-sdk/models/first_mile_update_tracking_by_id_response.rb +193 -0
  36. data/lib/aftership-tracking-sdk/models/get_tracking_by_id_response.rb +63 -83
  37. data/lib/aftership-tracking-sdk/models/{next_couriers_create_tracking_request.rb → last_mile_create_tracking_request.rb} +13 -13
  38. data/lib/aftership-tracking-sdk/models/last_mile_create_tracking_response.rb +203 -0
  39. data/lib/aftership-tracking-sdk/models/last_mile_delete_tracking_by_id_response.rb +203 -0
  40. data/lib/aftership-tracking-sdk/models/last_mile_get_tracking_by_id_response.rb +203 -0
  41. data/lib/aftership-tracking-sdk/models/last_mile_mark_tracking_completed_by_id_response.rb +203 -0
  42. data/lib/aftership-tracking-sdk/models/last_mile_retrack_tracking_by_id_response.rb +203 -0
  43. data/lib/aftership-tracking-sdk/models/{next_couriers_create_tracking_response.rb → last_mile_tracking.rb} +33 -23
  44. data/lib/aftership-tracking-sdk/models/last_mile_update_tracking_by_id_response.rb +203 -0
  45. data/lib/aftership-tracking-sdk/models/mark_tracking_completed_by_id_response.rb +63 -83
  46. data/lib/aftership-tracking-sdk/models/order_processing_time_estimated_pickup_predict_request.rb +163 -0
  47. data/lib/aftership-tracking-sdk/models/order_processing_time_estimated_pickup_predict_response.rb +163 -0
  48. data/lib/aftership-tracking-sdk/models/origin_address_estimated_delivery_date_request.rb +6 -6
  49. data/lib/aftership-tracking-sdk/models/origin_address_estimated_delivery_date_response.rb +6 -6
  50. data/lib/aftership-tracking-sdk/models/origin_address_predict_request.rb +193 -0
  51. data/lib/aftership-tracking-sdk/models/origin_address_predict_response.rb +193 -0
  52. data/lib/aftership-tracking-sdk/models/predict_request.rb +223 -0
  53. data/lib/aftership-tracking-sdk/models/predict_response.rb +273 -0
  54. data/lib/aftership-tracking-sdk/models/retrack_tracking_by_id_response.rb +63 -83
  55. data/lib/aftership-tracking-sdk/models/tracking.rb +63 -83
  56. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_request.rb +37 -57
  57. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_response.rb +63 -83
  58. data/lib/aftership-tracking-sdk/models/weight_predict_request.rb +163 -0
  59. data/lib/aftership-tracking-sdk/models/weight_predict_response.rb +163 -0
  60. data/lib/aftership-tracking-sdk/version.rb +1 -1
  61. metadata +41 -13
  62. data/lib/aftership-tracking-sdk/models/next_couriers_retrack_tracking_by_id_response.rb +0 -193
  63. data/lib/aftership-tracking-sdk/models/next_couriers_update_tracking_by_id_response.rb +0 -193
@@ -19,10 +19,6 @@ module AftershipAPI::Model
19
19
  # updated_at?: String;
20
20
  attr_accessor :updated_at
21
21
 
22
- # (Legacy) The date and time the shipment was updated. It uses the format `YYYY-MM-DDTHH:mm:ssZ` for the timezone GMT +0.
23
- # last_updated_at?: String;
24
- attr_accessor :last_updated_at
25
-
26
22
  # Tracking number.
27
23
  # tracking_number?: String;
28
24
  attr_accessor :tracking_number
@@ -39,17 +35,13 @@ module AftershipAPI::Model
39
35
  # custom_fields?: Object;
40
36
  attr_accessor :custom_fields
41
37
 
42
- # Customer name of the tracking.
43
- # customer_name?: String;
44
- attr_accessor :customer_name
45
-
46
38
  # Total transit time in days.- For delivered shipments: Transit time (in days) = Delivered date - Pick-up date- For undelivered shipments: Transit time (in days) = Current date - Pick-up dateValue as `null` for the shipment without pick-up date.
47
39
  # transit_time?: Integer;
48
40
  attr_accessor :transit_time
49
41
 
50
42
  # The for the origin country/region. E.g. USA for the United States.
51
- # origin_country_iso3?: String;
52
- attr_accessor :origin_country_iso3
43
+ # origin_country_region?: String;
44
+ attr_accessor :origin_country_region
53
45
 
54
46
  # The state of the sender’s address.
55
47
  # origin_state?: String;
@@ -68,8 +60,8 @@ module AftershipAPI::Model
68
60
  attr_accessor :origin_raw_location
69
61
 
70
62
  # The for the destination country/region. E.g. USA for the United States.
71
- # destination_country_iso3?: String;
72
- attr_accessor :destination_country_iso3
63
+ # destination_country_region?: String;
64
+ attr_accessor :destination_country_region
73
65
 
74
66
  # The state of the recipient’s address.
75
67
  # destination_state?: String;
@@ -88,12 +80,8 @@ module AftershipAPI::Model
88
80
  attr_accessor :destination_raw_location
89
81
 
90
82
  # Destination country/region of the tracking detected from the courier. ISO Alpha-3 (three letters). Value will be `null` if the courier doesn't provide the destination country.
91
- # courier_destination_country_iso3?: String;
92
- attr_accessor :courier_destination_country_iso3
93
-
94
- # Email address(es) to receive email notifications.
95
- # emails?: String[];
96
- attr_accessor :emails
83
+ # courier_destination_country_region?: String;
84
+ attr_accessor :courier_destination_country_region
97
85
 
98
86
  # The field contains the estimated delivery date provided by the carrier.
99
87
  # courier_estimated_delivery_date?: CourierEstimatedDeliveryDateGetTrackingByIdResponse;
@@ -139,10 +127,6 @@ module AftershipAPI::Model
139
127
  # signed_by?: String;
140
128
  attr_accessor :signed_by
141
129
 
142
- # The phone number(s) to receive sms notifications. Phone number should begin with `+` and `Area Code` before phone number.
143
- # smses?: String[];
144
- attr_accessor :smses
145
-
146
130
  # Source of how this tracking is added.
147
131
  # source?: String;
148
132
  attr_accessor :source
@@ -231,7 +215,7 @@ module AftershipAPI::Model
231
215
  # tracking_key?: String;
232
216
  attr_accessor :tracking_key
233
217
 
234
- # Additional field required by some carriers to retrieve the tracking info. The date the shipment was sent, using the format YYYYMMDD. Refer to our article on for more details.
218
+ # The date and time when the shipment is shipped by the merchant and ready for pickup by the carrier. The field supports the following formats:- YYYY-MM-DD- YYYY-MM-DDTHH:mm:ss- YYYY-MM-DDTHH:mm:ssZThe field serves two key purposes:- Calculate processing time metrics in the Order-to-delivery Analytics dashboard. To ensure accurate analytics, it's recommended to include timezone information when configuring this value- Required by certain carriers to retrieve tracking information as an additional tracking field.
235
219
  # tracking_ship_date?: String;
236
220
  attr_accessor :tracking_ship_date
237
221
 
@@ -275,17 +259,13 @@ module AftershipAPI::Model
275
259
  # courier_connection_id?: String;
276
260
  attr_accessor :courier_connection_id
277
261
 
278
- # The next couriers get the second carrier information from user or AfterShip.
279
- # next_couriers?: NextCouriersGetTrackingByIdResponse[];
280
- attr_accessor :next_couriers
281
-
282
- # (Legacy) Replaced by `origin_country_iso3`. Additional field required by some carriers to retrieve the tracking info. The origin country/region of the shipment. Refer to our article on for more details.
283
- # tracking_origin_country?: String;
284
- attr_accessor :tracking_origin_country
262
+ # (Legacy) Replaced by `origin_country_region`. Additional field required by some carriers to retrieve the tracking info. The origin country/region of the shipment. Refer to our article on for more details.
263
+ # tracking_origin_country_region?: String;
264
+ attr_accessor :tracking_origin_country_region
285
265
 
286
- # (Legacy) Replaced by `destination_country_iso3`. Additional field required by some carriers to retrieve the tracking info. The destination country/region of the shipment. Refer to our article on for more details.
287
- # tracking_destination_country?: String;
288
- attr_accessor :tracking_destination_country
266
+ # (Legacy) Replaced by `destination_country_region`. Additional field required by some carriers to retrieve the tracking info. The destination country/region of the shipment. Refer to our article on for more details.
267
+ # tracking_destination_country_region?: String;
268
+ attr_accessor :tracking_destination_country_region
289
269
 
290
270
  # (Legacy) Replaced by `destination_postal_code`. Additional field required by some carriers to retrieve the tracking info. The postal code of the recipient’s address. Refer to our article on for more details.
291
271
  # tracking_postal_code?: String;
@@ -327,6 +307,18 @@ module AftershipAPI::Model
327
307
  # aftership_tracking_order_url?: String;
328
308
  attr_accessor :aftership_tracking_order_url
329
309
 
310
+ # The field contains information about the first leg of the shipping starting from the carrier picking up the shipment from the shipper to the point where they hand it over to the last-mile carrier. Once AfterShip detects the shipment is multi-leg, we will populate the first-mile information under this object.
311
+ # first_mile?: FirstMileGetTrackingByIdResponse;
312
+ attr_accessor :first_mile
313
+
314
+ # This field contains information about the last leg of the shipment, starting from the carrier who hands it over to the last-mile carrier, all the way to delivery. Once AfterShip detects that the shipment involves multiple legs and identifies the last-mile carrier, we will populate the last-mile carrier information in this object. Alternatively, the user can provide this information in this field to specify the last-mile carrier, which is helpful if AfterShip is unable to detect it automatically.
315
+ # last_mile?: LastMileGetTrackingByIdResponse;
316
+ attr_accessor :last_mile
317
+
318
+ # The field contains the customer information associated with the tracking. A maximum of three customer objects are allowed.
319
+ # customers?: CustomersGetTrackingByIdResponse[];
320
+ attr_accessor :customers
321
+
330
322
  # Initializes the object
331
323
  # @param [Hash] attributes Model attributes in the form of hash
332
324
  def initialize(attributes = {})
@@ -354,10 +346,6 @@ module AftershipAPI::Model
354
346
  self.updated_at = attributes[:'updated_at']
355
347
  end
356
348
 
357
- if attributes.key?(:'last_updated_at')
358
- self.last_updated_at = attributes[:'last_updated_at']
359
- end
360
-
361
349
  if attributes.key?(:'tracking_number')
362
350
  self.tracking_number = attributes[:'tracking_number']
363
351
  end
@@ -374,16 +362,12 @@ module AftershipAPI::Model
374
362
  self.custom_fields = attributes[:'custom_fields']
375
363
  end
376
364
 
377
- if attributes.key?(:'customer_name')
378
- self.customer_name = attributes[:'customer_name']
379
- end
380
-
381
365
  if attributes.key?(:'transit_time')
382
366
  self.transit_time = attributes[:'transit_time']
383
367
  end
384
368
 
385
- if attributes.key?(:'origin_country_iso3')
386
- self.origin_country_iso3 = attributes[:'origin_country_iso3']
369
+ if attributes.key?(:'origin_country_region')
370
+ self.origin_country_region = attributes[:'origin_country_region']
387
371
  end
388
372
 
389
373
  if attributes.key?(:'origin_state')
@@ -402,8 +386,8 @@ module AftershipAPI::Model
402
386
  self.origin_raw_location = attributes[:'origin_raw_location']
403
387
  end
404
388
 
405
- if attributes.key?(:'destination_country_iso3')
406
- self.destination_country_iso3 = attributes[:'destination_country_iso3']
389
+ if attributes.key?(:'destination_country_region')
390
+ self.destination_country_region = attributes[:'destination_country_region']
407
391
  end
408
392
 
409
393
  if attributes.key?(:'destination_state')
@@ -422,12 +406,8 @@ module AftershipAPI::Model
422
406
  self.destination_raw_location = attributes[:'destination_raw_location']
423
407
  end
424
408
 
425
- if attributes.key?(:'courier_destination_country_iso3')
426
- self.courier_destination_country_iso3 = attributes[:'courier_destination_country_iso3']
427
- end
428
-
429
- if attributes.key?(:'emails')
430
- self.emails = attributes[:'emails']
409
+ if attributes.key?(:'courier_destination_country_region')
410
+ self.courier_destination_country_region = attributes[:'courier_destination_country_region']
431
411
  end
432
412
 
433
413
  if attributes.key?(:'courier_estimated_delivery_date')
@@ -474,10 +454,6 @@ module AftershipAPI::Model
474
454
  self.signed_by = attributes[:'signed_by']
475
455
  end
476
456
 
477
- if attributes.key?(:'smses')
478
- self.smses = attributes[:'smses']
479
- end
480
-
481
457
  if attributes.key?(:'source')
482
458
  self.source = attributes[:'source']
483
459
  end
@@ -610,16 +586,12 @@ module AftershipAPI::Model
610
586
  self.courier_connection_id = attributes[:'courier_connection_id']
611
587
  end
612
588
 
613
- if attributes.key?(:'next_couriers')
614
- self.next_couriers = attributes[:'next_couriers']
615
- end
616
-
617
- if attributes.key?(:'tracking_origin_country')
618
- self.tracking_origin_country = attributes[:'tracking_origin_country']
589
+ if attributes.key?(:'tracking_origin_country_region')
590
+ self.tracking_origin_country_region = attributes[:'tracking_origin_country_region']
619
591
  end
620
592
 
621
- if attributes.key?(:'tracking_destination_country')
622
- self.tracking_destination_country = attributes[:'tracking_destination_country']
593
+ if attributes.key?(:'tracking_destination_country_region')
594
+ self.tracking_destination_country_region = attributes[:'tracking_destination_country_region']
623
595
  end
624
596
 
625
597
  if attributes.key?(:'tracking_postal_code')
@@ -661,6 +633,18 @@ module AftershipAPI::Model
661
633
  if attributes.key?(:'aftership_tracking_order_url')
662
634
  self.aftership_tracking_order_url = attributes[:'aftership_tracking_order_url']
663
635
  end
636
+
637
+ if attributes.key?(:'first_mile')
638
+ self.first_mile = attributes[:'first_mile']
639
+ end
640
+
641
+ if attributes.key?(:'last_mile')
642
+ self.last_mile = attributes[:'last_mile']
643
+ end
644
+
645
+ if attributes.key?(:'customers')
646
+ self.customers = attributes[:'customers']
647
+ end
664
648
  end
665
649
 
666
650
  # Attribute type mapping.
@@ -670,25 +654,22 @@ module AftershipAPI::Model
670
654
  :'legacy_id' => :'String',
671
655
  :'created_at' => :'String',
672
656
  :'updated_at' => :'String',
673
- :'last_updated_at' => :'String',
674
657
  :'tracking_number' => :'String',
675
658
  :'slug' => :'String',
676
659
  :'active' => :'Boolean',
677
660
  :'custom_fields' => :'Object',
678
- :'customer_name' => :'String',
679
661
  :'transit_time' => :'Integer',
680
- :'origin_country_iso3' => :'String',
662
+ :'origin_country_region' => :'String',
681
663
  :'origin_state' => :'String',
682
664
  :'origin_city' => :'String',
683
665
  :'origin_postal_code' => :'String',
684
666
  :'origin_raw_location' => :'String',
685
- :'destination_country_iso3' => :'String',
667
+ :'destination_country_region' => :'String',
686
668
  :'destination_state' => :'String',
687
669
  :'destination_city' => :'String',
688
670
  :'destination_postal_code' => :'String',
689
671
  :'destination_raw_location' => :'String',
690
- :'courier_destination_country_iso3' => :'String',
691
- :'emails' => :'Array<String>',
672
+ :'courier_destination_country_region' => :'String',
692
673
  :'courier_estimated_delivery_date' => :'CourierEstimatedDeliveryDateGetTrackingByIdResponse',
693
674
  :'note' => :'String',
694
675
  :'order_id' => :'String',
@@ -700,7 +681,6 @@ module AftershipAPI::Model
700
681
  :'shipment_type' => :'String',
701
682
  :'shipment_weight' => :'ShipmentWeightGetTrackingByIdResponse',
702
683
  :'signed_by' => :'String',
703
- :'smses' => :'Array<String>',
704
684
  :'source' => :'String',
705
685
  :'tag' => :'TagV1',
706
686
  :'subtag' => :'String',
@@ -734,9 +714,8 @@ module AftershipAPI::Model
734
714
  :'latest_estimated_delivery' => :'LatestEstimatedDeliveryGetTrackingByIdResponse',
735
715
  :'shipment_tags' => :'Array<String>',
736
716
  :'courier_connection_id' => :'String',
737
- :'next_couriers' => :'Array<NextCouriersGetTrackingByIdResponse>',
738
- :'tracking_origin_country' => :'String',
739
- :'tracking_destination_country' => :'String',
717
+ :'tracking_origin_country_region' => :'String',
718
+ :'tracking_destination_country_region' => :'String',
740
719
  :'tracking_postal_code' => :'String',
741
720
  :'tracking_state' => :'String',
742
721
  :'carbon_emissions' => :'CarbonEmissionsGetTrackingByIdResponse',
@@ -747,6 +726,9 @@ module AftershipAPI::Model
747
726
  :'delivery_location_type' => :'String',
748
727
  :'aftership_tracking_url' => :'String',
749
728
  :'aftership_tracking_order_url' => :'String',
729
+ :'first_mile' => :'FirstMileGetTrackingByIdResponse',
730
+ :'last_mile' => :'LastMileGetTrackingByIdResponse',
731
+ :'customers' => :'Array<CustomersGetTrackingByIdResponse>',
750
732
  }
751
733
  end
752
734
 
@@ -757,25 +739,22 @@ module AftershipAPI::Model
757
739
  :'legacy_id' => :'legacy_id',
758
740
  :'created_at' => :'created_at',
759
741
  :'updated_at' => :'updated_at',
760
- :'last_updated_at' => :'last_updated_at',
761
742
  :'tracking_number' => :'tracking_number',
762
743
  :'slug' => :'slug',
763
744
  :'active' => :'active',
764
745
  :'custom_fields' => :'custom_fields',
765
- :'customer_name' => :'customer_name',
766
746
  :'transit_time' => :'transit_time',
767
- :'origin_country_iso3' => :'origin_country_iso3',
747
+ :'origin_country_region' => :'origin_country_region',
768
748
  :'origin_state' => :'origin_state',
769
749
  :'origin_city' => :'origin_city',
770
750
  :'origin_postal_code' => :'origin_postal_code',
771
751
  :'origin_raw_location' => :'origin_raw_location',
772
- :'destination_country_iso3' => :'destination_country_iso3',
752
+ :'destination_country_region' => :'destination_country_region',
773
753
  :'destination_state' => :'destination_state',
774
754
  :'destination_city' => :'destination_city',
775
755
  :'destination_postal_code' => :'destination_postal_code',
776
756
  :'destination_raw_location' => :'destination_raw_location',
777
- :'courier_destination_country_iso3' => :'courier_destination_country_iso3',
778
- :'emails' => :'emails',
757
+ :'courier_destination_country_region' => :'courier_destination_country_region',
779
758
  :'courier_estimated_delivery_date' => :'courier_estimated_delivery_date',
780
759
  :'note' => :'note',
781
760
  :'order_id' => :'order_id',
@@ -787,7 +766,6 @@ module AftershipAPI::Model
787
766
  :'shipment_type' => :'shipment_type',
788
767
  :'shipment_weight' => :'shipment_weight',
789
768
  :'signed_by' => :'signed_by',
790
- :'smses' => :'smses',
791
769
  :'source' => :'source',
792
770
  :'tag' => :'tag',
793
771
  :'subtag' => :'subtag',
@@ -821,9 +799,8 @@ module AftershipAPI::Model
821
799
  :'latest_estimated_delivery' => :'latest_estimated_delivery',
822
800
  :'shipment_tags' => :'shipment_tags',
823
801
  :'courier_connection_id' => :'courier_connection_id',
824
- :'next_couriers' => :'next_couriers',
825
- :'tracking_origin_country' => :'tracking_origin_country',
826
- :'tracking_destination_country' => :'tracking_destination_country',
802
+ :'tracking_origin_country_region' => :'tracking_origin_country_region',
803
+ :'tracking_destination_country_region' => :'tracking_destination_country_region',
827
804
  :'tracking_postal_code' => :'tracking_postal_code',
828
805
  :'tracking_state' => :'tracking_state',
829
806
  :'carbon_emissions' => :'carbon_emissions',
@@ -834,6 +811,9 @@ module AftershipAPI::Model
834
811
  :'delivery_location_type' => :'delivery_location_type',
835
812
  :'aftership_tracking_url' => :'aftership_tracking_url',
836
813
  :'aftership_tracking_order_url' => :'aftership_tracking_order_url',
814
+ :'first_mile' => :'first_mile',
815
+ :'last_mile' => :'last_mile',
816
+ :'customers' => :'customers',
837
817
  }
838
818
  end
839
819
 
@@ -1,49 +1,49 @@
1
1
  # This code was auto generated by AfterShip SDK Generator.
2
2
  # Do not edit the class manually.
3
3
  module AftershipAPI::Model
4
- class NextCouriersCreateTrackingRequest
4
+ class LastMileCreateTrackingRequest
5
5
 
6
- #
7
- # slug: String;
8
- attr_accessor :slug
9
-
10
- # Tracking number of a shipment.Duplicated tracking numbers, tracking numbers with invalid tracking number format will not be accepted.We only accept tracking numbers with length from 4 to 100We currently support the following characters in a tracking number:- A - Z- 0 - 9- `-` (Hyphen)- . (Period)- _ (Underscore)- / (Slash)
6
+ # The tracking number of the last-mile carrier.
11
7
  # tracking_number: String;
12
8
  attr_accessor :tracking_number
13
9
 
10
+ # The unique code of the carrier responsible for the last-mile of the shipment. Find all the courier slugs .
11
+ # slug?: String;
12
+ attr_accessor :slug
13
+
14
14
  # Initializes the object
15
15
  # @param [Hash] attributes Model attributes in the form of hash
16
16
  def initialize(attributes = {})
17
17
  if (!attributes.is_a?(Hash))
18
- fail ArgumentError, "The input argument (attributes) must be a hash in `AftershipAPI::NextCouriersCreateTrackingRequest` initialize method"
18
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AftershipAPI::LastMileCreateTrackingRequest` initialize method"
19
19
  end
20
20
 
21
21
  attributes = attributes.each_with_object({}) { |(k, v), h|
22
22
  h[k.to_sym] = v
23
23
  }
24
24
 
25
- if attributes.key?(:'slug')
26
- self.slug = attributes[:'slug']
27
- end
28
-
29
25
  if attributes.key?(:'tracking_number')
30
26
  self.tracking_number = attributes[:'tracking_number']
31
27
  end
28
+
29
+ if attributes.key?(:'slug')
30
+ self.slug = attributes[:'slug']
31
+ end
32
32
  end
33
33
 
34
34
  # Attribute type mapping.
35
35
  def self.openapi_types
36
36
  {
37
- :'slug' => :'String',
38
37
  :'tracking_number' => :'String',
38
+ :'slug' => :'String',
39
39
  }
40
40
  end
41
41
 
42
42
  # Attribute mapping from ruby-style variable name to JSON key.
43
43
  def self.attribute_map
44
44
  {
45
- :'slug' => :'slug',
46
45
  :'tracking_number' => :'tracking_number',
46
+ :'slug' => :'slug',
47
47
  }
48
48
  end
49
49
 
@@ -0,0 +1,203 @@
1
+ # This code was auto generated by AfterShip SDK Generator.
2
+ # Do not edit the class manually.
3
+ module AftershipAPI::Model
4
+ class LastMileCreateTrackingResponse
5
+
6
+ # The tracking number of the last-mile carrier.
7
+ # tracking_number?: String;
8
+ attr_accessor :tracking_number
9
+
10
+ # The unique code of the carrier responsible for the last-mile of the shipment. Find all the courier slugs .
11
+ # slug?: String;
12
+ attr_accessor :slug
13
+
14
+ # The transit time for the last-mile of a shipment in days. This field is calculated based on whether the handed_over_to_last_mile_carrier or the received_by_last_mile_carrier event is detected by AfterShip. The handover event date is used to calculate the last-mile transit time.- Last mile transit time (in days)= Delivered date - Handover date
15
+ # transit_time?: String;
16
+ attr_accessor :transit_time
17
+
18
+ # The field contains the official tracking URL of the last-mile carrier, if available. The language parameter of this link is determined by the destination country/region and the language associated with the shipment. If the destination country/region and language data is unavailable, AfterShip will default the language parameter to "US".
19
+ # courier_tracking_link?: String;
20
+ attr_accessor :courier_tracking_link
21
+
22
+ # The field provides the link for modifying delivery instructions (such as delivery date and shipping address), if supported by the last-mile carrier. The language parameter of this link is determined by the destination country/region and the language associated with the shipment. If the destination country/region and language data is unavailable, AfterShip will default the language parameter to "US".
23
+ # courier_redirect_link?: String;
24
+ attr_accessor :courier_redirect_link
25
+
26
+ # The field indicates the source of last-mile carrier.
27
+ # source?: String;
28
+ attr_accessor :source
29
+
30
+ # Initializes the object
31
+ # @param [Hash] attributes Model attributes in the form of hash
32
+ def initialize(attributes = {})
33
+ if (!attributes.is_a?(Hash))
34
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AftershipAPI::LastMileCreateTrackingResponse` initialize method"
35
+ end
36
+
37
+ attributes = attributes.each_with_object({}) { |(k, v), h|
38
+ h[k.to_sym] = v
39
+ }
40
+
41
+ if attributes.key?(:'tracking_number')
42
+ self.tracking_number = attributes[:'tracking_number']
43
+ end
44
+
45
+ if attributes.key?(:'slug')
46
+ self.slug = attributes[:'slug']
47
+ end
48
+
49
+ if attributes.key?(:'transit_time')
50
+ self.transit_time = attributes[:'transit_time']
51
+ end
52
+
53
+ if attributes.key?(:'courier_tracking_link')
54
+ self.courier_tracking_link = attributes[:'courier_tracking_link']
55
+ end
56
+
57
+ if attributes.key?(:'courier_redirect_link')
58
+ self.courier_redirect_link = attributes[:'courier_redirect_link']
59
+ end
60
+
61
+ if attributes.key?(:'source')
62
+ self.source = attributes[:'source']
63
+ end
64
+ end
65
+
66
+ # Attribute type mapping.
67
+ def self.openapi_types
68
+ {
69
+ :'tracking_number' => :'String',
70
+ :'slug' => :'String',
71
+ :'transit_time' => :'String',
72
+ :'courier_tracking_link' => :'String',
73
+ :'courier_redirect_link' => :'String',
74
+ :'source' => :'String',
75
+ }
76
+ end
77
+
78
+ # Attribute mapping from ruby-style variable name to JSON key.
79
+ def self.attribute_map
80
+ {
81
+ :'tracking_number' => :'tracking_number',
82
+ :'slug' => :'slug',
83
+ :'transit_time' => :'transit_time',
84
+ :'courier_tracking_link' => :'courier_tracking_link',
85
+ :'courier_redirect_link' => :'courier_redirect_link',
86
+ :'source' => :'source',
87
+ }
88
+ end
89
+
90
+ # Builds the object from hash
91
+ # @param attributes [Hash] Model attributes in the form of hash
92
+ # @return [Object] Returns the model itself
93
+ def self.build_from_hash(attributes)
94
+ return nil unless attributes.is_a?(Hash)
95
+ attributes = attributes.transform_keys(&:to_sym)
96
+ transformed_hash = {}
97
+ openapi_types.each_pair do |key, type|
98
+ if attributes.key?(key) && attributes[key].nil?
99
+ transformed_hash["#{key}"] = nil
100
+ elsif type =~ /\AArray<(.*)>/i
101
+ # check to ensure the input is an array given that the attribute
102
+ # is documented as an array but the input is not
103
+ if attributes[key].is_a?(Array)
104
+ transformed_hash["#{key}"] = attributes[key].map { |v| _deserialize($1, v) }
105
+ end
106
+ elsif !attributes[key].nil?
107
+ transformed_hash["#{key}"] = _deserialize(type, attributes[key])
108
+ end
109
+ end
110
+ new(transformed_hash)
111
+ end
112
+
113
+ # Deserializes the data based on type
114
+ # @param type [String] Data type
115
+ # @param value [String] Value to be deserialized
116
+ # @return [Object] Deserialized data
117
+ def self._deserialize(type, value)
118
+ case type.to_sym
119
+ when :Time
120
+ Time.parse(value)
121
+ when :Date
122
+ Date.parse(value)
123
+ when :String
124
+ value.to_s
125
+ when :Integer
126
+ value.to_i
127
+ when :Float
128
+ value.to_f
129
+ when :Boolean
130
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
131
+ true
132
+ else
133
+ false
134
+ end
135
+ when :Object
136
+ # generic object (usually a Hash), return directly
137
+ value
138
+ when /\AArray<(?<inner_type>.+)>\z/
139
+ inner_type = Regexp.last_match[:inner_type]
140
+ value.map { |v| _deserialize(inner_type, v) }
141
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
142
+ k_type = Regexp.last_match[:k_type]
143
+ v_type = Regexp.last_match[:v_type]
144
+ {}.tap do |hash|
145
+ value.each do |k, v|
146
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
147
+ end
148
+ end
149
+ else # model
150
+ klass = AftershipAPI::Model.const_get(type)
151
+ klass.build_from_hash(value)
152
+ end
153
+ end
154
+
155
+ # Returns the string representation of the object
156
+ # @return [String] String presentation of the object
157
+ def to_s
158
+ to_hash.to_s
159
+ end
160
+
161
+ # to_body is an alias to to_hash (backward compatibility)
162
+ # @return [Hash] Returns the object in the form of hash
163
+ def to_body
164
+ to_hash
165
+ end
166
+
167
+ # Returns the object in the form of hash
168
+ # @return [Hash] Returns the object in the form of hash
169
+ def to_hash
170
+ hash = {}
171
+ self.class.attribute_map.each_pair do |attr, param|
172
+ value = self.send(attr)
173
+ next if value.nil?
174
+
175
+ hash[param] = _to_hash(value)
176
+ end
177
+ hash
178
+ end
179
+
180
+ # Outputs non-array value in the form of hash
181
+ # For object, use to_hash. Otherwise, just return the value
182
+ # @param value [Object] Any valid value
183
+ # @return [Hash] Returns the value in the form of hash
184
+ def _to_hash(value)
185
+ if value.is_a?(Array)
186
+ value.compact.map { |v| _to_hash(v) }
187
+ elsif value.is_a?(Hash)
188
+ {}.tap do |hash|
189
+ value.each { |k, v| hash[k] = _to_hash(v) }
190
+ end
191
+ elsif value.respond_to? :to_hash
192
+ value.to_hash
193
+ else
194
+ value
195
+ end
196
+ end
197
+
198
+ def to_json(*a)
199
+ to_hash.to_json(*a)
200
+ end
201
+ end
202
+ end
203
+