kintsugi_sdk 5.6.0 → 5.6.1

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 (133) hide show
  1. checksums.yaml +4 -4
  2. data/lib/crystalline/types.rb +11 -3
  3. data/lib/kintsugi_sdk/addressvalidation.rb +21 -13
  4. data/lib/kintsugi_sdk/customers.rb +66 -43
  5. data/lib/kintsugi_sdk/exemptions.rb +48 -31
  6. data/lib/kintsugi_sdk/models/errors/apierror.rbi +2 -1
  7. data/lib/kintsugi_sdk/models/errors/backend_src_address_validation_responses_validationerrorresponse.rbi +1 -1
  8. data/lib/kintsugi_sdk/models/errors/backend_src_customers_responses_validationerrorresponse.rbi +1 -1
  9. data/lib/kintsugi_sdk/models/errors/backend_src_exemptions_responses_validationerrorresponse.rbi +1 -1
  10. data/lib/kintsugi_sdk/models/errors/backend_src_products_responses_validationerrorresponse.rbi +1 -1
  11. data/lib/kintsugi_sdk/models/errors/backend_src_tax_estimation_responses_validationerrorresponse.rbi +1 -1
  12. data/lib/kintsugi_sdk/models/errors/backend_src_transactions_responses_validationerrorresponse.rbi +1 -1
  13. data/lib/kintsugi_sdk/models/errors/errorresponse.rbi +1 -1
  14. data/lib/kintsugi_sdk/models/errors/httpvalidationerror.rbi +1 -1
  15. data/lib/kintsugi_sdk/models/ops/createtransactionbycustomer_request.rbi +1 -1
  16. data/lib/kintsugi_sdk/models/ops/estimate_tax_v1_tax_estimate_post_request.rbi +1 -1
  17. data/lib/kintsugi_sdk/models/ops/get_customer_by_external_id_v1_customers_external_external_id_get_request.rbi +1 -1
  18. data/lib/kintsugi_sdk/models/ops/get_customer_by_id_v1_customers_customer_id_get_request.rbi +1 -1
  19. data/lib/kintsugi_sdk/models/ops/get_customers_v1_request.rbi +1 -1
  20. data/lib/kintsugi_sdk/models/ops/get_exemption_by_id_v1_exemptions_exemption_id_get_request.rbi +1 -1
  21. data/lib/kintsugi_sdk/models/ops/get_exemptions_v1_exemptions_get_request.rbi +1 -1
  22. data/lib/kintsugi_sdk/models/ops/get_nexus_for_org_v1_nexus_get_request.rbi +1 -1
  23. data/lib/kintsugi_sdk/models/ops/get_product_by_id_v1_products_product_id_get_request.rbi +1 -1
  24. data/lib/kintsugi_sdk/models/ops/get_transaction_by_id_v1_transactions_transaction_id_get_request.rbi +1 -1
  25. data/lib/kintsugi_sdk/models/ops/get_transactions_v1_transactions_get_request.rbi +1 -1
  26. data/lib/kintsugi_sdk/models/ops/getexemptionattachments_request.rbi +1 -1
  27. data/lib/kintsugi_sdk/models/ops/gettransactionbyexternalid_request.rbi +1 -1
  28. data/lib/kintsugi_sdk/models/ops/gettransactionsbycustomer_request.rbi +1 -1
  29. data/lib/kintsugi_sdk/models/ops/gettransactionsbyfiling_request.rbi +1 -1
  30. data/lib/kintsugi_sdk/models/ops/search_v1_address_validation_search_post_security.rbi +1 -1
  31. data/lib/kintsugi_sdk/models/ops/update_customer_v1_customers_customer_id_put_request.rbi +1 -1
  32. data/lib/kintsugi_sdk/models/ops/update_product_v1_products_product_id_put_request.rbi +1 -1
  33. data/lib/kintsugi_sdk/models/ops/update_transaction_v1_transactions_transaction_id_put_request.rbi +1 -1
  34. data/lib/kintsugi_sdk/models/ops/uploadexemptioncert_request.rbi +1 -1
  35. data/lib/kintsugi_sdk/models/shared/addressbase.rbi +1 -1
  36. data/lib/kintsugi_sdk/models/shared/addresses.rbi +1 -1
  37. data/lib/kintsugi_sdk/models/shared/addressresponsedata.rbi +1 -1
  38. data/lib/kintsugi_sdk/models/shared/addresssearchresponse.rbi +1 -1
  39. data/lib/kintsugi_sdk/models/shared/addressstatus.rbi +1 -1
  40. data/lib/kintsugi_sdk/models/shared/addresssubmittedresponse.rbi +1 -1
  41. data/lib/kintsugi_sdk/models/shared/addresstype.rbi +1 -1
  42. data/lib/kintsugi_sdk/models/shared/appliedto.rbi +1 -1
  43. data/lib/kintsugi_sdk/models/shared/attachmentread.rbi +1 -1
  44. data/lib/kintsugi_sdk/models/shared/backend_src_address_validation_responses_validationerroritem.rbi +1 -1
  45. data/lib/kintsugi_sdk/models/shared/backend_src_customers_responses_validationerroritem.rbi +1 -1
  46. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_models_exemptionread.rbi +1 -1
  47. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_responses_validationerroritem.rbi +1 -1
  48. data/lib/kintsugi_sdk/models/shared/backend_src_exemptions_serializers_exemptionread.rbi +1 -1
  49. data/lib/kintsugi_sdk/models/shared/backend_src_products_responses_validationerroritem.rbi +1 -1
  50. data/lib/kintsugi_sdk/models/shared/backend_src_tax_estimation_responses_validationerroritem.rbi +1 -1
  51. data/lib/kintsugi_sdk/models/shared/backend_src_transactions_responses_validationerroritem.rbi +1 -1
  52. data/lib/kintsugi_sdk/models/shared/body_upload_exemption_certificate_v1_exemptions_exemption_id_attachments_post.rbi +1 -1
  53. data/lib/kintsugi_sdk/models/shared/countrycodeenum.rbi +1 -1
  54. data/lib/kintsugi_sdk/models/shared/currencyenum.rbi +1 -1
  55. data/lib/kintsugi_sdk/models/shared/customerbase.rbi +1 -1
  56. data/lib/kintsugi_sdk/models/shared/customerbasebase.rbi +1 -1
  57. data/lib/kintsugi_sdk/models/shared/customerbasepublic.rbi +1 -1
  58. data/lib/kintsugi_sdk/models/shared/customercreate.rbi +1 -1
  59. data/lib/kintsugi_sdk/models/shared/customerread.rbi +1 -1
  60. data/lib/kintsugi_sdk/models/shared/customertaxregistrationread.rbi +1 -1
  61. data/lib/kintsugi_sdk/models/shared/customertaxtypeenum.rbi +1 -1
  62. data/lib/kintsugi_sdk/models/shared/customerupdate.rbi +1 -1
  63. data/lib/kintsugi_sdk/models/shared/discountbuilder.rbi +1 -1
  64. data/lib/kintsugi_sdk/models/shared/exemption.rbi +1 -1
  65. data/lib/kintsugi_sdk/models/shared/exemptioncreate.rbi +1 -1
  66. data/lib/kintsugi_sdk/models/shared/exemptionrequired.rbi +1 -1
  67. data/lib/kintsugi_sdk/models/shared/exemptionstatus.rbi +1 -1
  68. data/lib/kintsugi_sdk/models/shared/exemptiontype.rbi +1 -1
  69. data/lib/kintsugi_sdk/models/shared/fastapi_pagination_default_page_exemptionread_2.rbi +1 -1
  70. data/lib/kintsugi_sdk/models/shared/file.rbi +1 -1
  71. data/lib/kintsugi_sdk/models/shared/findthresholdcrossingtransactionstate.rbi +1 -1
  72. data/lib/kintsugi_sdk/models/shared/jurisdictiontype.rbi +1 -1
  73. data/lib/kintsugi_sdk/models/shared/nexusresponse.rbi +1 -1
  74. data/lib/kintsugi_sdk/models/shared/nexusstateenum.rbi +1 -1
  75. data/lib/kintsugi_sdk/models/shared/nexusstatusenum.rbi +1 -1
  76. data/lib/kintsugi_sdk/models/shared/nexustypeenum.rbi +1 -1
  77. data/lib/kintsugi_sdk/models/shared/page_customerread_.rbi +1 -1
  78. data/lib/kintsugi_sdk/models/shared/page_nexusresponse_.rbi +1 -1
  79. data/lib/kintsugi_sdk/models/shared/page_transactionestimateresponse_.rbi +1 -1
  80. data/lib/kintsugi_sdk/models/shared/page_transactionread_.rbi +1 -1
  81. data/lib/kintsugi_sdk/models/shared/periodmodelenum.rbi +1 -1
  82. data/lib/kintsugi_sdk/models/shared/processingstatusenum.rbi +1 -1
  83. data/lib/kintsugi_sdk/models/shared/productread.rbi +1 -1
  84. data/lib/kintsugi_sdk/models/shared/productstatusenum.rbi +1 -1
  85. data/lib/kintsugi_sdk/models/shared/productupdate.rbi +1 -1
  86. data/lib/kintsugi_sdk/models/shared/registration.rbi +1 -1
  87. data/lib/kintsugi_sdk/models/shared/registrationsregimeenum.rbi +1 -1
  88. data/lib/kintsugi_sdk/models/shared/relatedentitytype.rbi +1 -1
  89. data/lib/kintsugi_sdk/models/shared/salesortransactionsenum.rbi +1 -1
  90. data/lib/kintsugi_sdk/models/shared/security.rb +2 -2
  91. data/lib/kintsugi_sdk/models/shared/security.rbi +1 -1
  92. data/lib/kintsugi_sdk/models/shared/sourceenum.rbi +1 -1
  93. data/lib/kintsugi_sdk/models/shared/statusenum.rbi +1 -1
  94. data/lib/kintsugi_sdk/models/shared/taxexemptionenum.rbi +1 -1
  95. data/lib/kintsugi_sdk/models/shared/taxitembuilder.rbi +1 -1
  96. data/lib/kintsugi_sdk/models/shared/taxitemestimate.rbi +1 -1
  97. data/lib/kintsugi_sdk/models/shared/taxitemread.rbi +1 -1
  98. data/lib/kintsugi_sdk/models/shared/taxitemreturnreasonenum.rbi +1 -1
  99. data/lib/kintsugi_sdk/models/shared/taxitemtypeenum.rbi +1 -1
  100. data/lib/kintsugi_sdk/models/shared/taxliabilitysourceenum.rbi +1 -1
  101. data/lib/kintsugi_sdk/models/shared/transactionaddressbuilder.rbi +1 -1
  102. data/lib/kintsugi_sdk/models/shared/transactionaddresspublic.rbi +1 -1
  103. data/lib/kintsugi_sdk/models/shared/transactionaddressread_output.rbi +1 -1
  104. data/lib/kintsugi_sdk/models/shared/transactioncreate.rbi +1 -1
  105. data/lib/kintsugi_sdk/models/shared/transactionestimatepublicrequest.rbi +1 -1
  106. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse.rbi +1 -1
  107. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_addresses.rbi +1 -1
  108. data/lib/kintsugi_sdk/models/shared/transactionestimateresponse_type.rbi +1 -1
  109. data/lib/kintsugi_sdk/models/shared/transactionexemptstatusenum.rbi +1 -1
  110. data/lib/kintsugi_sdk/models/shared/transactionitembuilder.rbi +1 -1
  111. data/lib/kintsugi_sdk/models/shared/transactionitemcreateupdate.rbi +1 -1
  112. data/lib/kintsugi_sdk/models/shared/transactionitemestimatebase.rbi +1 -1
  113. data/lib/kintsugi_sdk/models/shared/transactionitemestimateresponse.rbi +1 -1
  114. data/lib/kintsugi_sdk/models/shared/transactionitemread.rbi +1 -1
  115. data/lib/kintsugi_sdk/models/shared/transactionpublicrequest.rbi +1 -1
  116. data/lib/kintsugi_sdk/models/shared/transactionread.rbi +1 -1
  117. data/lib/kintsugi_sdk/models/shared/transactionrefundstatus.rbi +1 -1
  118. data/lib/kintsugi_sdk/models/shared/transactionstatusenum.rbi +1 -1
  119. data/lib/kintsugi_sdk/models/shared/transactiontypeenum.rbi +1 -1
  120. data/lib/kintsugi_sdk/models/shared/transactionupdate.rbi +1 -1
  121. data/lib/kintsugi_sdk/models/shared/treatmentenum.rbi +1 -1
  122. data/lib/kintsugi_sdk/models/shared/type.rbi +1 -1
  123. data/lib/kintsugi_sdk/models/shared/validationaddress.rbi +1 -1
  124. data/lib/kintsugi_sdk/models/shared/validationerror.rbi +1 -1
  125. data/lib/kintsugi_sdk/nexus.rb +12 -7
  126. data/lib/kintsugi_sdk/openapisdk.rb +2 -1
  127. data/lib/kintsugi_sdk/products.rb +21 -13
  128. data/lib/kintsugi_sdk/sdkconfiguration.rb +5 -6
  129. data/lib/kintsugi_sdk/taxestimation.rb +12 -7
  130. data/lib/kintsugi_sdk/transactions.rb +57 -37
  131. data/lib/kintsugi_sdk/utils/retries.rb +4 -1
  132. data/lib/kintsugi_sdk/utils/security.rb +22 -11
  133. metadata +4 -4
