kintsugi_sdk 5.6.1 → 5.7.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 (312) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kintsugi_sdk/addressvalidation.rb +8 -6
  3. data/lib/kintsugi_sdk/customers.rb +90 -88
  4. data/lib/kintsugi_sdk/exemptions.rb +60 -60
  5. data/lib/kintsugi_sdk/models/errors/{backend_src_products_responses_validationerrorresponse.rb → backend_src_products_schemas_responses_validationerrorresponse.rb} +3 -3
  6. data/lib/kintsugi_sdk/models/errors/backend_src_products_schemas_responses_validationerrorresponse.rbi +13 -0
  7. data/lib/kintsugi_sdk/models/errors.rb +1 -1
  8. data/lib/kintsugi_sdk/models/ops/{search_v1_address_validation_search_post_security.rb → country.rb} +3 -8
  9. data/lib/kintsugi_sdk/models/{shared/registration.rbi → ops/country.rbi} +2 -2
  10. data/lib/kintsugi_sdk/models/ops/country_code.rb +27 -0
  11. data/lib/kintsugi_sdk/models/ops/country_code.rbi +11 -0
  12. data/lib/kintsugi_sdk/models/ops/create_customer_v1_customers_post_request.rb +36 -0
  13. data/lib/kintsugi_sdk/models/ops/create_customer_v1_customers_post_request.rbi +15 -0
  14. data/lib/kintsugi_sdk/models/ops/create_exemption_v1_exemptions_post_request.rb +36 -0
  15. data/lib/kintsugi_sdk/models/ops/create_exemption_v1_exemptions_post_request.rbi +15 -0
  16. data/lib/kintsugi_sdk/models/ops/create_transaction_v1_transactions_post_request.rb +36 -0
  17. data/lib/kintsugi_sdk/models/ops/create_transaction_v1_transactions_post_request.rbi +15 -0
  18. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rb +6 -2
  19. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rbi +2 -0
  20. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rb +6 -2
  21. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rbi +2 -0
  22. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rb +6 -2
  23. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rbi +2 -0
  24. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rb +6 -2
  25. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rbi +2 -0
  26. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rb +13 -5
  27. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rbi +4 -0
  28. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rb +6 -2
  29. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rbi +2 -0
  30. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rb +17 -9
  31. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rbi +6 -2
  32. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rb +29 -13
  33. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rbi +14 -6
  34. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_response_get_nexus_for_org_v1_nexus_get.rb +27 -0
  35. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_response_get_nexus_for_org_v1_nexus_get.rbi +11 -0
  36. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rb +6 -2
  37. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rbi +2 -0
  38. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rb +6 -2
  39. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rbi +2 -0
  40. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rb +44 -18
  41. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rbi +14 -4
  42. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rb +6 -2
  43. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rbi +2 -0
  44. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rb +6 -2
  45. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rbi +2 -0
  46. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rb +14 -2
  47. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rbi +6 -0
  48. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_response_get_transactions_by_customer_id_v1_cus_6a2c85.rb +27 -0
  49. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_response_get_transactions_by_customer_id_v1_cus_6a2c85.rbi +11 -0
  50. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rb +6 -2
  51. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rbi +2 -0
  52. data/lib/kintsugi_sdk/models/ops/queryparam_country.rb +27 -0
  53. data/lib/kintsugi_sdk/models/ops/queryparam_country.rbi +11 -0
  54. data/lib/kintsugi_sdk/models/ops/suggestions_v1_address_validation_suggestions_post_request.rb +36 -0
  55. data/lib/kintsugi_sdk/models/ops/suggestions_v1_address_validation_suggestions_post_request.rbi +15 -0
  56. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rb +6 -2
  57. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rbi +2 -0
  58. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_product.rb +27 -0
  59. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_product.rbi +11 -0
  60. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rb +9 -5
  61. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rbi +4 -2
  62. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rb +6 -2
  63. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rbi +2 -0
  64. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rb +6 -2
  65. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rbi +2 -0
  66. data/lib/kintsugi_sdk/models/ops.rb +10 -1
  67. data/lib/kintsugi_sdk/models/shared/addressbase.rb +1 -1
  68. data/lib/kintsugi_sdk/models/shared/addresses.rb +7 -3
  69. data/lib/kintsugi_sdk/models/shared/addresses.rbi +2 -0
  70. data/lib/kintsugi_sdk/models/shared/amount.rb +27 -0
  71. data/lib/kintsugi_sdk/models/shared/amount.rbi +11 -0
  72. data/lib/kintsugi_sdk/models/shared/{backend_src_exemptions_models_exemptionread.rb → backend_src_exemptions_schemas_exemption_exemptionread.rb} +11 -10
  73. data/lib/kintsugi_sdk/models/shared/{backend_src_exemptions_models_exemptionread.rbi → backend_src_exemptions_schemas_exemption_exemptionread.rbi} +4 -4
  74. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rb +9 -9
  75. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rbi +2 -2
  76. data/lib/kintsugi_sdk/models/shared/{backend_src_products_responses_validationerroritem.rb → backend_src_products_schemas_responses_validationerroritem.rb} +1 -1
  77. data/lib/kintsugi_sdk/models/shared/{backend_src_products_responses_validationerroritem.rbi → backend_src_products_schemas_responses_validationerroritem.rbi} +2 -2
  78. data/lib/kintsugi_sdk/models/shared/body_upload_exemption_certificate_v1_exemptions_exemption_id_attachments_post.rb +2 -2
  79. data/lib/kintsugi_sdk/models/shared/{registration.rb → context.rb} +1 -1
  80. data/lib/kintsugi_sdk/models/shared/context.rbi +11 -0
  81. data/lib/kintsugi_sdk/models/shared/conversion_rate.rb +27 -0
  82. data/lib/kintsugi_sdk/models/shared/conversion_rate.rbi +11 -0
  83. data/lib/kintsugi_sdk/models/shared/converted_amount.rb +27 -0
  84. data/lib/kintsugi_sdk/models/shared/converted_amount.rbi +11 -0
  85. data/lib/kintsugi_sdk/models/shared/converted_subtotal.rb +27 -0
  86. data/lib/kintsugi_sdk/models/shared/converted_subtotal.rbi +11 -0
  87. data/lib/kintsugi_sdk/models/shared/converted_tax_amount_calculated.rb +27 -0
  88. data/lib/kintsugi_sdk/models/shared/converted_tax_amount_calculated.rbi +11 -0
  89. data/lib/kintsugi_sdk/models/shared/converted_tax_amount_imported.rb +27 -0
  90. data/lib/kintsugi_sdk/models/shared/converted_tax_amount_imported.rbi +11 -0
  91. data/lib/kintsugi_sdk/models/shared/converted_taxable_amount.rb +27 -0
  92. data/lib/kintsugi_sdk/models/shared/converted_taxable_amount.rbi +11 -0
  93. data/lib/kintsugi_sdk/models/shared/converted_total_amount.rb +27 -0
  94. data/lib/kintsugi_sdk/models/shared/converted_total_amount.rbi +11 -0
  95. data/lib/kintsugi_sdk/models/shared/converted_total_discount.rb +27 -0
  96. data/lib/kintsugi_sdk/models/shared/converted_total_discount.rbi +11 -0
  97. data/lib/kintsugi_sdk/models/shared/converted_total_tax_amount_calculated.rb +27 -0
  98. data/lib/kintsugi_sdk/models/shared/converted_total_tax_amount_calculated.rbi +11 -0
  99. data/lib/kintsugi_sdk/models/shared/converted_total_tax_amount_imported.rb +27 -0
  100. data/lib/kintsugi_sdk/models/shared/converted_total_tax_amount_imported.rbi +11 -0
  101. data/lib/kintsugi_sdk/models/shared/converted_total_tax_liability_amount.rb +27 -0
  102. data/lib/kintsugi_sdk/models/shared/converted_total_tax_liability_amount.rbi +11 -0
  103. data/lib/kintsugi_sdk/models/shared/customer.rb +27 -0
  104. data/lib/kintsugi_sdk/models/shared/customer.rbi +11 -0
  105. data/lib/kintsugi_sdk/models/shared/customerbase.rb +16 -12
  106. data/lib/kintsugi_sdk/models/shared/customerbase.rbi +6 -4
  107. data/lib/kintsugi_sdk/models/shared/customerbasebase.rb +16 -12
  108. data/lib/kintsugi_sdk/models/shared/customerbasebase.rbi +6 -4
  109. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rb +16 -12
  110. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rbi +6 -4
  111. data/lib/kintsugi_sdk/models/shared/customercreate.rb +20 -16
  112. data/lib/kintsugi_sdk/models/shared/customercreate.rbi +8 -6
  113. data/lib/kintsugi_sdk/models/shared/customerread.rb +24 -16
  114. data/lib/kintsugi_sdk/models/shared/customerread.rbi +10 -6
  115. data/lib/kintsugi_sdk/models/shared/customerupdate.rb +13 -9
  116. data/lib/kintsugi_sdk/models/shared/customerupdate.rbi +4 -2
  117. data/lib/kintsugi_sdk/models/shared/discount_amount.rb +27 -0
  118. data/lib/kintsugi_sdk/models/shared/discount_amount.rbi +11 -0
  119. data/lib/kintsugi_sdk/models/shared/discountbuilder.rb +6 -6
  120. data/lib/kintsugi_sdk/models/shared/discountbuilder.rbi +2 -2
  121. data/lib/kintsugi_sdk/models/shared/disregardedtypeenum.rb +20 -0
  122. data/lib/kintsugi_sdk/models/shared/disregardedtypeenum.rbi +11 -0
  123. data/lib/kintsugi_sdk/models/shared/documenttypeenum.rb +21 -0
  124. data/lib/kintsugi_sdk/models/shared/documenttypeenum.rbi +11 -0
  125. data/lib/kintsugi_sdk/models/shared/exemption.rb +23 -14
  126. data/lib/kintsugi_sdk/models/shared/exemption.rbi +8 -4
  127. data/lib/kintsugi_sdk/models/shared/exemptioncreate.rb +3 -3
  128. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rb +22 -2
  129. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rbi +10 -0
  130. data/lib/kintsugi_sdk/models/shared/exemptionsourceenum.rb +42 -0
  131. data/lib/kintsugi_sdk/models/shared/exemptionsourceenum.rbi +11 -0
  132. data/lib/kintsugi_sdk/models/shared/exemptiontype.rb +1 -0
  133. data/lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rb +2 -2
  134. data/lib/kintsugi_sdk/models/shared/loc.rb +27 -0
  135. data/lib/kintsugi_sdk/models/shared/loc.rbi +11 -0
  136. data/lib/kintsugi_sdk/models/shared/nexusresponse.rb +112 -82
  137. data/lib/kintsugi_sdk/models/shared/nexusresponse.rbi +52 -40
  138. data/lib/kintsugi_sdk/models/shared/nexustypeenum.rb +1 -0
  139. data/lib/kintsugi_sdk/models/shared/periodmodelenum.rb +2 -0
  140. data/lib/kintsugi_sdk/models/shared/processingstatusenum.rb +1 -0
  141. data/lib/kintsugi_sdk/models/shared/productread.rb +40 -12
  142. data/lib/kintsugi_sdk/models/shared/productread.rbi +18 -4
  143. data/lib/kintsugi_sdk/models/shared/productstatusenum.rb +1 -0
  144. data/lib/kintsugi_sdk/models/shared/productupdate.rb +6 -6
  145. data/lib/kintsugi_sdk/models/shared/productupdate.rbi +2 -2
  146. data/lib/kintsugi_sdk/models/shared/productupdatev2.rb +64 -0
  147. data/lib/kintsugi_sdk/models/shared/productupdatev2.rbi +29 -0
  148. data/lib/kintsugi_sdk/models/shared/quantity.rb +27 -0
  149. data/lib/kintsugi_sdk/models/shared/quantity.rbi +11 -0
  150. data/lib/kintsugi_sdk/models/shared/quantity_of_the_product_.rb +27 -0
  151. data/lib/kintsugi_sdk/models/shared/quantity_of_the_product_.rbi +11 -0
  152. data/lib/kintsugi_sdk/models/shared/rate.rb +27 -0
  153. data/lib/kintsugi_sdk/models/shared/rate.rbi +11 -0
  154. data/lib/kintsugi_sdk/models/shared/security.rb +3 -7
  155. data/lib/kintsugi_sdk/models/shared/security.rbi +0 -2
  156. data/lib/kintsugi_sdk/models/shared/sourceenum.rb +15 -0
  157. data/lib/kintsugi_sdk/models/shared/tax_amount_calculated.rb +27 -0
  158. data/lib/kintsugi_sdk/models/shared/tax_amount_calculated.rbi +11 -0
  159. data/lib/kintsugi_sdk/models/shared/tax_amount_imported.rb +27 -0
  160. data/lib/kintsugi_sdk/models/shared/tax_amount_imported.rbi +11 -0
  161. data/lib/kintsugi_sdk/models/shared/tax_rate_calculated.rb +27 -0
  162. data/lib/kintsugi_sdk/models/shared/tax_rate_calculated.rbi +11 -0
  163. data/lib/kintsugi_sdk/models/shared/tax_rate_imported.rb +27 -0
  164. data/lib/kintsugi_sdk/models/shared/tax_rate_imported.rbi +11 -0
  165. data/lib/kintsugi_sdk/models/shared/taxable_amount.rb +27 -0
  166. data/lib/kintsugi_sdk/models/shared/taxable_amount.rbi +11 -0
  167. data/lib/kintsugi_sdk/models/shared/taxexemptionenum.rb +1 -0
  168. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rb +14 -14
  169. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rbi +4 -4
  170. data/lib/kintsugi_sdk/models/shared/taxitembuilder_amount.rb +27 -0
  171. data/lib/kintsugi_sdk/models/shared/taxitembuilder_amount.rbi +11 -0
  172. data/lib/kintsugi_sdk/models/shared/taxitembuilder_converted_amount.rb +27 -0
  173. data/lib/kintsugi_sdk/models/shared/taxitembuilder_converted_amount.rbi +11 -0
  174. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rb +10 -10
  175. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rbi +4 -4
  176. data/lib/kintsugi_sdk/models/shared/taxitemread.rb +10 -10
  177. data/lib/kintsugi_sdk/models/shared/taxitemread.rbi +4 -4
  178. data/lib/kintsugi_sdk/models/shared/taxitemreturnreasonenum.rb +1 -0
  179. data/lib/kintsugi_sdk/models/shared/taxtypeenum.rb +26 -0
  180. data/lib/kintsugi_sdk/models/shared/taxtypeenum.rbi +11 -0
  181. data/lib/kintsugi_sdk/models/shared/total_amount.rb +27 -0
  182. data/lib/kintsugi_sdk/models/shared/total_amount.rbi +11 -0
  183. data/lib/kintsugi_sdk/models/shared/total_amount_of_this_transaction_item_after_discounts_.rb +27 -0
  184. data/lib/kintsugi_sdk/models/shared/total_amount_of_this_transaction_item_after_discounts_.rbi +11 -0
  185. data/lib/kintsugi_sdk/models/shared/total_tax_amount_calculated.rb +27 -0
  186. data/lib/kintsugi_sdk/models/shared/total_tax_amount_calculated.rbi +11 -0
  187. data/lib/kintsugi_sdk/models/shared/total_tax_amount_imported.rb +27 -0
  188. data/lib/kintsugi_sdk/models/shared/total_tax_amount_imported.rbi +11 -0
  189. data/lib/kintsugi_sdk/models/shared/total_tax_liability_amount.rb +27 -0
  190. data/lib/kintsugi_sdk/models/shared/total_tax_liability_amount.rbi +11 -0
  191. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rb +11 -7
  192. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rbi +4 -2
  193. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rb +8 -4
  194. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rbi +2 -0
  195. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rb +11 -7
  196. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rbi +4 -2
  197. data/lib/kintsugi_sdk/models/shared/transactioncreate.rb +84 -78
  198. data/lib/kintsugi_sdk/models/shared/transactioncreate.rbi +34 -28
  199. data/lib/kintsugi_sdk/models/shared/transactiondirectionenum.rb +19 -0
  200. data/lib/kintsugi_sdk/models/shared/transactiondirectionenum.rbi +11 -0
  201. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rb +9 -7
  202. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rbi +2 -2
  203. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rb +10 -8
  204. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rbi +2 -2
  205. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rb +7 -3
  206. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rbi +2 -0
  207. data/lib/kintsugi_sdk/models/shared/transactionimportcustomer.rb +104 -0
  208. data/lib/kintsugi_sdk/models/shared/transactionimportcustomer.rbi +49 -0
  209. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rb +53 -53
  210. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rbi +20 -20
  211. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_amount.rb +27 -0
  212. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_amount.rbi +11 -0
  213. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_amount.rb +27 -0
  214. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_amount.rbi +11 -0
  215. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_subtotal.rb +27 -0
  216. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_subtotal.rbi +11 -0
  217. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_tax_amount_calculated.rb +27 -0
  218. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_tax_amount_calculated.rbi +11 -0
  219. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_tax_amount_imported.rb +27 -0
  220. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_tax_amount_imported.rbi +11 -0
  221. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_taxable_amount.rb +27 -0
  222. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_taxable_amount.rbi +11 -0
  223. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_total_discount.rb +27 -0
  224. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_converted_total_discount.rbi +11 -0
  225. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_quantity.rb +27 -0
  226. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_quantity.rbi +11 -0
  227. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_amount_calculated.rb +27 -0
  228. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_amount_calculated.rbi +11 -0
  229. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_amount_imported.rb +27 -0
  230. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_amount_imported.rbi +11 -0
  231. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_rate_calculated.rb +27 -0
  232. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_rate_calculated.rbi +11 -0
  233. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_rate_imported.rb +27 -0
  234. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_tax_rate_imported.rbi +11 -0
  235. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_taxable_amount.rb +27 -0
  236. data/lib/kintsugi_sdk/models/shared/transactionitembuilder_taxable_amount.rbi +11 -0
  237. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rb +53 -53
  238. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rbi +20 -20
  239. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_converted_subtotal.rb +27 -0
  240. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_converted_subtotal.rbi +11 -0
  241. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_converted_taxable_amount.rb +27 -0
  242. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_converted_taxable_amount.rbi +11 -0
  243. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_converted_total_discount.rb +27 -0
  244. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_converted_total_discount.rbi +11 -0
  245. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_tax_rate_calculated.rb +27 -0
  246. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_tax_rate_calculated.rbi +11 -0
  247. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_tax_rate_imported.rb +27 -0
  248. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_tax_rate_imported.rbi +11 -0
  249. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_taxable_amount.rb +27 -0
  250. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate_taxable_amount.rbi +11 -0
  251. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rb +17 -7
  252. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rbi +4 -2
  253. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rb +20 -10
  254. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rbi +6 -4
  255. data/lib/kintsugi_sdk/models/shared/transactionitemread.rb +51 -43
  256. data/lib/kintsugi_sdk/models/shared/transactionitemread.rbi +22 -18
  257. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rb +64 -62
  258. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rbi +28 -24
  259. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_tax_rate_calculated.rb +27 -0
  260. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_tax_rate_calculated.rbi +11 -0
  261. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_tax_rate_imported.rb +27 -0
  262. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_tax_rate_imported.rbi +11 -0
  263. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_taxable_amount.rb +27 -0
  264. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_taxable_amount.rbi +11 -0
  265. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_amount.rb +27 -0
  266. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_amount.rbi +11 -0
  267. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_tax_amount_calculated.rb +27 -0
  268. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_tax_amount_calculated.rbi +11 -0
  269. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_tax_amount_imported.rb +27 -0
  270. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_tax_amount_imported.rbi +11 -0
  271. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_tax_liability_amount.rb +27 -0
  272. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest_total_tax_liability_amount.rbi +11 -0
  273. data/lib/kintsugi_sdk/models/shared/transactionread.rb +89 -71
  274. data/lib/kintsugi_sdk/models/shared/transactionread.rbi +40 -28
  275. data/lib/kintsugi_sdk/models/shared/transactiontypeenum.rb +1 -0
  276. data/lib/kintsugi_sdk/models/shared/transactionupdate.rb +63 -61
  277. data/lib/kintsugi_sdk/models/shared/transactionupdate.rbi +28 -24
  278. data/lib/kintsugi_sdk/models/shared/transactionupdate_tax_rate_calculated.rb +27 -0
  279. data/lib/kintsugi_sdk/models/shared/transactionupdate_tax_rate_calculated.rbi +11 -0
  280. data/lib/kintsugi_sdk/models/shared/transactionupdate_tax_rate_imported.rb +27 -0
  281. data/lib/kintsugi_sdk/models/shared/transactionupdate_tax_rate_imported.rbi +11 -0
  282. data/lib/kintsugi_sdk/models/shared/transactionupdate_taxable_amount.rb +27 -0
  283. data/lib/kintsugi_sdk/models/shared/transactionupdate_taxable_amount.rbi +11 -0
  284. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_amount.rb +27 -0
  285. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_amount.rbi +11 -0
  286. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_tax_amount_calculated.rb +27 -0
  287. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_tax_amount_calculated.rbi +11 -0
  288. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_tax_amount_imported.rb +27 -0
  289. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_tax_amount_imported.rbi +11 -0
  290. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_tax_liability_amount.rb +27 -0
  291. data/lib/kintsugi_sdk/models/shared/transactionupdate_total_tax_liability_amount.rbi +11 -0
  292. data/lib/kintsugi_sdk/models/shared/validationaddress.rb +12 -12
  293. data/lib/kintsugi_sdk/models/shared/validationaddress.rbi +4 -4
  294. data/lib/kintsugi_sdk/models/shared/validationerror.rb +11 -3
  295. data/lib/kintsugi_sdk/models/shared/validationerror.rbi +4 -0
  296. data/lib/kintsugi_sdk/models/shared.rb +73 -5
  297. data/lib/kintsugi_sdk/nexus.rb +4 -4
  298. data/lib/kintsugi_sdk/openapisdk.rb +5 -5
  299. data/lib/kintsugi_sdk/products.rb +11 -9
  300. data/lib/kintsugi_sdk/sdkconfiguration.rb +8 -8
  301. data/lib/kintsugi_sdk/taxestimation.rb +6 -6
  302. data/lib/kintsugi_sdk/transactions.rb +73 -73
  303. data/lib/kintsugi_sdk/utils/retries.rb +41 -2
  304. data/lib/kintsugi_sdk/utils/utils.rb +6 -2
  305. data/lib/kintsugi_sdk.rb +1 -1
  306. metadata +170 -16
  307. data/lib/kintsugi_sdk/models/errors/backend_src_products_responses_validationerrorresponse.rbi +0 -13
  308. data/lib/kintsugi_sdk/models/ops/search_v1_address_validation_search_post_security.rbi +0 -13
  309. data/lib/kintsugi_sdk/models/shared/file.rb +0 -36
  310. data/lib/kintsugi_sdk/models/shared/file.rbi +0 -15
  311. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rb +0 -48
  312. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rbi +0 -21
