gr4vy 1.10.11__py3-none-any.whl → 1.10.14__py3-none-any.whl

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 (292) hide show
  1. gr4vy/_version.py +3 -3
  2. gr4vy/basesdk.py +20 -6
  3. gr4vy/models/__init__.py +132 -0
  4. gr4vy/models/accountsreceivablesreportspec.py +18 -1
  5. gr4vy/models/accountupdaterinquirysummary.py +18 -1
  6. gr4vy/models/accountupdaterjob.py +18 -1
  7. gr4vy/models/accountupdateroptions.py +30 -31
  8. gr4vy/models/add_buyer_shipping_detailsop.py +34 -1
  9. gr4vy/models/add_buyerop.py +34 -1
  10. gr4vy/models/add_payment_linkop.py +34 -1
  11. gr4vy/models/add_reportop.py +34 -1
  12. gr4vy/models/address.py +38 -39
  13. gr4vy/models/adyencardoptions.py +32 -33
  14. gr4vy/models/adyenoptions.py +14 -19
  15. gr4vy/models/adyensepaoptions.py +30 -31
  16. gr4vy/models/adyensplitsoptions.py +14 -19
  17. gr4vy/models/affirmitineraryoptions.py +34 -35
  18. gr4vy/models/affirmoptions.py +14 -19
  19. gr4vy/models/airline.py +58 -59
  20. gr4vy/models/airlineleg.py +66 -67
  21. gr4vy/models/airlinepassenger.py +42 -43
  22. gr4vy/models/applepaypaymentmethodcreate.py +34 -35
  23. gr4vy/models/auditlogentries.py +14 -19
  24. gr4vy/models/auditlogentry.py +14 -19
  25. gr4vy/models/auditlogentryuser.py +14 -19
  26. gr4vy/models/billingdetails.py +32 -33
  27. gr4vy/models/braintreedynamicdatafieldsoptions.py +26 -27
  28. gr4vy/models/braintreeoptions.py +18 -19
  29. gr4vy/models/browserinfo.py +14 -19
  30. gr4vy/models/buyer.py +31 -32
  31. gr4vy/models/buyercreate.py +18 -29
  32. gr4vy/models/buyers.py +14 -19
  33. gr4vy/models/buyerupdate.py +18 -29
  34. gr4vy/models/cancel_transactionop.py +34 -1
  35. gr4vy/models/capture_transactionop.py +30 -19
  36. gr4vy/models/cardpaymentmethodcreate.py +31 -32
  37. gr4vy/models/cardschemedefinition.py +18 -1
  38. gr4vy/models/cardwithurlpaymentmethodcreate.py +33 -34
  39. gr4vy/models/cartitem.py +52 -53
  40. gr4vy/models/chaseoptions.py +14 -19
  41. gr4vy/models/checkoutsession.py +37 -38
  42. gr4vy/models/checkoutsessioncreate.py +35 -36
  43. gr4vy/models/checkoutsessionpaymentmethod.py +16 -27
  44. gr4vy/models/checkoutsessionpaymentmethodcreate.py +18 -28
  45. gr4vy/models/checkoutsessionpaymentmethoddetails.py +14 -19
  46. gr4vy/models/checkoutsessionwithurlpaymentmethodcreate.py +29 -30
  47. gr4vy/models/clicktopayfpanpaymentmethodcreate.py +32 -33
  48. gr4vy/models/clicktopaypaymentmethodcreate.py +28 -29
  49. gr4vy/models/configure_digital_walletop.py +34 -1
  50. gr4vy/models/create_account_updater_jobop.py +34 -1
  51. gr4vy/models/create_apple_pay_digital_wallet_sessionop.py +34 -1
  52. gr4vy/models/create_checkout_sessionop.py +34 -1
  53. gr4vy/models/create_full_transaction_refundop.py +30 -19
  54. gr4vy/models/create_gift_cardop.py +34 -1
  55. gr4vy/models/create_google_pay_digital_wallet_sessionop.py +34 -1
  56. gr4vy/models/create_payment_method_network_token_cryptogramop.py +34 -1
  57. gr4vy/models/create_payment_method_network_tokenop.py +34 -1
  58. gr4vy/models/create_payment_method_payment_service_tokenop.py +34 -1
  59. gr4vy/models/create_payment_methodop.py +34 -1
  60. gr4vy/models/create_payment_service_sessionop.py +34 -1
  61. gr4vy/models/create_payment_serviceop.py +34 -1
  62. gr4vy/models/create_payoutop.py +34 -1
  63. gr4vy/models/create_report_execution_urlop.py +34 -1
  64. gr4vy/models/create_three_ds_scenarioop.py +79 -0
  65. gr4vy/models/create_transaction_refundop.py +34 -1
  66. gr4vy/models/create_transactionop.py +32 -19
  67. gr4vy/models/createsession.py +14 -19
  68. gr4vy/models/cryptogram.py +18 -1
  69. gr4vy/models/cybersourceantifraudoptions.py +18 -27
  70. gr4vy/models/cybersourceoptions.py +27 -28
  71. gr4vy/models/delete_buyer_shipping_detailsop.py +34 -1
  72. gr4vy/models/delete_buyerop.py +34 -1
  73. gr4vy/models/delete_checkout_sessionop.py +34 -1
  74. gr4vy/models/delete_digital_walletop.py +34 -1
  75. gr4vy/models/delete_gift_cardop.py +34 -1
  76. gr4vy/models/delete_payment_method_network_tokenop.py +34 -1
  77. gr4vy/models/delete_payment_method_payment_service_tokenop.py +34 -1
  78. gr4vy/models/delete_payment_methodop.py +34 -1
  79. gr4vy/models/delete_payment_serviceop.py +34 -1
  80. gr4vy/models/delete_three_ds_scenarioop.py +76 -0
  81. gr4vy/models/detailedsettlementreportspec.py +18 -1
  82. gr4vy/models/digitalwallet.py +27 -33
  83. gr4vy/models/digitalwalletcreate.py +23 -28
  84. gr4vy/models/digitalwalletupdate.py +30 -31
  85. gr4vy/models/dlocaloptions.py +14 -19
  86. gr4vy/models/dlocalupioptions.py +14 -19
  87. gr4vy/models/dlocalupiwalletoptions.py +18 -33
  88. gr4vy/models/dlocalwalletoptions.py +14 -19
  89. gr4vy/models/expire_payment_linkop.py +34 -1
  90. gr4vy/models/fiservinstallmentoptions.py +27 -28
  91. gr4vy/models/fiservoptions.py +14 -19
  92. gr4vy/models/forterantifraudoptions.py +30 -31
  93. gr4vy/models/forterantifraudoptionscartitem.py +13 -18
  94. gr4vy/models/forterantifraudoptionscartitembasicitemdata.py +14 -19
  95. gr4vy/models/forterantifraudoptionscartitembeneficiary.py +13 -18
  96. gr4vy/models/forterantifraudoptionscartitembeneficiaryaddress.py +18 -19
  97. gr4vy/models/forterantifraudoptionscartitembeneficiarycomments.py +18 -27
  98. gr4vy/models/forterantifraudoptionscartitembeneficiarypersonaldetails.py +14 -19
  99. gr4vy/models/forterantifraudoptionscartitemdeliverydetails.py +13 -18
  100. gr4vy/models/forterantifraudoptionsdiscount.py +13 -18
  101. gr4vy/models/forterantifraudoptionsdiscountcoupondiscountamount.py +14 -19
  102. gr4vy/models/get_buyer_shipping_detailsop.py +34 -1
  103. gr4vy/models/get_buyerop.py +34 -1
  104. gr4vy/models/get_checkout_sessionop.py +34 -1
  105. gr4vy/models/get_digital_walletop.py +34 -1
  106. gr4vy/models/get_gift_cardop.py +34 -1
  107. gr4vy/models/get_payment_linkop.py +34 -1
  108. gr4vy/models/get_payment_methodop.py +34 -1
  109. gr4vy/models/get_payment_serviceop.py +34 -1
  110. gr4vy/models/get_payoutop.py +34 -1
  111. gr4vy/models/get_refundop.py +34 -1
  112. gr4vy/models/get_report_executionop.py +34 -1
  113. gr4vy/models/get_reportop.py +34 -1
  114. gr4vy/models/get_three_ds_scenarioop.py +105 -0
  115. gr4vy/models/get_transaction_refundop.py +34 -1
  116. gr4vy/models/get_transaction_settlementop.py +34 -1
  117. gr4vy/models/get_transactionop.py +34 -1
  118. gr4vy/models/giftcard.py +14 -19
  119. gr4vy/models/giftcardcreate.py +14 -19
  120. gr4vy/models/giftcardredemption.py +29 -30
  121. gr4vy/models/giftcards.py +14 -19
  122. gr4vy/models/giftcardservice.py +18 -1
  123. gr4vy/models/giftcardsummary.py +35 -36
  124. gr4vy/models/givingblockoptions.py +14 -19
  125. gr4vy/models/googlepayassurancedetails.py +14 -19
  126. gr4vy/models/googlepayfpanpaymentmethodcreate.py +32 -33
  127. gr4vy/models/googlepaypaymentmethodcreate.py +36 -37
  128. gr4vy/models/guestbuyer.py +30 -31
  129. gr4vy/models/internal/globals.py +18 -1
  130. gr4vy/models/latitudeoptions.py +14 -19
  131. gr4vy/models/list_all_report_executionsop.py +50 -35
  132. gr4vy/models/list_audit_logsop.py +39 -26
  133. gr4vy/models/list_buyer_gift_cardsop.py +32 -23
  134. gr4vy/models/list_buyer_payment_methodsop.py +42 -33
  135. gr4vy/models/list_buyer_shipping_detailsop.py +34 -1
  136. gr4vy/models/list_buyersop.py +32 -25
  137. gr4vy/models/list_card_scheme_definitionsop.py +34 -1
  138. gr4vy/models/list_digital_walletsop.py +34 -1
  139. gr4vy/models/list_gift_card_balancesop.py +34 -1
  140. gr4vy/models/list_gift_cardsop.py +38 -25
  141. gr4vy/models/list_merchant_accountsop.py +14 -19
  142. gr4vy/models/list_payment_linksop.py +32 -19
  143. gr4vy/models/list_payment_method_network_tokensop.py +34 -1
  144. gr4vy/models/list_payment_method_payment_service_tokensop.py +30 -19
  145. gr4vy/models/list_payment_methodsop.py +48 -33
  146. gr4vy/models/list_payment_optionsop.py +34 -1
  147. gr4vy/models/list_payment_service_definitionsop.py +14 -19
  148. gr4vy/models/list_payment_servicesop.py +32 -25
  149. gr4vy/models/list_payoutsop.py +30 -19
  150. gr4vy/models/list_report_executionsop.py +30 -19
  151. gr4vy/models/list_reportsop.py +39 -26
  152. gr4vy/models/list_transaction_actionsop.py +34 -1
  153. gr4vy/models/list_transaction_eventsop.py +30 -19
  154. gr4vy/models/list_transaction_refundsop.py +34 -1
  155. gr4vy/models/list_transaction_settlementsop.py +34 -1
  156. gr4vy/models/list_transactionsop.py +124 -109
  157. gr4vy/models/mattildatapioptions.py +14 -19
  158. gr4vy/models/merchantaccount.py +52 -53
  159. gr4vy/models/merchantaccountcreate.py +52 -53
  160. gr4vy/models/merchantaccounts.py +14 -19
  161. gr4vy/models/merchantaccountupdate.py +54 -55
  162. gr4vy/models/mockcardmerchantadvicecodeoptions.py +14 -19
  163. gr4vy/models/mockcardoptions.py +14 -19
  164. gr4vy/models/networktoken.py +18 -1
  165. gr4vy/models/networktokencreate.py +14 -19
  166. gr4vy/models/networktokenpaymentmethodcreate.py +34 -35
  167. gr4vy/models/nuveiairlinedataoptions.py +14 -19
  168. gr4vy/models/nuveiidealoptions.py +14 -19
  169. gr4vy/models/nuveioptions.py +14 -19
  170. gr4vy/models/nuveipseoptions.py +13 -18
  171. gr4vy/models/oxxooptions.py +14 -19
  172. gr4vy/models/paymentlink.py +59 -60
  173. gr4vy/models/paymentlinkcreate.py +59 -60
  174. gr4vy/models/paymentlinks.py +14 -19
  175. gr4vy/models/paymentmethod.py +51 -52
  176. gr4vy/models/paymentmethodcard.py +14 -19
  177. gr4vy/models/paymentmethoddetailscard.py +14 -19
  178. gr4vy/models/paymentmethods.py +14 -19
  179. gr4vy/models/paymentmethodstoredcard.py +18 -1
  180. gr4vy/models/paymentmethodsummary.py +47 -48
  181. gr4vy/models/paymentoption.py +14 -19
  182. gr4vy/models/paymentoptioncontext.py +14 -19
  183. gr4vy/models/paymentoptioncontextapprovalui.py +14 -19
  184. gr4vy/models/paymentoptionrequest.py +18 -26
  185. gr4vy/models/paymentservice.py +35 -36
  186. gr4vy/models/paymentservicecreate.py +36 -37
  187. gr4vy/models/paymentservicedefinition.py +14 -19
  188. gr4vy/models/paymentservicedefinitions.py +14 -19
  189. gr4vy/models/paymentservices.py +14 -19
  190. gr4vy/models/paymentservicetoken.py +14 -19
  191. gr4vy/models/paymentservicetokencreate.py +14 -19
  192. gr4vy/models/paymentserviceupdate.py +45 -46
  193. gr4vy/models/payoutconnectionoptions.py +14 -19
  194. gr4vy/models/payoutcreate.py +34 -35
  195. gr4vy/models/payoutmerchant.py +14 -19
  196. gr4vy/models/payoutmerchantsummary.py +14 -19
  197. gr4vy/models/payoutpaymentservice.py +14 -19
  198. gr4vy/models/payoutsummaries.py +14 -19
  199. gr4vy/models/payoutsummary.py +35 -36
  200. gr4vy/models/paypaloptions.py +14 -19
  201. gr4vy/models/paypalshippingoptions.py +14 -19
  202. gr4vy/models/paypalshippingoptionsitem.py +14 -19
  203. gr4vy/models/plaidpaymentmethodcreate.py +31 -32
  204. gr4vy/models/powertranzoptions.py +14 -19
  205. gr4vy/models/recipient.py +14 -19
  206. gr4vy/models/redirectpaymentmethodcreate.py +18 -27
  207. gr4vy/models/refund.py +39 -40
  208. gr4vy/models/refunds.py +14 -19
  209. gr4vy/models/register_digital_wallet_domainop.py +34 -1
  210. gr4vy/models/report.py +33 -34
  211. gr4vy/models/reportcreate.py +14 -19
  212. gr4vy/models/reportexecution.py +18 -1
  213. gr4vy/models/reportexecutions.py +14 -19
  214. gr4vy/models/reportexecutionsummary.py +18 -1
  215. gr4vy/models/reportexecutionurlgenerate.py +18 -1
  216. gr4vy/models/reports.py +14 -19
  217. gr4vy/models/reportsummary.py +16 -19
  218. gr4vy/models/reportupdate.py +14 -19
  219. gr4vy/models/requiredcheckoutfields.py +14 -19
  220. gr4vy/models/resume_payment_method_network_tokenop.py +34 -1
  221. gr4vy/models/security.py +18 -1
  222. gr4vy/models/settlement.py +16 -25
  223. gr4vy/models/shippingdetails.py +35 -36
  224. gr4vy/models/shippingdetailscreate.py +18 -31
  225. gr4vy/models/shippingdetailsupdate.py +18 -31
  226. gr4vy/models/statementdescriptor.py +34 -35
  227. gr4vy/models/stripeconnectoptions.py +30 -31
  228. gr4vy/models/stripeoptions.py +14 -19
  229. gr4vy/models/suspend_payment_method_network_tokenop.py +34 -1
  230. gr4vy/models/sync_transactionop.py +34 -1
  231. gr4vy/models/threedsecure.py +14 -19
  232. gr4vy/models/threedsecuredatav1.py +14 -19
  233. gr4vy/models/threedsecuredatav2.py +14 -19
  234. gr4vy/models/threedsecureerror.py +14 -19
  235. gr4vy/models/threedsecurescenario.py +77 -0
  236. gr4vy/models/threedsecurescenarioconditions.py +84 -0
  237. gr4vy/models/threedsecurescenariocreate.py +24 -0
  238. gr4vy/models/threedsecurescenariooutcome.py +57 -0
  239. gr4vy/models/threedsecurescenariooutcomeauthentication.py +31 -0
  240. gr4vy/models/threedsecurescenariooutcomeresult.py +27 -0
  241. gr4vy/models/threedsecurescenarios.py +58 -0
  242. gr4vy/models/threedsecurescenarioupdate.py +54 -0
  243. gr4vy/models/threedsecurev2.py +34 -35
  244. gr4vy/models/tokenpaymentmethodcreate.py +14 -19
  245. gr4vy/models/transaction.py +116 -110
  246. gr4vy/models/transactionaction.py +18 -1
  247. gr4vy/models/transactionbuyer.py +31 -32
  248. gr4vy/models/transactioncancel.py +14 -19
  249. gr4vy/models/transactioncapture.py +14 -19
  250. gr4vy/models/transactioncapturecreate.py +14 -19
  251. gr4vy/models/transactionconnectionoptions.py +104 -105
  252. gr4vy/models/transactioncreate.py +88 -89
  253. gr4vy/models/transactionevent.py +18 -1
  254. gr4vy/models/transactionevents.py +14 -19
  255. gr4vy/models/transactiongiftcard.py +14 -19
  256. gr4vy/models/transactionpaymentmethod.py +49 -50
  257. gr4vy/models/transactionpaymentservice.py +18 -1
  258. gr4vy/models/transactionrefundallcreate.py +14 -19
  259. gr4vy/models/transactionrefundcreate.py +16 -25
  260. gr4vy/models/transactionretriesreportspec.py +18 -1
  261. gr4vy/models/transactionsreportspec.py +18 -1
  262. gr4vy/models/transactionsummaries.py +14 -19
  263. gr4vy/models/transactionsummary.py +50 -51
  264. gr4vy/models/transactionthreedsecuresummary.py +18 -33
  265. gr4vy/models/transactionupdate.py +14 -19
  266. gr4vy/models/transactionvoid.py +14 -19
  267. gr4vy/models/travelhubcustomdata.py +14 -19
  268. gr4vy/models/travelhuboptions.py +14 -19
  269. gr4vy/models/trustlyoptions.py +14 -19
  270. gr4vy/models/unregister_digital_wallet_domainop.py +34 -1
  271. gr4vy/models/update_buyer_shipping_detailsop.py +34 -1
  272. gr4vy/models/update_buyerop.py +34 -1
  273. gr4vy/models/update_checkout_sessionop.py +34 -1
  274. gr4vy/models/update_digital_walletop.py +34 -1
  275. gr4vy/models/update_payment_serviceop.py +34 -1
  276. gr4vy/models/update_reportop.py +34 -1
  277. gr4vy/models/update_three_ds_scenarioop.py +91 -0
  278. gr4vy/models/update_transactionop.py +34 -1
  279. gr4vy/models/verify_payment_service_credentialsop.py +34 -1
  280. gr4vy/models/verifycredentials.py +14 -19
  281. gr4vy/models/void_transactionop.py +30 -19
  282. gr4vy/models/wpayeverdaypayoptions.py +30 -31
  283. gr4vy/models/wpaypaytooptions.py +14 -19
  284. gr4vy/models/wpaypaytoresourceoptions.py +14 -19
  285. gr4vy/models/wpaypaytosimulationoptions.py +14 -19
  286. gr4vy/sdk.py +3 -0
  287. gr4vy/three_ds_scenarios.py +1322 -0
  288. gr4vy/utils/__init__.py +13 -1
  289. {gr4vy-1.10.11.dist-info → gr4vy-1.10.14.dist-info}/METADATA +8 -1
  290. gr4vy-1.10.14.dist-info/RECORD +464 -0
  291. gr4vy-1.10.11.dist-info/RECORD +0 -451
  292. {gr4vy-1.10.11.dist-info → gr4vy-1.10.14.dist-info}/WHEEL +0 -0