@@ -39,8 +39,10 @@ module KintsugiSDK
39
39
  end
40
40
 
41
41
 
42
- sig { params(request: Models::Ops::GetProductByIdV1ProductsProductIdGetRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::ProductRead) }
43
- def get(request:, timeout_ms: nil)
42
+
43
+
44
+ sig { params(request: Models::Ops::GetProductByIdV1ProductsProductIdGetRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::ProductRead) }
45
+ def get(request:, timeout_ms: nil, http_headers: nil)
44
46
  # get - Get Product By Id
45
47
  # The Get Product By ID API retrieves detailed information about
46
48
  # a single product by its unique ID. This API helps in viewing the specific details
@@ -62,7 +64,7 @@ module KintsugiSDK
62
64
 
63
65
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
64
66
  timeout ||= @sdk_configuration.timeout
65
-
67
+
66
68
 
67
69
  connection = @sdk_configuration.client
68
70
 
@@ -77,12 +79,15 @@ module KintsugiSDK
77
79
  error = T.let(nil, T.nilable(StandardError))
78
80
  http_response = T.let(nil, T.nilable(Faraday::Response))
79
81
 
80
-
82
+
81
83
  begin
82
84
  http_response = T.must(connection).get(url) do |req|
83
85
  req.headers.merge!(headers)
