gr4vy 1.10.12__py3-none-any.whl → 1.10.15__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 (293) 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/method.py +1 -0
  163. gr4vy/models/mockcardmerchantadvicecodeoptions.py +14 -19
  164. gr4vy/models/mockcardoptions.py +14 -19
  165. gr4vy/models/networktoken.py +18 -1
  166. gr4vy/models/networktokencreate.py +14 -19
  167. gr4vy/models/networktokenpaymentmethodcreate.py +34 -35
  168. gr4vy/models/nuveiairlinedataoptions.py +14 -19
  169. gr4vy/models/nuveiidealoptions.py +14 -19
  170. gr4vy/models/nuveioptions.py +14 -19
  171. gr4vy/models/nuveipseoptions.py +13 -18
  172. gr4vy/models/oxxooptions.py +14 -19
  173. gr4vy/models/paymentlink.py +59 -60
  174. gr4vy/models/paymentlinkcreate.py +59 -60
  175. gr4vy/models/paymentlinks.py +14 -19
  176. gr4vy/models/paymentmethod.py +51 -52
  177. gr4vy/models/paymentmethodcard.py +14 -19
  178. gr4vy/models/paymentmethoddetailscard.py +14 -19
  179. gr4vy/models/paymentmethods.py +14 -19
  180. gr4vy/models/paymentmethodstoredcard.py +18 -1
  181. gr4vy/models/paymentmethodsummary.py +47 -48
  182. gr4vy/models/paymentoption.py +14 -19
  183. gr4vy/models/paymentoptioncontext.py +14 -19
  184. gr4vy/models/paymentoptioncontextapprovalui.py +14 -19
  185. gr4vy/models/paymentoptionrequest.py +18 -26
  186. gr4vy/models/paymentservice.py +35 -36
  187. gr4vy/models/paymentservicecreate.py +36 -37
  188. gr4vy/models/paymentservicedefinition.py +14 -19
  189. gr4vy/models/paymentservicedefinitions.py +14 -19
  190. gr4vy/models/paymentservices.py +14 -19
  191. gr4vy/models/paymentservicetoken.py +14 -19
  192. gr4vy/models/paymentservicetokencreate.py +14 -19
  193. gr4vy/models/paymentserviceupdate.py +45 -46
  194. gr4vy/models/payoutconnectionoptions.py +14 -19
  195. gr4vy/models/payoutcreate.py +34 -35
  196. gr4vy/models/payoutmerchant.py +14 -19
  197. gr4vy/models/payoutmerchantsummary.py +14 -19
  198. gr4vy/models/payoutpaymentservice.py +14 -19
  199. gr4vy/models/payoutsummaries.py +14 -19
  200. gr4vy/models/payoutsummary.py +35 -36
  201. gr4vy/models/paypaloptions.py +14 -19
  202. gr4vy/models/paypalshippingoptions.py +14 -19
  203. gr4vy/models/paypalshippingoptionsitem.py +14 -19
  204. gr4vy/models/plaidpaymentmethodcreate.py +31 -32
  205. gr4vy/models/powertranzoptions.py +14 -19
  206. gr4vy/models/recipient.py +14 -19
  207. gr4vy/models/redirectpaymentmethodcreate.py +19 -27
  208. gr4vy/models/refund.py +39 -40
  209. gr4vy/models/refunds.py +14 -19
  210. gr4vy/models/register_digital_wallet_domainop.py +34 -1
  211. gr4vy/models/report.py +33 -34
  212. gr4vy/models/reportcreate.py +14 -19
  213. gr4vy/models/reportexecution.py +18 -1
  214. gr4vy/models/reportexecutions.py +14 -19
  215. gr4vy/models/reportexecutionsummary.py +18 -1
  216. gr4vy/models/reportexecutionurlgenerate.py +18 -1
  217. gr4vy/models/reports.py +14 -19
  218. gr4vy/models/reportsummary.py +16 -19
  219. gr4vy/models/reportupdate.py +14 -19
  220. gr4vy/models/requiredcheckoutfields.py +14 -19
  221. gr4vy/models/resume_payment_method_network_tokenop.py +34 -1
  222. gr4vy/models/security.py +18 -1
  223. gr4vy/models/settlement.py +16 -25
  224. gr4vy/models/shippingdetails.py +35 -36
  225. gr4vy/models/shippingdetailscreate.py +18 -31
  226. gr4vy/models/shippingdetailsupdate.py +18 -31
  227. gr4vy/models/statementdescriptor.py +34 -35
  228. gr4vy/models/stripeconnectoptions.py +30 -31
  229. gr4vy/models/stripeoptions.py +14 -19
  230. gr4vy/models/suspend_payment_method_network_tokenop.py +34 -1
  231. gr4vy/models/sync_transactionop.py +34 -1
  232. gr4vy/models/threedsecure.py +14 -19
  233. gr4vy/models/threedsecuredatav1.py +14 -19
  234. gr4vy/models/threedsecuredatav2.py +14 -19
  235. gr4vy/models/threedsecureerror.py +14 -19
  236. gr4vy/models/threedsecurescenario.py +77 -0
  237. gr4vy/models/threedsecurescenarioconditions.py +84 -0
  238. gr4vy/models/threedsecurescenariocreate.py +24 -0
  239. gr4vy/models/threedsecurescenariooutcome.py +57 -0
  240. gr4vy/models/threedsecurescenariooutcomeauthentication.py +31 -0
  241. gr4vy/models/threedsecurescenariooutcomeresult.py +27 -0
  242. gr4vy/models/threedsecurescenarios.py +58 -0
  243. gr4vy/models/threedsecurescenarioupdate.py +54 -0
  244. gr4vy/models/threedsecurev2.py +34 -35
  245. gr4vy/models/tokenpaymentmethodcreate.py +14 -19
  246. gr4vy/models/transaction.py +111 -112
  247. gr4vy/models/transactionaction.py +18 -1
  248. gr4vy/models/transactionbuyer.py +31 -32
  249. gr4vy/models/transactioncancel.py +14 -19
  250. gr4vy/models/transactioncapture.py +14 -19
  251. gr4vy/models/transactioncapturecreate.py +14 -19
  252. gr4vy/models/transactionconnectionoptions.py +104 -105
  253. gr4vy/models/transactioncreate.py +88 -89
  254. gr4vy/models/transactionevent.py +18 -1
  255. gr4vy/models/transactionevents.py +14 -19
  256. gr4vy/models/transactiongiftcard.py +14 -19
  257. gr4vy/models/transactionpaymentmethod.py +49 -50
  258. gr4vy/models/transactionpaymentservice.py +18 -1
  259. gr4vy/models/transactionrefundallcreate.py +14 -19
  260. gr4vy/models/transactionrefundcreate.py +16 -25
  261. gr4vy/models/transactionretriesreportspec.py +18 -1
  262. gr4vy/models/transactionsreportspec.py +18 -1
  263. gr4vy/models/transactionsummaries.py +14 -19
  264. gr4vy/models/transactionsummary.py +50 -51
  265. gr4vy/models/transactionthreedsecuresummary.py +18 -33
  266. gr4vy/models/transactionupdate.py +14 -19
  267. gr4vy/models/transactionvoid.py +14 -19
  268. gr4vy/models/travelhubcustomdata.py +14 -19
  269. gr4vy/models/travelhuboptions.py +14 -19
  270. gr4vy/models/trustlyoptions.py +14 -19
  271. gr4vy/models/unregister_digital_wallet_domainop.py +34 -1
  272. gr4vy/models/update_buyer_shipping_detailsop.py +34 -1
  273. gr4vy/models/update_buyerop.py +34 -1
  274. gr4vy/models/update_checkout_sessionop.py +34 -1
  275. gr4vy/models/update_digital_walletop.py +34 -1
  276. gr4vy/models/update_payment_serviceop.py +34 -1
  277. gr4vy/models/update_reportop.py +34 -1
  278. gr4vy/models/update_three_ds_scenarioop.py +91 -0
  279. gr4vy/models/update_transactionop.py +34 -1
  280. gr4vy/models/verify_payment_service_credentialsop.py +34 -1
  281. gr4vy/models/verifycredentials.py +14 -19
  282. gr4vy/models/void_transactionop.py +30 -19
  283. gr4vy/models/wpayeverdaypayoptions.py +30 -31
  284. gr4vy/models/wpaypaytooptions.py +14 -19
  285. gr4vy/models/wpaypaytoresourceoptions.py +14 -19
  286. gr4vy/models/wpaypaytosimulationoptions.py +14 -19
  287. gr4vy/sdk.py +3 -0
  288. gr4vy/three_ds_scenarios.py +1322 -0
  289. gr4vy/utils/__init__.py +13 -1
  290. {gr4vy-1.10.12.dist-info → gr4vy-1.10.15.dist-info}/METADATA +8 -1
  291. gr4vy-1.10.15.dist-info/RECORD +464 -0
  292. gr4vy-1.10.12.dist-info/RECORD +0 -451
  293. {gr4vy-1.10.12.dist-info → gr4vy-1.10.15.dist-info}/WHEEL +0 -0