@@ -176,6 +176,8 @@ class TransactionTypedDict(TypedDict):
176
176
  r"""Total charges for import/export duties."""
177
177
  shipping_amount: NotRequired[Nullable[int]]
178
178
  r"""Total shipping amount."""
179
+ iso_response_code: NotRequired[Nullable[str]]
180
+ r"""This is the ISO8583 response code code received from the payment service."""
179
181
 
180
182
 
181
183
  class Transaction(BaseModel):
@@ -388,123 +390,127 @@ class Transaction(BaseModel):
388
390
  shipping_amount: OptionalNullable[int] = UNSET
389
391
  r"""Total shipping amount."""
390
392
 
393
+ iso_response_code: OptionalNullable[str] = UNSET
394
+ r"""This is the ISO8583 response code code received from the payment service."""
395
+
391
396
  @model_serializer(mode="wrap")
392
397
  def serialize_model(self, handler):
393
- optional_fields = [
394
- "type",
395
- "settled_currency",
396
- "country",
397
- "external_identifier",
398
- "payment_method",
399
- "method",
400
- "instrument_type",
401
- "error_code",
402
- "payment_service",
403
- "pending_review",
404
- "buyer",
405
- "raw_response_code",
406
- "raw_response_description",
407
- "shipping_details",
408
- "checkout_session_id",
409
- "gift_card_service",
410
- "airline",
411
- "auth_response_code",
412
- "avs_response_code",
413
- "cvv_response_code",
414
- "anti_fraud_decision",
415
- "cart_items",
416
- "statement_descriptor",
417
- "scheme_transaction_id",
418
- "three_d_secure",
419
- "payment_service_transaction_id",
420
- "additional_identifiers",
421
- "metadata",
422
- "authorized_at",
423
- "captured_at",
424
- "voided_at",
425
- "canceled_at",
426
- "approval_expires_at",
427
- "buyer_approval_timedout_at",
428
- "recipient",
429
- "merchant_advice_code",
430
- "installment_count",
431
- "session_token",
432
- "tax_amount",
433
- "merchant_tax_id",
434
- "purchase_order_number",
435
- "customer_reference_number",
436
- "amount_includes_tax",
437
- "supplier_order_number",
438
- "duty_amount",
439
- "shipping_amount",
440
- ]
441
- nullable_fields = [
442
- "settled_currency",
443
- "country",
444
- "external_identifier",
445
- "payment_method",
446
- "method",
447
- "instrument_type",
448
- "error_code",
449
- "payment_service",
450
- "buyer",
451
- "raw_response_code",
452
- "raw_response_description",
453
- "shipping_details",
454
- "checkout_session_id",
455
- "gift_card_service",
456
- "airline",
457
- "auth_response_code",
458
- "avs_response_code",
459
- "cvv_response_code",
460
- "anti_fraud_decision",
461
- "cart_items",
462
- "statement_descriptor",
463
- "scheme_transaction_id",
464
- "three_d_secure",
465
- "payment_service_transaction_id",
466
- "metadata",
467
- "authorized_at",
468
- "captured_at",
469
- "voided_at",
470
- "canceled_at",
471
- "approval_expires_at",
472
- "buyer_approval_timedout_at",
473
- "recipient",
474
- "merchant_advice_code",
475
- "installment_count",
476
- "session_token",
477
- "tax_amount",
478
- "merchant_tax_id",
479
- "purchase_order_number",
480
- "customer_reference_number",
481
- "amount_includes_tax",
482
- "supplier_order_number",
483
- "duty_amount",
484
- "shipping_amount",
485
- ]
486
- null_default_fields = []
487
-
398
+ optional_fields = set(
399
+ [
400
+ "type",
401
+ "settled_currency",
402
+ "country",
403
+ "external_identifier",
404
+ "payment_method",
405
+ "method",
406
+ "instrument_type",
407
+ "error_code",
408
+ "payment_service",
409
+ "pending_review",
410
+ "buyer",
411
+ "raw_response_code",
412
+ "raw_response_description",
413
+ "shipping_details",
414
+ "checkout_session_id",
415
+ "gift_card_service",
416
+ "airline",
417
+ "auth_response_code",
418
+ "avs_response_code",
419
+ "cvv_response_code",
420
+ "anti_fraud_decision",
421
+ "cart_items",
422
+ "statement_descriptor",
423
+ "scheme_transaction_id",
424
+ "three_d_secure",
425
+ "payment_service_transaction_id",
426
+ "additional_identifiers",
427
+ "metadata",
428
+ "authorized_at",
429
+ "captured_at",
430
+ "voided_at",
431
+ "canceled_at",
432
+ "approval_expires_at",
433
+ "buyer_approval_timedout_at",
434
+ "recipient",
435
+ "merchant_advice_code",
436
+ "installment_count",
437
+ "session_token",
438
+ "tax_amount",
439
+ "merchant_tax_id",
440
+ "purchase_order_number",
441
+ "customer_reference_number",
442
+ "amount_includes_tax",
443
+ "supplier_order_number",
444
+ "duty_amount",
445
+ "shipping_amount",
446
+ "iso_response_code",
447
+ ]
448
+ )
449
+ nullable_fields = set(
450
+ [
451
+ "settled_currency",
452
+ "country",
453
+ "external_identifier",
454
+ "payment_method",
455
+ "method",
456
+ "instrument_type",
457
+ "error_code",
458
+ "payment_service",
459
+ "buyer",
460
+ "raw_response_code",
461
+ "raw_response_description",
462
+ "shipping_details",
463
+ "checkout_session_id",
464
+ "gift_card_service",
465
+ "airline",
466
+ "auth_response_code",
467
+ "avs_response_code",
468
+ "cvv_response_code",
469
+ "anti_fraud_decision",
470
+ "cart_items",
471
+ "statement_descriptor",
472
+ "scheme_transaction_id",
473
+ "three_d_secure",
474
+ "payment_service_transaction_id",
475
+ "metadata",
476
+ "authorized_at",
477
+ "captured_at",
478
+ "voided_at",
479
+ "canceled_at",
480
+ "approval_expires_at",
481
+ "buyer_approval_timedout_at",
482
+ "recipient",
483
+ "merchant_advice_code",
484
+ "installment_count",
485
+ "session_token",
486
+ "tax_amount",
487
+ "merchant_tax_id",
488
+ "purchase_order_number",
489
+ "customer_reference_number",
490
+ "amount_includes_tax",
491
+ "supplier_order_number",
492
+ "duty_amount",
493
+ "shipping_amount",
494
+ "iso_response_code",
495
+ ]
496
+ )
488
497
  serialized = handler(self)