@@ -43,13 +43,13 @@ module KintsugiSDK
43
43
 
44
44
  sig { params(request: Models::Ops::GetTransactionsV1TransactionsGetRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::PageTransactionRead) }
45
45
  def list(request:, timeout_ms: nil, http_headers: nil)
46
- # list - Get Transactions
46
+ # list - Get transactions
47
47
  # The Get Transactions API retrieves a list of transactions with
48
48
  # optional filtering, sorting, and pagination.
49
49
  url, params = @sdk_configuration.get_server_details
50
50
  base_url = Utils.template_url(url, params)
51
51
  url = "#{base_url}/v1/transactions"
52
- headers = {}
52
+ headers = Utils.get_headers(request)
53
53
  headers = T.cast(headers, T::Hash[String, String])
54
54
  query_params = Utils.get_query_params(Models::Ops::GetTransactionsV1TransactionsGetRequest, request, nil)
55
55
  headers['Accept'] = 'application/json'
@@ -187,16 +187,16 @@ module KintsugiSDK
187
187
  end
188
188
 
189
189
 
190
- sig { params(request: Models::Shared::TransactionPublicRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::TransactionRead) }
190
+ sig { params(request: Models::Ops::CreateTransactionV1TransactionsPostRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::TransactionRead) }
191
191
  def create(request:, timeout_ms: nil, http_headers: nil)