@@ -145,78 +145,77 @@ class AirlineLeg(BaseModel):
145
145
 
146
146
  @model_serializer(mode="wrap")
147
147
  def serialize_model(self, handler):
148
- optional_fields = [
149
- "arrival_airport",
150
- "arrival_at",
151
- "arrival_city",
152
- "arrival_country",
153
- "carrier_code",
154
- "carrier_name",
155
- "iata_designator",
156
- "icao_code",
157
- "coupon_number",
158
- "departure_airport",
159
- "departure_at",
160
- "departure_city",
161
- "departure_country",
162
- "departure_tax_amount",
163
- "fare_amount",
164
- "fare_basis_code",
165
- "fee_amount",
166
- "flight_class",
167
- "flight_number",
168
- "route_type",
169
- "seat_class",
170
- "stop_over",
171
- "tax_amount",
172
- ]
173
- nullable_fields = [
174
- "arrival_airport",
175
- "arrival_at",
176
- "arrival_city",
177
- "arrival_country",
178
- "carrier_code",
179
- "carrier_name",
180
- "iata_designator",
181
- "icao_code",
182
- "coupon_number",
183
- "departure_airport",
184
- "departure_at",
185
- "departure_city",
186
- "departure_country",
187
- "departure_tax_amount",
188
- "fare_amount",
189
- "fare_basis_code",
190
- "fee_amount",
191
- "flight_class",
192
- "flight_number",
193
- "route_type",
194
- "seat_class",
195
- "stop_over",
196
- "tax_amount",
197
- ]
198
- null_default_fields = []
199
-
148
+ optional_fields = set(
149
+ [
150
+ "arrival_airport",
151
+ "arrival_at",
152
+ "arrival_city",
153
+ "arrival_country",
154
+ "carrier_code",
155
+ "carrier_name",
156
+ "iata_designator",
157
+ "icao_code",
158
+ "coupon_number",
159
+ "departure_airport",
160
+ "departure_at",
161
+ "departure_city",
162
+ "departure_country",
163
+ "departure_tax_amount",
164
+ "fare_amount",
165
+ "fare_basis_code",
166
+ "fee_amount",
167
+ "flight_class",
168
+ "flight_number",
169
+ "route_type",
170
+ "seat_class",
171
+ "stop_over",
172
+ "tax_amount",
173
+ ]
174
+ )
175
+ nullable_fields = set(
176
+ [
177
+ "arrival_airport",
178
+ "arrival_at",
179
+ "arrival_city",
180
+ "arrival_country",
181
+ "carrier_code",
182
+ "carrier_name",
183
+ "iata_designator",
184
+ "icao_code",
185
+ "coupon_number",
186
+ "departure_airport",
187
+ "departure_at",
188
+ "departure_city",
189
+ "departure_country",
190
+ "departure_tax_amount",
191
+ "fare_amount",
192
+ "fare_basis_code",
193
+ "fee_amount",
194
+ "flight_class",
195
+ "flight_number",
196
+ "route_type",
197
+ "seat_class",
198
+ "stop_over",
199
+ "tax_amount",
200
+ ]
201
+ )
200
202
  serialized = handler(self)