489
-
490
498
  m = {}
491
499
 
492
500
  for n, f in type(self).model_fields.items():
493
501
  k = f.alias or n
494
502
  val = serialized.get(k)
495
- serialized.pop(k, None)
496
-
497
- optional_nullable = k in optional_fields and k in nullable_fields
498
- is_set = (
499
- self.__pydantic_fields_set__.intersection({n})
500
- or k in null_default_fields
501
- ) # pylint: disable=no-member
502
-
503
- if val is not None and val != UNSET_SENTINEL:
504
- m[k] = val
505
- elif val != UNSET_SENTINEL and (
506
- not k in optional_fields or (optional_nullable and is_set)
507
- ):
508
- m[k] = val
503
+ is_nullable_and_explicitly_set = (
504
+ k in nullable_fields
505
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
506
+ )
507
+
508
+ if val != UNSET_SENTINEL:
509
+ if (
510
+ val is not None
511
+ or k not in optional_fields
512
+ or is_nullable_and_explicitly_set
513
+ ):
514
+ m[k] = val
509
515
 
510
516
  return m
@@ -4,9 +4,10 @@ from __future__ import annotations
4
4
  from .flow import Flow
5
5
  from .flowaction import FlowAction
6
6
  from datetime import datetime
7
- from gr4vy.types import BaseModel
7
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
8
8
  from gr4vy.utils import validate_const