84
86
  req.options.timeout = timeout unless timeout.nil?
85
87
  Utils.configure_request_security(req, security)
88
+ http_headers&.each do |key, value|
89
+ req.headers[key.to_s] = value
90
+ end
86
91
 
87
92
  @sdk_configuration.hooks.before_request(
88
93
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -110,13 +115,13 @@ module KintsugiSDK
110
115
  response: http_response
111
116
  )
112
117
  end
113
-
118
+
114
119
  if http_response.nil?
115
120
  raise error if !error.nil?
116
121
  raise 'no response'
117
122
  end
118
123
  end
119
-
124
+
120
125
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
121
126
  if Utils.match_status_code(http_response.status, ['200'])
122
127
  if Utils.match_content_type(content_type, 'application/json')
@@ -186,8 +191,8 @@ module KintsugiSDK
186
191
  end
187
192
 
188
193
 
189
- sig { params(request: Models::Ops::UpdateProductV1ProductsProductIdPutRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::ProductRead) }
190
- def update(request:, timeout_ms: nil)
194
+ sig { params(request: Models::Ops::UpdateProductV1ProductsProductIdPutRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::ProductRead) }
195
+ def update(request:, timeout_ms: nil, http_headers: nil)
191
196
  # update - Update Product
192
197
  # The Update Product API allows users to modify the details of
