gr4vy 1.10.12__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 +111 -112
  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.12.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.12.dist-info/RECORD +0 -451
  292. {gr4vy-1.10.12.dist-info → gr4vy-1.10.14.dist-info}/WHEEL +0 -0
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .transactionupdate import TransactionUpdate, TransactionUpdateTypedDict
5
- from gr4vy.types import BaseModel
5
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
6
6
  from gr4vy.utils import (
7
7
  FieldMetadata,
8
8
  HeaderMetadata,
@@ -10,6 +10,7 @@ from gr4vy.utils import (
10
10
  RequestMetadata,
11
11
  )
12
12
  import pydantic
13
+ from pydantic import model_serializer
13
14
  from typing import Optional
14
15
  from typing_extensions import Annotated, NotRequired, TypedDict
15
16
 
@@ -27,6 +28,22 @@ class UpdateTransactionGlobals(BaseModel):
27
28
  ] = None
28
29
  r"""The ID of the merchant account to use for this request."""
29
30
 
31
+ @model_serializer(mode="wrap")
32
+ def serialize_model(self, handler):
33
+ optional_fields = set(["merchant_account_id"])
34
+ serialized = handler(self)
35
+ m = {}
36
+
37
+ for n, f in type(self).model_fields.items():
38
+ k = f.alias or n
39
+ val = serialized.get(k)
40
+
41
+ if val != UNSET_SENTINEL:
42
+ if val is not None or k not in optional_fields:
43
+ m[k] = val
44
+
45
+ return m
46
+
30
47
 
31
48
  class UpdateTransactionRequestTypedDict(TypedDict):
32
49
  transaction_id: str
@@ -53,3 +70,19 @@ class UpdateTransactionRequest(BaseModel):
53
70
  FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
54
71
  ] = None
55
72
  r"""The ID of the merchant account to use for this request."""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = set(["merchant_account_id"])
77
+ serialized = handler(self)
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k)
83
+
84
+ if val != UNSET_SENTINEL:
85
+ if val is not None or k not in optional_fields:
86
+ m[k] = val
87
+
88
+ return m
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .verifycredentials import VerifyCredentials, VerifyCredentialsTypedDict
5
- from gr4vy.types import BaseModel
5
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
6
6
  from gr4vy.utils import FieldMetadata, HeaderMetadata, RequestMetadata
7
7
  import pydantic
8
+ from pydantic import model_serializer
8
9
  from typing import Optional
9
10
  from typing_extensions import Annotated, NotRequired, TypedDict
10
11
 
@@ -22,6 +23,22 @@ class VerifyPaymentServiceCredentialsGlobals(BaseModel):
22
23
  ] = None
23
24
  r"""The ID of the merchant account to use for this request."""
24
25
 
26
+ @model_serializer(mode="wrap")
27
+ def serialize_model(self, handler):
28
+ optional_fields = set(["merchant_account_id"])
29
+ serialized = handler(self)
30
+ m = {}
31
+
32
+ for n, f in type(self).model_fields.items():
33
+ k = f.alias or n
34
+ val = serialized.get(k)
35
+
36
+ if val != UNSET_SENTINEL:
37
+ if val is not None or k not in optional_fields:
38
+ m[k] = val
39
+
40
+ return m
41
+
25
42
 
26
43
  class VerifyPaymentServiceCredentialsRequestTypedDict(TypedDict):
27
44
  verify_credentials: VerifyCredentialsTypedDict
@@ -41,3 +58,19 @@ class VerifyPaymentServiceCredentialsRequest(BaseModel):
41
58
  FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
42
59
  ] = None
43
60
  r"""The ID of the merchant account to use for this request."""
61
+
62
+ @model_serializer(mode="wrap")
63
+ def serialize_model(self, handler):
64
+ optional_fields = set(["merchant_account_id"])
65
+ serialized = handler(self)
66
+ m = {}
67
+
68
+ for n, f in type(self).model_fields.items():
69
+ k = f.alias or n
70
+ val = serialized.get(k)
71
+
72
+ if val != UNSET_SENTINEL:
73
+ if val is not None or k not in optional_fields:
74
+ m[k] = val
75
+
76
+ return m
@@ -29,30 +29,25 @@ class VerifyCredentials(BaseModel):
29
29
 