192
- # create - Create Transaction
193
- # Create a transaction.
192
+ # create - Create transaction
193
+ # Create a transaction. Set `marketplace: true` for reseller or marketplace orders where tax was remitted externally; gross sales still count toward nexus, but tax liability is excluded.
194
194
  url, params = @sdk_configuration.get_server_details
195
195
  base_url = Utils.template_url(url, params)
196
196
  url = "#{base_url}/v1/transactions"
197
- headers = {}
197
+ headers = Utils.get_headers(request)
198
198
  headers = T.cast(headers, T::Hash[String, String])
199
- req_content_type, data, form = Utils.serialize_request_body(request, false, false, :request, :json)
199
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :transaction_public_request, :json)
200
200
  headers['content-type'] = req_content_type
201
201
  raise StandardError, 'request body is required' if data.nil? && form.nil?
202
202
 
@@ -344,7 +344,7 @@ module KintsugiSDK
344
344
 
345
345
  sig { params(request: Models::Ops::GetTransactionByExternalIdRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::TransactionRead) }
346
346
  def get_by_external_id(request:, timeout_ms: nil, http_headers: nil)
347
- # get_by_external_id - Get Transaction By External Id
347
+ # get_by_external_id - Get transaction by external id
348
348
  # Retrieves a specific transaction based on its external ID.