193
198
  # an existing product identified by its unique product_id. You can
@@ -221,7 +226,7 @@ module KintsugiSDK
221
226
 
222
227
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
223
228
  timeout ||= @sdk_configuration.timeout
224
-
229
+
225
230
 
226
231
  connection = @sdk_configuration.client
227
232
 
@@ -236,13 +241,16 @@ module KintsugiSDK
236
241
  error = T.let(nil, T.nilable(StandardError))
237
242
  http_response = T.let(nil, T.nilable(Faraday::Response))
238
243
 
239
-
244
+
240
245
  begin
241
246
  http_response = T.must(connection).put(url) do |req|
242
247
  req.body = body
243
248
  req.headers.merge!(headers)
244
249
  req.options.timeout = timeout unless timeout.nil?
245
250
  Utils.configure_request_security(req, security)
251
+ http_headers&.each do |key, value|
252
+ req.headers[key.to_s] = value
253
+ end
246
254
 
247
255
  @sdk_configuration.hooks.before_request(
248
256
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -270,13 +278,13 @@ module KintsugiSDK
270
278
  response: http_response
271
279
  )
272
280
  end
273
-
281
+
274
282
  if http_response.nil?
275
283
  raise error if !error.nil?
276
284
  raise 'no response'
277
285
  end
278
286
  end
279
-
287
+
280
288
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
281
289
  if Utils.match_status_code(http_response.status, ['200'])
282
290
  if Utils.match_content_type(content_type, 'application/json')
@@ -344,5 +352,5 @@ module KintsugiSDK
344
352
 
345
353
  end
346
354
  end
347
- end
355
+ end
348
356
  end
@@ -13,10 +13,9 @@ require_relative 'utils/retries'
13
13
  module KintsugiSDK
14
14
  extend T::Sig
15
15
 
16
- SERVERS = [
16
+ SERVERS = T.let([
17
17
  'https://api.trykintsugi.com', # 1 - Production API server URL
18
- ].freeze
19
- SERVERS = T.let(SERVERS, T::Array[String])
18
+ ].freeze, T::Array[String])
20
19
  # Contains the list of servers available to the SDK