30
30
  @model_serializer(mode="wrap")
31
31
  def serialize_model(self, handler):
32
- optional_fields = ["payment_service_id"]
33
- nullable_fields = ["payment_service_id"]
34
- null_default_fields = []
35
-
32
+ optional_fields = set(["payment_service_id"])
33
+ nullable_fields = set(["payment_service_id"])
36
34
  serialized = handler(self)
37
-
38
35
  m = {}
39
36
 
40
37
  for n, f in type(self).model_fields.items():
41
38
  k = f.alias or n
42
39
  val = serialized.get(k)
43
- serialized.pop(k, None)
44
-
45
- optional_nullable = k in optional_fields and k in nullable_fields
46
- is_set = (
47
- self.__pydantic_fields_set__.intersection({n})
48
- or k in null_default_fields
49
- ) # pylint: disable=no-member
50
-
51
- if val is not None and val != UNSET_SENTINEL:
52
- m[k] = val
53
- elif val != UNSET_SENTINEL and (
54
- not k in optional_fields or (optional_nullable and is_set)
55
- ):
56
- m[k] = val
40
+ is_nullable_and_explicitly_set = (
41
+ k in nullable_fields
42
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
43
+ )
44
+
45
+ if val != UNSET_SENTINEL:
46
+ if (
47
+ val is not None
48
+ or k not in optional_fields
49
+ or is_nullable_and_explicitly_set
50
+ ):
51
+ m[k] = val
57
52
 
58
53
  return m
@@ -24,6 +24,22 @@ class VoidTransactionGlobals(BaseModel):
24
24
  ] = None
25
25
  r"""The ID of the merchant account to use for this request."""
26
26
 
27
+ @model_serializer(mode="wrap")
28
+ def serialize_model(self, handler):
29
+ optional_fields = set(["merchant_account_id"])
30
+ serialized = handler(self)
31
+ m = {}
32
+
33
+ for n, f in type(self).model_fields.items():
34
+ k = f.alias or n
35
+ val = serialized.get(k)
36
+
37
+ if val != UNSET_SENTINEL:
38
+ if val is not None or k not in optional_fields:
39
+ m[k] = val
40
+
41
+ return m
42
+
27
43
 
28
44
  class VoidTransactionRequestTypedDict(TypedDict):
29
45
  transaction_id: str
@@ -55,31 +71,26 @@ class VoidTransactionRequest(BaseModel):
55
71
 
56
72
  @model_serializer(mode="wrap")
57
73
  def serialize_model(self, handler):
58
- optional_fields = ["prefer", "merchant_account_id"]
59
- nullable_fields = ["prefer"]
60
- null_default_fields = []
61
-
74
+ optional_fields = set(["prefer", "merchant_account_id"])
75
+ nullable_fields = set(["prefer"])
62
76
  serialized = handler(self)
63
-
64
77
  m = {}
65
78
 
66
79
  for n, f in type(self).model_fields.items():
67
80
  k = f.alias or n
68
81
  val = serialized.get(k)
69
- serialized.pop(k, None)
70
-
71
- optional_nullable = k in optional_fields and k in nullable_fields
72
- is_set = (
73
- self.__pydantic_fields_set__.intersection({n})
74
- or k in null_default_fields
75
- ) # pylint: disable=no-member
76
-
77
- if val is not None and val != UNSET_SENTINEL:
78
- m[k] = val
79
- elif val != UNSET_SENTINEL and (
80
- not k in optional_fields or (optional_nullable and is_set)
81
- ):
82
- m[k] = val
82
+ is_nullable_and_explicitly_set = (
83
+ k in nullable_fields
84
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
85
+ )
86
+
87
+ if val != UNSET_SENTINEL:
88
+ if (
89
+ val is not None
90
+ or k not in optional_fields
91
+ or is_nullable_and_explicitly_set
92
+ ):
93
+ m[k] = val
83
94
 
84
95
  return m
85
96
 
@@ -47,42 +47,41 @@ class WpayEverdaypayOptions(BaseModel):
47
47
 
48
48
  @model_serializer(mode="wrap")
49
49
  def serialize_model(self, handler):