9
9
  import pydantic
10
+ from pydantic import model_serializer
10
11
  from pydantic.functional_validators import AfterValidator
11
12
  from typing import Any, Dict, Literal, Optional
12
13
  from typing_extensions import Annotated, TypedDict
@@ -46,3 +47,19 @@ class TransactionAction(BaseModel):
46
47
  pydantic.Field(alias="type"),
47
48
  ] = "action"
48
49
  r"""Always `action`."""
50
+
51
+ @model_serializer(mode="wrap")
52
+ def serialize_model(self, handler):
53
+ optional_fields = set(["type"])
54
+ serialized = handler(self)
55
+ m = {}
56
+
57
+ for n, f in type(self).model_fields.items():
58
+ k = f.alias or n
59
+ val = serialized.get(k)
60
+
61
+ if val != UNSET_SENTINEL:
62
+ if val is not None or k not in optional_fields:
63
+ m[k] = val
64
+
65
+ return m
@@ -50,43 +50,42 @@ class TransactionBuyer(BaseModel):
50
50
 
51
51
  @model_serializer(mode="wrap")
52
52
  def serialize_model(self, handler):
53
- optional_fields = [
54
- "type",
55
- "id",
56
- "display_name",
57
- "external_identifier",
58
- "billing_details",
59
- "account_number",
60
- ]
61
- nullable_fields = [
62
- "id",
63
- "display_name",
64
- "external_identifier",
65
- "billing_details",
66
- "account_number",
67
- ]
68
- null_default_fields = []
69
-
53
+ optional_fields = set(
54
+ [
55
+ "type",
56
+ "id",
57
+ "display_name",
58
+ "external_identifier",
59
+ "billing_details",
60
+ "account_number",
61
+ ]
62
+ )
63
+ nullable_fields = set(
64
+ [
65
+ "id",
66
+ "display_name",
67
+ "external_identifier",
68
+ "billing_details",
69
+ "account_number",
70
+ ]
71
+ )
70
72
  serialized = handler(self)
