ship_engine 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +431 -0
  4. data/Rakefile +10 -0
  5. data/docs/AddFundsToCarrierRequestBody.md +16 -0
  6. data/docs/AddFundsToCarrierResponseBody.md +17 -0
  7. data/docs/AddFundsToInsuranceRequestBody.md +16 -0
  8. data/docs/AddFundsToInsuranceResponseBody.md +16 -0
  9. data/docs/AddToBatchRequestBody.md +16 -0
  10. data/docs/Address.md +16 -0
  11. data/docs/AddressResidentialIndicator.md +16 -0
  12. data/docs/AddressToValidate.md +16 -0
  13. data/docs/AddressValidatingShipment.md +61 -0
  14. data/docs/AddressValidationCode.md +16 -0
  15. data/docs/AddressValidationDetailCode.md +16 -0
  16. data/docs/AddressValidationMessageType.md +16 -0
  17. data/docs/AddressValidationResult.md +23 -0
  18. data/docs/AddressValidationStatus.md +16 -0
  19. data/docs/AddressesApi.md +118 -0
  20. data/docs/AdvancedShipmentOptions.md +47 -0
  21. data/docs/AncillaryServiceEndorsement.md +16 -0
  22. data/docs/Batch.md +51 -0
  23. data/docs/BatchResponseError.md +19 -0
  24. data/docs/BatchStatus.md +16 -0
  25. data/docs/BatchesApi.md +580 -0
  26. data/docs/BatchesSortBy.md +16 -0
  27. data/docs/BillToParty.md +16 -0
  28. data/docs/BulkRate.md +25 -0
  29. data/docs/CalculateRatesRequestBody.md +16 -0
  30. data/docs/CalculateRatesResponseBody.md +61 -0
  31. data/docs/Carrier.md +41 -0
  32. data/docs/CarrierAccountsApi.md +238 -0
  33. data/docs/CarrierAdvancedOption.md +21 -0
  34. data/docs/CarrierName.md +16 -0
  35. data/docs/CarrierNameWithSettings.md +16 -0
  36. data/docs/CarriersApi.md +336 -0
  37. data/docs/CollectOnDelivery.md +19 -0
  38. data/docs/CollectOnDeliveryPaymentType.md +16 -0
  39. data/docs/CompareBulkRatesRequestBody.md +16 -0
  40. data/docs/ConnectAccessWorldwideRequestBody.md +21 -0
  41. data/docs/ConnectAmazonBuyShippingRequestBody.md +23 -0
  42. data/docs/ConnectApcRequestBody.md +21 -0
  43. data/docs/ConnectAsendiaRequestBody.md +23 -0
  44. data/docs/ConnectAustraliaPostRequestBody.md +23 -0
  45. data/docs/ConnectCanadaPostRequestBody.md +25 -0
  46. data/docs/ConnectCarrierRequestBody.md +113 -0
  47. data/docs/ConnectCarrierResponseBody.md +17 -0
  48. data/docs/ConnectDhlEcommerceRequestBody.md +39 -0
  49. data/docs/ConnectDhlExpressAuRequestBody.md +19 -0
  50. data/docs/ConnectDhlExpressCaRequestBody.md +19 -0
  51. data/docs/ConnectDhlExpressRequestBody.md +19 -0
  52. data/docs/ConnectDhlExpressUkRequestBody.md +23 -0
  53. data/docs/ConnectDpdRequestBody.md +21 -0
  54. data/docs/ConnectEndiciaRequestBody.md +21 -0
  55. data/docs/ConnectFedexRequestBody.md +45 -0
  56. data/docs/ConnectFedexUkRequestBody.md +45 -0
  57. data/docs/ConnectFirstmileRequestBody.md +23 -0
  58. data/docs/ConnectGlobegisticsRequestBody.md +21 -0
  59. data/docs/ConnectImexRequestBody.md +21 -0
  60. data/docs/ConnectInsurerRequestBody.md +19 -0
  61. data/docs/ConnectNewgisticsRequestBody.md +23 -0
  62. data/docs/ConnectOntracRequestBody.md +21 -0
  63. data/docs/ConnectPurolatorRequestBody.md +21 -0
  64. data/docs/ConnectRoyalMailRequestBody.md +39 -0
  65. data/docs/ConnectRrDonnelleyRequestBody.md +21 -0
  66. data/docs/ConnectSekoRequestBody.md +19 -0
  67. data/docs/ConnectSendleRequestBody.md +21 -0
  68. data/docs/ConnectStampsRequestBody.md +21 -0
  69. data/docs/ConnectUpsRequestBody.md +51 -0
  70. data/docs/CreateAndValidateShipment.md +63 -0
  71. data/docs/CreateBatchRequestBody.md +23 -0
  72. data/docs/CreateBatchResponseBody.md +16 -0
  73. data/docs/CreateLabelFromRateRequestBody.md +16 -0
  74. data/docs/CreateLabelFromRateResponseBody.md +16 -0
  75. data/docs/CreateLabelFromShipmentRequestBody.md +23 -0
  76. data/docs/CreateLabelFromShipmentResponseBody.md +16 -0
  77. data/docs/CreateLabelRequestBody.md +16 -0
  78. data/docs/CreateLabelResponseBody.md +16 -0
  79. data/docs/CreateManifestByObjectRequestBody.md +25 -0
  80. data/docs/CreateManifestLabelIdsRequestBody.md +17 -0
  81. data/docs/CreateManifestRequestBody.md +25 -0
  82. data/docs/CreateManifestResponseBody.md +35 -0
  83. data/docs/CreatePackageTypeRequestBody.md +16 -0
  84. data/docs/CreatePackageTypeResponseBody.md +16 -0
  85. data/docs/CreateReturnLabelRequestBody.md +25 -0
  86. data/docs/CreateReturnLabelResponseBody.md +16 -0
  87. data/docs/CreateShipmentResponseBodyFields.md +19 -0
  88. data/docs/CreateShipmentsRequestBody.md +17 -0
  89. data/docs/CreateShipmentsResponseBody.md +19 -0
  90. data/docs/CreateTagResponseBody.md +16 -0
  91. data/docs/CreateWarehouseRequestBody.md +16 -0
  92. data/docs/CreateWarehouseResponseBody.md +16 -0
  93. data/docs/CreateWebhookRequestBody.md +19 -0
  94. data/docs/CreateWebhookResponseBody.md +16 -0
  95. data/docs/Currency.md +16 -0
  96. data/docs/CustomsItem.md +33 -0
  97. data/docs/DeliveryConfirmation.md +16 -0
  98. data/docs/DeprecatedManifest.md +33 -0
  99. data/docs/DhlExpressAccountSettings.md +21 -0
  100. data/docs/DhlExpressSettingsResponseBody.md +16 -0
  101. data/docs/DimensionUnit.md +16 -0
  102. data/docs/Dimensions.md +23 -0
  103. data/docs/DownloadsApi.md +71 -0
  104. data/docs/Error.md +23 -0
  105. data/docs/ErrorCode.md +16 -0
  106. data/docs/ErrorResponseBody.md +19 -0
  107. data/docs/ErrorSource.md +16 -0
  108. data/docs/ErrorType.md +16 -0
  109. data/docs/EstimateRatesRequestBody.md +16 -0
  110. data/docs/FedexAccountSettings.md +25 -0
  111. data/docs/FedexAccountSettingsRequestBody.md +16 -0
  112. data/docs/FedexPickupType.md +16 -0
  113. data/docs/FedexSettingsResponseBody.md +16 -0
  114. data/docs/GetBatchByExternalIdResponseBody.md +16 -0
  115. data/docs/GetBatchByIdResponseBody.md +16 -0
  116. data/docs/GetCarrierByIdResponseBody.md +16 -0
  117. data/docs/GetCarrierOptionsResponseBody.md +17 -0
  118. data/docs/GetCarrierSettingsResponseBody.md +45 -0
  119. data/docs/GetCarriersResponseBody.md +21 -0
  120. data/docs/GetInsuranceBalanceResponseBody.md +16 -0
  121. data/docs/GetLabelByExternalShipmentIdResponseBody.md +16 -0
  122. data/docs/GetLabelByIdResponseBody.md +16 -0
  123. data/docs/GetManifestByIdResponseBody.md +16 -0
  124. data/docs/GetPackageTypeByIdResponseBody.md +16 -0
  125. data/docs/GetRateByIdResponseBody.md +16 -0
  126. data/docs/GetShipmentByExternalIdResponseBody.md +16 -0
  127. data/docs/GetShipmentByIdResponseBody.md +16 -0
  128. data/docs/GetTrackingLogFromLabelResponseBody.md +16 -0
  129. data/docs/GetTrackingLogResponseBody.md +16 -0
  130. data/docs/GetWarehouseByIdResponseBody.md +16 -0
  131. data/docs/GetWebhookByIdResponseBody.md +16 -0
  132. data/docs/InsuranceApi.md +220 -0
  133. data/docs/InsuranceProvider.md +16 -0
  134. data/docs/InternationalShipmentOptions.md +21 -0
  135. data/docs/Label.md +81 -0
  136. data/docs/LabelChargeEvent.md +16 -0
  137. data/docs/LabelDownload.md +23 -0
  138. data/docs/LabelDownloadType.md +16 -0
  139. data/docs/LabelFormat.md +16 -0
  140. data/docs/LabelLayout.md +16 -0
  141. data/docs/LabelMessages.md +21 -0
  142. data/docs/LabelStatus.md +16 -0
  143. data/docs/LabelsApi.md +545 -0
  144. data/docs/Link.md +16 -0
  145. data/docs/ListBatchErrorsResponseBody.md +19 -0
  146. data/docs/ListBatchesResponseBody.md +25 -0
  147. data/docs/ListCarrierPackageTypesResponseBody.md +17 -0
  148. data/docs/ListCarrierServicesResponseBody.md +17 -0
  149. data/docs/ListCarriersResponseBody.md +17 -0
  150. data/docs/ListLabelsResponseBody.md +17 -0
  151. data/docs/ListManifestsResponseBody.md +25 -0
  152. data/docs/ListPackageTypesResponseBody.md +17 -0
  153. data/docs/ListShipmentErrorsResponseBody.md +19 -0
  154. data/docs/ListShipmentRatesResponseBody.md +16 -0
  155. data/docs/ListShipmentsResponseBody.md +25 -0
  156. data/docs/ListTagsResponseBody.md +17 -0
  157. data/docs/ListWarehousesResponseBody.md +17 -0
  158. data/docs/Manifest.md +33 -0
  159. data/docs/ManifestDownload.md +17 -0
  160. data/docs/Manifests.md +17 -0
  161. data/docs/ManifestsApi.md +191 -0
  162. data/docs/ModifyBatch.md +19 -0
  163. data/docs/MonetaryValue.md +19 -0
  164. data/docs/NonDelivery.md +16 -0
  165. data/docs/OptionalLink.md +19 -0
  166. data/docs/OrderSourceName.md +16 -0
  167. data/docs/Package.md +29 -0
  168. data/docs/PackageContents.md +16 -0
  169. data/docs/PackageType.md +25 -0
  170. data/docs/PackageTypesApi.md +281 -0
  171. data/docs/PagedListResponseBody.md +23 -0
  172. data/docs/PaginationLink.md +23 -0
  173. data/docs/ParseAddressRequestBody.md +19 -0
  174. data/docs/ParseAddressResponseBody.md +21 -0
  175. data/docs/ParseShipmentRequestBody.md +20 -0
  176. data/docs/ParseShipmentResponseBody.md +21 -0
  177. data/docs/PartialAddress.md +37 -0
  178. data/docs/PartialShipment.md +59 -0
  179. data/docs/PaymentAmount.md +19 -0
  180. data/docs/ProcessBatchRequestBody.md +21 -0
  181. data/docs/PurchaseLabelWithoutShipment.md +23 -0
  182. data/docs/Rate.md +65 -0
  183. data/docs/RateEstimateByCarrierId.md +17 -0
  184. data/docs/RateEstimateByCarrierIds.md +17 -0
  185. data/docs/RateEstimateOptions.md +41 -0
  186. data/docs/RateRequestBody.md +25 -0
  187. data/docs/RateRequestByShipmentIds.md +17 -0
  188. data/docs/RateRequestByShipments.md +17 -0
  189. data/docs/RateRequestOptions.md +17 -0
  190. data/docs/RateRequestRateOptions.md +17 -0
  191. data/docs/RateResponse.md +17 -0
  192. data/docs/RateResponseStatus.md +16 -0
  193. data/docs/RateType.md +16 -0
  194. data/docs/RatesApi.md +228 -0
  195. data/docs/RatesInformation.md +29 -0
  196. data/docs/RecognizedEntity.md +27 -0
  197. data/docs/RemoveFromBatchRequestBody.md +16 -0
  198. data/docs/ResponseMessage.md +23 -0
  199. data/docs/Service.md +29 -0
  200. data/docs/Shipment.md +16 -0
  201. data/docs/ShipmentIdRequest.md +17 -0
  202. data/docs/ShipmentItem.md +33 -0
  203. data/docs/ShipmentRequest.md +17 -0
  204. data/docs/ShipmentResponseError.md +21 -0
  205. data/docs/ShipmentStatus.md +16 -0
  206. data/docs/ShipmentsApi.md +653 -0
  207. data/docs/ShipmentsSortBy.md +16 -0
  208. data/docs/SmartPostHub.md +16 -0
  209. data/docs/SortDir.md +16 -0
  210. data/docs/Tag.md +17 -0
  211. data/docs/TagShipmentResponseBody.md +19 -0
  212. data/docs/TagsApi.md +226 -0
  213. data/docs/TrackEvent.md +39 -0
  214. data/docs/TrackingApi.md +185 -0
  215. data/docs/TrackingInformation.md +35 -0
  216. data/docs/TrackingStatus.md +16 -0
  217. data/docs/UpdateAmazonBuyShippingRequestBody.md +17 -0
  218. data/docs/UpdateCarrierSettingsRequestBody.md +51 -0
  219. data/docs/UpdateDhlExpressSettingsRequestBody.md +16 -0
  220. data/docs/UpdateFedexSettingsRequestBody.md +16 -0
  221. data/docs/UpdateNewgisticsSettingsRequestBody.md +19 -0
  222. data/docs/UpdatePackageTypeRequestBody.md +16 -0
  223. data/docs/UpdateShipmentFields.md +17 -0
  224. data/docs/UpdateShipmentRequestBody.md +61 -0
  225. data/docs/UpdateShipmentResponseBody.md +16 -0
  226. data/docs/UpdateUpsSettingsRequestBody.md +16 -0
  227. data/docs/UpdateWarehouseRequestBody.md +16 -0
  228. data/docs/UpdateWebhookRequestBody.md +17 -0
  229. data/docs/UpsAccountSettings.md +39 -0
  230. data/docs/UpsInvoice.md +23 -0
  231. data/docs/UpsPickupType.md +16 -0
  232. data/docs/UpsSettingsResponseBody.md +16 -0
  233. data/docs/ValidateAddress.md +16 -0
  234. data/docs/ValidateShipmentFields.md +17 -0
  235. data/docs/ValidationStatus.md +16 -0
  236. data/docs/VoidLabelResponseBody.md +19 -0
  237. data/docs/Warehouse.md +25 -0
  238. data/docs/WarehousesApi.md +281 -0
  239. data/docs/Webhook.md +21 -0
  240. data/docs/WebhookEvent.md +16 -0
  241. data/docs/WebhooksApi.md +281 -0
  242. data/docs/Weight.md +19 -0
  243. data/docs/WeightUnit.md +16 -0
  244. data/git_push.sh +58 -0
  245. data/lib/openapi_client.rb +278 -0
  246. data/lib/openapi_client/api/addresses_api.rb +150 -0
  247. data/lib/openapi_client/api/batches_api.rb +790 -0
  248. data/lib/openapi_client/api/carrier_accounts_api.rb +343 -0
  249. data/lib/openapi_client/api/carriers_api.rb +461 -0
  250. data/lib/openapi_client/api/downloads_api.rb +99 -0
  251. data/lib/openapi_client/api/insurance_api.rb +262 -0
  252. data/lib/openapi_client/api/labels_api.rb +812 -0
  253. data/lib/openapi_client/api/manifests_api.rb +278 -0
  254. data/lib/openapi_client/api/package_types_api.rb +375 -0
  255. data/lib/openapi_client/api/rates_api.rb +289 -0
  256. data/lib/openapi_client/api/shipments_api.rb +899 -0
  257. data/lib/openapi_client/api/tags_api.rb +286 -0
  258. data/lib/openapi_client/api/tracking_api.rb +232 -0
  259. data/lib/openapi_client/api/warehouses_api.rb +375 -0
  260. data/lib/openapi_client/api/webhooks_api.rb +375 -0
  261. data/lib/openapi_client/api_client.rb +388 -0
  262. data/lib/openapi_client/api_error.rb +57 -0
  263. data/lib/openapi_client/configuration.rb +248 -0
  264. data/lib/openapi_client/models/add_funds_to_carrier_request_body.rb +209 -0
  265. data/lib/openapi_client/models/add_funds_to_carrier_response_body.rb +213 -0
  266. data/lib/openapi_client/models/add_funds_to_insurance_request_body.rb +209 -0
  267. data/lib/openapi_client/models/add_funds_to_insurance_response_body.rb +209 -0
  268. data/lib/openapi_client/models/add_to_batch_request_body.rb +209 -0
  269. data/lib/openapi_client/models/address.rb +209 -0
  270. data/lib/openapi_client/models/address_residential_indicator.rb +37 -0
  271. data/lib/openapi_client/models/address_to_validate.rb +209 -0
  272. data/lib/openapi_client/models/address_validating_shipment.rb +484 -0
  273. data/lib/openapi_client/models/address_validation_code.rb +47 -0
  274. data/lib/openapi_client/models/address_validation_detail_code.rb +92 -0
  275. data/lib/openapi_client/models/address_validation_message_type.rb +37 -0
  276. data/lib/openapi_client/models/address_validation_result.rb +259 -0
  277. data/lib/openapi_client/models/address_validation_status.rb +38 -0
  278. data/lib/openapi_client/models/advanced_shipment_options.rb +434 -0
  279. data/lib/openapi_client/models/ancillary_service_endorsement.rb +40 -0
  280. data/lib/openapi_client/models/batch.rb +566 -0
  281. data/lib/openapi_client/models/batch_response_error.rb +233 -0
  282. data/lib/openapi_client/models/batch_status.rb +42 -0
  283. data/lib/openapi_client/models/batches_sort_by.rb +36 -0
  284. data/lib/openapi_client/models/bill_to_party.rb +36 -0
  285. data/lib/openapi_client/models/bulk_rate.rb +273 -0
  286. data/lib/openapi_client/models/calculate_rates_request_body.rb +225 -0
  287. data/lib/openapi_client/models/calculate_rates_response_body.rb +525 -0
  288. data/lib/openapi_client/models/carrier.rb +394 -0
  289. data/lib/openapi_client/models/carrier_advanced_option.rb +273 -0
  290. data/lib/openapi_client/models/carrier_name.rb +61 -0
  291. data/lib/openapi_client/models/carrier_name_with_settings.rb +38 -0
  292. data/lib/openapi_client/models/collect_on_delivery.rb +216 -0
  293. data/lib/openapi_client/models/collect_on_delivery_payment_type.rb +38 -0
  294. data/lib/openapi_client/models/compare_bulk_rates_request_body.rb +225 -0
  295. data/lib/openapi_client/models/connect_access_worldwide_request_body.rb +300 -0
  296. data/lib/openapi_client/models/connect_amazon_buy_shipping_request_body.rb +312 -0
  297. data/lib/openapi_client/models/connect_apc_request_body.rb +300 -0
  298. data/lib/openapi_client/models/connect_asendia_request_body.rb +334 -0
  299. data/lib/openapi_client/models/connect_australia_post_request_body.rb +334 -0
  300. data/lib/openapi_client/models/connect_canada_post_request_body.rb +368 -0
  301. data/lib/openapi_client/models/connect_carrier_request_body.rb +1661 -0
  302. data/lib/openapi_client/models/connect_carrier_response_body.rb +213 -0
  303. data/lib/openapi_client/models/connect_dhl_ecommerce_request_body.rb +536 -0
  304. data/lib/openapi_client/models/connect_dhl_express_au_request_body.rb +266 -0
  305. data/lib/openapi_client/models/connect_dhl_express_ca_request_body.rb +266 -0
  306. data/lib/openapi_client/models/connect_dhl_express_request_body.rb +266 -0
  307. data/lib/openapi_client/models/connect_dhl_express_uk_request_body.rb +315 -0
  308. data/lib/openapi_client/models/connect_dpd_request_body.rb +300 -0
  309. data/lib/openapi_client/models/connect_endicia_request_body.rb +300 -0
  310. data/lib/openapi_client/models/connect_fedex_request_body.rb +643 -0
  311. data/lib/openapi_client/models/connect_fedex_uk_request_body.rb +643 -0
  312. data/lib/openapi_client/models/connect_firstmile_request_body.rb +306 -0
  313. data/lib/openapi_client/models/connect_globegistics_request_body.rb +300 -0
  314. data/lib/openapi_client/models/connect_imex_request_body.rb +300 -0
  315. data/lib/openapi_client/models/connect_insurer_request_body.rb +245 -0
  316. data/lib/openapi_client/models/connect_newgistics_request_body.rb +316 -0
  317. data/lib/openapi_client/models/connect_ontrac_request_body.rb +300 -0
  318. data/lib/openapi_client/models/connect_purolator_request_body.rb +300 -0
  319. data/lib/openapi_client/models/connect_royal_mail_request_body.rb +513 -0
  320. data/lib/openapi_client/models/connect_rr_donnelley_request_body.rb +300 -0
  321. data/lib/openapi_client/models/connect_seko_request_body.rb +266 -0
  322. data/lib/openapi_client/models/connect_sendle_request_body.rb +281 -0
  323. data/lib/openapi_client/models/connect_stamps_request_body.rb +300 -0
  324. data/lib/openapi_client/models/connect_ups_request_body.rb +730 -0
  325. data/lib/openapi_client/models/create_and_validate_shipment.rb +472 -0
  326. data/lib/openapi_client/models/create_batch_request_body.rb +257 -0
  327. data/lib/openapi_client/models/create_batch_response_body.rb +209 -0
  328. data/lib/openapi_client/models/create_label_from_rate_request_body.rb +209 -0
  329. data/lib/openapi_client/models/create_label_from_rate_response_body.rb +209 -0
  330. data/lib/openapi_client/models/create_label_from_shipment_request_body.rb +234 -0
  331. data/lib/openapi_client/models/create_label_from_shipment_response_body.rb +209 -0
  332. data/lib/openapi_client/models/create_label_request_body.rb +209 -0
  333. data/lib/openapi_client/models/create_label_response_body.rb +209 -0
  334. data/lib/openapi_client/models/create_manifest_by_object_request_body.rb +267 -0
  335. data/lib/openapi_client/models/create_manifest_label_ids_request_body.rb +215 -0
  336. data/lib/openapi_client/models/create_manifest_request_body.rb +295 -0
  337. data/lib/openapi_client/models/create_manifest_response_body.rb +389 -0
  338. data/lib/openapi_client/models/create_package_type_request_body.rb +209 -0
  339. data/lib/openapi_client/models/create_package_type_response_body.rb +209 -0
  340. data/lib/openapi_client/models/create_return_label_request_body.rb +248 -0
  341. data/lib/openapi_client/models/create_return_label_response_body.rb +209 -0
  342. data/lib/openapi_client/models/create_shipment_response_body_fields.rb +219 -0
  343. data/lib/openapi_client/models/create_shipments_request_body.rb +215 -0
  344. data/lib/openapi_client/models/create_shipments_response_body.rb +232 -0
  345. data/lib/openapi_client/models/create_tag_response_body.rb +209 -0
  346. data/lib/openapi_client/models/create_warehouse_request_body.rb +209 -0
  347. data/lib/openapi_client/models/create_warehouse_response_body.rb +209 -0
  348. data/lib/openapi_client/models/create_webhook_request_body.rb +227 -0
  349. data/lib/openapi_client/models/create_webhook_response_body.rb +209 -0
  350. data/lib/openapi_client/models/currency.rb +40 -0
  351. data/lib/openapi_client/models/customs_item.rb +334 -0
  352. data/lib/openapi_client/models/delivery_confirmation.rb +40 -0
  353. data/lib/openapi_client/models/deprecated_manifest.rb +317 -0
  354. data/lib/openapi_client/models/dhl_express_account_settings.rb +243 -0
  355. data/lib/openapi_client/models/dhl_express_settings_response_body.rb +209 -0
  356. data/lib/openapi_client/models/dimension_unit.rb +36 -0
  357. data/lib/openapi_client/models/dimensions.rb +320 -0
  358. data/lib/openapi_client/models/error.rb +274 -0
  359. data/lib/openapi_client/models/error_code.rb +71 -0
  360. data/lib/openapi_client/models/error_response_body.rb +230 -0
  361. data/lib/openapi_client/models/error_source.rb +37 -0
  362. data/lib/openapi_client/models/error_type.rb +40 -0
  363. data/lib/openapi_client/models/estimate_rates_request_body.rb +225 -0
  364. data/lib/openapi_client/models/fedex_account_settings.rb +259 -0
  365. data/lib/openapi_client/models/fedex_account_settings_request_body.rb +209 -0
  366. data/lib/openapi_client/models/fedex_pickup_type.rb +40 -0
  367. data/lib/openapi_client/models/fedex_settings_response_body.rb +209 -0
  368. data/lib/openapi_client/models/get_batch_by_external_id_response_body.rb +209 -0
  369. data/lib/openapi_client/models/get_batch_by_id_response_body.rb +209 -0
  370. data/lib/openapi_client/models/get_carrier_by_id_response_body.rb +209 -0
  371. data/lib/openapi_client/models/get_carrier_options_response_body.rb +210 -0
  372. data/lib/openapi_client/models/get_carrier_settings_response_body.rb +413 -0
  373. data/lib/openapi_client/models/get_carriers_response_body.rb +254 -0
  374. data/lib/openapi_client/models/get_insurance_balance_response_body.rb +209 -0
  375. data/lib/openapi_client/models/get_label_by_external_shipment_id_response_body.rb +209 -0
  376. data/lib/openapi_client/models/get_label_by_id_response_body.rb +209 -0
  377. data/lib/openapi_client/models/get_manifest_by_id_response_body.rb +209 -0
  378. data/lib/openapi_client/models/get_package_type_by_id_response_body.rb +209 -0
  379. data/lib/openapi_client/models/get_rate_by_id_response_body.rb +209 -0
  380. data/lib/openapi_client/models/get_shipment_by_external_id_response_body.rb +209 -0
  381. data/lib/openapi_client/models/get_shipment_by_id_response_body.rb +209 -0
  382. data/lib/openapi_client/models/get_tracking_log_from_label_response_body.rb +209 -0
  383. data/lib/openapi_client/models/get_tracking_log_response_body.rb +209 -0
  384. data/lib/openapi_client/models/get_warehouse_by_id_response_body.rb +209 -0
  385. data/lib/openapi_client/models/get_webhook_by_id_response_body.rb +209 -0
  386. data/lib/openapi_client/models/insurance_provider.rb +38 -0
  387. data/lib/openapi_client/models/international_shipment_options.rb +240 -0
  388. data/lib/openapi_client/models/label.rb +548 -0
  389. data/lib/openapi_client/models/label_charge_event.rb +37 -0
  390. data/lib/openapi_client/models/label_download.rb +238 -0
  391. data/lib/openapi_client/models/label_download_type.rb +36 -0
  392. data/lib/openapi_client/models/label_format.rb +37 -0
  393. data/lib/openapi_client/models/label_layout.rb +36 -0
  394. data/lib/openapi_client/models/label_messages.rb +237 -0
  395. data/lib/openapi_client/models/label_status.rb +38 -0
  396. data/lib/openapi_client/models/link.rb +209 -0
  397. data/lib/openapi_client/models/list_batch_errors_response_body.rb +229 -0
  398. data/lib/openapi_client/models/list_batches_response_body.rb +331 -0
  399. data/lib/openapi_client/models/list_carrier_package_types_response_body.rb +210 -0
  400. data/lib/openapi_client/models/list_carrier_services_response_body.rb +210 -0
  401. data/lib/openapi_client/models/list_carriers_response_body.rb +215 -0
  402. data/lib/openapi_client/models/list_labels_response_body.rb +226 -0
  403. data/lib/openapi_client/models/list_manifests_response_body.rb +332 -0
  404. data/lib/openapi_client/models/list_package_types_response_body.rb +210 -0
  405. data/lib/openapi_client/models/list_shipment_errors_response_body.rb +229 -0
  406. data/lib/openapi_client/models/list_shipment_rates_response_body.rb +209 -0
  407. data/lib/openapi_client/models/list_shipments_response_body.rb +329 -0
  408. data/lib/openapi_client/models/list_tags_response_body.rb +210 -0
  409. data/lib/openapi_client/models/list_warehouses_response_body.rb +215 -0
  410. data/lib/openapi_client/models/manifest.rb +317 -0
  411. data/lib/openapi_client/models/manifest_download.rb +208 -0
  412. data/lib/openapi_client/models/manifests.rb +209 -0
  413. data/lib/openapi_client/models/modify_batch.rb +222 -0
  414. data/lib/openapi_client/models/monetary_value.rb +246 -0
  415. data/lib/openapi_client/models/non_delivery.rb +36 -0
  416. data/lib/openapi_client/models/optional_link.rb +233 -0
  417. data/lib/openapi_client/models/order_source_name.rb +54 -0
  418. data/lib/openapi_client/models/package.rb +287 -0
  419. data/lib/openapi_client/models/package_contents.rb +39 -0
  420. data/lib/openapi_client/models/package_type.rb +276 -0
  421. data/lib/openapi_client/models/paged_list_response_body.rb +314 -0
  422. data/lib/openapi_client/models/pagination_link.rb +258 -0
  423. data/lib/openapi_client/models/parse_address_request_body.rb +242 -0
  424. data/lib/openapi_client/models/parse_address_response_body.rb +273 -0
  425. data/lib/openapi_client/models/parse_shipment_request_body.rb +242 -0
  426. data/lib/openapi_client/models/parse_shipment_response_body.rb +273 -0
  427. data/lib/openapi_client/models/partial_address.rb +432 -0
  428. data/lib/openapi_client/models/partial_shipment.rb +442 -0
  429. data/lib/openapi_client/models/payment_amount.rb +230 -0
  430. data/lib/openapi_client/models/process_batch_request_body.rb +228 -0
  431. data/lib/openapi_client/models/purchase_label_without_shipment.rb +234 -0
  432. data/lib/openapi_client/models/rate.rb +696 -0
  433. data/lib/openapi_client/models/rate_estimate_by_carrier_id.rb +207 -0
  434. data/lib/openapi_client/models/rate_estimate_by_carrier_ids.rb +209 -0
  435. data/lib/openapi_client/models/rate_estimate_options.rb +381 -0
  436. data/lib/openapi_client/models/rate_request_body.rb +256 -0
  437. data/lib/openapi_client/models/rate_request_by_shipment_ids.rb +214 -0
  438. data/lib/openapi_client/models/rate_request_by_shipments.rb +214 -0
  439. data/lib/openapi_client/models/rate_request_options.rb +207 -0
  440. data/lib/openapi_client/models/rate_request_rate_options.rb +207 -0
  441. data/lib/openapi_client/models/rate_response.rb +207 -0
  442. data/lib/openapi_client/models/rate_response_status.rb +38 -0
  443. data/lib/openapi_client/models/rate_type.rb +36 -0
  444. data/lib/openapi_client/models/rates_information.rb +272 -0
  445. data/lib/openapi_client/models/recognized_entity.rb +389 -0
  446. data/lib/openapi_client/models/remove_from_batch_request_body.rb +209 -0
  447. data/lib/openapi_client/models/response_message.rb +251 -0
  448. data/lib/openapi_client/models/service.rb +297 -0
  449. data/lib/openapi_client/models/shipment.rb +209 -0
  450. data/lib/openapi_client/models/shipment_id_request.rb +207 -0
  451. data/lib/openapi_client/models/shipment_item.rb +347 -0
  452. data/lib/openapi_client/models/shipment_request.rb +207 -0
  453. data/lib/openapi_client/models/shipment_response_error.rb +257 -0
  454. data/lib/openapi_client/models/shipment_status.rb +38 -0
  455. data/lib/openapi_client/models/shipments_sort_by.rb +36 -0
  456. data/lib/openapi_client/models/smart_post_hub.rb +68 -0
  457. data/lib/openapi_client/models/sort_dir.rb +36 -0
  458. data/lib/openapi_client/models/tag.rb +232 -0
  459. data/lib/openapi_client/models/tag_shipment_response_body.rb +228 -0
  460. data/lib/openapi_client/models/track_event.rb +502 -0
  461. data/lib/openapi_client/models/tracking_information.rb +371 -0
  462. data/lib/openapi_client/models/tracking_status.rb +38 -0
  463. data/lib/openapi_client/models/update_amazon_buy_shipping_request_body.rb +223 -0
  464. data/lib/openapi_client/models/update_carrier_settings_request_body.rb +458 -0
  465. data/lib/openapi_client/models/update_dhl_express_settings_request_body.rb +209 -0
  466. data/lib/openapi_client/models/update_fedex_settings_request_body.rb +209 -0
  467. data/lib/openapi_client/models/update_newgistics_settings_request_body.rb +216 -0
  468. data/lib/openapi_client/models/update_package_type_request_body.rb +209 -0
  469. data/lib/openapi_client/models/update_shipment_fields.rb +206 -0
  470. data/lib/openapi_client/models/update_shipment_request_body.rb +469 -0
  471. data/lib/openapi_client/models/update_shipment_response_body.rb +209 -0
  472. data/lib/openapi_client/models/update_ups_settings_request_body.rb +209 -0
  473. data/lib/openapi_client/models/update_warehouse_request_body.rb +209 -0
  474. data/lib/openapi_client/models/update_webhook_request_body.rb +208 -0
  475. data/lib/openapi_client/models/ups_account_settings.rb +361 -0
  476. data/lib/openapi_client/models/ups_invoice.rb +267 -0
  477. data/lib/openapi_client/models/ups_pickup_type.rb +37 -0
  478. data/lib/openapi_client/models/ups_settings_response_body.rb +209 -0
  479. data/lib/openapi_client/models/validate_address.rb +37 -0
  480. data/lib/openapi_client/models/validate_shipment_fields.rb +206 -0
  481. data/lib/openapi_client/models/validation_status.rb +38 -0
  482. data/lib/openapi_client/models/void_label_response_body.rb +246 -0
  483. data/lib/openapi_client/models/warehouse.rb +263 -0
  484. data/lib/openapi_client/models/webhook.rb +227 -0
  485. data/lib/openapi_client/models/webhook_event.rb +41 -0
  486. data/lib/openapi_client/models/weight.rb +246 -0
  487. data/lib/openapi_client/models/weight_unit.rb +38 -0
  488. data/lib/openapi_client/version.rb +15 -0
  489. data/openapi_client-1.0.0.gem +0 -0
  490. data/ship_engine.gemspec +39 -0
  491. data/spec/api/addresses_api_spec.rb +59 -0
  492. data/spec/api/batches_api_spec.rb +164 -0
  493. data/spec/api/carrier_accounts_api_spec.rb +88 -0
  494. data/spec/api/carriers_api_spec.rb +107 -0
  495. data/spec/api/downloads_api_spec.rb +50 -0
  496. data/spec/api/insurance_api_spec.rb +81 -0
  497. data/spec/api/labels_api_spec.rb +161 -0
  498. data/spec/api/manifests_api_spec.rb +79 -0
  499. data/spec/api/package_types_api_spec.rb +95 -0
  500. data/spec/api/rates_api_spec.rb +83 -0
  501. data/spec/api/shipments_api_spec.rb +184 -0
  502. data/spec/api/tags_api_spec.rb +83 -0
  503. data/spec/api/tracking_api_spec.rb +74 -0
  504. data/spec/api/warehouses_api_spec.rb +95 -0
  505. data/spec/api/webhooks_api_spec.rb +95 -0
  506. data/spec/api_client_spec.rb +226 -0
  507. data/spec/configuration_spec.rb +42 -0
  508. data/spec/models/add_funds_to_carrier_request_body_spec.rb +35 -0
  509. data/spec/models/add_funds_to_carrier_response_body_spec.rb +41 -0
  510. data/spec/models/add_funds_to_insurance_request_body_spec.rb +35 -0
  511. data/spec/models/add_funds_to_insurance_response_body_spec.rb +35 -0
  512. data/spec/models/add_to_batch_request_body_spec.rb +35 -0
  513. data/spec/models/address_residential_indicator_spec.rb +35 -0
  514. data/spec/models/address_spec.rb +35 -0
  515. data/spec/models/address_to_validate_spec.rb +35 -0
  516. data/spec/models/address_validating_shipment_spec.rb +173 -0
  517. data/spec/models/address_validation_code_spec.rb +35 -0
  518. data/spec/models/address_validation_detail_code_spec.rb +35 -0
  519. data/spec/models/address_validation_message_type_spec.rb +35 -0
  520. data/spec/models/address_validation_result_spec.rb +59 -0
  521. data/spec/models/address_validation_status_spec.rb +35 -0
  522. data/spec/models/advanced_shipment_options_spec.rb +131 -0
  523. data/spec/models/ancillary_service_endorsement_spec.rb +35 -0
  524. data/spec/models/batch_response_error_spec.rb +47 -0
  525. data/spec/models/batch_spec.rb +143 -0
  526. data/spec/models/batch_status_spec.rb +35 -0
  527. data/spec/models/batches_sort_by_spec.rb +35 -0
  528. data/spec/models/bill_to_party_spec.rb +35 -0
  529. data/spec/models/bulk_rate_spec.rb +65 -0
  530. data/spec/models/calculate_rates_request_body_spec.rb +35 -0
  531. data/spec/models/calculate_rates_response_body_spec.rb +173 -0
  532. data/spec/models/carrier_advanced_option_spec.rb +53 -0
  533. data/spec/models/carrier_name_spec.rb +35 -0
  534. data/spec/models/carrier_name_with_settings_spec.rb +35 -0
  535. data/spec/models/carrier_spec.rb +113 -0
  536. data/spec/models/collect_on_delivery_payment_type_spec.rb +35 -0
  537. data/spec/models/collect_on_delivery_spec.rb +47 -0
  538. data/spec/models/compare_bulk_rates_request_body_spec.rb +35 -0
  539. data/spec/models/connect_access_worldwide_request_body_spec.rb +53 -0
  540. data/spec/models/connect_amazon_buy_shipping_request_body_spec.rb +59 -0
  541. data/spec/models/connect_apc_request_body_spec.rb +53 -0
  542. data/spec/models/connect_asendia_request_body_spec.rb +59 -0
  543. data/spec/models/connect_australia_post_request_body_spec.rb +59 -0
  544. data/spec/models/connect_canada_post_request_body_spec.rb +65 -0
  545. data/spec/models/connect_carrier_request_body_spec.rb +329 -0
  546. data/spec/models/connect_carrier_response_body_spec.rb +41 -0
  547. data/spec/models/connect_dhl_ecommerce_request_body_spec.rb +107 -0
  548. data/spec/models/connect_dhl_express_au_request_body_spec.rb +47 -0
  549. data/spec/models/connect_dhl_express_ca_request_body_spec.rb +47 -0
  550. data/spec/models/connect_dhl_express_request_body_spec.rb +47 -0
  551. data/spec/models/connect_dhl_express_uk_request_body_spec.rb +59 -0
  552. data/spec/models/connect_dpd_request_body_spec.rb +53 -0
  553. data/spec/models/connect_endicia_request_body_spec.rb +53 -0
  554. data/spec/models/connect_fedex_request_body_spec.rb +125 -0
  555. data/spec/models/connect_fedex_uk_request_body_spec.rb +125 -0
  556. data/spec/models/connect_firstmile_request_body_spec.rb +59 -0
  557. data/spec/models/connect_globegistics_request_body_spec.rb +53 -0
  558. data/spec/models/connect_imex_request_body_spec.rb +53 -0
  559. data/spec/models/connect_insurer_request_body_spec.rb +47 -0
  560. data/spec/models/connect_newgistics_request_body_spec.rb +59 -0
  561. data/spec/models/connect_ontrac_request_body_spec.rb +53 -0
  562. data/spec/models/connect_purolator_request_body_spec.rb +53 -0
  563. data/spec/models/connect_royal_mail_request_body_spec.rb +107 -0
  564. data/spec/models/connect_rr_donnelley_request_body_spec.rb +53 -0
  565. data/spec/models/connect_seko_request_body_spec.rb +47 -0
  566. data/spec/models/connect_sendle_request_body_spec.rb +53 -0
  567. data/spec/models/connect_stamps_request_body_spec.rb +53 -0
  568. data/spec/models/connect_ups_request_body_spec.rb +143 -0
  569. data/spec/models/create_and_validate_shipment_spec.rb +179 -0
  570. data/spec/models/create_batch_request_body_spec.rb +59 -0
  571. data/spec/models/create_batch_response_body_spec.rb +35 -0
  572. data/spec/models/create_label_from_rate_request_body_spec.rb +35 -0
  573. data/spec/models/create_label_from_rate_response_body_spec.rb +35 -0
  574. data/spec/models/create_label_from_shipment_request_body_spec.rb +59 -0
  575. data/spec/models/create_label_from_shipment_response_body_spec.rb +35 -0
  576. data/spec/models/create_label_request_body_spec.rb +35 -0
  577. data/spec/models/create_label_response_body_spec.rb +35 -0
  578. data/spec/models/create_manifest_by_object_request_body_spec.rb +65 -0
  579. data/spec/models/create_manifest_label_ids_request_body_spec.rb +41 -0
  580. data/spec/models/create_manifest_request_body_spec.rb +65 -0
  581. data/spec/models/create_manifest_response_body_spec.rb +95 -0
  582. data/spec/models/create_package_type_request_body_spec.rb +35 -0
  583. data/spec/models/create_package_type_response_body_spec.rb +35 -0
  584. data/spec/models/create_return_label_request_body_spec.rb +65 -0
  585. data/spec/models/create_return_label_response_body_spec.rb +35 -0
  586. data/spec/models/create_shipment_response_body_fields_spec.rb +47 -0
  587. data/spec/models/create_shipments_request_body_spec.rb +41 -0
  588. data/spec/models/create_shipments_response_body_spec.rb +47 -0
  589. data/spec/models/create_tag_response_body_spec.rb +35 -0
  590. data/spec/models/create_warehouse_request_body_spec.rb +35 -0
  591. data/spec/models/create_warehouse_response_body_spec.rb +35 -0
  592. data/spec/models/create_webhook_request_body_spec.rb +47 -0
  593. data/spec/models/create_webhook_response_body_spec.rb +35 -0
  594. data/spec/models/currency_spec.rb +35 -0
  595. data/spec/models/customs_item_spec.rb +89 -0
  596. data/spec/models/delivery_confirmation_spec.rb +35 -0
  597. data/spec/models/deprecated_manifest_spec.rb +89 -0
  598. data/spec/models/dhl_express_account_settings_spec.rb +53 -0
  599. data/spec/models/dhl_express_settings_response_body_spec.rb +35 -0
  600. data/spec/models/dimension_unit_spec.rb +35 -0
  601. data/spec/models/dimensions_spec.rb +59 -0
  602. data/spec/models/error_code_spec.rb +35 -0
  603. data/spec/models/error_response_body_spec.rb +47 -0
  604. data/spec/models/error_source_spec.rb +35 -0
  605. data/spec/models/error_spec.rb +59 -0
  606. data/spec/models/error_type_spec.rb +35 -0
  607. data/spec/models/estimate_rates_request_body_spec.rb +35 -0
  608. data/spec/models/fedex_account_settings_request_body_spec.rb +35 -0
  609. data/spec/models/fedex_account_settings_spec.rb +65 -0
  610. data/spec/models/fedex_pickup_type_spec.rb +35 -0
  611. data/spec/models/fedex_settings_response_body_spec.rb +35 -0
  612. data/spec/models/get_batch_by_external_id_response_body_spec.rb +35 -0
  613. data/spec/models/get_batch_by_id_response_body_spec.rb +35 -0
  614. data/spec/models/get_carrier_by_id_response_body_spec.rb +35 -0
  615. data/spec/models/get_carrier_options_response_body_spec.rb +41 -0
  616. data/spec/models/get_carrier_settings_response_body_spec.rb +125 -0
  617. data/spec/models/get_carriers_response_body_spec.rb +53 -0
  618. data/spec/models/get_insurance_balance_response_body_spec.rb +35 -0
  619. data/spec/models/get_label_by_external_shipment_id_response_body_spec.rb +35 -0
  620. data/spec/models/get_label_by_id_response_body_spec.rb +35 -0
  621. data/spec/models/get_manifest_by_id_response_body_spec.rb +35 -0
  622. data/spec/models/get_package_type_by_id_response_body_spec.rb +35 -0
  623. data/spec/models/get_rate_by_id_response_body_spec.rb +35 -0
  624. data/spec/models/get_shipment_by_external_id_response_body_spec.rb +35 -0
  625. data/spec/models/get_shipment_by_id_response_body_spec.rb +35 -0
  626. data/spec/models/get_tracking_log_from_label_response_body_spec.rb +35 -0
  627. data/spec/models/get_tracking_log_response_body_spec.rb +35 -0
  628. data/spec/models/get_warehouse_by_id_response_body_spec.rb +35 -0
  629. data/spec/models/get_webhook_by_id_response_body_spec.rb +35 -0
  630. data/spec/models/insurance_provider_spec.rb +35 -0
  631. data/spec/models/international_shipment_options_spec.rb +53 -0
  632. data/spec/models/label_charge_event_spec.rb +35 -0
  633. data/spec/models/label_download_spec.rb +59 -0
  634. data/spec/models/label_download_type_spec.rb +35 -0
  635. data/spec/models/label_format_spec.rb +35 -0
  636. data/spec/models/label_layout_spec.rb +35 -0
  637. data/spec/models/label_messages_spec.rb +53 -0
  638. data/spec/models/label_spec.rb +233 -0
  639. data/spec/models/label_status_spec.rb +35 -0
  640. data/spec/models/link_spec.rb +35 -0
  641. data/spec/models/list_batch_errors_response_body_spec.rb +47 -0
  642. data/spec/models/list_batches_response_body_spec.rb +65 -0
  643. data/spec/models/list_carrier_package_types_response_body_spec.rb +41 -0
  644. data/spec/models/list_carrier_services_response_body_spec.rb +41 -0
  645. data/spec/models/list_carriers_response_body_spec.rb +41 -0
  646. data/spec/models/list_labels_response_body_spec.rb +41 -0
  647. data/spec/models/list_manifests_response_body_spec.rb +65 -0
  648. data/spec/models/list_package_types_response_body_spec.rb +41 -0
  649. data/spec/models/list_shipment_errors_response_body_spec.rb +47 -0
  650. data/spec/models/list_shipment_rates_response_body_spec.rb +35 -0
  651. data/spec/models/list_shipments_response_body_spec.rb +65 -0
  652. data/spec/models/list_tags_response_body_spec.rb +41 -0
  653. data/spec/models/list_warehouses_response_body_spec.rb +41 -0
  654. data/spec/models/manifest_download_spec.rb +41 -0
  655. data/spec/models/manifest_spec.rb +89 -0
  656. data/spec/models/manifests_spec.rb +41 -0
  657. data/spec/models/modify_batch_spec.rb +47 -0
  658. data/spec/models/monetary_value_spec.rb +47 -0
  659. data/spec/models/non_delivery_spec.rb +35 -0
  660. data/spec/models/optional_link_spec.rb +47 -0
  661. data/spec/models/order_source_name_spec.rb +35 -0
  662. data/spec/models/package_contents_spec.rb +35 -0
  663. data/spec/models/package_spec.rb +77 -0
  664. data/spec/models/package_type_spec.rb +65 -0
  665. data/spec/models/paged_list_response_body_spec.rb +59 -0
  666. data/spec/models/pagination_link_spec.rb +59 -0
  667. data/spec/models/parse_address_request_body_spec.rb +47 -0
  668. data/spec/models/parse_address_response_body_spec.rb +53 -0
  669. data/spec/models/parse_shipment_request_body_spec.rb +47 -0
  670. data/spec/models/parse_shipment_response_body_spec.rb +53 -0
  671. data/spec/models/partial_address_spec.rb +101 -0
  672. data/spec/models/partial_shipment_spec.rb +167 -0
  673. data/spec/models/payment_amount_spec.rb +47 -0
  674. data/spec/models/process_batch_request_body_spec.rb +53 -0
  675. data/spec/models/purchase_label_without_shipment_spec.rb +59 -0
  676. data/spec/models/rate_estimate_by_carrier_id_spec.rb +41 -0
  677. data/spec/models/rate_estimate_by_carrier_ids_spec.rb +41 -0
  678. data/spec/models/rate_estimate_options_spec.rb +113 -0
  679. data/spec/models/rate_request_body_spec.rb +65 -0
  680. data/spec/models/rate_request_by_shipment_ids_spec.rb +41 -0
  681. data/spec/models/rate_request_by_shipments_spec.rb +41 -0
  682. data/spec/models/rate_request_options_spec.rb +41 -0
  683. data/spec/models/rate_request_rate_options_spec.rb +41 -0
  684. data/spec/models/rate_response_spec.rb +41 -0
  685. data/spec/models/rate_response_status_spec.rb +35 -0
  686. data/spec/models/rate_spec.rb +185 -0
  687. data/spec/models/rate_type_spec.rb +35 -0
  688. data/spec/models/rates_information_spec.rb +77 -0
  689. data/spec/models/recognized_entity_spec.rb +71 -0
  690. data/spec/models/remove_from_batch_request_body_spec.rb +35 -0
  691. data/spec/models/response_message_spec.rb +59 -0
  692. data/spec/models/service_spec.rb +77 -0
  693. data/spec/models/shipment_id_request_spec.rb +41 -0
  694. data/spec/models/shipment_item_spec.rb +89 -0
  695. data/spec/models/shipment_request_spec.rb +41 -0
  696. data/spec/models/shipment_response_error_spec.rb +53 -0
  697. data/spec/models/shipment_spec.rb +35 -0
  698. data/spec/models/shipment_status_spec.rb +35 -0
  699. data/spec/models/shipments_sort_by_spec.rb +35 -0
  700. data/spec/models/smart_post_hub_spec.rb +35 -0
  701. data/spec/models/sort_dir_spec.rb +35 -0
  702. data/spec/models/tag_shipment_response_body_spec.rb +47 -0
  703. data/spec/models/tag_spec.rb +41 -0
  704. data/spec/models/track_event_spec.rb +107 -0
  705. data/spec/models/tracking_information_spec.rb +95 -0
  706. data/spec/models/tracking_status_spec.rb +35 -0
  707. data/spec/models/update_amazon_buy_shipping_request_body_spec.rb +41 -0
  708. data/spec/models/update_carrier_settings_request_body_spec.rb +143 -0
  709. data/spec/models/update_dhl_express_settings_request_body_spec.rb +35 -0
  710. data/spec/models/update_fedex_settings_request_body_spec.rb +35 -0
  711. data/spec/models/update_newgistics_settings_request_body_spec.rb +47 -0
  712. data/spec/models/update_package_type_request_body_spec.rb +35 -0
  713. data/spec/models/update_shipment_fields_spec.rb +41 -0
  714. data/spec/models/update_shipment_request_body_spec.rb +173 -0
  715. data/spec/models/update_shipment_response_body_spec.rb +35 -0
  716. data/spec/models/update_ups_settings_request_body_spec.rb +35 -0
  717. data/spec/models/update_warehouse_request_body_spec.rb +35 -0
  718. data/spec/models/update_webhook_request_body_spec.rb +41 -0
  719. data/spec/models/ups_account_settings_spec.rb +107 -0
  720. data/spec/models/ups_invoice_spec.rb +59 -0
  721. data/spec/models/ups_pickup_type_spec.rb +35 -0
  722. data/spec/models/ups_settings_response_body_spec.rb +35 -0
  723. data/spec/models/validate_address_spec.rb +35 -0
  724. data/spec/models/validate_shipment_fields_spec.rb +41 -0
  725. data/spec/models/validation_status_spec.rb +35 -0
  726. data/spec/models/void_label_response_body_spec.rb +47 -0
  727. data/spec/models/warehouse_spec.rb +65 -0
  728. data/spec/models/webhook_event_spec.rb +35 -0
  729. data/spec/models/webhook_spec.rb +53 -0
  730. data/spec/models/weight_spec.rb +47 -0
  731. data/spec/models/weight_unit_spec.rb +35 -0
  732. data/spec/spec_helper.rb +111 -0
  733. metadata +1110 -0