50
- optional_fields = [
51
- "merchant_defined_data",
52
- "customerId",
53
- "rewardsAccessToken",
54
- "deviceId",
55
- "postPaymentRedirect",
56
- ]
57
- nullable_fields = [
58
- "merchant_defined_data",
59
- "customerId",
60
- "rewardsAccessToken",
61
- "deviceId",
62
- "postPaymentRedirect",
63
- ]
64
- null_default_fields = []
65
-
50
+ optional_fields = set(
51
+ [
52
+ "merchant_defined_data",
53
+ "customerId",
54
+ "rewardsAccessToken",
55
+ "deviceId",
56
+ "postPaymentRedirect",
57
+ ]
58
+ )
59
+ nullable_fields = set(
60
+ [
61
+ "merchant_defined_data",
62
+ "customerId",
63
+ "rewardsAccessToken",
64
+ "deviceId",
65
+ "postPaymentRedirect",
66
+ ]
67
+ )
66
68
  serialized = handler(self)
67
-
68
69
  m = {}
69
70
 
70
71
  for n, f in type(self).model_fields.items():
71
72
  k = f.alias or n
72
73
  val = serialized.get(k)
73
- serialized.pop(k, None)
74
-
75
- optional_nullable = k in optional_fields and k in nullable_fields
76
- is_set = (
77
- self.__pydantic_fields_set__.intersection({n})
78
- or k in null_default_fields
79
- ) # pylint: disable=no-member
80
-
81
- if val is not None and val != UNSET_SENTINEL:
82
- m[k] = val
83
- elif val != UNSET_SENTINEL and (
84
- not k in optional_fields or (optional_nullable and is_set)
85
- ):
86
- m[k] = val
74
+ is_nullable_and_explicitly_set = (
75
+ k in nullable_fields
76
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
77
+ )
78
+
79
+ if val != UNSET_SENTINEL:
80
+ if (
81
+ val is not None
82
+ or k not in optional_fields
83
+ or is_nullable_and_explicitly_set
84
+ ):
85
+ m[k] = val
87
86
 
88
87
  return m
@@ -31,30 +31,25 @@ class WpayPaytoOptions(BaseModel):
31
31
 
32
32
  @model_serializer(mode="wrap")
33
33
  def serialize_model(self, handler):
34
- optional_fields = ["instrument", "payment", "refund"]
35
- nullable_fields = ["instrument", "payment", "refund"]
36
- null_default_fields = []
37
-
34
+ optional_fields = set(["instrument", "payment", "refund"])
35
+ nullable_fields = set(["instrument", "payment", "refund"])
38
36
  serialized = handler(self)
39
-
40
37
  m = {}
41
38
 
42
39
  for n, f in type(self).model_fields.items():
43
40
  k = f.alias or n
44
41
  val = serialized.get(k)
45
- serialized.pop(k, None)
46
-
47
- optional_nullable = k in optional_fields and k in nullable_fields
48
- is_set = (
49
- self.__pydantic_fields_set__.intersection({n})
50
- or k in null_default_fields
51
- ) # pylint: disable=no-member
52
-
53
- if val is not None and val != UNSET_SENTINEL:
54
- m[k] = val
55
- elif val != UNSET_SENTINEL and (
56
- not k in optional_fields or (optional_nullable and is_set)
57
- ):
58
- m[k] = val
42
+ is_nullable_and_explicitly_set = (
43
+ k in nullable_fields
44
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
45
+ )
46
+
47
+ if val != UNSET_SENTINEL:
48
+ if (
49
+ val is not None
50
+ or k not in optional_fields
51
+ or is_nullable_and_explicitly_set
52
+ ):
53
+ m[k] = val
59
54
 
60
55
  return m
@@ -21,30 +21,25 @@ class WpayPaytoResourceOptions(BaseModel):
21
21
 
22
22
  @model_serializer(mode="wrap")
23
23
  def serialize_model(self, handler):
24
- optional_fields = ["simulation"]
25
- nullable_fields = ["simulation"]
26
- null_default_fields = []
27
-
24
+ optional_fields = set(["simulation"])
25
+ nullable_fields = set(["simulation"])
28
26
  serialized = handler(self)
29
-
30
27
  m = {}
31
28
 
32
29
  for n, f in type(self).model_fields.items():
33
30
  k = f.alias or n