71
-
72
73
  m = {}
73
74
 
74
75
  for n, f in type(self).model_fields.items():
75
76
  k = f.alias or n
76
77
  val = serialized.get(k)
77
- serialized.pop(k, None)
78
-
79
- optional_nullable = k in optional_fields and k in nullable_fields
80
- is_set = (
81
- self.__pydantic_fields_set__.intersection({n})
82
- or k in null_default_fields
83
- ) # pylint: disable=no-member
84
-
85
- if val is not None and val != UNSET_SENTINEL:
86
- m[k] = val
87
- elif val != UNSET_SENTINEL and (
88
- not k in optional_fields or (optional_nullable and is_set)
89
- ):
90
- m[k] = val
78
+ is_nullable_and_explicitly_set = (
79
+ k in nullable_fields
80
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
81
+ )
82
+
83
+ if val != UNSET_SENTINEL:
84
+ if (
85
+ val is not None
86
+ or k not in optional_fields
87
+ or is_nullable_and_explicitly_set
88
+ ):
89
+ m[k] = val
91
90
 
92
91
  return m
@@ -52,30 +52,25 @@ class TransactionCancel(BaseModel):
52
52
 
53
53
  @model_serializer(mode="wrap")
54
54
  def serialize_model(self, handler):
55
- optional_fields = ["type"]
56
- nullable_fields = ["code", "raw_response_code", "raw_response_description"]
57
- null_default_fields = []
58
-
55
+ optional_fields = set(["type"])
56
+ nullable_fields = set(["code", "raw_response_code", "raw_response_description"])
59
57
  serialized = handler(self)
