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
@@ -109,61 +109,60 @@ class TransactionPaymentMethod(BaseModel):
109
109
 
110
110
  @model_serializer(mode="wrap")
111
111
  def serialize_model(self, handler):
112
- optional_fields = [
113
- "type",
114
- "approval_url",
115
- "country",
116
- "currency",
117
- "details",
118
- "expiration_date",
119
- "fingerprint",
120
- "label",
121
- "last_replaced_at",
122
- "mode",
123
- "scheme",
124
- "id",
125
- "approval_target",
126
- "external_identifier",
127
- "payment_account_reference",
128
- ]
129
- nullable_fields = [
130
- "approval_url",
131
- "country",
132
- "currency",
133
- "details",
134
- "expiration_date",
135
- "fingerprint",
136
- "label",
137
- "last_replaced_at",
138
- "mode",
139
- "scheme",
140
- "id",
141
- "approval_target",
142
- "external_identifier",
143
- "payment_account_reference",
144
- ]
145
- null_default_fields = []
146
-
112
+ optional_fields = set(
113
+ [
114
+ "type",
115
+ "approval_url",
116
+ "country",
117
+ "currency",
118
+ "details",
119
+ "expiration_date",
120
+ "fingerprint",
121
+ "label",
122
+ "last_replaced_at",
123
+ "mode",
124
+ "scheme",
125
+ "id",
126
+ "approval_target",
127
+ "external_identifier",
128
+ "payment_account_reference",
129
+ ]
130
+ )
131
+ nullable_fields = set(
132
+ [
133
+ "approval_url",
134
+ "country",
135
+ "currency",
136
+ "details",
137
+ "expiration_date",
138
+ "fingerprint",
139
+ "label",
140
+ "last_replaced_at",
141
+ "mode",
142
+ "scheme",
143
+ "id",
144
+ "approval_target",
145
+ "external_identifier",
146
+ "payment_account_reference",
147
+ ]
148
+ )
147
149
  serialized = handler(self)
148
-
149
150
  m = {}
150
151
 
151
152
  for n, f in type(self).model_fields.items():
152
153
  k = f.alias or n
153
154
  val = serialized.get(k)
154
- serialized.pop(k, None)
155
-
156
- optional_nullable = k in optional_fields and k in nullable_fields
157
- is_set = (
158
- self.__pydantic_fields_set__.intersection({n})
159
- or k in null_default_fields
160
- ) # pylint: disable=no-member
161
-
162
- if val is not None and val != UNSET_SENTINEL:
163
- m[k] = val
164
- elif val != UNSET_SENTINEL and (
165
- not k in optional_fields or (optional_nullable and is_set)
166
- ):
167
- m[k] = val
155
+ is_nullable_and_explicitly_set = (
156
+ k in nullable_fields
157
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
158
+ )
159
+
160
+ if val != UNSET_SENTINEL:
161
+ if (
162
+ val is not None
163
+ or k not in optional_fields
164
+ or is_nullable_and_explicitly_set
165
+ ):
166
+ m[k] = val
168
167
 
169
168
  return m
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .method import Method
5
- from gr4vy.types import BaseModel
5
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
6
6
  from gr4vy.utils import validate_const
7
7
  import pydantic
8
+ from pydantic import model_serializer
8
9
  from pydantic.functional_validators import AfterValidator
9
10
  from typing import Literal, Optional
10
11
  from typing_extensions import Annotated, TypedDict
@@ -42,3 +43,19 @@ class TransactionPaymentService(BaseModel):
42
43
  pydantic.Field(alias="type"),
43
44
  ] = "payment-service"
44
45
  r"""Always `payment-service`."""
46
+
47
+ @model_serializer(mode="wrap")
48
+ def serialize_model(self, handler):
49
+ optional_fields = set(["type"])
50
+ serialized = handler(self)
51
+ m = {}
52
+
53
+ for n, f in type(self).model_fields.items():
54
+ k = f.alias or n
55
+ val = serialized.get(k)
56
+
57
+ if val != UNSET_SENTINEL:
58
+ if val is not None or k not in optional_fields:
59
+ m[k] = val
60
+
61
+ return m
@@ -22,30 +22,25 @@ class TransactionRefundAllCreate(BaseModel):
22
22
 
23
23
  @model_serializer(mode="wrap")
24
24
  def serialize_model(self, handler):
25
- optional_fields = ["reason", "external_identifier"]
26
- nullable_fields = ["reason", "external_identifier"]
27
- null_default_fields = []
28
-
25
+ optional_fields = set(["reason", "external_identifier"])
26
+ nullable_fields = set(["reason", "external_identifier"])
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
@@ -37,36 +37,27 @@ class TransactionRefundCreate(BaseModel):
37
37
 
