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
@@ -34,30 +34,29 @@ class BraintreeOptions(BaseModel):
34
34
 
35
35
  @model_serializer(mode="wrap")
36
36
  def serialize_model(self, handler):
37
- optional_fields = ["discount_amount", "custom_fields", "dynamic_data_fields"]
38
- nullable_fields = ["discount_amount", "custom_fields", "dynamic_data_fields"]
39
- null_default_fields = []
40
-
37
+ optional_fields = set(
38
+ ["discount_amount", "custom_fields", "dynamic_data_fields"]
39
+ )
40
+ nullable_fields = set(
41
+ ["discount_amount", "custom_fields", "dynamic_data_fields"]
42
+ )
41
43
  serialized = handler(self)
42
-
43
44
  m = {}
44
45
 
45
46
  for n, f in type(self).model_fields.items():
46
47
  k = f.alias or n
47
48
  val = serialized.get(k)
48
- serialized.pop(k, None)
49
-
50
- optional_nullable = k in optional_fields and k in nullable_fields
51
- is_set = (
52
- self.__pydantic_fields_set__.intersection({n})
53
- or k in null_default_fields
54
- ) # pylint: disable=no-member
55
-
56
- if val is not None and val != UNSET_SENTINEL:
57
- m[k] = val
58
- elif val != UNSET_SENTINEL and (
59
- not k in optional_fields or (optional_nullable and is_set)
60
- ):
61
- m[k] = val
49
+ is_nullable_and_explicitly_set = (
50
+ k in nullable_fields
51
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
52
+ )
53
+
54
+ if val != UNSET_SENTINEL:
55
+ if (
56
+ val is not None
57
+ or k not in optional_fields
58
+ or is_nullable_and_explicitly_set
59
+ ):
60
+ m[k] = val
62
61
 
63
62
  return m
@@ -70,30 +70,25 @@ class BrowserInfo(BaseModel):
70
70
 
71
71
  @model_serializer(mode="wrap")
72
72
  def serialize_model(self, handler):
73
- optional_fields = ["accept_header"]
74
- nullable_fields = ["accept_header"]
75
- null_default_fields = []
76
-
73
+ optional_fields = set(["accept_header"])
74
+ nullable_fields = set(["accept_header"])
77
75
  serialized = handler(self)
78
-
79
76
  m = {}
80
77
 
81
78
  for n, f in type(self).model_fields.items():
82
79
  k = f.alias or n
83
80
  val = serialized.get(k)
84
- serialized.pop(k, None)
85
-
86
- optional_nullable = k in optional_fields and k in nullable_fields
87
- is_set = (
88
- self.__pydantic_fields_set__.intersection({n})
89
- or k in null_default_fields
90
- ) # pylint: disable=no-member
91
-
92
- if val is not None and val != UNSET_SENTINEL:
93
- m[k] = val
94
- elif val != UNSET_SENTINEL and (
95
- not k in optional_fields or (optional_nullable and is_set)
96
- ):
97
- m[k] = val
81
+ is_nullable_and_explicitly_set = (
82
+ k in nullable_fields
83
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
84
+ )
85
+
86
+ if val != UNSET_SENTINEL:
87
+ if (
88
+ val is not None
89
+ or k not in optional_fields
90
+ or is_nullable_and_explicitly_set
91
+ ):
92
+ m[k] = val
98
93
 
99
94
  return m
gr4vy/models/buyer.py CHANGED
@@ -66,43 +66,42 @@ class Buyer(BaseModel):
66
66
 
67
67
  @model_serializer(mode="wrap")
68
68
  def serialize_model(self, handler):
69
- optional_fields = [
70
- "type",
71
- "id",
72
- "display_name",
73
- "external_identifier",
74
- "billing_details",
75
- "account_number",
76
- ]
77
- nullable_fields = [
78
- "id",
79
- "display_name",
80
- "external_identifier",
81
- "billing_details",
82
- "account_number",
83
- ]
84
- null_default_fields = []
85
-
69
+ optional_fields = set(
70
+ [
71
+ "type",
72
+ "id",
73
+ "display_name",
74
+ "external_identifier",
75
+ "billing_details",
76
+ "account_number",
77
+ ]
78
+ )
79
+ nullable_fields = set(
80
+ [
81
+ "id",
82
+ "display_name",
83
+ "external_identifier",
84
+ "billing_details",
85
+ "account_number",
86
+ ]
87
+ )
86
88
  serialized = handler(self)