21
20
 
22
21
  class SDKConfiguration
@@ -89,9 +88,9 @@ module KintsugiSDK
89
88
  end
90
89
  @language = 'ruby'
91
90
  @openapi_doc_version = '1.0.0'
92
- @sdk_version = '5.6.0'
93
- @gen_version = '2.845.15'
94
- @user_agent = 'speakeasy-sdk/ruby 5.6.0 2.845.15 1.0.0 kintsugi_sdk'
91
+ @sdk_version = '5.6.1'
92
+ @gen_version = '2.916.2'
93
+ @user_agent = 'speakeasy-sdk/ruby 5.6.1 2.916.2 1.0.0 kintsugi_sdk'
95
94
  end
96
95
 
97
96
  sig { returns([String, T::Hash[Symbol, String]]) }
@@ -39,8 +39,10 @@ module KintsugiSDK
39
39
  end
40
40
 
41
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)
42
+
43
+
44
+ sig { params(request: Models::Ops::EstimateTaxV1TaxEstimatePostRequest, timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Shared::PageTransactionEstimateResponse) }
45
+ def estimate_tax(request:, timeout_ms: nil, http_headers: nil)
44
46
  # estimate_tax - Estimate Tax
45
47
  # The Estimate Tax API calculates the estimated tax for a specific
46
48
  # transaction based on the provided details, including organization nexus,
@@ -69,7 +71,7 @@ module KintsugiSDK
69
71
 
70
72
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
71
73
  timeout ||= @sdk_configuration.timeout
72
-
74
+
73
75
 
74
76
  connection = @sdk_configuration.client
75
77
 
@@ -84,7 +86,7 @@ module KintsugiSDK
84
86
  error = T.let(nil, T.nilable(StandardError))
85
87
  http_response = T.let(nil, T.nilable(Faraday::Response))
86
88
 
87
-
89
+
88
90
  begin
89
91
  http_response = T.must(connection).post(url) do |req|
90
92
  req.body = body
@@ -92,6 +94,9 @@ module KintsugiSDK
92
94
  req.options.timeout = timeout unless timeout.nil?
93
95
  req.params = query_params
94
96
  Utils.configure_request_security(req, security)
97
+ http_headers&.each do |key, value|
98
+ req.headers[key.to_s] = value
99
+ end
95
100
 
96
101
  @sdk_configuration.hooks.before_request(
97
102
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -119,13 +124,13 @@ module KintsugiSDK
119
124
  response: http_response
120
125
  )
121
126
  end
122
-
127
+
123
128
  if http_response.nil?
124
129
  raise error if !error.nil?
125
130
  raise 'no response'
126
131
  end
127
132
  end
128
-
133
+
129
134
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
130
135
  if Utils.match_status_code(http_response.status, ['200'])
131
136
  if Utils.match_content_type(content_type, 'application/json')
@@ -193,5 +198,5 @@ module KintsugiSDK
193
198
 
194
199
  end
195
200
  end
196
- end
201
+ end
197
202
  end
@@ -39,8 +39,10 @@ module KintsugiSDK
39
39
  end
40
40
 
41
41
 
42
- sig { params(request: Models::Ops::GetTransactionsV1TransactionsGetRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::PageTransactionRead) }
43
- def list(request:, timeout_ms: nil)
42
+
43
+
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
+ def list(request:, timeout_ms: nil, http_headers: nil)
44
46
  # list - Get Transactions
45
47
  # The Get Transactions API retrieves a list of transactions with
46
48
  # optional filtering, sorting, and pagination.
@@ -57,7 +59,7 @@ module KintsugiSDK
57
59
 
58
60
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
59
61
  timeout ||= @sdk_configuration.timeout
60
-
62
+
61
63
 
62
64
  connection = @sdk_configuration.client
63
65
 
@@ -72,13 +74,16 @@ module KintsugiSDK
72
74
  error = T.let(nil, T.nilable(StandardError))
73
75
  http_response = T.let(nil, T.nilable(Faraday::Response))
74
76
 
75
-
77
+
76
78
  begin
77
79
  http_response = T.must(connection).get(url) do |req|
78
80
  req.headers.merge!(headers)
79
81
  req.options.timeout = timeout unless timeout.nil?
80
82
  req.params = query_params
81
83
  Utils.configure_request_security(req, security)
84
+ http_headers&.each do |key, value|
85
+ req.headers[key.to_s] = value
86
+ end
82
87
 
83
88
  @sdk_configuration.hooks.before_request(
84
89
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -106,13 +111,13 @@ module KintsugiSDK
106
111
  response: http_response
107
112
  )