349
349
  # This allows users to fetch transaction details using an identifier from an external system.
350
350
  url, params = @sdk_configuration.get_server_details
@@ -355,7 +355,7 @@ module KintsugiSDK
355
355
  '/v1/transactions/external/{external_id}',
356
356
  request
357
357
  )
358
- headers = {}
358
+ headers = Utils.get_headers(request)
359
359
  headers = T.cast(headers, T::Hash[String, String])
360
360
  headers['Accept'] = 'application/json'
361
361
  headers['user-agent'] = @sdk_configuration.user_agent
@@ -491,31 +491,20 @@ module KintsugiSDK
491
491
  end
492
492
 
493
493
 
494
- sig { params(request: Models::Ops::UpdateTransactionV1TransactionsTransactionIdPutRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::TransactionRead) }
495
- def update(request:, timeout_ms: nil, http_headers: nil)
496
- # update - Update Transaction
497
- # Update a specific transaction by its ID.
494
+ sig { params(request: Models::Ops::GetTransactionsByFilingRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(T::Array[Models::Shared::TransactionRead]) }
495
+ def get_by_filing_id(request:, timeout_ms: nil, http_headers: nil)
496
+ # get_by_filing_id - Get transactions by filing id
497
+ # Retrieve transactions by filing ID.
498
498
  url, params = @sdk_configuration.get_server_details
499
499
  base_url = Utils.template_url(url, params)
500
500
  url = Utils.generate_url(
501
- Models::Ops::UpdateTransactionV1TransactionsTransactionIdPutRequest,
501
+ Models::Ops::GetTransactionsByFilingRequest,
502
502
  base_url,
503
- '/v1/transactions/{transaction_id}',
503
+ '/v1/transactions/filings/{filing_id}',
504
504
  request
505
505
  )
506
- headers = {}
506
+ headers = Utils.get_headers(request)
507
507
  headers = T.cast(headers, T::Hash[String, String])
508
- req_content_type, data, form = Utils.serialize_request_body(request, false, false, :transaction_update, :json)
509
- headers['content-type'] = req_content_type
510
- raise StandardError, 'request body is required' if data.nil? && form.nil?
511
-
512
- if form && !form.empty?
513
- body = Utils.encode_form(form)
514
- elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
515
- body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
516
- else
517
- body = data
518
- end
519
508
  headers['Accept'] = 'application/json'
520
509
  headers['user-agent'] = @sdk_configuration.user_agent
521
510
 
@@ -531,7 +520,7 @@ module KintsugiSDK
531
520
  config: @sdk_configuration,
532
521
  base_url: base_url,
533
522
  oauth2_scopes: nil,
534
- operation_id: 'update_transaction_v1_transactions__transaction_id__put',
523
+ operation_id: 'getTransactionsByFiling',
535
524
  security_source: @sdk_configuration.security_source
536
525
  )