@@ -0,0 +1,432 @@
1
+ =begin
2
+ #ShipEngine API
3
+
4
+ #ShipEngine's easy-to-use REST API lets you manage all of your shipping needs without worrying about the complexities of different carrier APIs and protocols. We handle all the heavy lifting so you can focus on providing a first-class shipping experience for your customers at the best possible prices. Each of ShipEngine's features can be used by itself or in conjunction with each other to build powerful shipping functionality into your application or service. ## Getting Started If you're new to REST APIs then be sure to read our [introduction to REST](https://www.shipengine.com/docs/rest/) to understand the basics. Learn how to [authenticate yourself to ShipEngine](https://www.shipengine.com/docs/auth/), and then use our [sandbox environment](https://www.shipengine.com/docs/sandbox/) to kick the tires and get familiar with our API. If you run into any problems, then be sure to check the [error handling guide](https://www.shipengine.com/docs/errors/) for tips. Here are some step-by-step **tutorials** to get you started: - [Learn how to create your first shipping label](https://www.shipengine.com/docs/labels/create-a-label/) - [Calculate shipping costs and compare rates across carriers](https://www.shipengine.com/docs/rates/) - [Track packages on-demand or in real time](https://www.shipengine.com/docs/tracking/) - [Validate mailing addresses anywhere on Earth](https://www.shipengine.com/docs/addresses/validation/) ## Shipping Labels for Every Major Carrier ShipEngine makes it easy to [create shipping labels for any carrier](https://www.shipengine.com/docs/labels/create-a-label/) and [download them](https://www.shipengine.com/docs/labels/downloading/) in a [variety of file formats](https://www.shipengine.com/docs/labels/formats/). You can even customize labels with your own [messages](https://www.shipengine.com/docs/labels/messages/) and [images](https://www.shipengine.com/docs/labels/branding/). ## Real-Time Package Tracking With ShipEngine you can [get the current status of a package](https://www.shipengine.com/docs/tracking/) or [subscribe to real-time tracking updates](https://www.shipengine.com/docs/tracking/webhooks/) via webhooks. You can also create [custimized tracking pages](https://www.shipengine.com/docs/tracking/branded-tracking-page/) with your own branding so your customers will always know where their package is. ## Compare Shipping Costs Across Carriers Make sure you ship as cost-effectively as possible by [comparing rates across carriers](https://www.shipengine.com/docs/rates/get-shipment-rates/) using the ShipEngine Rates API. Or if you don't know the full shipment details yet, then you can [get rate estimates](https://www.shipengine.com/docs/rates/estimate/) with limited address info. ## Worldwide Address Validation ShipEngine supports [address validation](https://www.shipengine.com/docs/addresses/validation/) for virtually [every country on Earth](https://www.shipengine.com/docs/addresses/validation/countries/), including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.
5
+
6
+ The version of the OpenAPI document: 1.1.202006302006
7
+ Contact: sales@shipengine.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # A complete or partial mailing address.
17
+ class PartialAddress
18
+ # The name of a contact person at this address. This field may be set instead of - or in addition to - the `company_name` field.
19
+ attr_accessor :name
20
+
21
+ # The phone number of a contact person at this address. The format of this phone number varies depending on the country.
22
+ attr_accessor :phone
23
+
24
+ # If this is a business address, then the company name should be specified here.
25
+ attr_accessor :company_name
26
+
27
+ # The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.
28
+ attr_accessor :address_line1
29
+
30
+ # The second line of the street address. For some addresses, this line may not be needed.
31
+ attr_accessor :address_line2
32
+
33
+ # The third line of the street address. For some addresses, this line may not be needed.
34
+ attr_accessor :address_line3
35
+
36
+ # The name of the city or locality
37
+ attr_accessor :city_locality
38
+
39
+ # The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.
40
+ attr_accessor :state_province
41
+
42
+ attr_accessor :postal_code
43
+
44
+ # The two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
45
+ attr_accessor :country_code
46
+
47
+ # Indicates whether this is a residential address.
48
+ attr_accessor :address_residential_indicator
49
+
50
+ # Attribute mapping from ruby-style variable name to JSON key.
51
+ def self.attribute_map
52
+ {
53
+ :'name' => :'name',
54
+ :'phone' => :'phone',
55
+ :'company_name' => :'company_name',
56
+ :'address_line1' => :'address_line1',
57
+ :'address_line2' => :'address_line2',
58
+ :'address_line3' => :'address_line3',
59
+ :'city_locality' => :'city_locality',
60
+ :'state_province' => :'state_province',
61
+ :'postal_code' => :'postal_code',
62
+ :'country_code' => :'country_code',
63
+ :'address_residential_indicator' => :'address_residential_indicator'
64
+ }
65
+ end
66
+
67
+ # Attribute type mapping.
68
+ def self.openapi_types
69
+ {
70
+ :'name' => :'String',
71
+ :'phone' => :'String',
72
+ :'company_name' => :'String',
73
+ :'address_line1' => :'String',
74
+ :'address_line2' => :'String',
75
+ :'address_line3' => :'String',
76
+ :'city_locality' => :'String',
77
+ :'state_province' => :'String',
78
+ :'postal_code' => :'String',
79
+ :'country_code' => :'String',
80
+ :'address_residential_indicator' => :'AddressResidentialIndicator'
81
+ }
82
+ end
83
+
84
+ # List of attributes with nullable: true
85
+ def self.openapi_nullable
86
+ Set.new([
87
+ :'name',
88
+ :'phone',
89
+ :'company_name',
90
+ :'address_line2',
91
+ :'address_line3',
92
+ ])
93
+ end
94
+
95
+ # Initializes the object
96
+ # @param [Hash] attributes Model attributes in the form of hash
97
+ def initialize(attributes = {})
98
+ if (!attributes.is_a?(Hash))
99
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::PartialAddress` initialize method"
100
+ end
101
+
102
+ # check to see if the attribute exists and convert string to symbol for hash key
103
+ attributes = attributes.each_with_object({}) { |(k, v), h|
104
+ if (!self.class.attribute_map.key?(k.to_sym))
105
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::PartialAddress`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
106
+ end
107
+ h[k.to_sym] = v
108
+ }
109
+
110
+ if attributes.key?(:'name')
111
+ self.name = attributes[:'name']
112
+ end
113
+
114
+ if attributes.key?(:'phone')
115
+ self.phone = attributes[:'phone']
116
+ end
117
+
118
+ if attributes.key?(:'company_name')
119
+ self.company_name = attributes[:'company_name']
120
+ end
121
+
122
+ if attributes.key?(:'address_line1')
123
+ self.address_line1 = attributes[:'address_line1']
124
+ end
125
+
126
+ if attributes.key?(:'address_line2')
127
+ self.address_line2 = attributes[:'address_line2']
128
+ end
129
+
130
+ if attributes.key?(:'address_line3')
131
+ self.address_line3 = attributes[:'address_line3']
132
+ end
133
+
134
+ if attributes.key?(:'city_locality')
135
+ self.city_locality = attributes[:'city_locality']
136
+ end
137
+
138
+ if attributes.key?(:'state_province')
139
+ self.state_province = attributes[:'state_province']
140
+ end
141
+
142
+ if attributes.key?(:'postal_code')
143
+ self.postal_code = attributes[:'postal_code']
144
+ end
145
+
146
+ if attributes.key?(:'country_code')
147
+ self.country_code = attributes[:'country_code']
148
+ end
149
+
150
+ if attributes.key?(:'address_residential_indicator')
151
+ self.address_residential_indicator = attributes[:'address_residential_indicator']
152
+ end
153
+ end
154
+
155
+ # Show invalid properties with the reasons. Usually used together with valid?
156
+ # @return Array for valid properties with the reasons
157
+ def list_invalid_properties
158
+ invalid_properties = Array.new
159
+ if !@name.nil? && @name.to_s.length < 1
160
+ invalid_properties.push('invalid value for "name", the character length must be great than or equal to 1.')
161
+ end
162
+
163
+ if !@phone.nil? && @phone.to_s.length < 1
164
+ invalid_properties.push('invalid value for "phone", the character length must be great than or equal to 1.')
165
+ end
166
+
167
+ if !@company_name.nil? && @company_name.to_s.length < 1
168
+ invalid_properties.push('invalid value for "company_name", the character length must be great than or equal to 1.')
169
+ end
170
+
171
+ if !@address_line1.nil? && @address_line1.to_s.length < 1
172
+ invalid_properties.push('invalid value for "address_line1", the character length must be great than or equal to 1.')
173
+ end
174
+
175
+ if !@address_line2.nil? && @address_line2.to_s.length < 1
176
+ invalid_properties.push('invalid value for "address_line2", the character length must be great than or equal to 1.')
177
+ end
178
+
179
+ if !@address_line3.nil? && @address_line3.to_s.length < 1
180
+ invalid_properties.push('invalid value for "address_line3", the character length must be great than or equal to 1.')
181
+ end
182
+
183
+ if !@city_locality.nil? && @city_locality.to_s.length < 1
184
+ invalid_properties.push('invalid value for "city_locality", the character length must be great than or equal to 1.')
185
+ end
186
+
187
+ if !@state_province.nil? && @state_province.to_s.length < 1
188
+ invalid_properties.push('invalid value for "state_province", the character length must be great than or equal to 1.')
189
+ end
190
+
191
+ invalid_properties
192
+ end
193
+
194
+ # Check to see if the all the properties in the model are valid
195
+ # @return true if the model is valid
196
+ def valid?
197
+ return false if !@name.nil? && @name.to_s.length < 1
198
+ return false if !@phone.nil? && @phone.to_s.length < 1
199
+ return false if !@company_name.nil? && @company_name.to_s.length < 1
200
+ return false if !@address_line1.nil? && @address_line1.to_s.length < 1
201
+ return false if !@address_line2.nil? && @address_line2.to_s.length < 1
202
+ return false if !@address_line3.nil? && @address_line3.to_s.length < 1
203
+ return false if !@city_locality.nil? && @city_locality.to_s.length < 1
204
+ return false if !@state_province.nil? && @state_province.to_s.length < 1
205
+ true
206
+ end
207
+
208
+ # Custom attribute writer method with validation
209
+ # @param [Object] name Value to be assigned
210
+ def name=(name)
211
+ if !name.nil? && name.to_s.length < 1
212
+ fail ArgumentError, 'invalid value for "name", the character length must be great than or equal to 1.'
213
+ end
214
+
215
+ @name = name
216
+ end
217
+
218
+ # Custom attribute writer method with validation
219
+ # @param [Object] phone Value to be assigned
220
+ def phone=(phone)
221
+ if !phone.nil? && phone.to_s.length < 1
222
+ fail ArgumentError, 'invalid value for "phone", the character length must be great than or equal to 1.'
223
+ end
224
+
225
+ @phone = phone
226
+ end
227
+
228
+ # Custom attribute writer method with validation
229
+ # @param [Object] company_name Value to be assigned
230
+ def company_name=(company_name)
231
+ if !company_name.nil? && company_name.to_s.length < 1
232
+ fail ArgumentError, 'invalid value for "company_name", the character length must be great than or equal to 1.'
233
+ end
234
+
235
+ @company_name = company_name
236
+ end
237
+
238
+ # Custom attribute writer method with validation
239
+ # @param [Object] address_line1 Value to be assigned
240
+ def address_line1=(address_line1)
241
+ if !address_line1.nil? && address_line1.to_s.length < 1
242
+ fail ArgumentError, 'invalid value for "address_line1", the character length must be great than or equal to 1.'
243
+ end
244
+
245
+ @address_line1 = address_line1
246
+ end
247
+
248
+ # Custom attribute writer method with validation
249
+ # @param [Object] address_line2 Value to be assigned
250
+ def address_line2=(address_line2)
251
+ if !address_line2.nil? && address_line2.to_s.length < 1
252
+ fail ArgumentError, 'invalid value for "address_line2", the character length must be great than or equal to 1.'
253
+ end
254
+
255
+ @address_line2 = address_line2
256
+ end
257
+
258
+ # Custom attribute writer method with validation
259
+ # @param [Object] address_line3 Value to be assigned
260
+ def address_line3=(address_line3)
261
+ if !address_line3.nil? && address_line3.to_s.length < 1
262
+ fail ArgumentError, 'invalid value for "address_line3", the character length must be great than or equal to 1.'
263
+ end
264
+
265
+ @address_line3 = address_line3
266
+ end
267
+
268
+ # Custom attribute writer method with validation
269
+ # @param [Object] city_locality Value to be assigned
270
+ def city_locality=(city_locality)
271
+ if !city_locality.nil? && city_locality.to_s.length < 1
272
+ fail ArgumentError, 'invalid value for "city_locality", the character length must be great than or equal to 1.'
273
+ end
274
+
275
+ @city_locality = city_locality
276
+ end
277
+
278
+ # Custom attribute writer method with validation
279
+ # @param [Object] state_province Value to be assigned
280
+ def state_province=(state_province)
281
+ if !state_province.nil? && state_province.to_s.length < 1
282
+ fail ArgumentError, 'invalid value for "state_province", the character length must be great than or equal to 1.'
283
+ end
284
+
285
+ @state_province = state_province
286
+ end
287
+
288
+ # Checks equality by comparing each attribute.
289
+ # @param [Object] Object to be compared
290
+ def ==(o)
291
+ return true if self.equal?(o)
292
+ self.class == o.class &&
293
+ name == o.name &&
294
+ phone == o.phone &&
295
+ company_name == o.company_name &&
296
+ address_line1 == o.address_line1 &&
297
+ address_line2 == o.address_line2 &&
298
+ address_line3 == o.address_line3 &&
299
+ city_locality == o.city_locality &&
300
+ state_province == o.state_province &&
301
+ postal_code == o.postal_code &&
302
+ country_code == o.country_code &&
303
+ address_residential_indicator == o.address_residential_indicator
304
+ end
305
+
306
+ # @see the `==` method
307
+ # @param [Object] Object to be compared
308
+ def eql?(o)
309
+ self == o
310
+ end
311
+
312
+ # Calculates hash code according to all attributes.
313
+ # @return [Integer] Hash code
314
+ def hash
315
+ [name, phone, company_name, address_line1, address_line2, address_line3, city_locality, state_province, postal_code, country_code, address_residential_indicator].hash
316
+ end
317
+
318
+ # Builds the object from hash
319
+ # @param [Hash] attributes Model attributes in the form of hash
320
+ # @return [Object] Returns the model itself
321
+ def self.build_from_hash(attributes)
322
+ new.build_from_hash(attributes)
323
+ end
324
+
325
+ # Builds the object from hash
326
+ # @param [Hash] attributes Model attributes in the form of hash
327
+ # @return [Object] Returns the model itself
328
+ def build_from_hash(attributes)
329
+ return nil unless attributes.is_a?(Hash)
330
+ self.class.openapi_types.each_pair do |key, type|
331
+ if type =~ /\AArray<(.*)>/i
332
+ # check to ensure the input is an array given that the attribute
333
+ # is documented as an array but the input is not
334
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
335
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
336
+ end
337
+ elsif !attributes[self.class.attribute_map[key]].nil?
338
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
339
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
340
+ end
341
+
342
+ self
343
+ end
344
+
345
+ # Deserializes the data based on type
346
+ # @param string type Data type
347
+ # @param string value Value to be deserialized
348
+ # @return [Object] Deserialized data
349
+ def _deserialize(type, value)
350
+ case type.to_sym
351
+ when :DateTime
352
+ DateTime.parse(value)
353
+ when :Date
354
+ Date.parse(value)
355
+ when :String
356
+ value.to_s
357
+ when :Integer
358
+ value.to_i
359
+ when :Float
360
+ value.to_f
361
+ when :Boolean
362
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
363
+ true
364
+ else
365
+ false
366
+ end
367
+ when :Object
368
+ # generic object (usually a Hash), return directly
369
+ value
370
+ when /\AArray<(?<inner_type>.+)>\z/
371
+ inner_type = Regexp.last_match[:inner_type]
372
+ value.map { |v| _deserialize(inner_type, v) }
373
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
374
+ k_type = Regexp.last_match[:k_type]
375
+ v_type = Regexp.last_match[:v_type]
376
+ {}.tap do |hash|
377
+ value.each do |k, v|
378
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
379
+ end
380
+ end
381
+ else # model
382
+ OpenapiClient.const_get(type).build_from_hash(value)
383
+ end
384
+ end
385
+
386
+ # Returns the string representation of the object
387
+ # @return [String] String presentation of the object
388
+ def to_s
389
+ to_hash.to_s
390
+ end
391
+
392
+ # to_body is an alias to to_hash (backward compatibility)
393
+ # @return [Hash] Returns the object in the form of hash
394
+ def to_body
395
+ to_hash
396
+ end
397
+
398
+ # Returns the object in the form of hash
399
+ # @return [Hash] Returns the object in the form of hash
400
+ def to_hash
401
+ hash = {}
402
+ self.class.attribute_map.each_pair do |attr, param|
403
+ value = self.send(attr)
404
+ if value.nil?
405
+ is_nullable = self.class.openapi_nullable.include?(attr)
406
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
407
+ end
408
+
409
+ hash[param] = _to_hash(value)
410
+ end
411
+ hash
412
+ end
413
+
414
+ # Outputs non-array value in the form of hash
415
+ # For object, use to_hash. Otherwise, just return the value
416
+ # @param [Object] value Any valid value
417
+ # @return [Hash] Returns the value in the form of hash
418
+ def _to_hash(value)
419
+ if value.is_a?(Array)
420
+ value.compact.map { |v| _to_hash(v) }
421
+ elsif value.is_a?(Hash)
422
+ {}.tap do |hash|
423
+ value.each { |k, v| hash[k] = _to_hash(v) }
424
+ end
425
+ elsif value.respond_to? :to_hash
426
+ value.to_hash
427
+ else
428
+ value
429
+ end
430
+ end
431
+ end
432
+ end
@@ -0,0 +1,442 @@
1
+ =begin
2
+ #ShipEngine API
3
+
4
+ #ShipEngine's easy-to-use REST API lets you manage all of your shipping needs without worrying about the complexities of different carrier APIs and protocols. We handle all the heavy lifting so you can focus on providing a first-class shipping experience for your customers at the best possible prices. Each of ShipEngine's features can be used by itself or in conjunction with each other to build powerful shipping functionality into your application or service. ## Getting Started If you're new to REST APIs then be sure to read our [introduction to REST](https://www.shipengine.com/docs/rest/) to understand the basics. Learn how to [authenticate yourself to ShipEngine](https://www.shipengine.com/docs/auth/), and then use our [sandbox environment](https://www.shipengine.com/docs/sandbox/) to kick the tires and get familiar with our API. If you run into any problems, then be sure to check the [error handling guide](https://www.shipengine.com/docs/errors/) for tips. Here are some step-by-step **tutorials** to get you started: - [Learn how to create your first shipping label](https://www.shipengine.com/docs/labels/create-a-label/) - [Calculate shipping costs and compare rates across carriers](https://www.shipengine.com/docs/rates/) - [Track packages on-demand or in real time](https://www.shipengine.com/docs/tracking/) - [Validate mailing addresses anywhere on Earth](https://www.shipengine.com/docs/addresses/validation/) ## Shipping Labels for Every Major Carrier ShipEngine makes it easy to [create shipping labels for any carrier](https://www.shipengine.com/docs/labels/create-a-label/) and [download them](https://www.shipengine.com/docs/labels/downloading/) in a [variety of file formats](https://www.shipengine.com/docs/labels/formats/). You can even customize labels with your own [messages](https://www.shipengine.com/docs/labels/messages/) and [images](https://www.shipengine.com/docs/labels/branding/). ## Real-Time Package Tracking With ShipEngine you can [get the current status of a package](https://www.shipengine.com/docs/tracking/) or [subscribe to real-time tracking updates](https://www.shipengine.com/docs/tracking/webhooks/) via webhooks. You can also create [custimized tracking pages](https://www.shipengine.com/docs/tracking/branded-tracking-page/) with your own branding so your customers will always know where their package is. ## Compare Shipping Costs Across Carriers Make sure you ship as cost-effectively as possible by [comparing rates across carriers](https://www.shipengine.com/docs/rates/get-shipment-rates/) using the ShipEngine Rates API. Or if you don't know the full shipment details yet, then you can [get rate estimates](https://www.shipengine.com/docs/rates/estimate/) with limited address info. ## Worldwide Address Validation ShipEngine supports [address validation](https://www.shipengine.com/docs/addresses/validation/) for virtually [every country on Earth](https://www.shipengine.com/docs/addresses/validation/countries/), including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.
5
+
6
+ The version of the OpenAPI document: 1.1.202006302006
7
+ Contact: sales@shipengine.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module OpenapiClient
16
+ # The information necessary to ship a package, such as the origin, the destination, the carrier service, and the package dimensions and weight.
17
+ class PartialShipment
18
+ # A string that uniquely identifies the shipment
19
+ attr_accessor :shipment_id
20
+
21
+ # The carrier account that is billed for the shipping charges
22
+ attr_accessor :carrier_id
23
+
24
+ # The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
25
+ attr_accessor :service_code
26
+
27
+ # ID that the Order Source assigned
28
+ attr_accessor :external_order_id
29
+
30
+ # Describe the packages included in this shipment as related to potential metadata that was imported from external order sources
31
+ attr_accessor :items
32
+
33
+ # You can optionally use this field to store your own identifier for this shipment. > **Warning:** The `external_shipment_id` is limited to 50 characters. Any additional characters will be truncated.
34
+ attr_accessor :external_shipment_id
35
+
36
+ # The date that the shipment was (or will be) shippped. ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
37
+ attr_accessor :ship_date
38
+
39
+ # The date and time that the shipment was created in ShipEngine.
40
+ attr_accessor :created_at
41
+
42
+ # The date and time that the shipment was created or last modified.
43
+ attr_accessor :modified_at
44
+
45
+ # The current status of the shipment
46
+ attr_accessor :shipment_status
47
+
48
+ # The recipient's mailing address
49
+ attr_accessor :ship_to
50
+
51
+ # The shipment's origin address. If you frequently ship from the same location, consider [creating a warehouse](https://www.shipengine.com/docs/reference/create-warehouse/). Then you can simply specify the `warehouse_id` rather than the complete address each time.
52
+ attr_accessor :ship_from
53
+
54
+ # The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from. Either `warehouse_id` or `ship_from` must be specified.
55
+ attr_accessor :warehouse_id
56
+
57
+ # The return address for this shipment. Defaults to the `ship_from` address.
58
+ attr_accessor :return_to
59
+
60
+ # The type of delivery confirmation that is required for this shipment.
61
+ attr_accessor :confirmation
62
+
63
+ # Customs information. This is usually only needed for international shipments.
64
+ attr_accessor :customs
65
+
66
+ # Advanced shipment options. These are entirely optional.
67
+ attr_accessor :advanced_options
68
+
69
+ # The insurance provider to use for any insured packages in the shipment.
70
+ attr_accessor :insurance_provider
71
+
72
+ # Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.
73
+ attr_accessor :tags
74
+
75
+ attr_accessor :order_source_code
76
+
77
+ # The packages in the shipment. > **Note:** Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.
78
+ attr_accessor :packages
79
+
80
+ # The combined weight of all packages in the shipment
81
+ attr_accessor :total_weight
82
+
83
+ # Attribute mapping from ruby-style variable name to JSON key.
84
+ def self.attribute_map
85
+ {
86
+ :'shipment_id' => :'shipment_id',
87
+ :'carrier_id' => :'carrier_id',
88
+ :'service_code' => :'service_code',
89
+ :'external_order_id' => :'external_order_id',
90
+ :'items' => :'items',
91
+ :'external_shipment_id' => :'external_shipment_id',
92
+ :'ship_date' => :'ship_date',
93
+ :'created_at' => :'created_at',
94
+ :'modified_at' => :'modified_at',
95
+ :'shipment_status' => :'shipment_status',
96
+ :'ship_to' => :'ship_to',
97
+ :'ship_from' => :'ship_from',
98
+ :'warehouse_id' => :'warehouse_id',
99
+ :'return_to' => :'return_to',
100
+ :'confirmation' => :'confirmation',
101
+ :'customs' => :'customs',
102
+ :'advanced_options' => :'advanced_options',
103
+ :'insurance_provider' => :'insurance_provider',
104
+ :'tags' => :'tags',
105
+ :'order_source_code' => :'order_source_code',
106
+ :'packages' => :'packages',
107
+ :'total_weight' => :'total_weight'
108
+ }
109
+ end
110
+
111
+ # Attribute type mapping.
112
+ def self.openapi_types
113
+ {
114
+ :'shipment_id' => :'String',
115
+ :'carrier_id' => :'String',
116
+ :'service_code' => :'String',
117
+ :'external_order_id' => :'String',
118
+ :'items' => :'Array<ShipmentItem>',
119
+ :'external_shipment_id' => :'String',
120
+ :'ship_date' => :'DateTime',
121
+ :'created_at' => :'DateTime',
122
+ :'modified_at' => :'DateTime',
123
+ :'shipment_status' => :'ShipmentStatus',
124
+ :'ship_to' => :'Address',
125
+ :'ship_from' => :'Address',
126
+ :'warehouse_id' => :'String',
127
+ :'return_to' => :'Address',
128
+ :'confirmation' => :'DeliveryConfirmation',
129
+ :'customs' => :'InternationalShipmentOptions',
130
+ :'advanced_options' => :'AdvancedShipmentOptions',
131
+ :'insurance_provider' => :'InsuranceProvider',
132
+ :'tags' => :'Array<Tag>',
133
+ :'order_source_code' => :'OrderSourceName',
134
+ :'packages' => :'Array<Package>',
135
+ :'total_weight' => :'Weight'
136
+ }
137
+ end
138
+
139
+ # List of attributes with nullable: true
140
+ def self.openapi_nullable
141
+ Set.new([
142
+ :'external_order_id',
143
+ :'external_shipment_id',
144
+ :'warehouse_id',
145
+ :'customs',
146
+ ])
147
+ end
148
+
149
+ # Initializes the object
150
+ # @param [Hash] attributes Model attributes in the form of hash
151
+ def initialize(attributes = {})
152
+ if (!attributes.is_a?(Hash))
153
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OpenapiClient::PartialShipment` initialize method"
154
+ end
155
+
156
+ # check to see if the attribute exists and convert string to symbol for hash key
157
+ attributes = attributes.each_with_object({}) { |(k, v), h|
158
+ if (!self.class.attribute_map.key?(k.to_sym))
159
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OpenapiClient::PartialShipment`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
160
+ end
161
+ h[k.to_sym] = v
162
+ }
163
+
164
+ if attributes.key?(:'shipment_id')
165
+ self.shipment_id = attributes[:'shipment_id']
166
+ end
167
+
168
+ if attributes.key?(:'carrier_id')
169
+ self.carrier_id = attributes[:'carrier_id']
170
+ end
171
+
172
+ if attributes.key?(:'service_code')
173
+ self.service_code = attributes[:'service_code']
174
+ end
175
+
176
+ if attributes.key?(:'external_order_id')
177
+ self.external_order_id = attributes[:'external_order_id']
178
+ end
179
+
180
+ if attributes.key?(:'items')
181
+ if (value = attributes[:'items']).is_a?(Array)
182
+ self.items = value
183
+ end
184
+ end
185
+
186
+ if attributes.key?(:'external_shipment_id')
187
+ self.external_shipment_id = attributes[:'external_shipment_id']
188
+ end
189
+
190
+ if attributes.key?(:'ship_date')
191
+ self.ship_date = attributes[:'ship_date']
192
+ end
193
+
194
+ if attributes.key?(:'created_at')
195
+ self.created_at = attributes[:'created_at']
196
+ end
197
+
198
+ if attributes.key?(:'modified_at')
199
+ self.modified_at = attributes[:'modified_at']
200
+ end
201
+
202
+ if attributes.key?(:'shipment_status')
203
+ self.shipment_status = attributes[:'shipment_status']
204
+ end
205
+
206
+ if attributes.key?(:'ship_to')
207
+ self.ship_to = attributes[:'ship_to']
208
+ end
209
+
210
+ if attributes.key?(:'ship_from')
211
+ self.ship_from = attributes[:'ship_from']
212
+ end
213
+
214
+ if attributes.key?(:'warehouse_id')
215
+ self.warehouse_id = attributes[:'warehouse_id']
216
+ end
217
+
218
+ if attributes.key?(:'return_to')
219
+ self.return_to = attributes[:'return_to']
220
+ end
221
+
222
+ if attributes.key?(:'confirmation')
223
+ self.confirmation = attributes[:'confirmation']
224
+ end
225
+
226
+ if attributes.key?(:'customs')
227
+ self.customs = attributes[:'customs']
228
+ end
229
+
230
+ if attributes.key?(:'advanced_options')
231
+ self.advanced_options = attributes[:'advanced_options']
232
+ end
233
+
234
+ if attributes.key?(:'insurance_provider')
235
+ self.insurance_provider = attributes[:'insurance_provider']
236
+ end
237
+
238
+ if attributes.key?(:'tags')
239
+ if (value = attributes[:'tags']).is_a?(Array)
240
+ self.tags = value
241
+ end
242
+ end
243
+
244
+ if attributes.key?(:'order_source_code')
245
+ self.order_source_code = attributes[:'order_source_code']
246
+ end
247
+
248
+ if attributes.key?(:'packages')
249
+ if (value = attributes[:'packages']).is_a?(Array)
250
+ self.packages = value
251
+ end
252
+ end
253
+
254
+ if attributes.key?(:'total_weight')
255
+ self.total_weight = attributes[:'total_weight']
256
+ end
257
+ end
258
+
259
+ # Show invalid properties with the reasons. Usually used together with valid?
260
+ # @return Array for valid properties with the reasons
261
+ def list_invalid_properties
262
+ invalid_properties = Array.new
263
+ if !@external_shipment_id.nil? && @external_shipment_id.to_s.length > 50
264
+ invalid_properties.push('invalid value for "external_shipment_id", the character length must be smaller than or equal to 50.')
265
+ end
266
+
267
+ invalid_properties
268
+ end
269
+
270
+ # Check to see if the all the properties in the model are valid
271
+ # @return true if the model is valid
272
+ def valid?
273
+ return false if !@external_shipment_id.nil? && @external_shipment_id.to_s.length > 50
274
+ true
275
+ end
276
+
277
+ # Custom attribute writer method with validation
278
+ # @param [Object] external_shipment_id Value to be assigned
279
+ def external_shipment_id=(external_shipment_id)
280
+ if !external_shipment_id.nil? && external_shipment_id.to_s.length > 50
281
+ fail ArgumentError, 'invalid value for "external_shipment_id", the character length must be smaller than or equal to 50.'
282
+ end
283
+
284
+ @external_shipment_id = external_shipment_id
285
+ end
286
+
287
+ # Checks equality by comparing each attribute.
288
+ # @param [Object] Object to be compared
289
+ def ==(o)
290
+ return true if self.equal?(o)
291
+ self.class == o.class &&
292
+ shipment_id == o.shipment_id &&
293
+ carrier_id == o.carrier_id &&
294
+ service_code == o.service_code &&
295
+ external_order_id == o.external_order_id &&
296
+ items == o.items &&
297
+ external_shipment_id == o.external_shipment_id &&
298
+ ship_date == o.ship_date &&
299
+ created_at == o.created_at &&
300
+ modified_at == o.modified_at &&
301
+ shipment_status == o.shipment_status &&
302
+ ship_to == o.ship_to &&
303
+ ship_from == o.ship_from &&
304
+ warehouse_id == o.warehouse_id &&
305
+ return_to == o.return_to &&
306
+ confirmation == o.confirmation &&
307
+ customs == o.customs &&
308
+ advanced_options == o.advanced_options &&
309
+ insurance_provider == o.insurance_provider &&
310
+ tags == o.tags &&
311
+ order_source_code == o.order_source_code &&
312
+ packages == o.packages &&
313
+ total_weight == o.total_weight
314
+ end
315
+
316
+ # @see the `==` method
317
+ # @param [Object] Object to be compared
318
+ def eql?(o)
319
+ self == o
320
+ end
321
+
322
+ # Calculates hash code according to all attributes.
323
+ # @return [Integer] Hash code
324
+ def hash
325
+ [shipment_id, carrier_id, service_code, external_order_id, items, external_shipment_id, ship_date, created_at, modified_at, shipment_status, ship_to, ship_from, warehouse_id, return_to, confirmation, customs, advanced_options, insurance_provider, tags, order_source_code, packages, total_weight].hash
326
+ end
327
+
328
+ # Builds the object from hash
329
+ # @param [Hash] attributes Model attributes in the form of hash
330
+ # @return [Object] Returns the model itself
331
+ def self.build_from_hash(attributes)
332
+ new.build_from_hash(attributes)
333
+ end
334
+
335
+ # Builds the object from hash
336
+ # @param [Hash] attributes Model attributes in the form of hash
337
+ # @return [Object] Returns the model itself
338
+ def build_from_hash(attributes)
339
+ return nil unless attributes.is_a?(Hash)
340
+ self.class.openapi_types.each_pair do |key, type|
341
+ if type =~ /\AArray<(.*)>/i
342
+ # check to ensure the input is an array given that the attribute
343
+ # is documented as an array but the input is not
344
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
345
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
346
+ end
347
+ elsif !attributes[self.class.attribute_map[key]].nil?
348
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
349
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
350
+ end
351
+
352
+ self
353
+ end
354
+
355
+ # Deserializes the data based on type
356
+ # @param string type Data type
357
+ # @param string value Value to be deserialized
358
+ # @return [Object] Deserialized data
359
+ def _deserialize(type, value)
360
+ case type.to_sym
361
+ when :DateTime
362
+ DateTime.parse(value)
363
+ when :Date
364
+ Date.parse(value)
365
+ when :String
366
+ value.to_s
367
+ when :Integer
368
+ value.to_i
369
+ when :Float
370
+ value.to_f
371
+ when :Boolean
372
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
373
+ true
374
+ else
375
+ false
376
+ end
377
+ when :Object
378
+ # generic object (usually a Hash), return directly
379
+ value
380
+ when /\AArray<(?<inner_type>.+)>\z/
381
+ inner_type = Regexp.last_match[:inner_type]
382
+ value.map { |v| _deserialize(inner_type, v) }
383
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
384
+ k_type = Regexp.last_match[:k_type]
385
+ v_type = Regexp.last_match[:v_type]
386
+ {}.tap do |hash|
387
+ value.each do |k, v|
388
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
389
+ end
390
+ end
391
+ else # model
392
+ OpenapiClient.const_get(type).build_from_hash(value)
393
+ end
394
+ end
395
+
396
+ # Returns the string representation of the object
397
+ # @return [String] String presentation of the object
398
+ def to_s
399
+ to_hash.to_s
400
+ end
401
+
402
+ # to_body is an alias to to_hash (backward compatibility)
403
+ # @return [Hash] Returns the object in the form of hash
404
+ def to_body
405
+ to_hash
406
+ end
407
+
408
+ # Returns the object in the form of hash
409
+ # @return [Hash] Returns the object in the form of hash
410
+ def to_hash
411
+ hash = {}
412
+ self.class.attribute_map.each_pair do |attr, param|
413
+ value = self.send(attr)
414
+ if value.nil?
415
+ is_nullable = self.class.openapi_nullable.include?(attr)
416
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
417
+ end
418
+
419
+ hash[param] = _to_hash(value)
420
+ end
421
+ hash
422
+ end
423
+
424
+ # Outputs non-array value in the form of hash
425
+ # For object, use to_hash. Otherwise, just return the value
426
+ # @param [Object] value Any valid value
427
+ # @return [Hash] Returns the value in the form of hash
428
+ def _to_hash(value)
429
+ if value.is_a?(Array)
430
+ value.compact.map { |v| _to_hash(v) }
431
+ elsif value.is_a?(Hash)
432
+ {}.tap do |hash|
433
+ value.each { |k, v| hash[k] = _to_hash(v) }
434
+ end
435
+ elsif value.respond_to? :to_hash
436
+ value.to_hash
437
+ else
438
+ value
439
+ end
440
+ end
441
+ end
442
+ end