kintsugi_sdk 5.5.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 (278) hide show
  1. checksums.yaml +7 -0
  2. data/lib/crystalline/metadata_fields.rb +209 -0
  3. data/lib/crystalline/module.rb +92 -0
  4. data/lib/crystalline/types.rb +78 -0
  5. data/lib/crystalline/utils.rb +56 -0
  6. data/lib/crystalline.rb +13 -0
  7. data/lib/kintsugi_sdk/addressvalidation.rb +350 -0
  8. data/lib/kintsugi_sdk/customers.rb +981 -0
  9. data/lib/kintsugi_sdk/exemptions.rb +779 -0
  10. data/lib/kintsugi_sdk/models/callbacks.rb +12 -0
  11. data/lib/kintsugi_sdk/models/errors/apierror.rb +37 -0
  12. data/lib/kintsugi_sdk/models/errors/apierror.rbi +16 -0
  13. data/lib/kintsugi_sdk/models/errors/backend_src_address_validation_responses_validationerrorresponse.rb +33 -0
  14. data/lib/kintsugi_sdk/models/errors/backend_src_address_validation_responses_validationerrorresponse.rbi +13 -0
  15. data/lib/kintsugi_sdk/models/errors/backend_src_customers_responses_validationerrorresponse.rb +33 -0
  16. data/lib/kintsugi_sdk/models/errors/backend_src_customers_responses_validationerrorresponse.rbi +13 -0
  17. data/lib/kintsugi_sdk/models/errors/backend_src_exemptions_responses_validationerrorresponse.rb +33 -0
  18. data/lib/kintsugi_sdk/models/errors/backend_src_exemptions_responses_validationerrorresponse.rbi +13 -0
  19. data/lib/kintsugi_sdk/models/errors/backend_src_products_responses_validationerrorresponse.rb +33 -0
  20. data/lib/kintsugi_sdk/models/errors/backend_src_products_responses_validationerrorresponse.rbi +13 -0
  21. data/lib/kintsugi_sdk/models/errors/backend_src_tax_estimation_responses_validationerrorresponse.rb +33 -0
  22. data/lib/kintsugi_sdk/models/errors/backend_src_tax_estimation_responses_validationerrorresponse.rbi +13 -0
  23. data/lib/kintsugi_sdk/models/errors/backend_src_transactions_responses_validationerrorresponse.rb +33 -0
  24. data/lib/kintsugi_sdk/models/errors/backend_src_transactions_responses_validationerrorresponse.rbi +13 -0
  25. data/lib/kintsugi_sdk/models/errors/errorresponse.rb +33 -0
  26. data/lib/kintsugi_sdk/models/errors/errorresponse.rbi +13 -0
  27. data/lib/kintsugi_sdk/models/errors/httpvalidationerror.rb +33 -0
  28. data/lib/kintsugi_sdk/models/errors/httpvalidationerror.rbi +13 -0
  29. data/lib/kintsugi_sdk/models/errors.rb +20 -0
  30. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rb +37 -0
  31. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rbi +15 -0
  32. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rb +39 -0
  33. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rbi +15 -0
  34. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rb +33 -0
  35. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rbi +13 -0
  36. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rb +33 -0
  37. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rbi +13 -0
  38. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rb +57 -0
  39. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rbi +25 -0
  40. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rb +33 -0
  41. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rbi +13 -0
  42. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rb +73 -0
  43. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rbi +33 -0
  44. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rb +57 -0
  45. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rbi +25 -0
  46. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rb +33 -0
  47. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rbi +13 -0
  48. data/lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rb +61 -0
  49. data/lib/kintsugi_sdk/models/ops/get_products_v1_products_get_request.rbi +27 -0
  50. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rb +33 -0
  51. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rbi +13 -0
  52. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rb +107 -0
  53. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rbi +45 -0
  54. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rb +34 -0
  55. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rbi +13 -0
  56. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rb +33 -0
  57. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rbi +13 -0
  58. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rb +33 -0
  59. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rbi +13 -0
  60. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rb +35 -0
  61. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rbi +13 -0
  62. data/lib/kintsugi_sdk/models/ops/search_v1_address_validation_search_post_security.rb +33 -0
  63. data/lib/kintsugi_sdk/models/ops/search_v1_address_validation_search_post_security.rbi +13 -0
  64. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rb +37 -0
  65. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rbi +15 -0
  66. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rb +37 -0
  67. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rbi +15 -0
  68. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rb +37 -0
  69. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rbi +15 -0
  70. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rb +37 -0
  71. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rbi +15 -0
  72. data/lib/kintsugi_sdk/models/ops.rb +32 -0
  73. data/lib/kintsugi_sdk/models/shared/addressbase.rb +65 -0
  74. data/lib/kintsugi_sdk/models/shared/addressbase.rbi +29 -0
  75. data/lib/kintsugi_sdk/models/shared/addresses.rb +76 -0
  76. data/lib/kintsugi_sdk/models/shared/addresses.rbi +33 -0
  77. data/lib/kintsugi_sdk/models/shared/addressresponsedata.rb +61 -0
  78. data/lib/kintsugi_sdk/models/shared/addressresponsedata.rbi +27 -0
  79. data/lib/kintsugi_sdk/models/shared/addresssearchresponse.rb +45 -0
  80. data/lib/kintsugi_sdk/models/shared/addresssearchresponse.rbi +19 -0
  81. data/lib/kintsugi_sdk/models/shared/addressstatus.rb +26 -0
  82. data/lib/kintsugi_sdk/models/shared/addressstatus.rbi +11 -0
  83. data/lib/kintsugi_sdk/models/shared/addresssubmittedresponse.rb +61 -0
  84. data/lib/kintsugi_sdk/models/shared/addresssubmittedresponse.rbi +27 -0
  85. data/lib/kintsugi_sdk/models/shared/addresstype.rb +24 -0
  86. data/lib/kintsugi_sdk/models/shared/addresstype.rbi +11 -0
  87. data/lib/kintsugi_sdk/models/shared/appliedto.rb +22 -0
  88. data/lib/kintsugi_sdk/models/shared/appliedto.rbi +11 -0
  89. data/lib/kintsugi_sdk/models/shared/attachmentread.rb +42 -0
  90. data/lib/kintsugi_sdk/models/shared/attachmentread.rbi +17 -0
  91. data/lib/kintsugi_sdk/models/shared/backend_src_address_validation_responses_validationerroritem.rb +49 -0
  92. data/lib/kintsugi_sdk/models/shared/backend_src_address_validation_responses_validationerroritem.rbi +21 -0
  93. data/lib/kintsugi_sdk/models/shared/backend_src_customers_responses_validationerroritem.rb +49 -0
  94. data/lib/kintsugi_sdk/models/shared/backend_src_customers_responses_validationerroritem.rbi +21 -0
  95. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_models_exemptionread.rb +87 -0
  96. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_models_exemptionread.rbi +39 -0
  97. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_responses_validationerroritem.rb +50 -0
  98. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_responses_validationerroritem.rbi +21 -0
  99. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rb +81 -0
  100. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rbi +37 -0
  101. data/lib/kintsugi_sdk/models/shared/backend_src_products_responses_validationerroritem.rb +50 -0
  102. data/lib/kintsugi_sdk/models/shared/backend_src_products_responses_validationerroritem.rbi +21 -0
  103. data/lib/kintsugi_sdk/models/shared/backend_src_tax_estimation_responses_validationerroritem.rb +49 -0
  104. data/lib/kintsugi_sdk/models/shared/backend_src_tax_estimation_responses_validationerroritem.rbi +21 -0
  105. data/lib/kintsugi_sdk/models/shared/backend_src_transactions_responses_validationerroritem.rb +50 -0
  106. data/lib/kintsugi_sdk/models/shared/backend_src_transactions_responses_validationerroritem.rbi +21 -0
  107. data/lib/kintsugi_sdk/models/shared/body_upload_exemption_certificate_v1_exemptions_exemption_id_attachments_post.rb +33 -0
  108. data/lib/kintsugi_sdk/models/shared/body_upload_exemption_certificate_v1_exemptions_exemption_id_attachments_post.rbi +13 -0
  109. data/lib/kintsugi_sdk/models/shared/countrycodeenum.rb +270 -0
  110. data/lib/kintsugi_sdk/models/shared/countrycodeenum.rbi +11 -0
  111. data/lib/kintsugi_sdk/models/shared/currencyenum.rb +182 -0
  112. data/lib/kintsugi_sdk/models/shared/currencyenum.rbi +11 -0
  113. data/lib/kintsugi_sdk/models/shared/customerbase.rb +97 -0
  114. data/lib/kintsugi_sdk/models/shared/customerbase.rbi +45 -0
  115. data/lib/kintsugi_sdk/models/shared/customerbasebase.rb +109 -0
  116. data/lib/kintsugi_sdk/models/shared/customerbasebase.rbi +51 -0
  117. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rb +97 -0
  118. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rbi +45 -0
  119. data/lib/kintsugi_sdk/models/shared/customercreate.rb +97 -0
  120. data/lib/kintsugi_sdk/models/shared/customercreate.rbi +45 -0
  121. data/lib/kintsugi_sdk/models/shared/customerread.rb +105 -0
  122. data/lib/kintsugi_sdk/models/shared/customerread.rbi +49 -0
  123. data/lib/kintsugi_sdk/models/shared/customerupdate.rb +89 -0
  124. data/lib/kintsugi_sdk/models/shared/customerupdate.rbi +41 -0
  125. data/lib/kintsugi_sdk/models/shared/discountbuilder.rb +41 -0
  126. data/lib/kintsugi_sdk/models/shared/discountbuilder.rbi +17 -0
  127. data/lib/kintsugi_sdk/models/shared/exemption.rb +91 -0
  128. data/lib/kintsugi_sdk/models/shared/exemption.rbi +41 -0
  129. data/lib/kintsugi_sdk/models/shared/exemptioncreate.rb +73 -0
  130. data/lib/kintsugi_sdk/models/shared/exemptioncreate.rbi +33 -0
  131. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rb +57 -0
  132. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rbi +25 -0
  133. data/lib/kintsugi_sdk/models/shared/exemptionstatus.rb +25 -0
  134. data/lib/kintsugi_sdk/models/shared/exemptionstatus.rbi +11 -0
  135. data/lib/kintsugi_sdk/models/shared/exemptiontype.rb +23 -0
  136. data/lib/kintsugi_sdk/models/shared/exemptiontype.rbi +11 -0
  137. data/lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rb +49 -0
  138. data/lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rbi +21 -0
  139. data/lib/kintsugi_sdk/models/shared/file.rb +37 -0
  140. data/lib/kintsugi_sdk/models/shared/file.rbi +15 -0
  141. data/lib/kintsugi_sdk/models/shared/jurisdictiontype.rb +28 -0
  142. data/lib/kintsugi_sdk/models/shared/jurisdictiontype.rbi +11 -0
  143. data/lib/kintsugi_sdk/models/shared/nexusresponse.rb +253 -0
  144. data/lib/kintsugi_sdk/models/shared/nexusresponse.rbi +121 -0
  145. data/lib/kintsugi_sdk/models/shared/nexusstateenum.rb +27 -0
  146. data/lib/kintsugi_sdk/models/shared/nexusstateenum.rbi +11 -0
  147. data/lib/kintsugi_sdk/models/shared/nexusstatusenum.rb +23 -0
  148. data/lib/kintsugi_sdk/models/shared/nexusstatusenum.rbi +11 -0
  149. data/lib/kintsugi_sdk/models/shared/nexustypeenum.rb +24 -0
  150. data/lib/kintsugi_sdk/models/shared/nexustypeenum.rbi +11 -0
  151. data/lib/kintsugi_sdk/models/shared/page_customerread_.rb +49 -0
  152. data/lib/kintsugi_sdk/models/shared/page_customerread_.rbi +21 -0
  153. data/lib/kintsugi_sdk/models/shared/page_nexusresponse_.rb +49 -0
  154. data/lib/kintsugi_sdk/models/shared/page_nexusresponse_.rbi +21 -0
  155. data/lib/kintsugi_sdk/models/shared/page_productread_.rb +49 -0
  156. data/lib/kintsugi_sdk/models/shared/page_productread_.rbi +21 -0
  157. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rb +49 -0
  158. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rbi +21 -0
  159. data/lib/kintsugi_sdk/models/shared/page_transactionread_.rb +49 -0
  160. data/lib/kintsugi_sdk/models/shared/page_transactionread_.rbi +21 -0
  161. data/lib/kintsugi_sdk/models/shared/periodmodelenum.rb +29 -0
  162. data/lib/kintsugi_sdk/models/shared/periodmodelenum.rbi +11 -0
  163. data/lib/kintsugi_sdk/models/shared/processingstatusenum.rb +34 -0
  164. data/lib/kintsugi_sdk/models/shared/processingstatusenum.rbi +11 -0
  165. data/lib/kintsugi_sdk/models/shared/productcategories.rb +38 -0
  166. data/lib/kintsugi_sdk/models/shared/productcategories.rbi +15 -0
  167. data/lib/kintsugi_sdk/models/shared/productcategoryenum.rb +25 -0
  168. data/lib/kintsugi_sdk/models/shared/productcategoryenum.rbi +11 -0
  169. data/lib/kintsugi_sdk/models/shared/productcodeenum.rb +82 -0
  170. data/lib/kintsugi_sdk/models/shared/productcodeenum.rbi +11 -0
  171. data/lib/kintsugi_sdk/models/shared/productcreatemanual.rb +61 -0
  172. data/lib/kintsugi_sdk/models/shared/productcreatemanual.rbi +27 -0
  173. data/lib/kintsugi_sdk/models/shared/productread.rb +81 -0
  174. data/lib/kintsugi_sdk/models/shared/productread.rbi +37 -0
  175. data/lib/kintsugi_sdk/models/shared/productstatusenum.rb +23 -0
  176. data/lib/kintsugi_sdk/models/shared/productstatusenum.rbi +11 -0
  177. data/lib/kintsugi_sdk/models/shared/productsubcategory.rb +46 -0
  178. data/lib/kintsugi_sdk/models/shared/productsubcategory.rbi +19 -0
  179. data/lib/kintsugi_sdk/models/shared/productsubcategoryenum.rb +83 -0
  180. data/lib/kintsugi_sdk/models/shared/productsubcategoryenum.rbi +11 -0
  181. data/lib/kintsugi_sdk/models/shared/productupdate.rb +70 -0
  182. data/lib/kintsugi_sdk/models/shared/productupdate.rbi +31 -0
  183. data/lib/kintsugi_sdk/models/shared/registration.rb +28 -0
  184. data/lib/kintsugi_sdk/models/shared/registration.rbi +11 -0
  185. data/lib/kintsugi_sdk/models/shared/registrationsregimeenum.rb +22 -0
  186. data/lib/kintsugi_sdk/models/shared/registrationsregimeenum.rbi +11 -0
  187. data/lib/kintsugi_sdk/models/shared/relatedentitytype.rb +24 -0
  188. data/lib/kintsugi_sdk/models/shared/relatedentitytype.rbi +11 -0
  189. data/lib/kintsugi_sdk/models/shared/salesortransactionsenum.rb +24 -0
  190. data/lib/kintsugi_sdk/models/shared/salesortransactionsenum.rbi +11 -0
  191. data/lib/kintsugi_sdk/models/shared/security.rb +37 -0
  192. data/lib/kintsugi_sdk/models/shared/security.rbi +15 -0
  193. data/lib/kintsugi_sdk/models/shared/sourceenum.rb +70 -0
  194. data/lib/kintsugi_sdk/models/shared/sourceenum.rbi +11 -0
  195. data/lib/kintsugi_sdk/models/shared/statusenum.rb +22 -0
  196. data/lib/kintsugi_sdk/models/shared/statusenum.rbi +11 -0
  197. data/lib/kintsugi_sdk/models/shared/taxexemptionenum.rb +31 -0
  198. data/lib/kintsugi_sdk/models/shared/taxexemptionenum.rbi +11 -0
  199. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rb +77 -0
  200. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rbi +35 -0
  201. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rb +53 -0
  202. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rbi +23 -0
  203. data/lib/kintsugi_sdk/models/shared/taxitemread.rb +73 -0
  204. data/lib/kintsugi_sdk/models/shared/taxitemread.rbi +33 -0
  205. data/lib/kintsugi_sdk/models/shared/taxitemreturnreasonenum.rb +25 -0
  206. data/lib/kintsugi_sdk/models/shared/taxitemreturnreasonenum.rbi +11 -0
  207. data/lib/kintsugi_sdk/models/shared/taxitemtypeenum.rb +23 -0
  208. data/lib/kintsugi_sdk/models/shared/taxitemtypeenum.rbi +11 -0
  209. data/lib/kintsugi_sdk/models/shared/taxliabilitysourceenum.rb +22 -0
  210. data/lib/kintsugi_sdk/models/shared/taxliabilitysourceenum.rbi +11 -0
  211. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rb +81 -0
  212. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rbi +37 -0
  213. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rb +69 -0
  214. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rbi +31 -0
  215. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rb +85 -0
  216. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rbi +39 -0
  217. data/lib/kintsugi_sdk/models/shared/transactioncreate.rb +235 -0
  218. data/lib/kintsugi_sdk/models/shared/transactioncreate.rbi +111 -0
  219. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rb +70 -0
  220. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rbi +31 -0
  221. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rb +91 -0
  222. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rbi +41 -0
  223. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rb +80 -0
  224. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rbi +35 -0
  225. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_type.rb +23 -0
  226. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_type.rbi +11 -0
  227. data/lib/kintsugi_sdk/models/shared/transactionexemptstatusenum.rb +26 -0
  228. data/lib/kintsugi_sdk/models/shared/transactionexemptstatusenum.rbi +11 -0
  229. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rb +141 -0
  230. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rbi +67 -0
  231. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rb +141 -0
  232. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rbi +67 -0
  233. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rb +78 -0
  234. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rbi +35 -0
  235. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rb +98 -0
  236. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rbi +45 -0
  237. data/lib/kintsugi_sdk/models/shared/transactionitemread.rb +149 -0
  238. data/lib/kintsugi_sdk/models/shared/transactionitemread.rbi +71 -0
  239. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rb +194 -0
  240. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rbi +91 -0
  241. data/lib/kintsugi_sdk/models/shared/transactionread.rb +259 -0
  242. data/lib/kintsugi_sdk/models/shared/transactionread.rbi +123 -0
  243. data/lib/kintsugi_sdk/models/shared/transactionrefundstatus.rb +24 -0
  244. data/lib/kintsugi_sdk/models/shared/transactionrefundstatus.rbi +11 -0
  245. data/lib/kintsugi_sdk/models/shared/transactionstatusenum.rb +27 -0
  246. data/lib/kintsugi_sdk/models/shared/transactionstatusenum.rbi +11 -0
  247. data/lib/kintsugi_sdk/models/shared/transactiontypeenum.rb +25 -0
  248. data/lib/kintsugi_sdk/models/shared/transactiontypeenum.rbi +11 -0
  249. data/lib/kintsugi_sdk/models/shared/transactionupdate.rb +235 -0
  250. data/lib/kintsugi_sdk/models/shared/transactionupdate.rbi +111 -0
  251. data/lib/kintsugi_sdk/models/shared/treatmentenum.rb +25 -0
  252. data/lib/kintsugi_sdk/models/shared/treatmentenum.rbi +11 -0
  253. data/lib/kintsugi_sdk/models/shared/type.rb +23 -0
  254. data/lib/kintsugi_sdk/models/shared/type.rbi +11 -0
  255. data/lib/kintsugi_sdk/models/shared/validationaddress.rb +73 -0
  256. data/lib/kintsugi_sdk/models/shared/validationaddress.rbi +31 -0
  257. data/lib/kintsugi_sdk/models/shared/validationerror.rb +41 -0
  258. data/lib/kintsugi_sdk/models/shared/validationerror.rbi +17 -0
  259. data/lib/kintsugi_sdk/models/shared.rb +104 -0
  260. data/lib/kintsugi_sdk/nexus.rb +155 -0
  261. data/lib/kintsugi_sdk/openapisdk.rb +104 -0
  262. data/lib/kintsugi_sdk/products.rb +756 -0
  263. data/lib/kintsugi_sdk/sdk_hooks/hooks.rb +95 -0
  264. data/lib/kintsugi_sdk/sdk_hooks/types.rb +170 -0
  265. data/lib/kintsugi_sdk/sdkconfiguration.rb +104 -0
  266. data/lib/kintsugi_sdk/sdkconfiguration.rbi +57 -0
  267. data/lib/kintsugi_sdk/taxestimation.rb +197 -0
  268. data/lib/kintsugi_sdk/transactions.rb +902 -0
  269. data/lib/kintsugi_sdk/utils/forms.rb +206 -0
  270. data/lib/kintsugi_sdk/utils/headers.rb +77 -0
  271. data/lib/kintsugi_sdk/utils/query_params.rb +131 -0
  272. data/lib/kintsugi_sdk/utils/request_bodies.rb +61 -0
  273. data/lib/kintsugi_sdk/utils/retries.rb +95 -0
  274. data/lib/kintsugi_sdk/utils/security.rb +130 -0
  275. data/lib/kintsugi_sdk/utils/url.rb +100 -0
  276. data/lib/kintsugi_sdk/utils/utils.rb +187 -0
  277. data/lib/kintsugi_sdk.rb +31 -0
  278. metadata +492 -0