201
-
202
203
  m = {}
203
204
 
204
205
  for n, f in type(self).model_fields.items():
205
206
  k = f.alias or n
206
207
  val = serialized.get(k)
207
- serialized.pop(k, None)
208
-
209
- optional_nullable = k in optional_fields and k in nullable_fields
210
- is_set = (
211
- self.__pydantic_fields_set__.intersection({n})
212
- or k in null_default_fields
213
- ) # pylint: disable=no-member
214
-
215
- if val is not None and val != UNSET_SENTINEL:
216
- m[k] = val
217
- elif val != UNSET_SENTINEL and (
218
- not k in optional_fields or (optional_nullable and is_set)
219
- ):
220
- m[k] = val
208
+ is_nullable_and_explicitly_set = (
209
+ k in nullable_fields
210
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
211
+ )
212
+
213
+ if val != UNSET_SENTINEL:
214
+ if (
215
+ val is not None
216
+ or k not in optional_fields
217
+ or is_nullable_and_explicitly_set
218
+ ):
219
+ m[k] = val
221
220
 
222
221
  return m
@@ -85,54 +85,53 @@ class AirlinePassenger(BaseModel):
85
85
 
86
86
  @model_serializer(mode="wrap")
87
87
  def serialize_model(self, handler):
88
- optional_fields = [
89
- "age_group",
90
- "date_of_birth",
91
- "email_address",
92
- "first_name",
93
- "frequent_flyer_number",
94
- "last_name",
95
- "passport_number",
96
- "phone_number",
97
- "ticket_number",
98
- "title",
99
- "country_code",
100
- ]
101
- nullable_fields = [
102
- "age_group",
103
- "date_of_birth",
104
- "email_address",
105
- "first_name",
106
- "frequent_flyer_number",
107
- "last_name",
108
- "passport_number",
109
- "phone_number",
110
- "ticket_number",
111
- "title",
112
- "country_code",
113
- ]
114
- null_default_fields = []
115
-
88
+ optional_fields = set(
89
+ [
90
+ "age_group",
91
+ "date_of_birth",
92
+ "email_address",
93
+ "first_name",
94
+ "frequent_flyer_number",
95
+ "last_name",
96
+ "passport_number",
97
+ "phone_number",
98
+ "ticket_number",
99
+ "title",
100
+ "country_code",
101
+ ]
102
+ )
103
+ nullable_fields = set(
104
+ [
105
+ "age_group",
106
+ "date_of_birth",
107
+ "email_address",
108
+ "first_name",
109
+ "frequent_flyer_number",
110
+ "last_name",
111
+ "passport_number",
112
+ "phone_number",
113
+ "ticket_number",
114
+ "title",
115
+ "country_code",
116
+ ]
117
+ )
116
118
  serialized = handler(self)