87
-
88
89
  m = {}
89
90
 
90
91
  for n, f in type(self).model_fields.items():
91
92
  k = f.alias or n
92
93
  val = serialized.get(k)
93
- serialized.pop(k, None)
94
-
95
- optional_nullable = k in optional_fields and k in nullable_fields
96
- is_set = (
97
- self.__pydantic_fields_set__.intersection({n})
98
- or k in null_default_fields
99
- ) # pylint: disable=no-member
100
-
101
- if val is not None and val != UNSET_SENTINEL:
102
- m[k] = val
103
- elif val != UNSET_SENTINEL and (
104
- not k in optional_fields or (optional_nullable and is_set)
105
- ):
106
- m[k] = val
94
+ is_nullable_and_explicitly_set = (
95
+ k in nullable_fields
96
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
97
+ )
98
+
99
+ if val != UNSET_SENTINEL:
100
+ if (
101
+ val is not None
102
+ or k not in optional_fields
103
+ or is_nullable_and_explicitly_set
104
+ ):
105
+ m[k] = val
107
106
 
108
107
  return m
@@ -37,40 +37,29 @@ class BuyerCreate(BaseModel):
37
37
 
38
38
  @model_serializer(mode="wrap")
39
39
  def serialize_model(self, handler):
40
- optional_fields = [
41
- "display_name",
42
- "external_identifier",
43
- "billing_details",
44
- "account_number",
45
- ]
46
- nullable_fields = [
47
- "display_name",
48
- "external_identifier",
49
- "billing_details",
50
- "account_number",
51
- ]
52
- null_default_fields = []
53
-
40
+ optional_fields = set(
41
+ ["display_name", "external_identifier", "billing_details", "account_number"]
42
+ )
43
+ nullable_fields = set(
44
+ ["display_name", "external_identifier", "billing_details", "account_number"]
45
+ )
54
46
  serialized = handler(self)
55
-
56
47
  m = {}
57
48
 
58
49
  for n, f in type(self).model_fields.items():
59
50
  k = f.alias or n
60
51
  val = serialized.get(k)
61
- serialized.pop(k, None)
62
-
63
- optional_nullable = k in optional_fields and k in nullable_fields
64
- is_set = (
65
- self.__pydantic_fields_set__.intersection({n})
66
- or k in null_default_fields
67
- ) # pylint: disable=no-member
68
-
69
- if val is not None and val != UNSET_SENTINEL:
70
- m[k] = val
71
- elif val != UNSET_SENTINEL and (
72
- not k in optional_fields or (optional_nullable and is_set)
73
- ):
74
- m[k] = val
52
+ is_nullable_and_explicitly_set = (
53
+ k in nullable_fields
54
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
55
+ )
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if (
59
+ val is not None
60
+ or k not in optional_fields
61
+ or is_nullable_and_explicitly_set
62
+ ):
63
+ m[k] = val
75
64
 
76
65
  return m
gr4vy/models/buyers.py CHANGED
@@ -34,30 +34,25 @@ class Buyers(BaseModel):
34
34
 
35
35
  @model_serializer(mode="wrap")
36
36
  def serialize_model(self, handler):
37
- optional_fields = ["limit", "next_cursor", "previous_cursor"]
38
- nullable_fields = ["next_cursor", "previous_cursor"]
39
- null_default_fields = []
40
-
37
+ optional_fields = set(["limit", "next_cursor", "previous_cursor"])
38
+ nullable_fields = set(["next_cursor", "previous_cursor"])
41
39
  serialized = handler(self)
42
-
43
40
  m = {}
44
41
 
45
42
  for n, f in type(self).model_fields.items():
46
43
  k = f.alias or n