108
113
  end
109
-
114
+
110
115
  if http_response.nil?
111
116
  raise error if !error.nil?
112
117
  raise 'no response'
113
118
  end
114
119
  end
115
-
120
+
116
121
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
117
122
  if Utils.match_status_code(http_response.status, ['200'])
118
123
  if Utils.match_content_type(content_type, 'application/json')
@@ -182,8 +187,8 @@ module KintsugiSDK
182
187
  end
183
188
 
184
189
 
185
- sig { params(request: Models::Shared::TransactionPublicRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::TransactionRead) }
186
- def create(request:, timeout_ms: nil)
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) }
191
+ def create(request:, timeout_ms: nil, http_headers: nil)
187
192
  # create - Create Transaction
188
193
  # Create a transaction.
189
194
  url, params = @sdk_configuration.get_server_details
@@ -209,7 +214,7 @@ module KintsugiSDK
209
214
 
210
215
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
211
216
  timeout ||= @sdk_configuration.timeout
212
-
217
+
213
218
 
214
219
  connection = @sdk_configuration.client
215
220
 
@@ -224,13 +229,16 @@ module KintsugiSDK
224
229
  error = T.let(nil, T.nilable(StandardError))
225
230
  http_response = T.let(nil, T.nilable(Faraday::Response))
226
231
 
227
-
232
+
228
233
  begin
229
234
  http_response = T.must(connection).post(url) do |req|
230
235
  req.body = body
231
236
  req.headers.merge!(headers)
232
237
  req.options.timeout = timeout unless timeout.nil?
233
238
  Utils.configure_request_security(req, security)
239
+ http_headers&.each do |key, value|
240
+ req.headers[key.to_s] = value
241
+ end
234
242
 
235
243
  @sdk_configuration.hooks.before_request(
236
244
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -258,13 +266,13 @@ module KintsugiSDK
258
266
  response: http_response
259
267
  )
260
268
  end
261
-
269
+
262
270
  if http_response.nil?
263
271
  raise error if !error.nil?
264
272
  raise 'no response'
265
273
  end
266
274
  end
267
-
275
+
268
276
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
269
277
  if Utils.match_status_code(http_response.status, ['202'])
270
278
  if Utils.match_content_type(content_type, 'application/json')
@@ -334,8 +342,8 @@ module KintsugiSDK
334
342
  end
335
343
 
336
344
 
337
- sig { params(request: Models::Ops::GetTransactionByExternalIdRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::TransactionRead) }
338
- def get_by_external_id(request:, timeout_ms: nil)
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
+ def get_by_external_id(request:, timeout_ms: nil, http_headers: nil)
339
347
  # get_by_external_id - Get Transaction By External Id
340
348
  # Retrieves a specific transaction based on its external ID.
341
349
  # This allows users to fetch transaction details using an identifier from an external system.
@@ -356,7 +364,7 @@ module KintsugiSDK
356
364
 
357
365
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
358
366
  timeout ||= @sdk_configuration.timeout
359
-
367
+
360
368
 
361
369
  connection = @sdk_configuration.client
362
370
 
@@ -371,12 +379,15 @@ module KintsugiSDK
371
379
  error = T.let(nil, T.nilable(StandardError))
372
380
  http_response = T.let(nil, T.nilable(Faraday::Response))
373
381
 
374
-
382
+
375
383
  begin
376
384
  http_response = T.must(connection).get(url) do |req|
377
385
  req.headers.merge!(headers)
378
386
  req.options.timeout = timeout unless timeout.nil?
379
387
  Utils.configure_request_security(req, security)
388
+ http_headers&.each do |key, value|
389
+ req.headers[key.to_s] = value
390
+ end
380
391
 
381
392
  @sdk_configuration.hooks.before_request(
382
393
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -404,13 +415,13 @@ module KintsugiSDK
404
415
  response: http_response
405
416
  )
406
417
  end
407
-
418
+
408
419
  if http_response.nil?
409
420
  raise error if !error.nil?
410
421
  raise 'no response'
411
422
  end
412
423
  end
413
-
424
+
414
425
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
415
426
  if Utils.match_status_code(http_response.status, ['200'])
416
427
  if Utils.match_content_type(content_type, 'application/json')
@@ -480,8 +491,8 @@ module KintsugiSDK
480
491
  end
481
492
 
482
493
 
483
- sig { params(request: Models::Ops::UpdateTransactionV1TransactionsTransactionIdPutRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::TransactionRead) }
484
- def update(request:, timeout_ms: nil)
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)
485
496
  # update - Update Transaction