60
-
61
58
  m = {}
62
59
 
63
60
  for n, f in type(self).model_fields.items():
64
61
  k = f.alias or n
65
62
  val = serialized.get(k)
66
- serialized.pop(k, None)
67
-
68
- optional_nullable = k in optional_fields and k in nullable_fields
69
- is_set = (
70
- self.__pydantic_fields_set__.intersection({n})
71
- or k in null_default_fields
72
- ) # pylint: disable=no-member
73
-
74
- if val is not None and val != UNSET_SENTINEL:
75
- m[k] = val
76
- elif val != UNSET_SENTINEL and (
77
- not k in optional_fields or (optional_nullable and is_set)
78
- ):
79
- m[k] = val
63
+ is_nullable_and_explicitly_set = (
64
+ k in nullable_fields
65
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
66
+ )
67
+
68
+ if val != UNSET_SENTINEL:
69
+ if (
70
+ val is not None
71
+ or k not in optional_fields
72
+ or is_nullable_and_explicitly_set
73
+ ):
74
+ m[k] = val
80
75
 
81
76
  return m
@@ -52,30 +52,25 @@ class TransactionCapture(BaseModel):
52
52
 
53
53
  @model_serializer(mode="wrap")
54
54
  def serialize_model(self, handler):
55
- optional_fields = ["type"]
56
- nullable_fields = ["code", "raw_response_code", "raw_response_description"]
57
- null_default_fields = []
58
-
55
+ optional_fields = set(["type"])
56
+ nullable_fields = set(["code", "raw_response_code", "raw_response_description"])
59
57
  serialized = handler(self)