117
-
118
119
  m = {}
119
120
 
120
121
  for n, f in type(self).model_fields.items():
121
122
  k = f.alias or n
122
123
  val = serialized.get(k)
123
- serialized.pop(k, None)
124
-
125
- optional_nullable = k in optional_fields and k in nullable_fields
126
- is_set = (
127
- self.__pydantic_fields_set__.intersection({n})
128
- or k in null_default_fields
129
- ) # pylint: disable=no-member
130
-
131
- if val is not None and val != UNSET_SENTINEL:
132
- m[k] = val
133
- elif val != UNSET_SENTINEL and (
134
- not k in optional_fields or (optional_nullable and is_set)
135
- ):
136
- m[k] = val
124
+ is_nullable_and_explicitly_set = (
125
+ k in nullable_fields
126
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
127
+ )
128
+
129
+ if val != UNSET_SENTINEL:
130
+ if (
131
+ val is not None
132
+ or k not in optional_fields
133
+ or is_nullable_and_explicitly_set
134
+ ):
135
+ m[k] = val
137
136
 
138
137
  return m
@@ -68,46 +68,45 @@ class ApplePayPaymentMethodCreate(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
- "cardholder_name",
75
- "redirect_url",
76
- "card_suffix",
77
- "card_scheme",
78
- "card_type",
79
- ]
80
- nullable_fields = [
81
- "buyer_external_identifier",
82
- "buyer_id",
83
- "cardholder_name",
84
- "redirect_url",
85
- "card_suffix",
86
- "card_scheme",
87
- "card_type",
88
- ]
89
- null_default_fields = []
90
-
71
+ optional_fields = set(
72
+ [
73
+ "buyer_external_identifier",
74
+ "buyer_id",
75
+ "cardholder_name",
76
+ "redirect_url",
77
+ "card_suffix",
78
+ "card_scheme",
79
+ "card_type",
80
+ ]
81
+ )
82
+ nullable_fields = set(
83
+ [
84
+ "buyer_external_identifier",
85
+ "buyer_id",
86
+ "cardholder_name",
87
+ "redirect_url",
88
+ "card_suffix",
89
+ "card_scheme",
90
+ "card_type",
91
+ ]
92
+ )
91
93
  serialized = handler(self)