537
526
 
@@ -540,8 +529,7 @@ module KintsugiSDK
540
529
 
541
530
 
542
531
  begin
543
- http_response = T.must(connection).put(url) do |req|
544
- req.body = body
532
+ http_response = T.must(connection).get(url) do |req|
545
533
  req.headers.merge!(headers)
546
534
  req.options.timeout = timeout unless timeout.nil?
547
535
  Utils.configure_request_security(req, security)
@@ -592,12 +580,26 @@ module KintsugiSDK
592
580
  response: http_response
593
581
  )
594
582
  response_data = http_response.env.response_body
595
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::TransactionRead)
583
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Shared::TransactionRead))
596
584
 
597
585
  return obj
598
586
  else
599
587
  raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
600
588
  end
589
+ elsif Utils.match_status_code(http_response.status, ['401'])
590
+ if Utils.match_content_type(content_type, 'application/json')
591
+ @sdk_configuration.hooks.after_success(
592
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
593
+ hook_ctx: hook_ctx
594
+ ),
595
+ response: http_response
596
+ )
597
+ response_data = http_response.env.response_body
598
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ErrorResponse)
599
+ raise obj
600
+ else
601
+ raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
602
+ end
601
603
  elsif Utils.match_status_code(http_response.status, ['422'])