486
497
  # Update a specific transaction by its ID.
487
498
  url, params = @sdk_configuration.get_server_details
@@ -512,7 +523,7 @@ module KintsugiSDK
512
523
 
513
524
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
514
525
  timeout ||= @sdk_configuration.timeout
515
-
526
+
516
527
 
517
528
  connection = @sdk_configuration.client
518
529
 
@@ -527,13 +538,16 @@ module KintsugiSDK
527
538
  error = T.let(nil, T.nilable(StandardError))
528
539
  http_response = T.let(nil, T.nilable(Faraday::Response))
529
540
 
530
-
541
+
531
542
  begin
532
543
  http_response = T.must(connection).put(url) do |req|
533
544
  req.body = body
534
545
  req.headers.merge!(headers)
535
546
  req.options.timeout = timeout unless timeout.nil?
536
547
  Utils.configure_request_security(req, security)
548
+ http_headers&.each do |key, value|
549
+ req.headers[key.to_s] = value
550
+ end
537
551
 
538
552
  @sdk_configuration.hooks.before_request(
539
553
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -561,13 +575,13 @@ module KintsugiSDK
561
575
  response: http_response
562
576
  )
563
577
  end
564
-
578
+
565
579
  if http_response.nil?
566
580
  raise error if !error.nil?
567
581
  raise 'no response'
568
582
  end
569
583
  end
570
-
584
+
571
585
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
572
586
  if Utils.match_status_code(http_response.status, ['200'])
573
587
  if Utils.match_content_type(content_type, 'application/json')
@@ -609,8 +623,8 @@ module KintsugiSDK
609
623
  end
610
624
 
611
625
 
612
- sig { params(request: Models::Ops::GetTransactionByIdV1TransactionsTransactionIdGetRequest, timeout_ms: T.nilable(Integer)).returns(Models::Shared::TransactionRead) }
613
- def get_by_id(request:, timeout_ms: nil)
626
+ 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
+ def get_by_id(request:, timeout_ms: nil, http_headers: nil)
614
628
  # get_by_id - Get Transaction By Id
615
629
  # The Get Transaction By Id API retrieves detailed information
616
630
  # about a specific transaction by providing its unique transaction ID.
@@ -631,7 +645,7 @@ module KintsugiSDK
631
645
 
632
646
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
633
647
  timeout ||= @sdk_configuration.timeout
634
-
648
+
635
649
 
636
650
  connection = @sdk_configuration.client
637
651
 
@@ -646,12 +660,15 @@ module KintsugiSDK
646
660
  error = T.let(nil, T.nilable(StandardError))
647
661
  http_response = T.let(nil, T.nilable(Faraday::Response))
648
662
 
649
-
663
+
650
664
  begin
651
665
  http_response = T.must(connection).get(url) do |req|
652
666
  req.headers.merge!(headers)
653
667
  req.options.timeout = timeout unless timeout.nil?
654
668
  Utils.configure_request_security(req, security)
669
+ http_headers&.each do |key, value|
670
+ req.headers[key.to_s] = value
671
+ end
655
672
 
656
673
  @sdk_configuration.hooks.before_request(
657
674
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -679,13 +696,13 @@ module KintsugiSDK
679
696
  response: http_response
680
697
  )
681
698
  end
682
-
699
+
683
700
  if http_response.nil?
684
701
  raise error if !error.nil?
685
702
  raise 'no response'
686
703
  end
687
704
  end
688
-
705
+
689
706
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
690
707
  if Utils.match_status_code(http_response.status, ['200'])
691
708
  if Utils.match_content_type(content_type, 'application/json')
@@ -755,8 +772,8 @@ module KintsugiSDK
755
772
  end
756
773
 
757
774
 
758
- sig { params(request: Models::Ops::GetTransactionsByFilingRequest, timeout_ms: T.nilable(Integer)).returns(T::Array[Models::Shared::TransactionRead]) }
759
- def get_by_filing_id(request:, timeout_ms: nil)
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)
760
777
  # get_by_filing_id - Get Transactions By Filing Id
761
778
  # Retrieve transactions by filing ID.
762
779
  url, params = @sdk_configuration.get_server_details
@@ -776,7 +793,7 @@ module KintsugiSDK
776
793
 
777
794
  timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
778
795
  timeout ||= @sdk_configuration.timeout
779
-
796
+
780
797
 
781
798
  connection = @sdk_configuration.client
782
799
 
@@ -791,12 +808,15 @@ module KintsugiSDK
791
808
  error = T.let(nil, T.nilable(StandardError))
792
809
  http_response = T.let(nil, T.nilable(Faraday::Response))
793
810
 