92
-
93
94
  m = {}
94
95
 
95
96
  for n, f in type(self).model_fields.items():
96
97
  k = f.alias or n
97
98
  val = serialized.get(k)
98
- serialized.pop(k, None)
99
-
100
- optional_nullable = k in optional_fields and k in nullable_fields
101
- is_set = (
102
- self.__pydantic_fields_set__.intersection({n})
103
- or k in null_default_fields
104
- ) # pylint: disable=no-member
105
-
106
- if val is not None and val != UNSET_SENTINEL:
107
- m[k] = val
108
- elif val != UNSET_SENTINEL and (
109
- not k in optional_fields or (optional_nullable and is_set)
110
- ):
111
- m[k] = val
99
+ is_nullable_and_explicitly_set = (
100
+ k in nullable_fields
101
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
102
+ )
103
+
104
+ if val != UNSET_SENTINEL:
105
+ if (
106
+ val is not None
107
+ or k not in optional_fields
108
+ or is_nullable_and_explicitly_set
109
+ ):
110
+ m[k] = val
112
111
 
113
112
  return m
@@ -34,30 +34,25 @@ class AuditLogEntries(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
@@ -54,30 +54,25 @@ class AuditLogEntry(BaseModel):
54
54
 
55
55
  @model_serializer(mode="wrap")
56
56
  def serialize_model(self, handler):
57
- optional_fields = ["type", "id", "merchant_account_id"]
58
- nullable_fields = ["id", "merchant_account_id"]
59
- null_default_fields = []
60
-
57
+ optional_fields = set(["type", "id", "merchant_account_id"])
58
+ nullable_fields = set(["id", "merchant_account_id"])
61
59
  serialized = handler(self)
62
-
63
60
  m = {}
64
61
 
65
62
  for n, f in type(self).model_fields.items():
66
63
  k = f.alias or n
67
64
  val = serialized.get(k)
68
- serialized.pop(k, None)
69
-
70
- optional_nullable = k in optional_fields and k in nullable_fields
71
- is_set = (
72
- self.__pydantic_fields_set__.intersection({n})
73
- or k in null_default_fields
74
- ) # pylint: disable=no-member
75
-
76
- if val is not None and val != UNSET_SENTINEL:
77
- m[k] = val
78
- elif val != UNSET_SENTINEL and (
79
- not k in optional_fields or (optional_nullable and is_set)
80
- ):
81
- m[k] = val
65
+ is_nullable_and_explicitly_set = (
66
+ k in nullable_fields
67
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
68
+ )
69
+
70
+ if val != UNSET_SENTINEL:
71
+ if (
72
+ val is not None
73
+ or k not in optional_fields
74
+ or is_nullable_and_explicitly_set
75
+ ):
76
+ m[k] = val
82
77
 
83
78
  return m
@@ -48,30 +48,25 @@ class AuditLogEntryUser(BaseModel):
48
48
 
49
49
  @model_serializer(mode="wrap")
50
50
  def serialize_model(self, handler):
51
- optional_fields = ["type", "id", "email_address"]
52
- nullable_fields = ["id", "email_address"]
53
- null_default_fields = []
54
-
51
+ optional_fields = set(["type", "id", "email_address"])
52
+ nullable_fields = set(["id", "email_address"])
55
53
  serialized = handler(self)
56
-
57
54
  m = {}
58
55
 
59
56
  for n, f in type(self).model_fields.items():
60
57
  k = f.alias or n
61
58
  val = serialized.get(k)
62
- serialized.pop(k, None)
63
-
64
- optional_nullable = k in optional_fields and k in nullable_fields
65
- is_set = (
66
- self.__pydantic_fields_set__.intersection({n})
67
- or k in null_default_fields
68
- ) # pylint: disable=no-member
69
-
70
- if val is not None and val != UNSET_SENTINEL:
71
- m[k] = val
72
- elif val != UNSET_SENTINEL and (
73
- not k in optional_fields or (optional_nullable and is_set)
74
- ):
75
- m[k] = val
59
+ is_nullable_and_explicitly_set = (
60
+ k in nullable_fields
61
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
62
+ )
63
+
64
+ if val != UNSET_SENTINEL:
65
+ if (
66
+ val is not None
67
+ or k not in optional_fields
68
+ or is_nullable_and_explicitly_set
69
+ ):
70
+ m[k] = val
76
71
 
77
72
  return m
@@ -44,44 +44,43 @@ class BillingDetails(BaseModel):
44
44
 
45
45
  @model_serializer(mode="wrap")
46
46
  def serialize_model(self, handler):
47
- optional_fields = [
48
- "first_name",
49
- "last_name",
50
- "email_address",
51
- "phone_number",
52
- "address",
53
- "tax_id",
54
- ]
55
- nullable_fields = [
56
- "first_name",
57
- "last_name",
58
- "email_address",
59
- "phone_number",
60
- "address",
61
- "tax_id",
62
- ]
63
- null_default_fields = []
64
-
47
+ optional_fields = set(
48
+ [
49
+ "first_name",
50
+ "last_name",
51
+ "email_address",
52
+ "phone_number",
53
+ "address",
54
+ "tax_id",
55
+ ]
56
+ )
57
+ nullable_fields = set(
58
+ [
59
+ "first_name",
60
+ "last_name",
61
+ "email_address",
62
+ "phone_number",
63
+ "address",
64
+ "tax_id",
65
+ ]
66
+ )
65
67
  serialized = handler(self)
66
-
67
68
  m = {}
68
69
 
69
70
  for n, f in type(self).model_fields.items():
70
71
  k = f.alias or n
71
72
  val = serialized.get(k)
72
- serialized.pop(k, None)
73
-
74
- optional_nullable = k in optional_fields and k in nullable_fields
75
- is_set = (
76
- self.__pydantic_fields_set__.intersection({n})
77
- or k in null_default_fields
78
- ) # pylint: disable=no-member
79
-
80
- if val is not None and val != UNSET_SENTINEL:
81
- m[k] = val
82
- elif val != UNSET_SENTINEL and (
83
- not k in optional_fields or (optional_nullable and is_set)
84
- ):
85
- 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
86
85
 
87
86
  return m
@@ -44,38 +44,37 @@ class BraintreeDynamicDataFieldsOptions(BaseModel):
44
44
 
45
45
  @model_serializer(mode="wrap")
46
46
  def serialize_model(self, handler):
47
- optional_fields = [
48
- "three_ds_auth_status",
49
- "purchase_order_number",
50
- "vault_payment_method_criteria",
51
- ]
52
- nullable_fields = [
53
- "three_ds_auth_status",
54
- "purchase_order_number",
55
- "vault_payment_method_criteria",
56
- ]
57
- null_default_fields = []
58
-
47
+ optional_fields = set(
48
+ [
49
+ "three_ds_auth_status",
50
+ "purchase_order_number",
51
+ "vault_payment_method_criteria",
52
+ ]
53
+ )
54
+ nullable_fields = set(
55
+ [
56
+ "three_ds_auth_status",
57
+ "purchase_order_number",
58
+ "vault_payment_method_criteria",
59
+ ]
60
+ )
59
61
  serialized = handler(self)
60
-
61
62
  m = {}
62
63
 
63
64
  for n, f in type(self).model_fields.items():
64
65
  k = f.alias or n
65
66
  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
67
+ is_nullable_and_explicitly_set = (
68
+ k in nullable_fields
69
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
70
+ )
71
+
72
+ if val != UNSET_SENTINEL:
73
+ if (
74
+ val is not None
75
+ or k not in optional_fields
76
+ or is_nullable_and_explicitly_set
77
+ ):
78
+ m[k] = val
80
79
 
81
80
  return m