60
-
61
58
  m = {}
62
59
 
63
60
  for n, f in type(self).model_fields.items():
64
61
  k = f.alias or n
65
62
  val = serialized.get(k)
66
- serialized.pop(k, None)
67
-
68
- optional_nullable = k in optional_fields and k in nullable_fields
69
- is_set = (
70
- self.__pydantic_fields_set__.intersection({n})
71
- or k in null_default_fields
72
- ) # pylint: disable=no-member
73
-
74
- if val is not None and val != UNSET_SENTINEL:
75
- m[k] = val
76
- elif val != UNSET_SENTINEL and (
77
- not k in optional_fields or (optional_nullable and is_set)
78
- ):
79
- m[k] = val
63
+ is_nullable_and_explicitly_set = (
64
+ k in nullable_fields
65
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
66
+ )
67
+
68
+ if val != UNSET_SENTINEL:
69
+ if (
70
+ val is not None
71
+ or k not in optional_fields
72
+ or is_nullable_and_explicitly_set
73
+ ):
74
+ m[k] = val
80
75
 
81
76
  return m
@@ -27,30 +27,25 @@ class TransactionCaptureCreate(BaseModel):
27
27
 
28
28
  @model_serializer(mode="wrap")
29
29
  def serialize_model(self, handler):
30
- optional_fields = ["amount", "airline"]
31
- nullable_fields = ["amount", "airline"]
32
- null_default_fields = []
33
-
30
+ optional_fields = set(["amount", "airline"])
31
+ nullable_fields = set(["amount", "airline"])
34
32
  serialized = handler(self)
35
-
36
33
  m = {}
37
34
 
38
35
  for n, f in type(self).model_fields.items():
39
36
  k = f.alias or n
40
37
  val = serialized.get(k)
41
- serialized.pop(k, None)
42
-
43
- optional_nullable = k in optional_fields and k in nullable_fields
44
- is_set = (
45
- self.__pydantic_fields_set__.intersection({n})
46
- or k in null_default_fields
47
- ) # pylint: disable=no-member
48
-
49
- if val is not None and val != UNSET_SENTINEL:
50
- m[k] = val
51
- elif val != UNSET_SENTINEL and (
52
- not k in optional_fields or (optional_nullable and is_set)
53
- ):
54
- m[k] = val
38
+ is_nullable_and_explicitly_set = (
39
+ k in nullable_fields
40
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
41
+ )
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if (
45
+ val is not None
46
+ or k not in optional_fields
47
+ or is_nullable_and_explicitly_set
48
+ ):
49
+ m[k] = val
55
50
 
56
51
  return m