602
604
  if Utils.match_content_type(content_type, 'application/json')
603
605
  @sdk_configuration.hooks.after_success(
@@ -607,7 +609,21 @@ module KintsugiSDK
607
609
  response: http_response
608
610
  )
609
611
  response_data = http_response.env.response_body
610
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::HTTPValidationError)
612
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BackendSrcTransactionsResponsesValidationErrorResponse)
613
+ raise obj
614
+ else
615
+ raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
616
+ end
617
+ elsif Utils.match_status_code(http_response.status, ['500'])
618
+ if Utils.match_content_type(content_type, 'application/json')
619
+ @sdk_configuration.hooks.after_success(
620
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
621
+ hook_ctx: hook_ctx
622
+ ),
623
+ response: http_response
624
+ )
625
+ response_data = http_response.env.response_body
626
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ErrorResponse)
611
627
  raise obj
612
628
  else
613
629
  raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
@@ -625,7 +641,7 @@ module KintsugiSDK
625
641
 
626
642
  sig { params(request: Models::Ops::GetTransactionByIdV1TransactionsTransactionIdGetRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::TransactionRead) }
627
643
  def get_by_id(request:, timeout_ms: nil, http_headers: nil)
628
- # get_by_id - Get Transaction By Id
644
+ # get_by_id - Get transaction by id
629
645
  # The Get Transaction By Id API retrieves detailed information