38
38
  @model_serializer(mode="wrap")
39
39
  def serialize_model(self, handler):
40
- optional_fields = [
41
- "amount",
42
- "target_type",
43
- "target_id",
44
- "reason",
45
- "external_identifier",
46
- ]
47
- nullable_fields = ["amount", "target_id", "reason", "external_identifier"]
48
- null_default_fields = []
49
-
40
+ optional_fields = set(
41
+ ["amount", "target_type", "target_id", "reason", "external_identifier"]
42
+ )
43
+ nullable_fields = set(["amount", "target_id", "reason", "external_identifier"])
50
44
  serialized = handler(self)
51
-
52
45
  m = {}
53
46
 
54
47
  for n, f in type(self).model_fields.items():
55
48
  k = f.alias or n
56
49
  val = serialized.get(k)
57
- serialized.pop(k, None)
58
-
59
- optional_nullable = k in optional_fields and k in nullable_fields
60
- is_set = (
61
- self.__pydantic_fields_set__.intersection({n})
62
- or k in null_default_fields
63
- ) # pylint: disable=no-member
64
-
65
- if val is not None and val != UNSET_SENTINEL:
66
- m[k] = val
67
- elif val != UNSET_SENTINEL and (
68
- not k in optional_fields or (optional_nullable and is_set)
69
- ):
70
- m[k] = val
50
+ is_nullable_and_explicitly_set = (
51
+ k in nullable_fields
52
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
53
+ )
54
+
55
+ if val != UNSET_SENTINEL:
56
+ if (
57
+ val is not None
58
+ or k not in optional_fields
59
+ or is_nullable_and_explicitly_set
60
+ ):
61
+ m[k] = val
71
62
 
72
63
  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 Any, Dict, Literal, Optional
9
10
  from typing_extensions import Annotated, TypedDict
@@ -28,3 +29,19 @@ class TransactionRetriesReportSpec(BaseModel):
28
29
  pydantic.Field(alias="model"),
29
30
  ] = "transaction_retries"
30
31
  r"""The report model type."""
32
+
33
+ @model_serializer(mode="wrap")
34
+ def serialize_model(self, handler):
35
+ optional_fields = set(["model"])
36
+ serialized = handler(self)
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k)
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if val is not None or k not in optional_fields:
45
+ m[k] = val
46
+
47
+ 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 Any, Dict, Literal, Optional
9
10
  from typing_extensions import Annotated, TypedDict
@@ -28,3 +29,19 @@ class TransactionsReportSpec(BaseModel):
28
29
  pydantic.Field(alias="model"),
29
30
  ] = "transactions"
30
31
  r"""The report model type."""