47
44
  val = serialized.get(k)
48
- serialized.pop(k, None)
49
-
50
- optional_nullable = k in optional_fields and k in nullable_fields
51
- is_set = (
52
- self.__pydantic_fields_set__.intersection({n})
53
- or k in null_default_fields
54
- ) # pylint: disable=no-member
55
-
56
- if val is not None and val != UNSET_SENTINEL:
57
- m[k] = val
58
- elif val != UNSET_SENTINEL and (
59
- not k in optional_fields or (optional_nullable and is_set)
60
- ):
61
- m[k] = val
45
+ is_nullable_and_explicitly_set = (
46
+ k in nullable_fields
47
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
48
+ )
49
+
50
+ if val != UNSET_SENTINEL:
51
+ if (
52
+ val is not None
53
+ or k not in optional_fields
54
+ or is_nullable_and_explicitly_set
55
+ ):
56
+ m[k] = val
62
57
 
63
58
  return m
@@ -37,40 +37,29 @@ class BuyerUpdate(BaseModel):
37
37
 
38
38
  @model_serializer(mode="wrap")
39
39
  def serialize_model(self, handler):
40
- optional_fields = [
41
- "display_name",
42
- "external_identifier",
43
- "account_number",
44
- "billing_details",
45
- ]
46
- nullable_fields = [
47
- "display_name",
48
- "external_identifier",
49
- "account_number",
50
- "billing_details",
51
- ]
52
- null_default_fields = []
53
-
40
+ optional_fields = set(
41
+ ["display_name", "external_identifier", "account_number", "billing_details"]
42
+ )
43
+ nullable_fields = set(
44
+ ["display_name", "external_identifier", "account_number", "billing_details"]
45
+ )
54
46
  serialized = handler(self)
55
-
56
47
  m = {}
57
48
 
58
49
  for n, f in type(self).model_fields.items():
59
50
  k = f.alias or n
60
51
  val = serialized.get(k)
61
- serialized.pop(k, None)
62
-
63
- optional_nullable = k in optional_fields and k in nullable_fields
64
- is_set = (
65
- self.__pydantic_fields_set__.intersection({n})
66
- or k in null_default_fields
67
- ) # pylint: disable=no-member
68
-
69
- if val is not None and val != UNSET_SENTINEL:
70
- m[k] = val
71
- elif val != UNSET_SENTINEL and (
72
- not k in optional_fields or (optional_nullable and is_set)
73
- ):
74
- m[k] = val
52
+ is_nullable_and_explicitly_set = (
53
+ k in nullable_fields
54
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
55
+ )
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if (
59
+ val is not None
60
+ or k not in optional_fields
61
+ or is_nullable_and_explicitly_set
62
+ ):
63
+ m[k] = val
75
64
 
76
65
  return m
@@ -1,9 +1,10 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from gr4vy.types import BaseModel
4
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
5
5
  from gr4vy.utils import FieldMetadata, HeaderMetadata, PathParamMetadata
6
6
  import pydantic
7
+ from pydantic import model_serializer
7
8
  from typing import Optional
8
9
  from typing_extensions import Annotated, NotRequired, TypedDict
9
10
 
@@ -21,6 +22,22 @@ class CancelTransactionGlobals(BaseModel):
21
22
  ] = None
22
23
  r"""The ID of the merchant account to use for this request."""
23
24
 
25
+ @model_serializer(mode="wrap")
26
+ def serialize_model(self, handler):
27
+ optional_fields = set(["merchant_account_id"])
28
+ serialized = handler(self)
29
+ m = {}
30
+
31
+ for n, f in type(self).model_fields.items():
32
+ k = f.alias or n
33
+ val = serialized.get(k)
34
+
35
+ if val != UNSET_SENTINEL:
36
+ if val is not None or k not in optional_fields:
37
+ m[k] = val
38
+
39
+ return m
40
+
24
41
 
25
42
  class CancelTransactionRequestTypedDict(TypedDict):
26
43
  transaction_id: str
@@ -41,3 +58,19 @@ class CancelTransactionRequest(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
@@ -33,6 +33,22 @@ class CaptureTransactionGlobals(BaseModel):
33
33
  ] = None