630
646
  # about a specific transaction by providing its unique transaction ID.
631
647
  url, params = @sdk_configuration.get_server_details
@@ -636,7 +652,7 @@ module KintsugiSDK
636
652
  '/v1/transactions/{transaction_id}',
637
653
  request
638
654
  )
639
- headers = {}
655
+ headers = Utils.get_headers(request)
640
656
  headers = T.cast(headers, T::Hash[String, String])
641
657
  headers['Accept'] = 'application/json'
642
658
  headers['user-agent'] = @sdk_configuration.user_agent
@@ -772,20 +788,31 @@ module KintsugiSDK
772
788
  end
773
789
 
774
790
 
775
- sig { params(request: Models::Ops::GetTransactionsByFilingRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(T::Array[Models::Shared::TransactionRead]) }
776
- def get_by_filing_id(request:, timeout_ms: nil, http_headers: nil)
777
- # get_by_filing_id - Get Transactions By Filing Id
778
- # Retrieve transactions by filing ID.
791
+ sig { params(request: Models::Ops::UpdateTransactionV1TransactionsTransactionIdPutRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::TransactionRead) }
792
+ def update(request:, timeout_ms: nil, http_headers: nil)
793
+ # update - Update transaction
794
+ # Update a specific transaction by its ID.
779
795
  url, params = @sdk_configuration.get_server_details
780
796
  base_url = Utils.template_url(url, params)
781
797
  url = Utils.generate_url(
782
- Models::Ops::GetTransactionsByFilingRequest,
798
+ Models::Ops::UpdateTransactionV1TransactionsTransactionIdPutRequest,
783
799
  base_url,
784
- '/v1/transactions/filings/{filing_id}',
800
+ '/v1/transactions/{transaction_id}',
785
801
  request
786
802
  )
787
- headers = {}
803
+ headers = Utils.get_headers(request)
788
804
  headers = T.cast(headers, T::Hash[String, String])
805
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :transaction_update, :json)
806
+ headers['content-type'] = req_content_type
807
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
808
+
809
+ if form && !form.empty?
810
+ body = Utils.encode_form(form)
811
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
812
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
813
+ else
814
+ body = data
815
+ end
789
816
  headers['Accept'] = 'application/json'
790
817
  headers['user-agent'] = @sdk_configuration.user_agent
791
818
 
@@ -801,7 +828,7 @@ module KintsugiSDK
801
828
  config: @sdk_configuration,
802
829
  base_url: base_url,
803
830
  oauth2_scopes: nil,
804
- operation_id: 'getTransactionsByFiling',
831
+ operation_id: 'update_transaction_v1_transactions__transaction_id__put',
805
832
  security_source: @sdk_configuration.security_source
806
833
  )
807
834
 
@@ -810,7 +837,8 @@ module KintsugiSDK
810
837
 
811
838
 
812
839
  begin
813
- http_response = T.must(connection).get(url) do |req|
840
+ http_response = T.must(connection).put(url) do |req|
841
+ req.body = body
814
842
  req.headers.merge!(headers)
815
843
  req.options.timeout = timeout unless timeout.nil?
816
844
  Utils.configure_request_security(req, security)
@@ -861,26 +889,12 @@ module KintsugiSDK
861
889
  response: http_response
862
890
  )
863
891
  response_data = http_response.env.response_body
864
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Crystalline::Array.new(Models::Shared::TransactionRead))
892
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::TransactionRead)
865
893
 
866
894
  return obj
867
895
  else
868
896
  raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
869
897
  end
870
- elsif Utils.match_status_code(http_response.status, ['401'])
871
- if Utils.match_content_type(content_type, 'application/json')
872
- @sdk_configuration.hooks.after_success(
873
- hook_ctx: SDKHooks::AfterSuccessHookContext.new(
874
- hook_ctx: hook_ctx
875
- ),
876
- response: http_response
877
- )
878
- response_data = http_response.env.response_body
879
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ErrorResponse)
880
- raise obj
881
- else
882
- raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
883
- end
884
898
  elsif Utils.match_status_code(http_response.status, ['422'])