34
31
  val = serialized.get(k)
35
- serialized.pop(k, None)
36
-
37
- optional_nullable = k in optional_fields and k in nullable_fields
38
- is_set = (
39
- self.__pydantic_fields_set__.intersection({n})
40
- or k in null_default_fields
41
- ) # pylint: disable=no-member
42
-
43
- if val is not None and val != UNSET_SENTINEL:
44
- m[k] = val
45
- elif val != UNSET_SENTINEL and (
46
- not k in optional_fields or (optional_nullable and is_set)
47
- ):
48
- m[k] = val
32
+ is_nullable_and_explicitly_set = (
33
+ k in nullable_fields
34
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
35
+ )
36
+
37
+ if val != UNSET_SENTINEL:
38
+ if (
39
+ val is not None
40
+ or k not in optional_fields
41
+ or is_nullable_and_explicitly_set
42
+ ):
43
+ m[k] = val
49
44
 
50
45
  return m
@@ -22,30 +22,25 @@ class WpayPaytoSimulationOptions(BaseModel):
22
22
 
23
23
  @model_serializer(mode="wrap")
24
24
  def serialize_model(self, handler):
25
- optional_fields = ["simulate", "delay"]
26
- nullable_fields = ["simulate", "delay"]
27
- null_default_fields = []
28
-
25
+ optional_fields = set(["simulate", "delay"])
26
+ nullable_fields = set(["simulate", "delay"])
29
27
  serialized = handler(self)
30
-
31
28
  m = {}
32
29
 
33
30
  for n, f in type(self).model_fields.items():
34
31
  k = f.alias or n
35
32
  val = serialized.get(k)
36
- serialized.pop(k, None)
37
-
38
- optional_nullable = k in optional_fields and k in nullable_fields
39
- is_set = (
40
- self.__pydantic_fields_set__.intersection({n})
41
- or k in null_default_fields
42
- ) # pylint: disable=no-member
43
-
44
- if val is not None and val != UNSET_SENTINEL:
45
- m[k] = val
46
- elif val != UNSET_SENTINEL and (
47
- not k in optional_fields or (optional_nullable and is_set)
48
- ):
49
- m[k] = val
33
+ is_nullable_and_explicitly_set = (
34
+ k in nullable_fields
35
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
36
+ )
37
+
38
+ if val != UNSET_SENTINEL:
39
+ if (
40
+ val is not None
41
+ or k not in optional_fields
42
+ or is_nullable_and_explicitly_set
43
+ ):
44
+ m[k] = val
50
45
 
51
46
  return m
gr4vy/sdk.py CHANGED
@@ -33,6 +33,7 @@ if TYPE_CHECKING:
33
33
  from gr4vy.refunds_sdk import RefundsSDK
34
34
  from gr4vy.report_executions_sdk import ReportExecutionsSDK
35
35
  from gr4vy.reports_sdk import ReportsSDK
36
+ from gr4vy.three_ds_scenarios import ThreeDsScenarios
36
37
  from gr4vy.transactions import Transactions
37
38
 
38
39
 
@@ -55,6 +56,7 @@ class Gr4vy(BaseSDK):
55
56
  report_executions: "ReportExecutionsSDK"
56
57
  checkout_sessions: "CheckoutSessions"
57
58
  merchant_accounts: "MerchantAccountsSDK"
59
+ three_ds_scenarios: "ThreeDsScenarios"
58
60
  payouts: "Payouts"
59
61
  payment_links: "PaymentLinksSDK"
60
62
  _sub_sdk_map = {
@@ -80,6 +82,7 @@ class Gr4vy(BaseSDK):
80
82
  "report_executions": ("gr4vy.report_executions_sdk", "ReportExecutionsSDK"),
81
83
  "checkout_sessions": ("gr4vy.checkout_sessions", "CheckoutSessions"),
82
84
  "merchant_accounts": ("gr4vy.merchant_accounts_sdk", "MerchantAccountsSDK"),
85
+ "three_ds_scenarios": ("gr4vy.three_ds_scenarios", "ThreeDsScenarios"),
83
86
  "payouts": ("gr4vy.payouts", "Payouts"),
84
87
  "payment_links": ("gr4vy.payment_links_sdk", "PaymentLinksSDK"),
85
88
  }