794
-
811
+
795
812
  begin
796
813
  http_response = T.must(connection).get(url) do |req|
797
814
  req.headers.merge!(headers)
798
815
  req.options.timeout = timeout unless timeout.nil?
799
816
  Utils.configure_request_security(req, security)
817
+ http_headers&.each do |key, value|
818
+ req.headers[key.to_s] = value
819
+ end
800
820
 
801
821
  @sdk_configuration.hooks.before_request(
802
822
  hook_ctx: SDKHooks::BeforeRequestHookContext.new(
@@ -824,13 +844,13 @@ module KintsugiSDK
824
844
  response: http_response
825
845
  )
826
846
  end
827
-
847
+
828
848
  if http_response.nil?
829
849
  raise error if !error.nil?
830
850
  raise 'no response'
831
851
  end
832
852
  end
833
-
853
+
834
854
  content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
835
855
  if Utils.match_status_code(http_response.status, ['200'])
836
856
  if Utils.match_content_type(content_type, 'application/json')
@@ -898,5 +918,5 @@ module KintsugiSDK
898
918
 
899
919
  end
900
920
  end
901
- end
921
+ end
902
922
  end
@@ -80,12 +80,15 @@ module KintsugiSDK
80
80
  if @strategy == 'backoff' && @backoff
81
81
  retry_options[:backoff_factor] = @backoff.exponent unless @backoff.exponent.nil?
82
82
  retry_options[:interval] = (@backoff.initial_interval.to_f / 1000) unless @backoff.initial_interval.nil?
83
- retry_options[:max_interval] = @backoff.max_interval unless @backoff.max_interval.nil?
83
+ retry_options[:max_interval] = (@backoff.max_interval.to_f / 1000) unless @backoff.max_interval.nil?
84
84
 
85
85
  unless @backoff.max_elapsed_time.nil?
86
86
  stop_time = initial_time + (@backoff.max_elapsed_time.to_f / 1000)
87
87
  retry_options[:retry_if] = ->(_env, _exc) { Time.now < stop_time }
88
88
  end
89
+
90
+ retry_options[:rate_limit_retry_header] = 'retry-after-ms'
91
+ retry_options[:header_parser_block] = ->(value) { value.to_f / 1000 }
89
92
  end
90
93
 
91
94
  retry_options
@@ -12,26 +12,37 @@ module KintsugiSDK
12
12
  module Utils
13
13
  extend T::Sig
14
14
 
15
- sig { params(req: Faraday::Request, security: Object).void }
16
- def self.configure_request_security(req, security)
15
+ sig { params(req: Faraday::Request, security: Object, allowed_fields: T.nilable(T::Array[Symbol])).void }
16
+ def self.configure_request_security(req, security, allowed_fields = nil)
17
17
  return if security.nil?
18
- T.unsafe(security).fields.each do |sec_field|
18
+
19
+ sec_fields = if allowed_fields.nil?
20
+ T.unsafe(security).fields
21
+ else
22
+ allowed_fields.filter_map { |name| T.unsafe(security).fields.find { |f| f.name == name } }
23
+ end
24
+
25
+ sec_fields.each do |sec_field|
19
26
  value = security.send(sec_field.name)
20
27
  next if value.nil?
21
28
 
22
29
  metadata = sec_field.metadata[:security]
23
30
  next if metadata.nil?
24
31
 
25
- _parse_security_option(req, value) if metadata[:option]
32
+ if metadata[:option]
33
+ _parse_security_option(req, value)
34
+ break unless metadata[:composite]
35
+ end
36
+
37
+ next unless metadata[:scheme]
26
38
 
27
- if metadata[:scheme]
28
- # Special case for basic auth which could be a flattened struct
29
- if metadata[:sub_type] == 'basic' && !value.respond_to?(:fields)
30
- _parse_security_scheme(req, metadata, security)
31
- else
32
- _parse_security_scheme(req, metadata, value)
33
- end
39
+ # Special case for basic auth which could be a flattened struct
40
+ if metadata[:sub_type] == 'basic' && !value.respond_to?(:fields)
41
+ _parse_security_scheme(req, metadata, security)
42
+ else
43
+ _parse_security_scheme(req, metadata, value)
34
44
  end
45
+ break unless metadata[:composite]
35
46
  end
36
47
  end
37
48
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kintsugi_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.6.0
4
+ version: 5.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kintsugi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-02 00:00:00.000000000 Z
11
+ date: 2026-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: 2.14.1
39
+ version: 2.14.3
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 2.14.1
46
+ version: 2.14.3
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: faraday-multipart
49
49
  requirement: !ruby/object:Gem::Requirement