885
899
  if Utils.match_content_type(content_type, 'application/json')
886
900
  @sdk_configuration.hooks.after_success(
@@ -890,21 +904,7 @@ module KintsugiSDK
890
904
  response: http_response
891
905
  )
892
906
  response_data = http_response.env.response_body
893
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BackendSrcTransactionsResponsesValidationErrorResponse)
894
- raise obj
895
- else
896
- raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
897
- end
898
- elsif Utils.match_status_code(http_response.status, ['500'])
899
- if Utils.match_content_type(content_type, 'application/json')
900
- @sdk_configuration.hooks.after_success(
901
- hook_ctx: SDKHooks::AfterSuccessHookContext.new(
902
- hook_ctx: hook_ctx
903
- ),
904
- response: http_response
905
- )
906
- response_data = http_response.env.response_body
907
- obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ErrorResponse)
907
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::HTTPValidationError)
908
908
  raise obj
909
909
  else
910
910
  raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
@@ -4,6 +4,7 @@
4
4
  # frozen_string_literal: true
5
5
 
6
6
  require 'faraday/retry'
7
+ require 'time'
7
8
  require 'sorbet-runtime'
8
9
 
9
10
  module KintsugiSDK
@@ -87,12 +88,50 @@ module KintsugiSDK
87
88
  retry_options[:retry_if] = ->(_env, _exc) { Time.now < stop_time }
88
89
  end
89
90
 
90
- retry_options[:rate_limit_retry_header] = 'retry-after-ms'
91
- retry_options[:header_parser_block] = ->(value) { value.to_f / 1000 }
92
91
  end
93
92
 
94
93
  retry_options
95
94
  end
96
95
  end
96
+
97
+ class RetryMiddleware < Faraday::Retry::Middleware
98
+ extend T::Sig
99
+
100
+ sig { params(retries: T.untyped, env: T.untyped).returns(T.untyped) }
101
+ def calculate_sleep_amount(retries, env)
102
+ retry_after = [calculate_retry_after(env), calculate_rate_limit_reset(env)].compact.max
103
+ retry_interval = calculate_retry_interval(retries)
104
+ return retry_interval if retry_after.nil?
105
+
106
+ # unlike the stock middleware, cap server delays at max_interval rather
107
+ # than abandoning the retry
108
+ [[retry_after, @options.max_interval].min, retry_interval].max
109
+ end
110
+
111
+ private
112
+
113
+ sig { params(env: T.untyped).returns(T.untyped) }
114
+ def calculate_retry_after(env)
115
+ response_headers = env[:response_headers]
116
+ return unless response_headers
117
+
118
+ ms_value = response_headers['retry-after-ms']
119
+ return ms_value.to_f / 1000 if ms_value&.match?(/\A\s*\d+\s*\z/)
120
+
121
+ value = response_headers['retry-after']
122
+ return if value.nil? || value.strip.empty?
123
+ return value.to_f if value.match?(/\A\s*\d+\s*\z/)
124
+
125
+ begin
126
+ Time.httpdate(value) - Time.now
127
+ rescue ArgumentError
128
+ begin
129
+ Time.iso8601(value) - Time.now
130
+ rescue ArgumentError
131
+ nil
132
+ end
133
+ end
134
+ end
135
+ end
97
136
  end
98
137
  end
@@ -81,11 +81,15 @@ module KintsugiSDK
81
81
 
82
82
  sig { params(content_type: String, pattern: String).returns(T::Boolean) }
83
83
  def self.match_content_type(content_type, pattern)
84
- return true if content_type == pattern || ['*', '*/*'].include?(pattern)
84
+ return true if ['*', '*/*'].include?(pattern)
85
+
86
+ # Media types are case-insensitive (RFC 9110 section 8.3.1).
87
+ pattern = pattern.strip.downcase
88
+ return true if content_type.strip.downcase == pattern
85
89
 
86
90
  pieces = content_type.split(';')
87
91
  pieces.each do |piece|
88
- return true if pattern == piece.strip
92
+ return true if pattern == piece.strip.downcase
89
93
  end
90
94
 
91
95
  false
data/lib/kintsugi_sdk.rb CHANGED
@@ -10,8 +10,8 @@ module KintsugiSDK
10
10
  autoload :Exemptions, 'kintsugi_sdk/exemptions'
11
11
  autoload :Nexus, 'kintsugi_sdk/nexus'
12
12
  autoload :Products, 'kintsugi_sdk/products'
13
- autoload :Transactions, 'kintsugi_sdk/transactions'
14
13
  autoload :TaxEstimation, 'kintsugi_sdk/taxestimation'
14
+ autoload :Transactions, 'kintsugi_sdk/transactions'
15
15
  module Models
16
16
  autoload :Shared, 'kintsugi_sdk/models/shared'
17
17
  autoload :Ops, 'kintsugi_sdk/models/ops'