aftership-tracking-sdk 12.0.0 → 13.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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -1
  3. data/README.md +146 -107
  4. data/aftership-tracking-sdk.gemspec +0 -1
  5. data/lib/aftership-tracking-sdk/api/courier.rb +46 -57
  6. data/lib/aftership-tracking-sdk/api/courier_connection.rb +105 -131
  7. data/lib/aftership-tracking-sdk/api/estimated_delivery_date.rb +30 -44
  8. data/lib/aftership-tracking-sdk/api/tracking.rb +171 -208
  9. data/lib/aftership-tracking-sdk/api_client.rb +9 -34
  10. data/lib/aftership-tracking-sdk/configuration.rb +106 -108
  11. data/lib/aftership-tracking-sdk/error.rb +10 -18
  12. data/lib/aftership-tracking-sdk/models/additional_fields.rb +1 -2
  13. data/lib/aftership-tracking-sdk/models/checkpoint.rb +23 -25
  14. data/lib/aftership-tracking-sdk/models/{coordinate_checkpoint.rb → checkpoint_coordinate.rb} +4 -6
  15. data/lib/aftership-tracking-sdk/models/{events_checkpoint.rb → checkpoint_events.rb} +6 -8
  16. data/lib/aftership-tracking-sdk/models/{reason_events_checkpoint.rb → checkpoint_events_reason.rb} +3 -5
  17. data/lib/aftership-tracking-sdk/models/checkpoint_source.rb +26 -0
  18. data/lib/aftership-tracking-sdk/models/courier.rb +17 -19
  19. data/lib/aftership-tracking-sdk/models/courier_connection.rb +5 -7
  20. data/lib/aftership-tracking-sdk/models/courier_connection_response_for_get_courier_connections.rb +4 -6
  21. data/lib/aftership-tracking-sdk/models/{data_courier_connection_response_for_get_courier_connections.rb → courier_connection_response_for_get_courier_connections_data.rb} +6 -8
  22. data/lib/aftership-tracking-sdk/models/{pagination_data_courier_connection_response_for_get_courier_connections.rb → courier_connection_response_for_get_courier_connections_data_pagination.rb} +5 -7
  23. data/lib/aftership-tracking-sdk/models/{credentials_courier.rb → courier_credentials.rb} +3 -5
  24. data/lib/aftership-tracking-sdk/models/courier_response.rb +4 -6
  25. data/lib/aftership-tracking-sdk/models/{data_courier_response.rb → courier_response_data.rb} +4 -6
  26. data/lib/aftership-tracking-sdk/models/create_tracking_request.rb +44 -46
  27. data/lib/aftership-tracking-sdk/models/{customers_create_tracking_request.rb → create_tracking_request_customers.rb} +7 -9
  28. data/lib/aftership-tracking-sdk/models/create_tracking_request_delivery_type.rb +27 -0
  29. data/lib/aftership-tracking-sdk/models/{last_mile_create_tracking_request.rb → create_tracking_request_last_mile.rb} +4 -6
  30. data/lib/aftership-tracking-sdk/models/create_tracking_response.rb +3 -887
  31. data/lib/aftership-tracking-sdk/models/credential_field.rb +3 -5
  32. data/lib/aftership-tracking-sdk/models/delete_courier_connections_by_id_response.rb +3 -187
  33. data/lib/aftership-tracking-sdk/models/delete_tracking_by_id_response.rb +3 -887
  34. data/lib/aftership-tracking-sdk/models/detect_courier_request.rb +12 -14
  35. data/lib/aftership-tracking-sdk/models/detect_courier_response.rb +3 -157
  36. data/lib/aftership-tracking-sdk/models/detect_courier_response_data.rb +161 -0
  37. data/lib/aftership-tracking-sdk/models/estimated_delivery_date_request.rb +16 -18
  38. data/lib/aftership-tracking-sdk/models/{destination_address_predict_request.rb → estimated_delivery_date_request_destination_address.rb} +7 -9
  39. data/lib/aftership-tracking-sdk/models/{estimated_pickup_predict_request.rb → estimated_delivery_date_request_estimated_pickup.rb} +8 -10
  40. data/lib/aftership-tracking-sdk/models/{order_processing_time_estimated_pickup_predict_request.rb → estimated_delivery_date_request_estimated_pickup_order_processing_time.rb} +4 -6
  41. data/lib/aftership-tracking-sdk/models/{origin_address_predict_request.rb → estimated_delivery_date_request_origin_address.rb} +7 -9
  42. data/lib/aftership-tracking-sdk/models/{weight_estimated_delivery_date_request.rb → estimated_delivery_date_request_weight.rb} +4 -6
  43. data/lib/aftership-tracking-sdk/models/estimated_delivery_date_response.rb +21 -23
  44. data/lib/aftership-tracking-sdk/models/{destination_address_predict_response.rb → estimated_delivery_date_response_destination_address.rb} +7 -9
  45. data/lib/aftership-tracking-sdk/models/{estimated_pickup_predict_response.rb → estimated_delivery_date_response_estimated_pickup.rb} +9 -11
  46. data/lib/aftership-tracking-sdk/models/{order_processing_time_estimated_pickup_predict_response.rb → estimated_delivery_date_response_estimated_pickup_order_processing_time.rb} +4 -6
  47. data/lib/aftership-tracking-sdk/models/{origin_address_predict_response.rb → estimated_delivery_date_response_origin_address.rb} +7 -9
  48. data/lib/aftership-tracking-sdk/models/{weight_predict_response.rb → estimated_delivery_date_response_weight.rb} +4 -6
  49. data/lib/aftership-tracking-sdk/models/get_courier_connections_by_id_response.rb +3 -187
  50. data/lib/aftership-tracking-sdk/models/get_courier_connections_response.rb +3 -157
  51. data/lib/aftership-tracking-sdk/models/{carbon_emissions_mark_tracking_completed_by_id_response.rb → get_courier_connections_response_data.rb} +18 -20
  52. data/lib/aftership-tracking-sdk/models/{pagination_get_courier_connections_response.rb → get_courier_connections_response_data_pagination.rb} +5 -7
  53. data/lib/aftership-tracking-sdk/models/get_couriers_response.rb +3 -157
  54. data/lib/aftership-tracking-sdk/models/get_couriers_response_data.rb +161 -0
  55. data/lib/aftership-tracking-sdk/models/get_tracking_by_id_response.rb +3 -887
  56. data/lib/aftership-tracking-sdk/models/get_trackings_response.rb +3 -157
  57. data/lib/aftership-tracking-sdk/models/{carbon_emissions_delete_tracking_by_id_response.rb → get_trackings_response_data.rb} +18 -20
  58. data/lib/aftership-tracking-sdk/models/{pagination_get_trackings_response.rb → get_trackings_response_data_pagination.rb} +5 -7
  59. data/lib/aftership-tracking-sdk/models/mark_tracking_completed_by_id_request.rb +4 -6
  60. data/lib/aftership-tracking-sdk/models/mark_tracking_completed_by_id_request_reason.rb +27 -0
  61. data/lib/aftership-tracking-sdk/models/mark_tracking_completed_by_id_response.rb +3 -887
  62. data/lib/aftership-tracking-sdk/models/meta.rb +5 -7
  63. data/lib/aftership-tracking-sdk/models/meta_type.rb +30 -0
  64. data/lib/aftership-tracking-sdk/models/post_courier_connections_request.rb +2 -4
  65. data/lib/aftership-tracking-sdk/models/post_courier_connections_response.rb +3 -187
  66. data/lib/aftership-tracking-sdk/models/predict_batch_request.rb +1 -3
  67. data/lib/aftership-tracking-sdk/models/predict_batch_response.rb +3 -147
  68. data/lib/aftership-tracking-sdk/models/{weight_predict_request.rb → predict_batch_response_data.rb} +10 -22
  69. data/lib/aftership-tracking-sdk/models/predict_response.rb +3 -267
  70. data/lib/aftership-tracking-sdk/models/put_courier_connections_by_id_request.rb +1 -3
  71. data/lib/aftership-tracking-sdk/models/put_courier_connections_by_id_response.rb +3 -187
  72. data/lib/aftership-tracking-sdk/models/retrack_tracking_by_id_response.rb +3 -887
  73. data/lib/aftership-tracking-sdk/models/tag.rb +6 -7
  74. data/lib/aftership-tracking-sdk/models/tracking.rb +97 -99
  75. data/lib/aftership-tracking-sdk/models/{aftership_estimated_delivery_date_tracking.rb → tracking_aftership_estimated_delivery_date.rb} +6 -8
  76. data/lib/aftership-tracking-sdk/models/{carbon_emissions_tracking.rb → tracking_carbon_emissions.rb} +4 -6
  77. data/lib/aftership-tracking-sdk/models/{courier_estimated_delivery_date_tracking.rb → tracking_courier_estimated_delivery_date.rb} +5 -7
  78. data/lib/aftership-tracking-sdk/models/{custom_estimated_delivery_date_create_tracking_response.rb → tracking_custom_estimated_delivery_date.rb} +8 -10
  79. data/lib/aftership-tracking-sdk/models/tracking_custom_estimated_delivery_date_type.rb +26 -0
  80. data/lib/aftership-tracking-sdk/models/{customers_tracking.rb → tracking_customers.rb} +7 -9
  81. data/lib/aftership-tracking-sdk/models/{first_estimated_delivery_tracking.rb → tracking_first_estimated_delivery.rb} +11 -13
  82. data/lib/aftership-tracking-sdk/models/tracking_first_estimated_delivery_source.rb +28 -0
  83. data/lib/aftership-tracking-sdk/models/tracking_first_estimated_delivery_type.rb +26 -0
  84. data/lib/aftership-tracking-sdk/models/{first_mile_tracking.rb → tracking_first_mile.rb} +7 -9
  85. data/lib/aftership-tracking-sdk/models/{last_mile_tracking.rb → tracking_last_mile.rb} +10 -12
  86. data/lib/aftership-tracking-sdk/models/tracking_last_mile_source.rb +26 -0
  87. data/lib/aftership-tracking-sdk/models/{latest_estimated_delivery_tracking.rb → tracking_latest_estimated_delivery.rb} +12 -14
  88. data/lib/aftership-tracking-sdk/models/tracking_latest_estimated_delivery_source.rb +28 -0
  89. data/lib/aftership-tracking-sdk/models/tracking_latest_estimated_delivery_type.rb +26 -0
  90. data/lib/aftership-tracking-sdk/models/tracking_response.rb +2 -4
  91. data/lib/aftership-tracking-sdk/models/tracking_response_for_get_trackings.rb +4 -6
  92. data/lib/aftership-tracking-sdk/models/{data_tracking_response_for_get_trackings.rb → tracking_response_for_get_trackings_data.rb} +6 -8
  93. data/lib/aftership-tracking-sdk/models/{pagination_data_tracking_response_for_get_trackings.rb → tracking_response_for_get_trackings_data_pagination.rb} +5 -7
  94. data/lib/aftership-tracking-sdk/models/{shipment_weight_tracking.rb → tracking_shipment_weight.rb} +4 -6
  95. data/lib/aftership-tracking-sdk/models/tracking_signature_requirement.rb +29 -0
  96. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_request.rb +34 -36
  97. data/lib/aftership-tracking-sdk/models/{customers_update_tracking_by_id_request.rb → update_tracking_by_id_request_customers.rb} +7 -9
  98. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_request_delivery_type.rb +27 -0
  99. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_response.rb +3 -887
  100. data/lib/aftership-tracking-sdk/sign_string.rb +2 -2
  101. data/lib/aftership-tracking-sdk/version.rb +1 -1
  102. metadata +53 -109
  103. data/lib/aftership-tracking-sdk/models/aftership_estimated_delivery_date_create_tracking_response.rb +0 -183
  104. data/lib/aftership-tracking-sdk/models/aftership_estimated_delivery_date_delete_tracking_by_id_response.rb +0 -183
  105. data/lib/aftership-tracking-sdk/models/aftership_estimated_delivery_date_get_tracking_by_id_response.rb +0 -183
  106. data/lib/aftership-tracking-sdk/models/aftership_estimated_delivery_date_mark_tracking_completed_by_id_response.rb +0 -183
  107. data/lib/aftership-tracking-sdk/models/aftership_estimated_delivery_date_retrack_tracking_by_id_response.rb +0 -183
  108. data/lib/aftership-tracking-sdk/models/aftership_estimated_delivery_date_update_tracking_by_id_response.rb +0 -183
  109. data/lib/aftership-tracking-sdk/models/carbon_emissions_create_tracking_response.rb +0 -163
  110. data/lib/aftership-tracking-sdk/models/carbon_emissions_get_tracking_by_id_response.rb +0 -163
  111. data/lib/aftership-tracking-sdk/models/carbon_emissions_retrack_tracking_by_id_response.rb +0 -163
  112. data/lib/aftership-tracking-sdk/models/carbon_emissions_update_tracking_by_id_response.rb +0 -163
  113. data/lib/aftership-tracking-sdk/models/courier_estimated_delivery_date_create_tracking_response.rb +0 -173
  114. data/lib/aftership-tracking-sdk/models/courier_estimated_delivery_date_delete_tracking_by_id_response.rb +0 -173
  115. data/lib/aftership-tracking-sdk/models/courier_estimated_delivery_date_get_tracking_by_id_response.rb +0 -173
  116. data/lib/aftership-tracking-sdk/models/courier_estimated_delivery_date_mark_tracking_completed_by_id_response.rb +0 -173
  117. data/lib/aftership-tracking-sdk/models/courier_estimated_delivery_date_retrack_tracking_by_id_response.rb +0 -173
  118. data/lib/aftership-tracking-sdk/models/courier_estimated_delivery_date_update_tracking_by_id_response.rb +0 -173
  119. data/lib/aftership-tracking-sdk/models/custom_estimated_delivery_date_delete_tracking_by_id_response.rb +0 -183
  120. data/lib/aftership-tracking-sdk/models/custom_estimated_delivery_date_get_tracking_by_id_response.rb +0 -183
  121. data/lib/aftership-tracking-sdk/models/custom_estimated_delivery_date_mark_tracking_completed_by_id_response.rb +0 -183
  122. data/lib/aftership-tracking-sdk/models/custom_estimated_delivery_date_retrack_tracking_by_id_response.rb +0 -183
  123. data/lib/aftership-tracking-sdk/models/custom_estimated_delivery_date_tracking.rb +0 -183
  124. data/lib/aftership-tracking-sdk/models/custom_estimated_delivery_date_update_tracking_by_id_response.rb +0 -183
  125. data/lib/aftership-tracking-sdk/models/customers_create_tracking_response.rb +0 -193
  126. data/lib/aftership-tracking-sdk/models/customers_delete_tracking_by_id_response.rb +0 -193
  127. data/lib/aftership-tracking-sdk/models/customers_get_tracking_by_id_response.rb +0 -193
  128. data/lib/aftership-tracking-sdk/models/customers_mark_tracking_completed_by_id_response.rb +0 -193
  129. data/lib/aftership-tracking-sdk/models/customers_retrack_tracking_by_id_response.rb +0 -193
  130. data/lib/aftership-tracking-sdk/models/customers_update_tracking_by_id_response.rb +0 -193
  131. data/lib/aftership-tracking-sdk/models/destination_address_estimated_delivery_date_request.rb +0 -193
  132. data/lib/aftership-tracking-sdk/models/destination_address_estimated_delivery_date_response.rb +0 -193
  133. data/lib/aftership-tracking-sdk/models/estimated_pickup_estimated_delivery_date_request.rb +0 -183
  134. data/lib/aftership-tracking-sdk/models/estimated_pickup_estimated_delivery_date_response.rb +0 -193
  135. data/lib/aftership-tracking-sdk/models/first_estimated_delivery_create_tracking_response.rb +0 -193
  136. data/lib/aftership-tracking-sdk/models/first_estimated_delivery_delete_tracking_by_id_response.rb +0 -193
  137. data/lib/aftership-tracking-sdk/models/first_estimated_delivery_get_tracking_by_id_response.rb +0 -193
  138. data/lib/aftership-tracking-sdk/models/first_estimated_delivery_mark_tracking_completed_by_id_response.rb +0 -193
  139. data/lib/aftership-tracking-sdk/models/first_estimated_delivery_retrack_tracking_by_id_response.rb +0 -193
  140. data/lib/aftership-tracking-sdk/models/first_estimated_delivery_update_tracking_by_id_response.rb +0 -193
  141. data/lib/aftership-tracking-sdk/models/first_mile_create_tracking_response.rb +0 -193
  142. data/lib/aftership-tracking-sdk/models/first_mile_delete_tracking_by_id_response.rb +0 -193
  143. data/lib/aftership-tracking-sdk/models/first_mile_get_tracking_by_id_response.rb +0 -193
  144. data/lib/aftership-tracking-sdk/models/first_mile_mark_tracking_completed_by_id_response.rb +0 -193
  145. data/lib/aftership-tracking-sdk/models/first_mile_retrack_tracking_by_id_response.rb +0 -193
  146. data/lib/aftership-tracking-sdk/models/first_mile_update_tracking_by_id_response.rb +0 -193
  147. data/lib/aftership-tracking-sdk/models/last_mile_create_tracking_response.rb +0 -203
  148. data/lib/aftership-tracking-sdk/models/last_mile_delete_tracking_by_id_response.rb +0 -203
  149. data/lib/aftership-tracking-sdk/models/last_mile_get_tracking_by_id_response.rb +0 -203
  150. data/lib/aftership-tracking-sdk/models/last_mile_mark_tracking_completed_by_id_response.rb +0 -203
  151. data/lib/aftership-tracking-sdk/models/last_mile_retrack_tracking_by_id_response.rb +0 -203
  152. data/lib/aftership-tracking-sdk/models/last_mile_update_tracking_by_id_response.rb +0 -203
  153. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_create_tracking_response.rb +0 -203
  154. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_delete_tracking_by_id_response.rb +0 -203
  155. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_get_tracking_by_id_response.rb +0 -203
  156. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_mark_tracking_completed_by_id_response.rb +0 -203
  157. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_retrack_tracking_by_id_response.rb +0 -203
  158. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_update_tracking_by_id_response.rb +0 -203
  159. data/lib/aftership-tracking-sdk/models/order_processing_time_estimated_pickup_estimated_delivery_date_request.rb +0 -163
  160. data/lib/aftership-tracking-sdk/models/order_processing_time_estimated_pickup_estimated_delivery_date_response.rb +0 -163
  161. data/lib/aftership-tracking-sdk/models/origin_address_estimated_delivery_date_request.rb +0 -193
  162. data/lib/aftership-tracking-sdk/models/origin_address_estimated_delivery_date_response.rb +0 -193
  163. data/lib/aftership-tracking-sdk/models/pagination.rb +0 -164
  164. data/lib/aftership-tracking-sdk/models/predict_request.rb +0 -223
  165. data/lib/aftership-tracking-sdk/models/shipment_weight_create_tracking_response.rb +0 -163
  166. data/lib/aftership-tracking-sdk/models/shipment_weight_delete_tracking_by_id_response.rb +0 -163
  167. data/lib/aftership-tracking-sdk/models/shipment_weight_get_tracking_by_id_response.rb +0 -163
  168. data/lib/aftership-tracking-sdk/models/shipment_weight_mark_tracking_completed_by_id_response.rb +0 -163
  169. data/lib/aftership-tracking-sdk/models/shipment_weight_retrack_tracking_by_id_response.rb +0 -163
  170. data/lib/aftership-tracking-sdk/models/shipment_weight_update_tracking_by_id_response.rb +0 -163
  171. data/lib/aftership-tracking-sdk/models/slug_group.rb +0 -37
  172. data/lib/aftership-tracking-sdk/models/weight_estimated_delivery_date_response.rb +0 -163
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0867d2ab6e06b2c9c67e7f72cc34c1e7c84b7c249a40d74320a918af45333a5f'
4
- data.tar.gz: 13d741777e63e847e7d0f819be8680eba296a7cb89f814cfe5a52c56a86a3e1d
3
+ metadata.gz: 797c70d4a91c7d50a97997267ad8f6b6f55781ba87962d10e8932683b4f79ad2
4
+ data.tar.gz: 20180484c5f2e18da713f51404fa4742718b5aebb51c92d5a207ca293e0f2eb3
5
5
  SHA512:
6
- metadata.gz: 224dc2f4e17f70983e0aab46f6ad96c8fd7362670e2404bf58d98c4df24843791a2168b71b95216888644d1b3c7c3952057c735c246a6b76173a6151873fbf56
7
- data.tar.gz: ac1cfe8bb8d8db9d367112336186f7ad2c032b508bf4eb090bed7b0cf2460c52f796c0d2e38791152dd1d3c838ee8acaf2c0d598ee622c19bebbd0f6e68efb5b
6
+ metadata.gz: af4839a8968503bdd46f74a51f7644b515fec28f41159d4dd2edbf1c2297e3082049ddc510d64b6865b34dd506aef51672f821994a8365b649bb8b3986691765
7
+ data.tar.gz: c3c754e064f3ffb5ade7d5215d135ce1af92a325ffd5e8947fbe189f1026f636a134fc3500f38ced6023649d7b1d63bb6f82284c02dfc062c8fb669102f38ea2
data/Gemfile CHANGED
@@ -9,4 +9,3 @@ group :development, :test do
9
9
  gem 'dotenv'
10
10
  gem "webmock", "~> 3.23"
11
11
  end
12
-
data/README.md CHANGED
@@ -36,21 +36,10 @@ Before you begin to integrate:
36
36
  - [Create an API key](https://organization.automizely.com/api-keys).
37
37
  - [Install Ruby](https://www.ruby-lang.org/en/) version Ruby 2.7 or later.
38
38
 
39
-
40
39
  ### API and SDK Version
41
40
 
42
- Each SDK version is designed to work with a specific API version. Please refer to the table below to identify the supported API versions for each SDK version, ensuring you select the appropriate SDK version for the API version you intend to use.
43
-
44
- | SDK Version | Supported API Version | Branch |
45
- | ----------- | --------------------- | ----------------------------------------------------------- |
46
- | 12.x.x | 2025-07 | https://github.com/AfterShip/tracking-sdk-ruby/tree/2025-07 |
47
- | 11.x.x | 2025-04 | https://github.com/AfterShip/tracking-sdk-ruby/tree/2025-04 |
48
- | 10.x.x | 2025-01 | https://github.com/AfterShip/tracking-sdk-ruby/tree/2025-01 |
49
- | 9.x.x | 2024-10 | https://github.com/AfterShip/tracking-sdk-ruby/tree/2024-10 |
50
- | 8.x.x | 2024-07 | https://github.com/AfterShip/tracking-sdk-ruby/tree/2024-07 |
51
- | 7.x.x | 2024-04 | https://github.com/AfterShip/tracking-sdk-ruby/tree/2024-04 |
52
- | <=6.x.x | Legacy API | https://github.com/AfterShip/aftership-sdk-ruby |
53
-
41
+ - SDK Version:
42
+ - API Version: 2025-07
54
43
  ## Quick Start
55
44
 
56
45
  ### Installation
@@ -61,7 +50,7 @@ gem install aftership-tracking-sdk
61
50
  Or add a line to your Gemfile
62
51
 
63
52
  ```bash
64
- gem 'aftership-tracking-sdk', '~> 12.0.0'
53
+ gem 'aftership-tracking-sdk', '~> 13.0.0'
65
54
  ```
66
55
 
67
56
  ## Constructor
@@ -85,20 +74,20 @@ Create AfterShip instance with options
85
74
  require 'aftership-tracking-sdk'
86
75
 
87
76
  AftershipAPI.configure do |config|
88
- config.as_api_key = "YOUR_API_KEY"
77
+ config.as_api_key = "YOUR_API_KEY"
89
78
  end
90
79
 
91
80
  begin
92
- resp = AftershipAPI::Tracking.get_trackings
93
- p resp
81
+ response = AftershipAPI::Tracking.get_tracking_by_id(id:"valid_value", )
82
+ p response
94
83
  rescue AftershipAPI::ApiError => e
95
- p e.message
84
+ p e.message
96
85
  end
97
86
  ```
98
87
 
99
88
  ## Rate Limiter
100
89
 
101
- See the [Rate Limit](https://www.aftership.com/docs/tracking/2025-07/quickstart/rate-limit) to understand the AfterShip rate limit policy.
90
+ See the [Rate Limit](https://www.aftership.com/docs/tracking/quickstart/rate-limit) to understand the AfterShip rate limit policy.
102
91
 
103
92
  ## Error Handling
104
93
 
@@ -111,150 +100,200 @@ The SDK will return an error object when there is any error during the request,
111
100
  | meta_code | number | API response meta code. |
112
101
  | status_code | number | HTTP status code. |
113
102
  | response_body | string | API response body. |
114
- | response_headers | object | API response header. |
103
+ | response_header | object | API response header. |
104
+
115
105
 
116
106
  ### Error List
117
107
 
118
108
  | code | meta_code | status_code | message |
119
109
  | --------------------------------- | --------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
120
- | INVALID_REQUEST | 400 | 400 | The request was invalid or cannot be otherwise served. |
121
- | INVALID_JSON | 4001 | 400 | Invalid JSON data. |
122
- | TRACKING_ALREADY_EXIST | 4003 | 400 | Tracking already exists. |
123
- | TRACKING_DOES_NOT_EXIST | 4004 | 404 | Tracking does not exist. |
124
- | TRACKING_NUMBER_INVALID | 4005 | 400 | The value of tracking_number is invalid. |
125
- | TRACKING_REQUIRED | 4006 | 400 | tracking object is required. |
126
- | TRACKING_NUMBER_REQUIRED | 4007 | 400 | tracking_number is required. |
127
- | VALUE_INVALID | 4008 | 400 | The value of [field_name] is invalid. |
128
- | VALUE_REQUIRED | 4009 | 400 | [field_name] is required. |
129
- | SLUG_INVALID | 4010 | 400 | The value of slug is invalid. |
130
- | MISSING_OR_INVALID_REQUIRED_FIELD | 4011 | 400 | Missing or invalid value of the required fields for this courier. Besides tracking_number, also required: [field_name] |
131
- | BAD_COURIER | 4012 | 400 | The error message will be one of the following:<br/>1. Unable to import shipment as the carrier is not on your approved list for carrier auto-detection. Add the carrier here: https://admin.aftership.com/settings/couriers<br/>2. Unable to import shipment as we dont recognize the carrier from this tracking number.<br/>3. Unable to import shipment as the tracking number has an invalid format.<br/>4. Unable to import shipment as this carrier is no longer supported.<br/>5. Unable to import shipment as the tracking number does not belong to a carrier in that group. |
132
- | INACTIVE_RETRACK_NOT_ALLOWED | 4013 | 400 | Retrack is not allowed. You can only retrack an inactive tracking. |
133
- | NOTIFICATION_REUQIRED | 4014 | 400 | notification object is required. |
134
- | ID_INVALID | 4015 | 400 | The value of id is invalid. |
135
- | RETRACK_ONCE_ALLOWED | 4016 | 400 | Retrack is not allowed. You can only retrack each shipment once. |
136
- | TRACKING_NUMBER_FORMAT_INVALID | 4017 | 400 | The format of tracking_number is invalid. |
137
- | API_KEY_INVALID | 401 | 401 | The API key is invalid. |
138
- | REQUEST_NOT_ALLOWED | 403 | 403 | The request is understood, but it has been refused or access is not allowed. |
139
- | NOT_FOUND | 404 | 404 | The URI requested is invalid or the resource requested does not exist. |
140
- | TOO_MANY_REQUEST | 429 | 429 | You have exceeded the API call rate limit. The default limit is 10 requests per second. |
141
- | INTERNAL_ERROR | 500 502 503 504 | 500 502 503 504 | Something went wrong on AfterShip's end. |
110
+ | INVALID_REQUEST | 400 | 400 | The request was invalid or cannot be otherwise served. | |
111
+ | INVALID_JSON | 4001 | 400 | Invalid JSON data. | |
112
+ | TRACKING_ALREADY_EXIST | 4003 | 400 | Tracking already exists. | |
113
+ | TRACKING_DOES_NOT_EXIST | 4004 | 404 | Tracking does not exist. | |
114
+ | TRACKING_NUMBER_INVALID | 4005 | 400 | The value of tracking_number is invalid. | |
115
+ | TRACKING_REQUIRED | 4006 | 400 | tracking object is required. | |
116
+ | TRACKING_NUMBER_REQUIRED | 4007 | 400 | tracking_number is required. | |
117
+ | VALUE_INVALID | 4008 | 400 | The value of [field_name] is invalid. | |
118
+ | VALUE_REQUIRED | 4009 | 400 | [field_name] is required. | |
119
+ | SLUG_INVALID | 4010 | 400 | The value of slug is invalid. | |
120
+ | MISSING_OR_INVALID_REQUIRED_FIELD | 4011 | 400 | Missing or invalid value of the required fields for this courier. Besides tracking_number, also required: [field_name] | |
121
+ | BAD_COURIER | 4012 | 400 | The error message will be one of the following:1. Unable to import shipment as the carrier is not on your approved list for carrier auto-detection. Add the carrier here: https://admin.aftership.com/settings/couriers2. Unable to import shipment as we don&#39;t recognize the carrier from this tracking number.3. Unable to import shipment as the tracking number has an invalid format.4. Unable to import shipment as this carrier is no longer supported.5. Unable to import shipment as the tracking number does not belong to a carrier in that group. | |
122
+ | INACTIVE_RETRACK_NOT_ALLOWED | 4013 | 400 | Retrack is not allowed. You can only retrack an inactive tracking. | |
123
+ | NOTIFICATION_REQUIRED | 4014 | 400 | notification object is required. | |
124
+ | ID_INVALID | 4015 | 400 | The value of id is invalid. | |
125
+ | RETRACK_ONCE_ALLOWED | 4016 | 400 | Retrack is not allowed. You can only retrack each shipment once. | |
126
+ | TRACKING_NUMBER_FORMAT_INVALID | 4017 | 400 | The format of tracking_number is invalid. | |
127
+ | API_KEY_INVALID | 401 | 401 | The API Key is invalid. | |
128
+ | REQUEST_NOT_ALLOWED | 403 | 403 | The request is understood, but it has been refused or access is not allowed. | |
129
+ | NOT_FOUND | 404 | 404 | The URI requested is invalid or the resource requested does not exist. | |
130
+ | TOO_MANY_REQUEST | 429 | 429 | You have exceeded the API call rate limit. The default limit is 10 requests per second. | |
131
+ | INTERNAL_ERROR | 500 | 500 | Something went wrong on AfterShip&#39;s end. | |
132
+ | INTERNAL_ERROR | 502 | 502 | Something went wrong on AfterShip&#39;s end. | |
133
+ | INTERNAL_ERROR | 503 | 503 | Something went wrong on AfterShip&#39;s end. | |
134
+ | INTERNAL_ERROR | 504 | 504 | Something went wrong on AfterShip&#39;s end. | |
135
+ |
142
136
 
143
137
  ## Endpoints
144
138
 
145
- The AfterShip instance has the following properties which are exactly the same as the API endpoints:
146
-
147
- - courier - Get a list of our supported couriers.
148
- - tracking - Create trackings, update trackings, and get tracking results.
149
- - courier-connection - Create courier connections, update courier connections, and get courier connections results.
150
- - estimated-delivery-date - Get estimated delivery date for your order.
151
-
139
+ The AfterShip SDK has the following resource which are exactly the same as the API endpoints:
140
+
141
+ - trackingResource
142
+ - Get trackings
143
+ - Create a tracking
144
+ - Get a tracking by ID
145
+ - Update a tracking by ID
146
+ - Delete a tracking by ID
147
+ - Retrack an expired tracking by ID
148
+ - Mark tracking as completed by ID
149
+ - courierResource
150
+ - Get couriers
151
+ - Detect courier
152
+ - courierConnectionResource
153
+ - Get courier connections
154
+ - Create courier connections
155
+ - Get courier connection by id
156
+ - Update courier connection by id
157
+ - Delete courier connection by id
158
+ - estimatedDeliveryDateResource
159
+ - Prediction for the Estimated Delivery Date
160
+ - Batch prediction for the Estimated Delivery Date
152
161
 
153
162
  ### /trackings
154
-
155
- **POST** /trackings
163
+ **GET** /trackings
156
164
 
157
165
  ```ruby
158
- begin
159
- req = AftershipAPI::Model::CreateTrackingRequest. new
160
- req.tracking_number = "<tracking_number>"
161
- req.slug = "<slug>"
162
-
163
- resp = AftershipAPI::Tracking.create_tracking(body: req)
164
- p resp
165
- rescue AftershipAPI::ApiError => e
166
- p e.message
167
- end
166
+ response = AftershipAPI::Tracking.get_trackings()
167
+ p response
168
168
  ```
169
169
 
170
- **DELETE** /trackings/:id
170
+ **POST** /trackings
171
171
 
172
172
  ```ruby
173
- resp = AftershipAPI::Tracking.delete_tracking_by_id(id: "<tracking_id>")
174
- p resp.to_json
173
+ request = AftershipAPI::Model::CreateTrackingRequest.new
174
+ request.tracking_number = "valid_value"
175
+ response = AftershipAPI::Tracking.create_tracking(body: request)
176
+ p response
175
177
  ```
176
178
 
177
- **GET** /trackings
179
+ **GET** /trackings/{id}
178
180
 
179
181
  ```ruby
180
- resp = AftershipAPI::Tracking.get_trackings(opts: {keyword: "123"})
181
- p resp.to_json
182
+ response = AftershipAPI::Tracking.get_tracking_by_id(id:"valid_value", )
183
+ p response
182
184
  ```
183
185
 
184
- **GET** /trackings/:id
186
+ **PUT** /trackings/{id}
185
187
 
186
188
  ```ruby
187
- resp = AftershipAPI::Tracking.get_tracking_by_id(id: "<tracking_id>")
188
- p resp.to_json
189
+ request = AftershipAPI::Model::UpdateTrackingByIdRequest.new
190
+ response = AftershipAPI::Tracking.update_tracking_by_id(id:"valid_value", body: request)
191
+ p response
189
192
  ```
190
193
 
191
- **PUT** /trackings/:id
194
+ **DELETE** /trackings/{id}
192
195
 
193
196
  ```ruby
194
- req = AftershipAPI::Model::UpdateTrackingByIdRequest.new
195
- req.note = "test update"
196
- resp = AftershipAPI::Tracking.update_tracking_by_id(id: "<tracking_id>", body: req)
197
- p resp.to_json
197
+ response = AftershipAPI::Tracking.delete_tracking_by_id(id:"valid_value", )
198
+ p response
198
199
  ```
199
200
 
200
- **POST** /trackings/:id/retrack
201
+ **POST** /trackings/{id}/retrack
201
202
 
202
203
  ```ruby
203
- resp = AftershipAPI::Tracking.retrack_tracking_by_id(id: "<tracking_id>")
204
- p resp.to_json
204
+ response = AftershipAPI::Tracking.retrack_tracking_by_id(id:"valid_value", )
205
+ p response
205
206
  ```
206
207
 
207
- **POST** /trackings/:id/mark-as-completed
208
+ **POST** /trackings/{id}/mark-as-completed
208
209
 
209
210
  ```ruby
210
- req = AftershipAPI::Model::MarkTrackingCompletedByIdRequest.new
211
- req.reason = "DELIVERED"
212
- resp = AftershipAPI::Tracking.mark_tracking_completed_by_id(id: "<tracking_id>", body: req)
213
- p resp.to_json
211
+ request = AftershipAPI::Model::MarkTrackingCompletedByIdRequest.new
212
+ response = AftershipAPI::Tracking.mark_tracking_completed_by_id(id:"valid_value", body: request)
213
+ p response
214
214
  ```
215
215
 
216
216
  ### /couriers
217
217
  **GET** /couriers
218
218
 
219
219
  ```ruby
220
- resp = AftershipAPI::Courier.get_couriers()
221
- p resp.to_json
220
+ response = AftershipAPI::Courier.get_couriers()
221
+ p response
222
222
  ```
223
223
 
224
224
  **POST** /couriers/detect
225
225
 
226
226
  ```ruby
227
- req = AftershipAPI::Model::DetectCourierRequest.new
228
- req.tracking_number = "<tracking_number>"
229
- resp = AftershipAPI::Courier.detect_courier(body: req)
230
- p resp.to_json
227
+ request = AftershipAPI::Model::DetectCourierRequest.new
228
+ request.tracking_number = "valid_value"
229
+ response = AftershipAPI::Courier.detect_courier(body: request)
230
+ p response
231
+ ```
232
+
233
+ ### /courier-connections
234
+ **GET** /courier-connections
235
+
236
+ ```ruby
237
+ response = AftershipAPI::CourierConnection.get_courier_connections()
238
+ p response
239
+ ```
240
+
241
+ **POST** /courier-connections
242
+
243
+ ```ruby
244
+ request = AftershipAPI::Model::PostCourierConnectionsRequest.new
245
+ request.courier_slug = "valid_value"
246
+ request.credentials =
247
+ response = AftershipAPI::CourierConnection.post_courier_connections(body: request)
248
+ p response
249
+ ```
250
+
251
+ **GET** /courier-connections/{id}
252
+
253
+ ```ruby
254
+ response = AftershipAPI::CourierConnection.get_courier_connections_by_id(id:"valid_value", )
255
+ p response
256
+ ```
257
+
258
+ **PATCH** /courier-connections/{id}
259
+
260
+ ```ruby
261
+ request = AftershipAPI::Model::PutCourierConnectionsByIdRequest.new
262
+ request.credentials =
263
+ response = AftershipAPI::CourierConnection.put_courier_connections_by_id(id:"valid_value", body: request)
264
+ p response
265
+ ```
266
+
267
+ **DELETE** /courier-connections/{id}
268
+
269
+ ```ruby
270
+ response = AftershipAPI::CourierConnection.delete_courier_connections_by_id(id:"valid_value", )
271
+ p response
231
272
  ```
232
273
 
233
274
  ### /estimated-delivery-date
275
+ **POST** /estimated-delivery-date/predict
276
+
277
+ ```ruby
278
+ request = AftershipAPI::Model::EstimatedDeliveryDateRequest.new
279
+ request.slug = "valid_value"
280
+ origin_address = AftershipAPI::Model::EstimatedDeliveryDateRequestOriginAddress.new
281
+ request.origin_address = origin_address
282
+ destination_address = AftershipAPI::Model::EstimatedDeliveryDateRequestDestinationAddress.new
283
+ request.destination_address = destination_address
284
+ response = AftershipAPI::EstimatedDeliveryDate.predict(body: request)
285
+ p response
286
+ ```
234
287
 
235
288
  **POST** /estimated-delivery-date/predict-batch
236
289
 
237
290
  ```ruby
238
- edd = AftershipAPI::Model::EstimatedDeliveryDateRequest.new
239
- edd.slug = "<slug>"
240
- edd.pickup_time = "2024-08-01 06:42:30"
241
- origin = AftershipAPI::Model::OriginAddressEstimatedDeliveryDateRequest.new
242
- origin.country = "<ISO 3166-1 country/region code>"
243
- origin.state = "<ISO 3166-1 country/region code>"
244
-
245
- dest = AftershipAPI::Model::DestinationAddressEstimatedDeliveryDateRequest.new
246
- dest.country = "<ISO 3166-1 country/region code>"
247
- dest.state = "<ISO 3166-1 country/region code>"
248
-
249
- edd.origin_address = origin
250
- edd.destination_address = dest
251
-
252
- req = AftershipAPI::Model::PredictBatchRequest.new
253
- req.estimated_delivery_dates = [edd]
254
- resp = AftershipAPI::EstimatedDeliveryDate.predict_batch(body: req)
255
- p resp.to_json
291
+ request = AftershipAPI::Model::PredictBatchRequest.new
292
+ response = AftershipAPI::EstimatedDeliveryDate.predict_batch(body: request)
293
+ p response
256
294
  ```
257
295
 
296
+
258
297
  ## Help
259
298
 
260
299
  If you get stuck, we're here to help:
@@ -21,7 +21,6 @@ Gem::Specification.new do |s|
21
21
  s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
22
22
 
23
23
  s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
24
- s.test_files = `find spec/*`.split("\n")
25
24
  s.executables = []
26
25
  s.require_paths = ["lib"]
27
26
  end
@@ -3,41 +3,33 @@
3
3
  require 'cgi'
4
4
 
5
5
  module AftershipAPI
6
- class CourierApi
6
+ class CourierApi
7
7
  attr_accessor :api_client
8
8
 
9
9
  def initialize(api_client = ApiClient.default)
10
10
  @api_client = api_client
11
11
  end
12
12
 
13
- # detect_courier
14
- # Return a list of matched couriers based on tracking number format and or a list of couriers.
15
-
16
- # @param body [Model::DetectCourierRequest]
13
+ # get_couriers
14
+ # Return a list of couriers.
17
15
  # @param [Hash] opts the optional parameters
18
- # @return [Model::DetectCourierResponse]
19
- def detect_courier(body:,opts: {})
20
- if "" != ""
21
- body = {:'' => body}
22
- end
23
- opts[:body] = body
24
- data, _status_code, _headers = detect_courier_with_http_info(opts: opts)
25
- data
26
- end
27
-
28
- def detect_courier_with_http_info(opts: {})
16
+ # @option opts [Boolean] :active get user activated couriers
17
+ # @option opts [String] :slug Unique courier code Use comma for multiple values. (Example: dhl,ups,usps)
18
+ # @return [Model::GetCouriersResponse]
19
+ def get_couriers(opts: {})
29
20
  if @api_client.config.debugging
30
- @api_client.config.logger.debug 'Calling API: CourierApi.detect_courier ...'
21
+ @api_client.config.logger.debug 'Calling API: CourierApi.get_couriers ...'
31
22
  end
32
23
 
33
24
 
34
-
35
25
  # resource path
36
- local_var_path = "/tracking/2025-07/couriers/detect"
37
- method = :'POST'
26
+ local_var_path = "/tracking/2025-07/couriers"
27
+ method = :'GET'
38
28
 
39
29
  # query parameters
40
30
  query_params = opts[:query_params] || {}
31
+ query_params[:'active'] = opts[:'active'] if !opts[:'active'].nil?
32
+ query_params[:'slug'] = opts[:'slug'] if !opts[:'slug'].nil?
41
33
  # header parameters
42
34
  header_params = opts[:header_params] || {}
43
35
 
@@ -45,51 +37,46 @@ module AftershipAPI
45
37
  post_body = opts[:body]
46
38
 
47
39
  # return_type
48
- return_type = 'DetectCourierResponse'
49
-
40
+ return_type = 'GetCouriersResponseData'
41
+
50
42
  new_options = opts.merge(
51
- :operation => :"CourierApi.detect_courier",
43
+ :operation => :"CourierApi.get_couriers",
52
44
  :header_params => header_params,
53
45
  :query_params => query_params,
54
46
  :body => post_body,
55
- :return_type => return_type,
56
- :response_legacy_tag => "",
57
- :is_paging => false
47
+ :return_type => return_type
58
48
  )
59
49
 
60
- data, status_code, headers = @api_client.call_api(method, local_var_path, new_options)
50
+ data, _status_code, headers = @api_client.call_api(method, local_var_path, new_options)
61
51
  if @api_client.config.debugging
62
- @api_client.config.logger.debug "API called: CourierApi#detect_courier\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
52
+ @api_client.config.logger.debug "API called: CourierApi#get_couriers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
63
53
  end
64
- return data, status_code, headers
65
- end
66
54
 
67
- # get_couriers
68
- # Return a list of couriers.
69
- # @param [Hash] opts the optional parameters
70
- # @option opts [Boolean] :active get user activated couriers
71
- # @option opts [String] :slug Unique courier code Use comma for multiple values. (Example: dhl,ups,usps)
72
- # @return [Model::GetCouriersResponse]
73
- def get_couriers(opts: {})
74
- data, _status_code, _headers = get_couriers_with_http_info(opts: opts)
75
- data
55
+ resp = Model::GetCouriersResponse.new
56
+ resp.data = data
57
+ resp.response_header = headers
58
+ resp
76
59
  end
77
60
 
78
- def get_couriers_with_http_info(opts: {})
61
+ # detect_courier
62
+ # Return a list of matched couriers based on tracking number format and or a list of couriers.
63
+
64
+ # @param body [Model::DetectCourierRequest]
65
+ # @param [Hash] opts the optional parameters
66
+ # @return [Model::DetectCourierResponse]
67
+ def detect_courier(body:, opts: {})
68
+ opts[:body] = body
79
69
  if @api_client.config.debugging
80
- @api_client.config.logger.debug 'Calling API: CourierApi.get_couriers ...'
70
+ @api_client.config.logger.debug 'Calling API: CourierApi.detect_courier ...'
81
71
  end
82
72
 
83
73
 
84
-
85
74
  # resource path
86
- local_var_path = "/tracking/2025-07/couriers"
87
- method = :'GET'
75
+ local_var_path = "/tracking/2025-07/couriers/detect"
76
+ method = :'POST'
88
77
 
89
78
  # query parameters
90
79
  query_params = opts[:query_params] || {}
91
- query_params[:'active'] = opts[:'active'] if !opts[:'active'].nil?
92
- query_params[:'slug'] = opts[:'slug'] if !opts[:'slug'].nil?
93
80
  # header parameters
94
81
  header_params = opts[:header_params] || {}
95
82
 
@@ -97,23 +84,25 @@ module AftershipAPI
97
84
  post_body = opts[:body]
98
85
 
99
86
  # return_type
100
- return_type = 'GetCouriersResponse'
101
-
87
+ return_type = 'DetectCourierResponseData'
88
+
102
89
  new_options = opts.merge(
103
- :operation => :"CourierApi.get_couriers",
90
+ :operation => :"CourierApi.detect_courier",
104
91
  :header_params => header_params,
105
92
  :query_params => query_params,
106
93
  :body => post_body,
107
- :return_type => return_type,
108
- :response_legacy_tag => "",
109
- :is_paging => false
94
+ :return_type => return_type
110
95
  )
111
96
 
112
- data, status_code, headers = @api_client.call_api(method, local_var_path, new_options)
97
+ data, _status_code, headers = @api_client.call_api(method, local_var_path, new_options)
113
98
  if @api_client.config.debugging
114
- @api_client.config.logger.debug "API called: CourierApi#get_couriers\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
99
+ @api_client.config.logger.debug "API called: CourierApi#detect_courier\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
115
100
  end
116
- return data, status_code, headers
117
- end
101
+
102
+ resp = Model::DetectCourierResponse.new
103
+ resp.data = data
104
+ resp.response_header = headers
105
+ resp
106
+ end
118
107
  end
119
- end
108
+ end