34
34
  r"""The ID of the merchant account to use for this request."""
35
35
 
36
+ @model_serializer(mode="wrap")
37
+ def serialize_model(self, handler):
38
+ optional_fields = set(["merchant_account_id"])
39
+ serialized = handler(self)
40
+ m = {}
41
+
42
+ for n, f in type(self).model_fields.items():
43
+ k = f.alias or n
44
+ val = serialized.get(k)
45
+
46
+ if val != UNSET_SENTINEL:
47
+ if val is not None or k not in optional_fields:
48
+ m[k] = val
49
+
50
+ return m
51
+
36
52
 
37
53
  class CaptureTransactionRequestTypedDict(TypedDict):
38
54
  transaction_id: str
@@ -70,31 +86,26 @@ class CaptureTransactionRequest(BaseModel):
70
86
 
71
87
  @model_serializer(mode="wrap")
72
88
  def serialize_model(self, handler):
73
- optional_fields = ["prefer", "merchant_account_id"]
74
- nullable_fields = ["prefer"]
75
- null_default_fields = []
76
-
89
+ optional_fields = set(["prefer", "merchant_account_id"])
90
+ nullable_fields = set(["prefer"])
77
91
  serialized = handler(self)
78
-
79
92
  m = {}
80
93
 
81
94
  for n, f in type(self).model_fields.items():
82
95
  k = f.alias or n
83
96
  val = serialized.get(k)
84
- serialized.pop(k, None)
85
-
86
- optional_nullable = k in optional_fields and k in nullable_fields
87
- is_set = (
88
- self.__pydantic_fields_set__.intersection({n})
89
- or k in null_default_fields
90
- ) # pylint: disable=no-member
91
-
92
- if val is not None and val != UNSET_SENTINEL:
93
- m[k] = val
94
- elif val != UNSET_SENTINEL and (
95
- not k in optional_fields or (optional_nullable and is_set)
96
- ):
97
- m[k] = val
97
+ is_nullable_and_explicitly_set = (
98
+ k in nullable_fields
99
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
100
+ )
101
+
102
+ if val != UNSET_SENTINEL:
103
+ if (
104
+ val is not None
105
+ or k not in optional_fields
106
+ or is_nullable_and_explicitly_set
107
+ ):
108
+ m[k] = val
98
109
 
99
110
  return m
100
111
 
@@ -59,43 +59,42 @@ class CardPaymentMethodCreate(BaseModel):
59
59
 
60
60
  @model_serializer(mode="wrap")
61
61
  def serialize_model(self, handler):
62
- optional_fields = [
63
- "buyer_external_identifier",
64
- "buyer_id",
65
- "external_identifier",
66
- "card_type",
67
- "method",
68
- "security_code",
69
- ]
70
- nullable_fields = [
71
- "buyer_external_identifier",
72
- "buyer_id",
73
- "external_identifier",
74
- "card_type",
75
- "security_code",
76
- ]
77
- null_default_fields = []
78
-
62
+ optional_fields = set(
63
+ [
64
+ "buyer_external_identifier",
65
+ "buyer_id",
66
+ "external_identifier",
67
+ "card_type",
68
+ "method",
69
+ "security_code",
70
+ ]
71
+ )
72
+ nullable_fields = set(
73
+ [
74
+ "buyer_external_identifier",
75
+ "buyer_id",
76
+ "external_identifier",
77
+ "card_type",
78
+ "security_code",
79
+ ]
80
+ )
79
81
  serialized = handler(self)
80
-
81
82
  m = {}
82
83
 
83
84
  for n, f in type(self).model_fields.items():
84
85
  k = f.alias or n
85
86
  val = serialized.get(k)