32
+
33
+ @model_serializer(mode="wrap")
34
+ def serialize_model(self, handler):
35
+ optional_fields = set(["model"])
36
+ serialized = handler(self)
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k)
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if val is not None or k not in optional_fields:
45
+ m[k] = val
46
+
47
+ return m
@@ -34,30 +34,25 @@ class TransactionSummaries(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
@@ -199,62 +199,61 @@ class TransactionSummary(BaseModel):
199
199
 
200
200
  @model_serializer(mode="wrap")
201
201
  def serialize_model(self, handler):
202
- optional_fields = [
203
- "type",
204
- "settled_currency",
205
- "country",
206
- "external_identifier",
207
- "payment_method",
208
- "method",
209
- "instrument_type",
210
- "error_code",
211
- "payment_service",
212
- "pending_review",
213
- "buyer",
214
- "raw_response_code",
215
- "raw_response_description",
216
- "shipping_details",
217
- "checkout_session_id",
218
- "gift_card_service",
219
- ]
220
- nullable_fields = [
221
- "settled_currency",
222
- "country",
223
- "external_identifier",
224
- "payment_method",
225
- "method",
226
- "instrument_type",
227
- "error_code",
228
- "payment_service",
229
- "buyer",
230
- "raw_response_code",
231
- "raw_response_description",
232
- "shipping_details",
233
- "checkout_session_id",
234
- "gift_card_service",
235
- ]
236
- null_default_fields = []
237
-
202
+ optional_fields = set(
203
+ [
204
+ "type",
205
+ "settled_currency",
206
+ "country",
207
+ "external_identifier",
208
+ "payment_method",
209
+ "method",
210
+ "instrument_type",
211
+ "error_code",
212
+ "payment_service",
213
+ "pending_review",
214
+ "buyer",
215
+ "raw_response_code",
216
+ "raw_response_description",
217
+ "shipping_details",
218
+ "checkout_session_id",
219
+ "gift_card_service",
220
+ ]
221
+ )
222
+ nullable_fields = set(
223
+ [
224
+ "settled_currency",
225
+ "country",
226
+ "external_identifier",
227
+ "payment_method",
228
+ "method",
229
+ "instrument_type",
230
+ "error_code",
231
+ "payment_service",
232
+ "buyer",
233
+ "raw_response_code",
234
+ "raw_response_description",
235
+ "shipping_details",
236
+ "checkout_session_id",
237
+ "gift_card_service",
238
+ ]
239
+ )
238
240
  serialized = handler(self)
239
-
240
241
  m = {}
241
242
 
242
243
  for n, f in type(self).model_fields.items():
243
244
  k = f.alias or n
244
245
  val = serialized.get(k)
245
- serialized.pop(k, None)
246
-
247
- optional_nullable = k in optional_fields and k in nullable_fields
248
- is_set = (
249
- self.__pydantic_fields_set__.intersection({n})
250
- or k in null_default_fields
251
- ) # pylint: disable=no-member
252
-
253
- if val is not None and val != UNSET_SENTINEL:
254
- m[k] = val
255
- elif val != UNSET_SENTINEL and (
256
- not k in optional_fields or (optional_nullable and is_set)
257
- ):
258
- m[k] = val
246
+ is_nullable_and_explicitly_set = (
247
+ k in nullable_fields
248
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
249
+ )
250
+
251
+ if val != UNSET_SENTINEL:
252
+ if (
253
+ val is not None
254
+ or k not in optional_fields
255
+ or is_nullable_and_explicitly_set
256
+ ):
257
+ m[k] = val
259
258
 
260
259
  return m
@@ -58,44 +58,29 @@ class TransactionThreeDSecureSummary(BaseModel):
58
58
 
59
59
  @model_serializer(mode="wrap")
60
60
  def serialize_model(self, handler):
61
- optional_fields = [
62
- "version",
63
- "status",
64
- "method",
65
- "response_data",
66
- "error_data",
67
- "amount",
68
- ]
69
- nullable_fields = [
70
- "version",
71
- "status",
72
- "method",
73
- "response_data",
74
- "error_data",
75
- "amount",
76
- ]
77
- null_default_fields = []
78
-
61
+ optional_fields = set(
62
+ ["version", "status", "method", "response_data", "error_data", "amount"]
63
+ )
64
+ nullable_fields = set(
65
+ ["version", "status", "method", "response_data", "error_data", "amount"]
66
+ )
79
67
  serialized = handler(self)
80
-
81
68
  m = {}
82
69
 
83
70
  for n, f in type(self).model_fields.items():
84
71
  k = f.alias or n
85
72
  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
73
+ is_nullable_and_explicitly_set = (
74
+ k in nullable_fields
75
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
76
+ )
77
+
78
+ if val != UNSET_SENTINEL:
79
+ if (
80
+ val is not None
81
+ or k not in optional_fields
82
+ or is_nullable_and_explicitly_set
83
+ ):
84
+ m[k] = val
100
85
 
101
86
  return m
@@ -32,30 +32,25 @@ class TransactionUpdate(BaseModel):
32
32
 
33
33
  @model_serializer(mode="wrap")
34
34
  def serialize_model(self, handler):
35
- optional_fields = ["external_identifier", "metadata", "connection_options"]
36
- nullable_fields = ["external_identifier", "metadata", "connection_options"]
37
- null_default_fields = []
38
-
35
+ optional_fields = set(["external_identifier", "metadata", "connection_options"])
36
+ nullable_fields = set(["external_identifier", "metadata", "connection_options"])
39
37
  serialized = handler(self)
40
-
41
38
  m = {}
42
39
 
43
40
  for n, f in type(self).model_fields.items():
44
41
  k = f.alias or n
45
42
  val = serialized.get(k)
46
- serialized.pop(k, None)
47
-
48
- optional_nullable = k in optional_fields and k in nullable_fields
49
- is_set = (
50
- self.__pydantic_fields_set__.intersection({n})
51
- or k in null_default_fields
52
- ) # pylint: disable=no-member
53
-
54
- if val is not None and val != UNSET_SENTINEL:
55
- m[k] = val
56
- elif val != UNSET_SENTINEL and (
57
- not k in optional_fields or (optional_nullable and is_set)
58
- ):
59
- m[k] = val
43
+ is_nullable_and_explicitly_set = (
44
+ k in nullable_fields
45
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
46
+ )
47
+
48
+ if val != UNSET_SENTINEL:
49
+ if (
50
+ val is not None
51
+ or k not in optional_fields
52
+ or is_nullable_and_explicitly_set
53
+ ):
54
+ m[k] = val
60
55
 
61
56
  return m
@@ -52,30 +52,25 @@ class TransactionVoid(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