@@ -0,0 +1,95 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require_relative './types'
7
+
8
+
9
+ module KintsugiSDK
10
+ module SDKHooks
11
+ class Hooks
12
+ extend T::Sig
13
+
14
+ sig { void }
15
+ def initialize
16
+ @sdk_init_hooks = T.let([], T::Array[AbstractSDKHook])
17
+ @before_request_hooks = T.let([], T::Array[AbstractSDKHook])
18
+ @after_success_hooks = T.let([], T::Array[AbstractSDKHook])
19
+ @after_error_hooks = T.let([], T::Array[AbstractSDKHook])
20
+ end
21
+
22
+ sig { params(hook: AbstractSDKHook).void }
23
+ def register_sdk_init_hook(hook)
24
+ @sdk_init_hooks << hook
25
+ end
26
+
27
+ sig { params(hook: AbstractSDKHook).void }
28
+ def register_before_request_hook(hook)
29
+ @before_request_hooks << hook
30
+ end
31
+
32
+ sig { params(hook: AbstractSDKHook).void }
33
+ def register_after_success_hook(hook)
34
+ @after_success_hooks << hook
35
+ end
36
+
37
+ sig { params(hook: AbstractSDKHook).void }
38
+ def register_after_error_hook(hook)
39
+ @after_error_hooks << hook
40
+ end
41
+
42
+ sig { params(config: SDKConfiguration).returns(SDKConfiguration) }
43
+ def sdk_init(config:)
44
+ @sdk_init_hooks.each do |hook|
45
+ config = hook.sdk_init(config: config)
46
+ end
47
+
48
+ return config
49
+ end
50
+
51
+ sig do
52
+ params(
53
+ hook_ctx: BeforeRequestHookContext,
54
+ request: Faraday::Request
55
+ ).returns(Faraday::Request)
56
+ end
57
+ def before_request(hook_ctx:, request:)
58
+ @before_request_hooks.each do |hook|
59
+ request = hook.before_request(hook_ctx: hook_ctx, request: request)
60
+ end
61
+
62
+ request
63
+ end
64
+
65
+ sig do
66
+ params(
67
+ hook_ctx: AfterSuccessHookContext,
68
+ response: Faraday::Response
69
+ ).returns(Faraday::Response)
70
+ end
71
+ def after_success(hook_ctx:, response:)
72
+ @after_success_hooks.each do |hook|
73
+ response = hook.after_success(hook_ctx: hook_ctx, response: response)
74
+ end
75
+
76
+ response
77
+ end
78
+
79
+ sig do
80
+ params(
81
+ error: T.nilable(StandardError),
82
+ hook_ctx: AfterErrorHookContext,
83
+ response: T.nilable(Faraday::Response)
84
+ ).returns(T.nilable(Faraday::Response))
85
+ end
86
+ def after_error(error:, hook_ctx:, response:)
87
+ @after_error_hooks.each do |hook|
88
+ response = hook.after_error(error: error, hook_ctx: hook_ctx, response: response)
89
+ end
90
+
91
+ response
92
+ end
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,170 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require_relative '../sdkconfiguration'
7
+
8
+ module KintsugiSDK
9
+ module SDKHooks
10
+ class HookContext
11
+ extend T::Sig
12
+
13
+ sig { returns(SDKConfiguration) }
14
+ attr_accessor :config
15
+
16
+ sig { returns(String) }
17
+ attr_accessor :base_url
18
+
19
+ sig { returns(T.nilable(T::Array[String])) }
20
+ attr_accessor :oauth2_scopes
21
+
22
+ sig { returns(String) }
23
+ attr_accessor :operation_id
24
+
25
+ sig { returns(T.nilable(T.proc.returns(T.untyped))) }
26
+ attr_accessor :security_source
27
+
28
+ sig do
29
+ params(
30
+ config: SDKConfiguration,
31
+ base_url: String,
32
+ oauth2_scopes: T.nilable(T::Array[String]),
33
+ operation_id: String,
34
+ security_source: T.nilable(T.proc.returns(T.untyped))
35
+ ).void
36
+ end
37
+ def initialize(config:, base_url:, oauth2_scopes:, operation_id:, security_source:)
38
+ @config = T.let(config, SDKConfiguration)
39
+ @base_url = T.let(base_url, String)
40
+ @oauth2_scopes = T.let(oauth2_scopes, T.nilable(T::Array[String]))
41
+ @operation_id = T.let(operation_id, String)
42
+ @security_source = T.let(security_source, T.nilable(T.proc.returns(T.untyped)))
43
+ end
44
+ end
45
+
46
+ class BeforeRequestHookContext < HookContext
47
+ extend T::Sig
48
+
49
+ sig do
50
+ params(
51
+ hook_ctx: HookContext
52
+ ).void
53
+ end
54
+ def initialize(hook_ctx:)
55
+ super(
56
+ config: hook_ctx.config,
57
+ base_url: hook_ctx.base_url,
58
+ operation_id: hook_ctx.operation_id,
59
+ oauth2_scopes: hook_ctx.oauth2_scopes,
60
+ security_source: hook_ctx.security_source
61
+ )
62
+ end
63
+ end
64
+
65
+ class AfterSuccessHookContext < HookContext
66
+ extend T::Sig
67
+
68
+ sig do
69
+ params(
70
+ hook_ctx: HookContext
71
+ ).void
72
+ end
73
+ def initialize(hook_ctx:)
74
+ super(
75
+ config: hook_ctx.config,
76
+ base_url: hook_ctx.base_url,
77
+ operation_id: hook_ctx.operation_id,
78
+ oauth2_scopes: hook_ctx.oauth2_scopes,
79
+ security_source: hook_ctx.security_source
80
+ )
81
+ end
82
+ end
83
+
84
+ class AfterErrorHookContext < HookContext
85
+ extend T::Sig
86
+
87
+ sig do
88
+ params(
89
+ hook_ctx: HookContext
90
+ ).void
91
+ end
92
+ def initialize(hook_ctx:)
93
+ super(
94
+ config: hook_ctx.config,
95
+ base_url: hook_ctx.base_url,
96
+ operation_id: hook_ctx.operation_id,
97
+ oauth2_scopes: hook_ctx.oauth2_scopes,
98
+ security_source: hook_ctx.security_source
99
+ )
100
+ end
101
+ end
102
+
103
+ module AbstractSDKInitHook
104
+ extend T::Sig
105
+ extend T::Helpers
106
+ abstract!
107
+
108
+ sig { overridable.params(config: SDKConfiguration).returns(SDKConfiguration) }
109
+ def sdk_init(config:)
110
+ Kernel.raise NotImplementedError.new
111
+ end
112
+ end
113
+
114
+ module AbstractBeforeRequestHook
115
+ extend T::Sig
116
+ extend T::Helpers
117
+ abstract!
118
+
119
+ sig do
120
+ overridable.params(
121
+ hook_ctx: BeforeRequestHookContext,
122
+ request: Faraday::Request
123
+ ).returns(Faraday::Request)
124
+ end
125
+ def before_request(hook_ctx:, request:)
126
+ Kernel.raise NotImplementedError.new
127
+ end
128
+ end
129
+
130
+ module AbstractAfterSuccessHook
131
+ extend T::Sig
132
+ extend T::Helpers
133
+ abstract!
134
+
135
+ sig do
136
+ overridable.params(
137
+ hook_ctx: AfterSuccessHookContext,
138
+ response: Faraday::Response
139
+ ).returns(Faraday::Response)
140
+ end
141
+ def after_success(hook_ctx:, response:)
142
+ Kernel.raise NotImplementedError.new
143
+ end
144
+ end
145
+
146
+ module AbstractAfterErrorHook
147
+ extend T::Sig
148
+ extend T::Helpers
149
+ abstract!
150
+
151
+ sig do
152
+ overridable.params(
153
+ error: T.nilable(StandardError),
154
+ hook_ctx: AfterErrorHookContext,
155
+ response: T.nilable(Faraday::Response)
156
+ ).returns(T.nilable(Faraday::Response))
157
+ end
158
+ def after_error(error:, hook_ctx:, response:)
159
+ Kernel.raise NotImplementedError.new
160
+ end
161
+ end
162
+
163
+ class AbstractSDKHook
164
+ include AbstractSDKInitHook
165
+ include AbstractBeforeRequestHook
166
+ include AbstractAfterSuccessHook
167
+ include AbstractAfterErrorHook
168
+ end
169
+ end
170
+ end
@@ -0,0 +1,104 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'faraday/retry'
9
+ require 'sorbet-runtime'
10
+ require_relative 'sdk_hooks/hooks'
11
+ require_relative 'utils/retries'
12
+
13
+ module KintsugiSDK
14
+ extend T::Sig
15
+
16
+ SERVERS = [
17
+ 'https://api.trykintsugi.com', # 1 - Production API server URL
18
+ ].freeze
19
+ SERVERS = T.let(SERVERS, T::Array[String])
20
+ # Contains the list of servers available to the SDK
21
+
22
+ class SDKConfiguration
23
+ extend T::Sig
24
+
25
+ sig { returns(T.nilable(Faraday::Connection)) }
26
+ attr_accessor :client
27
+
28
+ sig { returns(::KintsugiSDK::SDKHooks::Hooks) }
29
+ attr_accessor :hooks
30
+
31
+ sig { returns(T.nilable(::KintsugiSDK::Utils::RetryConfig)) }
32
+ attr_accessor :retry_config
33
+
34
+ sig { returns(T.nilable(Float)) }
35
+ attr_accessor :timeout
36
+
37
+
38
+ sig { returns(T.nilable(T.proc.returns(T.nilable(Models::Shared::Security)))) }
39
+ attr_accessor :security_source
40
+
41
+
42
+ sig { returns(T.nilable(String)) }
43
+ attr_accessor :server_url
44
+
45
+
46
+ sig { returns(T.nilable(Integer)) }
47
+ attr_accessor :server_idx
48
+
49
+
50
+ sig { returns(String) }
51
+ attr_accessor :language
52
+
53
+ sig { returns(String) }
54
+ attr_accessor :openapi_doc_version
55
+
56
+ sig { returns(String) }
57
+ attr_accessor :sdk_version
58
+
59
+ sig { returns(String) }
60
+ attr_accessor :gen_version
61
+
62
+ sig { returns(String) }
63
+ attr_accessor :user_agent
64
+
65
+ sig do
66
+ params(
67
+ client: T.nilable(Faraday::Connection),
68
+ hooks: ::KintsugiSDK::SDKHooks::Hooks,
69
+ retry_config: T.nilable(::KintsugiSDK::Utils::RetryConfig),
70
+ timeout_ms: T.nilable(Integer),
71
+ security: T.nilable(Models::Shared::Security),
72
+ security_source: T.nilable(T.proc.returns(Models::Shared::Security)),
73
+ server_url: T.nilable(String),
74
+ server_idx: T.nilable(Integer)
75
+ ).void
76
+ end
77
+ def initialize(client, hooks, retry_config, timeout_ms, security, security_source, server_url, server_idx)
78
+ @client = client
79
+ @hooks = hooks
80
+ @retry_config = retry_config
81
+ @server_url = server_url
82
+ @timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
83
+ @server_idx = server_idx.nil? ? 0 : server_idx
84
+ raise StandardError, "Invalid server index #{server_idx}" if @server_idx.negative? || @server_idx >= SERVERS.length
85
+ if !security_source.nil?
86
+ @security_source = security_source
87
+ elsif !security.nil?
88
+ @security_source = -> { security }
89
+ end
90
+ @language = 'ruby'
91
+ @openapi_doc_version = '1.0.0'
92
+ @sdk_version = '5.5.0'
93
+ @gen_version = '2.680.0'
94
+ @user_agent = 'speakeasy-sdk/ruby 5.5.0 2.680.0 1.0.0 kintsugi_sdk'
95
+ end
96
+
97
+ sig { returns([String, T::Hash[Symbol, String]]) }
98
+ def get_server_details
99
+ return [@server_url.delete_suffix('/'), {}] if !@server_url.nil?
100
+ @server_idx = T.must(@server_idx)
101
+ [T.must(SERVERS[@server_idx]), {}]
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,57 @@
1
+ # typed: true
2
+
3
+ class KintsugiSDK::SDKConfiguration
4
+ extend ::Crystalline::MetadataFields::ClassMethods
5
+
6
+ def client(); end
7
+
8
+ def client=(client); end
9
+
10
+ def gen_version(); end
11
+
12
+ def gen_version=(gen_version); end
13
+
14
+ def hooks(); end
15
+
16
+ def hooks=(hooks); end
17
+
18
+ def language(); end
19
+
20
+ def language=(language); end
21
+
22
+ def openapi_doc_version(); end
23
+
24
+ def openapi_doc_version=(openapi_doc_version); end
25
+
26
+ def retry_config(); end
27
+
28
+ def retry_config=(retry_config); end
29
+
30
+ def sdk_version(); end
31
+
32
+ def sdk_version=(sdk_version); end
33
+
34
+ def security_source(); end
35
+
36
+ def security_source=(security_source); end
37
+
38
+ def server_idx(); end
39
+
40
+ def server_idx=(server_idx); end
41
+
42
+ def server_params(); end
43
+
44
+ def server_params=(server_params); end
45
+
46
+ def server_url(); end
47
+
48
+ def server_url=(server_url); end
49
+
50
+ def timeout(); end
51
+
52
+ def timeout=(timeout); end
53
+
54
+ def user_agent(); end
55
+
56
+ def user_agent=(user_agent); end
57
+ end
@@ -0,0 +1,197 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require 'faraday'
7
+ require 'faraday/multipart'
8
+ require 'faraday/retry'
9
+ require 'sorbet-runtime'
10
+ require_relative 'sdk_hooks/hooks'
11
+ require_relative 'utils/retries'
12
+
13
+ module KintsugiSDK
14
+ extend T::Sig
15
+ class TaxEstimation
16
+ extend T::Sig
17
+
18
+
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+
24
+ end
25
+
26
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
27
+ def get_url(base_url:, url_variables: nil)
28
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
29
+
30
+ if base_url.nil?
31
+ base_url = sd_base_url
32
+ end
33
+
34
+ if url_variables.nil?
35
+ url_variables = sd_options
36
+ end
37
+
38
+ return Utils.template_url base_url, url_variables
39
+ end
40
+
41
+
42
+ sig { params(request: Models::Ops::EstimateTaxV1TaxEstimatePostRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::PageTransactionEstimateResponse) }
43
+ def estimate_tax(request:, timeout_ms: nil)
44
+ # estimate_tax - Estimate Tax
45
+ # The Estimate Tax API calculates the estimated tax for a specific
46
+ # transaction based on the provided details, including organization nexus,
47
+ # transaction details, customer details, and addresses. Optionally simulates nexus being met for tax calculation purposes. The `simulate_nexus_met` parameter is deprecated and will be removed in future releases.
48
+ url, params = @sdk_configuration.get_server_details
49
+ base_url = Utils.template_url(url, params)
50
+ url = "#{base_url}/v1/tax/estimate"
51
+ headers = {}
52
+ headers = T.cast(headers, T::Hash[String, String])
53
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :transaction_estimate_public_request, :json)
54
+ headers['content-type'] = req_content_type
55
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
56
+
57
+ if form
58
+ body = Utils.encode_form(form)
59
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
60
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
61
+ else
62
+ body = data
63
+ end
64
+ query_params = Utils.get_query_params(Models::Ops::EstimateTaxV1TaxEstimatePostRequest, request, nil)
65
+ headers['Accept'] = 'application/json'
66
+ headers['user-agent'] = @sdk_configuration.user_agent
67
+
68
+ security = @sdk_configuration.security_source&.call
69
+
70
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
71
+ timeout ||= @sdk_configuration.timeout
72
+
73
+
74
+ connection = @sdk_configuration.client
75
+
76
+ hook_ctx = SDKHooks::HookContext.new(
77
+ config: @sdk_configuration,
78
+ base_url: base_url,
79
+ oauth2_scopes: [],
80
+ operation_id: 'estimate_tax_v1_tax_estimate_post',
81
+ security_source: @sdk_configuration.security_source
82
+ )
83
+
84
+ error = T.let(nil, T.nilable(StandardError))
85
+ http_response = T.let(nil, T.nilable(Faraday::Response))
86
+
87
+
88
+ begin
89
+ http_response = T.must(connection).post(url) do |req|
90
+ req.body = body
91
+ req.headers.merge!(headers)
92
+ req.options.timeout = timeout unless timeout.nil?
93
+ req.params = query_params
94
+ Utils.configure_request_security(req, security)
95
+
96
+ @sdk_configuration.hooks.before_request(
97
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
98
+ hook_ctx: hook_ctx
99
+ ),
100
+ request: req
101
+ )
102
+ end
103
+ rescue StandardError => e
104
+ error = e
105
+ ensure
106
+ if http_response.nil? || Utils.error_status?(http_response.status)
107
+ http_response = @sdk_configuration.hooks.after_error(
108
+ error: error,
109
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
110
+ hook_ctx: hook_ctx
111
+ ),
112
+ response: http_response
113
+ )
114
+ else
115
+ http_response = @sdk_configuration.hooks.after_success(
116
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
117
+ hook_ctx: hook_ctx
118
+ ),
119
+ response: http_response
120
+ )
121
+ end
122
+
123
+ if http_response.nil?
124
+ raise error if !error.nil?
125
+ raise 'no response'
126
+ end
127
+ end
128
+
129
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
130
+ if Utils.match_status_code(http_response.status, ['200'])
131
+ if Utils.match_content_type(content_type, 'application/json')
132
+ @sdk_configuration.hooks.after_success(
133
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
134
+ hook_ctx: hook_ctx
135
+ ),
136
+ response: http_response
137
+ )
138
+ response_data = http_response.env.response_body
139
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PageTransactionEstimateResponse)
140
+
141
+ return obj
142
+ else
143
+ 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'
144
+ end
145
+ elsif Utils.match_status_code(http_response.status, ['401'])
146
+ if Utils.match_content_type(content_type, 'application/json')
147
+ @sdk_configuration.hooks.after_success(
148
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
149
+ hook_ctx: hook_ctx
150
+ ),
151
+ response: http_response
152
+ )
153
+ response_data = http_response.env.response_body
154
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ErrorResponse)
155
+ throw obj
156
+ else
157
+ 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'
158
+ end
159
+ elsif Utils.match_status_code(http_response.status, ['422'])
160
+ if Utils.match_content_type(content_type, 'application/json')
161
+ @sdk_configuration.hooks.after_success(
162
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
163
+ hook_ctx: hook_ctx
164
+ ),
165
+ response: http_response
166
+ )
167
+ response_data = http_response.env.response_body
168
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BackendSrcTaxEstimationResponsesValidationErrorResponse)
169
+ throw obj
170
+ else
171
+ 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'
172
+ end
173
+ elsif Utils.match_status_code(http_response.status, ['500'])
174
+ if Utils.match_content_type(content_type, 'application/json')
175
+ @sdk_configuration.hooks.after_success(
176
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
177
+ hook_ctx: hook_ctx
178
+ ),
179
+ response: http_response
180
+ )
181
+ response_data = http_response.env.response_body
182
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::ErrorResponse)
183
+ throw obj
184
+ else
185
+ 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'
186
+ end
187
+ elsif Utils.match_status_code(http_response.status, ['404', '4XX'])
188
+ raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
189
+ elsif Utils.match_status_code(http_response.status, ['5XX'])
190
+ raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'API error occurred'
191
+ else
192
+ raise ::KintsugiSDK::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown status code received'
193
+
194
+ end
195
+ end
196
+ end
197
+ end