86
- serialized.pop(k, None)
87
-
88
- optional_nullable = k in optional_fields and k in nullable_fields
89
- is_set = (
90
- self.__pydantic_fields_set__.intersection({n})
91
- or k in null_default_fields
92
- ) # pylint: disable=no-member
93
-
94
- if val is not None and val != UNSET_SENTINEL:
95
- m[k] = val
96
- elif val != UNSET_SENTINEL and (
97
- not k in optional_fields or (optional_nullable and is_set)
98
- ):
99
- m[k] = val
87
+ is_nullable_and_explicitly_set = (
88
+ k in nullable_fields
89
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
90
+ )
91
+
92
+ if val != UNSET_SENTINEL:
93
+ if (
94
+ val is not None
95
+ or k not in optional_fields
96
+ or is_nullable_and_explicitly_set
97
+ ):
98
+ m[k] = val
100
99
 
101
100
  return m
@@ -1,9 +1,10 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from gr4vy.types import BaseModel
4
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
5
5
  from gr4vy.utils import validate_const
6
6
  import pydantic
7
+ from pydantic import model_serializer
7
8
  from pydantic.functional_validators import AfterValidator
8
9
  from typing import Literal, Optional
9
10
  from typing_extensions import Annotated, TypedDict
@@ -38,3 +39,19 @@ class CardSchemeDefinition(BaseModel):
38
39
  pydantic.Field(alias="type"),
39
40
  ] = "card-scheme-definition"
40
41
  r"""Always `card-scheme-definition`."""
42
+
43
+ @model_serializer(mode="wrap")
44
+ def serialize_model(self, handler):
45
+ optional_fields = set(["type"])
46
+ serialized = handler(self)
47
+ m = {}
48
+
49
+ for n, f in type(self).model_fields.items():
50
+ k = f.alias or n
51
+ val = serialized.get(k)
52
+
53
+ if val != UNSET_SENTINEL:
54
+ if val is not None or k not in optional_fields:
55
+ m[k] = val
56
+
57
+ return m
@@ -68,45 +68,44 @@ class CardWithURLPaymentMethodCreate(BaseModel):
68
68
 
69
69
  @model_serializer(mode="wrap")
70
70
  def serialize_model(self, handler):
71
- optional_fields = [
72
- "buyer_external_identifier",
73
- "buyer_id",
74
- "external_identifier",
75
- "card_type",
76
- "method",
77
- "security_code",
78
- "redirect_url",
79
- ]
80
- nullable_fields = [
81
- "buyer_external_identifier",
82
- "buyer_id",
83
- "external_identifier",
84
- "card_type",
85
- "security_code",
86
- "redirect_url",
87
- ]
88
- null_default_fields = []
89
-
71
+ optional_fields = set(
72
+ [
73
+ "buyer_external_identifier",
74
+ "buyer_id",
75
+ "external_identifier",
76
+ "card_type",
77
+ "method",
78
+ "security_code",
79
+ "redirect_url",
80
+ ]
81
+ )
82
+ nullable_fields = set(
83
+ [
84
+ "buyer_external_identifier",
85
+ "buyer_id",
86
+ "external_identifier",
87
+ "card_type",
88
+ "security_code",
89
+ "redirect_url",
90
+ ]
91
+ )
90
92
  serialized = handler(self)
91
-
92
93
  m = {}
93
94
 
94
95
  for n, f in type(self).model_fields.items():
95
96
  k = f.alias or n
96
97
  val = serialized.get(k)
97
- serialized.pop(k, None)
98
-
99
- optional_nullable = k in optional_fields and k in nullable_fields
100
- is_set = (
101
- self.__pydantic_fields_set__.intersection({n})
102
- or k in null_default_fields
103
- ) # pylint: disable=no-member
104
-
105
- if val is not None and val != UNSET_SENTINEL:
106
- m[k] = val
107
- elif val != UNSET_SENTINEL and (
108
- not k in optional_fields or (optional_nullable and is_set)
109
- ):
110
- m[k] = val
98
+ is_nullable_and_explicitly_set = (
99
+ k in nullable_fields
100
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
101
+ )
102
+
103
+ if val != UNSET_SENTINEL:
104
+ if (
105
+ val is not None
106
+ or k not in optional_fields
107
+ or is_nullable_and_explicitly_set
108
+ ):
109
+ m[k] = val
111
110
 
112
111
  return m