moovio_sdk 0.3.8__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 (586) hide show
  1. moovio_sdk/__init__.py +17 -0
  2. moovio_sdk/_hooks/__init__.py +5 -0
  3. moovio_sdk/_hooks/registration.py +13 -0
  4. moovio_sdk/_hooks/sdkhooks.py +76 -0
  5. moovio_sdk/_hooks/types.py +106 -0
  6. moovio_sdk/_version.py +15 -0
  7. moovio_sdk/accounts.py +2461 -0
  8. moovio_sdk/adjustments.py +463 -0
  9. moovio_sdk/apple_pay.py +1417 -0
  10. moovio_sdk/authentication.py +531 -0
  11. moovio_sdk/avatars.py +231 -0
  12. moovio_sdk/bank_accounts.py +2445 -0
  13. moovio_sdk/basesdk.py +363 -0
  14. moovio_sdk/branding.py +1089 -0
  15. moovio_sdk/capabilities.py +1001 -0
  16. moovio_sdk/card_issuing.py +1351 -0
  17. moovio_sdk/cards.py +1469 -0
  18. moovio_sdk/disputes.py +2985 -0
  19. moovio_sdk/end_to_end_encryption.py +453 -0
  20. moovio_sdk/enriched_address.py +307 -0
  21. moovio_sdk/enriched_profile.py +235 -0
  22. moovio_sdk/fee_plans.py +1759 -0
  23. moovio_sdk/files.py +775 -0
  24. moovio_sdk/httpclient.py +136 -0
  25. moovio_sdk/industries.py +239 -0
  26. moovio_sdk/institutions.py +261 -0
  27. moovio_sdk/issuing_transactions.py +1228 -0
  28. moovio_sdk/models/__init__.py +4 -0
  29. moovio_sdk/models/components/__init__.py +1411 -0
  30. moovio_sdk/models/components/account.py +96 -0
  31. moovio_sdk/models/components/accountcapability.py +20 -0
  32. moovio_sdk/models/components/accountcountries.py +18 -0
  33. moovio_sdk/models/components/accountnameverification.py +28 -0
  34. moovio_sdk/models/components/accounttype.py +11 -0
  35. moovio_sdk/models/components/accountverificationstatus.py +19 -0
  36. moovio_sdk/models/components/achcreditsamedaypaymentmethod.py +38 -0
  37. moovio_sdk/models/components/achcreditstandardpaymentmethod.py +38 -0
  38. moovio_sdk/models/components/achdebitcollectpaymentmethod.py +38 -0
  39. moovio_sdk/models/components/achdebitfundpaymentmethod.py +38 -0
  40. moovio_sdk/models/components/achexception.py +20 -0
  41. moovio_sdk/models/components/achlocation.py +26 -0
  42. moovio_sdk/models/components/achparticipant.py +93 -0
  43. moovio_sdk/models/components/achpaymentdetails.py +30 -0
  44. moovio_sdk/models/components/achpaymentdetailserror.py +22 -0
  45. moovio_sdk/models/components/achpaymentsettings.py +16 -0
  46. moovio_sdk/models/components/achreturncode.py +51 -0
  47. moovio_sdk/models/components/achtransactiondetails.py +94 -0
  48. moovio_sdk/models/components/achtransactionstatus.py +15 -0
  49. moovio_sdk/models/components/addcapabilities.py +15 -0
  50. moovio_sdk/models/components/address.py +30 -0
  51. moovio_sdk/models/components/addresserror.py +32 -0
  52. moovio_sdk/models/components/addresssuggestion.py +34 -0
  53. moovio_sdk/models/components/addressupdate.py +32 -0
  54. moovio_sdk/models/components/adjustment.py +29 -0
  55. moovio_sdk/models/components/amount.py +26 -0
  56. moovio_sdk/models/components/amountdecimal.py +27 -0
  57. moovio_sdk/models/components/amountupdate.py +27 -0
  58. moovio_sdk/models/components/amountvalidationerror.py +17 -0
  59. moovio_sdk/models/components/applebillingcontact.py +53 -0
  60. moovio_sdk/models/components/applepayheader.py +41 -0
  61. moovio_sdk/models/components/applepaymerchantdomains.py +32 -0
  62. moovio_sdk/models/components/applepaypaymentmethod.py +33 -0
  63. moovio_sdk/models/components/applepayresponse.py +70 -0
  64. moovio_sdk/models/components/applicationscope.py +41 -0
  65. moovio_sdk/models/components/asynccreatedrefund.py +26 -0
  66. moovio_sdk/models/components/asynctransfer.py +18 -0
  67. moovio_sdk/models/components/authorizeduser.py +21 -0
  68. moovio_sdk/models/components/authtoken.py +36 -0
  69. moovio_sdk/models/components/authtokenrequest.py +46 -0
  70. moovio_sdk/models/components/bankaccount.py +98 -0
  71. moovio_sdk/models/components/bankaccountexception.py +96 -0
  72. moovio_sdk/models/components/bankaccountholdertype.py +11 -0
  73. moovio_sdk/models/components/bankaccountintegration.py +34 -0
  74. moovio_sdk/models/components/bankaccountpayload.py +21 -0
  75. moovio_sdk/models/components/bankaccountstatus.py +12 -0
  76. moovio_sdk/models/components/bankaccountstatusreason.py +23 -0
  77. moovio_sdk/models/components/bankaccounttype.py +13 -0
  78. moovio_sdk/models/components/bankaccountverification.py +30 -0
  79. moovio_sdk/models/components/bankaccountverificationcreated.py +21 -0
  80. moovio_sdk/models/components/bankaccountverificationmethod.py +9 -0
  81. moovio_sdk/models/components/bankaccountverificationstatus.py +13 -0
  82. moovio_sdk/models/components/bankaccountwaitfor.py +9 -0
  83. moovio_sdk/models/components/basicpaymentmethod.py +24 -0
  84. moovio_sdk/models/components/billablefee.py +54 -0
  85. moovio_sdk/models/components/birthdate.py +19 -0
  86. moovio_sdk/models/components/birthdateerror.py +20 -0
  87. moovio_sdk/models/components/birthdateupdate.py +20 -0
  88. moovio_sdk/models/components/birthdatevalidationerror.py +20 -0
  89. moovio_sdk/models/components/brandcolor.py +15 -0
  90. moovio_sdk/models/components/brandcolors.py +21 -0
  91. moovio_sdk/models/components/brandcolorvalidationerror.py +14 -0
  92. moovio_sdk/models/components/brandproperties.py +16 -0
  93. moovio_sdk/models/components/businessprofile.py +81 -0
  94. moovio_sdk/models/components/businesstype.py +19 -0
  95. moovio_sdk/models/components/calltoaction.py +19 -0
  96. moovio_sdk/models/components/cancellation.py +22 -0
  97. moovio_sdk/models/components/cancellationstatus.py +10 -0
  98. moovio_sdk/models/components/capabilitieserror.py +14 -0
  99. moovio_sdk/models/components/capability.py +56 -0
  100. moovio_sdk/models/components/capabilityid.py +18 -0
  101. moovio_sdk/models/components/capabilityrequirement.py +26 -0
  102. moovio_sdk/models/components/capabilitystatus.py +13 -0
  103. moovio_sdk/models/components/card.py +164 -0
  104. moovio_sdk/models/components/cardaccountupdater.py +28 -0
  105. moovio_sdk/models/components/cardacquiringdispute.py +26 -0
  106. moovio_sdk/models/components/cardacquiringmodel.py +11 -0
  107. moovio_sdk/models/components/cardacquiringrefund.py +42 -0
  108. moovio_sdk/models/components/cardaddress.py +32 -0
  109. moovio_sdk/models/components/cardbrand.py +14 -0
  110. moovio_sdk/models/components/cardexpiration.py +20 -0
  111. moovio_sdk/models/components/cardexpirationerror.py +17 -0
  112. moovio_sdk/models/components/cardissuingnetwork.py +12 -0
  113. moovio_sdk/models/components/cardpaymentdetails.py +23 -0
  114. moovio_sdk/models/components/cardpaymentdetailserror.py +17 -0
  115. moovio_sdk/models/components/cardpaymentpaymentmethod.py +33 -0
  116. moovio_sdk/models/components/cardpaymentsettings.py +23 -0
  117. moovio_sdk/models/components/cardtransactiondetails.py +94 -0
  118. moovio_sdk/models/components/cardtransactionfailurecode.py +32 -0
  119. moovio_sdk/models/components/cardtransactionstatus.py +15 -0
  120. moovio_sdk/models/components/cardtype.py +13 -0
  121. moovio_sdk/models/components/cardupdatereason.py +16 -0
  122. moovio_sdk/models/components/cardverification.py +38 -0
  123. moovio_sdk/models/components/cardverificationresult.py +12 -0
  124. moovio_sdk/models/components/cardvolumedistribution.py +29 -0
  125. moovio_sdk/models/components/cardvolumedistributionerror.py +32 -0
  126. moovio_sdk/models/components/collectionpaymentmethodtype.py +12 -0
  127. moovio_sdk/models/components/colorsvalidationerror.py +21 -0
  128. moovio_sdk/models/components/completebankaccountverification.py +15 -0
  129. moovio_sdk/models/components/completedmicrodeposits.py +14 -0
  130. moovio_sdk/models/components/completemicrodeposits.py +20 -0
  131. moovio_sdk/models/components/countrieserrors.py +14 -0
  132. moovio_sdk/models/components/createaccount.py +78 -0
  133. moovio_sdk/models/components/createaccounterror.py +44 -0
  134. moovio_sdk/models/components/createaccountsettings.py +40 -0
  135. moovio_sdk/models/components/createapplepaysession.py +21 -0
  136. moovio_sdk/models/components/createauthorizeduser.py +26 -0
  137. moovio_sdk/models/components/createauthorizedusererror.py +24 -0
  138. moovio_sdk/models/components/createauthorizeduserupdate.py +28 -0
  139. moovio_sdk/models/components/createbusinesserror.py +88 -0
  140. moovio_sdk/models/components/createbusinessprofile.py +69 -0
  141. moovio_sdk/models/components/createevidencefilemultipart.py +63 -0
  142. moovio_sdk/models/components/createevidencetext.py +20 -0
  143. moovio_sdk/models/components/createfeeplanagreement.py +14 -0
  144. moovio_sdk/models/components/createindividualerror.py +72 -0
  145. moovio_sdk/models/components/createindividualprofile.py +37 -0
  146. moovio_sdk/models/components/createpaymentlink.py +95 -0
  147. moovio_sdk/models/components/createprofile.py +22 -0
  148. moovio_sdk/models/components/createprofileerror.py +19 -0
  149. moovio_sdk/models/components/createrefund.py +26 -0
  150. moovio_sdk/models/components/createrefundresponse.py +18 -0
  151. moovio_sdk/models/components/createrepresentative.py +50 -0
  152. moovio_sdk/models/components/createreversal.py +15 -0
  153. moovio_sdk/models/components/createsweepconfig.py +41 -0
  154. moovio_sdk/models/components/createterminalapplication.py +42 -0
  155. moovio_sdk/models/components/createtransfer.py +49 -0
  156. moovio_sdk/models/components/createtransferdestination.py +37 -0
  157. moovio_sdk/models/components/createtransferdestinationach.py +26 -0
  158. moovio_sdk/models/components/createtransferdestinationcard.py +19 -0
  159. moovio_sdk/models/components/createtransferoptions.py +24 -0
  160. moovio_sdk/models/components/createtransfersource.py +48 -0
  161. moovio_sdk/models/components/createtransfersourceach.py +40 -0
  162. moovio_sdk/models/components/createtransfersourcecard.py +35 -0
  163. moovio_sdk/models/components/customersupport.py +33 -0
  164. moovio_sdk/models/components/customersupporterror.py +25 -0
  165. moovio_sdk/models/components/debitholdperiod.py +12 -0
  166. moovio_sdk/models/components/disbursementpaymentmethodtype.py +13 -0
  167. moovio_sdk/models/components/displayoptionserror.py +23 -0
  168. moovio_sdk/models/components/dispute.py +76 -0
  169. moovio_sdk/models/components/disputeevidenceresponse.py +49 -0
  170. moovio_sdk/models/components/disputephase.py +13 -0
  171. moovio_sdk/models/components/disputestatus.py +20 -0
  172. moovio_sdk/models/components/disputetransferdetails.py +16 -0
  173. moovio_sdk/models/components/document.py +37 -0
  174. moovio_sdk/models/components/documenttype.py +13 -0
  175. moovio_sdk/models/components/domesticpullfromcard.py +12 -0
  176. moovio_sdk/models/components/domesticpushtocard.py +13 -0
  177. moovio_sdk/models/components/e2eetoken.py +25 -0
  178. moovio_sdk/models/components/e2eetokenupdate.py +26 -0
  179. moovio_sdk/models/components/end2endencryptionerror.py +14 -0
  180. moovio_sdk/models/components/enrichedaddressresponse.py +15 -0
  181. moovio_sdk/models/components/enrichedbusinessprofile.py +37 -0
  182. moovio_sdk/models/components/enrichedbusinessresponse.py +18 -0
  183. moovio_sdk/models/components/enrichedindustries.py +15 -0
  184. moovio_sdk/models/components/enrichedindustry.py +32 -0
  185. moovio_sdk/models/components/enrichedindustrycodes.py +17 -0
  186. moovio_sdk/models/components/evidencetextresponse.py +28 -0
  187. moovio_sdk/models/components/evidencetype.py +15 -0
  188. moovio_sdk/models/components/evidenceuploadresponse.py +50 -0
  189. moovio_sdk/models/components/facilitatorfee.py +48 -0
  190. moovio_sdk/models/components/feecategory.py +16 -0
  191. moovio_sdk/models/components/feemodel.py +12 -0
  192. moovio_sdk/models/components/feeplan.py +43 -0
  193. moovio_sdk/models/components/feeplanagreement.py +51 -0
  194. moovio_sdk/models/components/feeplanagreementstatus.py +9 -0
  195. moovio_sdk/models/components/feeproperties.py +49 -0
  196. moovio_sdk/models/components/filedetails.py +55 -0
  197. moovio_sdk/models/components/filepurpose.py +15 -0
  198. moovio_sdk/models/components/filestatus.py +12 -0
  199. moovio_sdk/models/components/fileuploadrequestmultipart.py +69 -0
  200. moovio_sdk/models/components/financialinstitutions.py +18 -0
  201. moovio_sdk/models/components/fulfillmentdetails.py +24 -0
  202. moovio_sdk/models/components/fulfillmentdetailserror.py +20 -0
  203. moovio_sdk/models/components/fullissuedcard.py +92 -0
  204. moovio_sdk/models/components/generatedby.py +39 -0
  205. moovio_sdk/models/components/generatedbyaccountid.py +15 -0
  206. moovio_sdk/models/components/generatedbybankaccountid.py +17 -0
  207. moovio_sdk/models/components/generatedbycardid.py +15 -0
  208. moovio_sdk/models/components/generatedbydisputeid.py +15 -0
  209. moovio_sdk/models/components/generatedbytransferid.py +15 -0
  210. moovio_sdk/models/components/governmentid.py +40 -0
  211. moovio_sdk/models/components/governmentiderror.py +40 -0
  212. moovio_sdk/models/components/granttype.py +15 -0
  213. moovio_sdk/models/components/incurredfee.py +44 -0
  214. moovio_sdk/models/components/individualname.py +32 -0
  215. moovio_sdk/models/components/individualnameerror.py +24 -0
  216. moovio_sdk/models/components/individualnameupdate.py +32 -0
  217. moovio_sdk/models/components/individualprofile.py +45 -0
  218. moovio_sdk/models/components/industrycodes.py +20 -0
  219. moovio_sdk/models/components/issuedcard.py +78 -0
  220. moovio_sdk/models/components/issuedcardauthorization.py +53 -0
  221. moovio_sdk/models/components/issuedcardauthorizationevent.py +37 -0
  222. moovio_sdk/models/components/issuedcardauthorizationeventresult.py +12 -0
  223. moovio_sdk/models/components/issuedcardeventtype.py +15 -0
  224. moovio_sdk/models/components/issuedcardformfactor.py +10 -0
  225. moovio_sdk/models/components/issuedcardstate.py +19 -0
  226. moovio_sdk/models/components/issuedcardtransaction.py +42 -0
  227. moovio_sdk/models/components/issuingauthorizationstatus.py +14 -0
  228. moovio_sdk/models/components/issuingcontrols.py +25 -0
  229. moovio_sdk/models/components/issuingcontrolserror.py +22 -0
  230. moovio_sdk/models/components/issuingintervallimit.py +10 -0
  231. moovio_sdk/models/components/issuingmerchantdata.py +47 -0
  232. moovio_sdk/models/components/issuingvelocitylimit.py +21 -0
  233. moovio_sdk/models/components/issuingvelocitylimiterror.py +17 -0
  234. moovio_sdk/models/components/jsonwebkey.py +103 -0
  235. moovio_sdk/models/components/linkapplepay.py +54 -0
  236. moovio_sdk/models/components/linkapplepaymentdata.py +51 -0
  237. moovio_sdk/models/components/linkapplepaymentmethod.py +38 -0
  238. moovio_sdk/models/components/linkapplepaytoken.py +63 -0
  239. moovio_sdk/models/components/linkbankaccount.py +26 -0
  240. moovio_sdk/models/components/linkcard.py +54 -0
  241. moovio_sdk/models/components/linkcardwaitfor.py +8 -0
  242. moovio_sdk/models/components/linkedapplepaypaymentmethod.py +30 -0
  243. moovio_sdk/models/components/listfeesfetchrequest.py +19 -0
  244. moovio_sdk/models/components/manualtermsofservice.py +34 -0
  245. moovio_sdk/models/components/manualtermsofserviceupdate.py +41 -0
  246. moovio_sdk/models/components/microdepositstatus.py +8 -0
  247. moovio_sdk/models/components/mode.py +11 -0
  248. moovio_sdk/models/components/moovfeedetails.py +36 -0
  249. moovio_sdk/models/components/moovwalletpaymentmethod.py +31 -0
  250. moovio_sdk/models/components/mxauthorizationcode.py +26 -0
  251. moovio_sdk/models/components/mxpayload.py +46 -0
  252. moovio_sdk/models/components/occurrence.py +44 -0
  253. moovio_sdk/models/components/occurrencesresponse.py +80 -0
  254. moovio_sdk/models/components/occurrencestatus.py +12 -0
  255. moovio_sdk/models/components/onboardinginvite.py +91 -0
  256. moovio_sdk/models/components/onboardinginviterequest.py +57 -0
  257. moovio_sdk/models/components/onboardingpartneraccount.py +31 -0
  258. moovio_sdk/models/components/partnerpricing.py +46 -0
  259. moovio_sdk/models/components/partnerpricingagreement.py +56 -0
  260. moovio_sdk/models/components/patchaccount.py +138 -0
  261. moovio_sdk/models/components/patchaccounterror.py +38 -0
  262. moovio_sdk/models/components/patchbusiness.py +72 -0
  263. moovio_sdk/models/components/patchindividual.py +43 -0
  264. moovio_sdk/models/components/patchprofile.py +29 -0
  265. moovio_sdk/models/components/patchsweepconfig.py +147 -0
  266. moovio_sdk/models/components/patchtransfer.py +51 -0
  267. moovio_sdk/models/components/paymentdetailserror.py +35 -0
  268. moovio_sdk/models/components/paymentlink.py +125 -0
  269. moovio_sdk/models/components/paymentlinkcustomeroptions.py +31 -0
  270. moovio_sdk/models/components/paymentlinkdisplayoptions.py +39 -0
  271. moovio_sdk/models/components/paymentlinkdisplayoptionsupdate.py +42 -0
  272. moovio_sdk/models/components/paymentlinkpaymentdetails.py +40 -0
  273. moovio_sdk/models/components/paymentlinkpaymentdetailsupdate.py +41 -0
  274. moovio_sdk/models/components/paymentlinkpayoutdetails.py +32 -0
  275. moovio_sdk/models/components/paymentlinkpayoutdetailsupdate.py +33 -0
  276. moovio_sdk/models/components/paymentlinkstatus.py +11 -0
  277. moovio_sdk/models/components/paymentmethod.py +82 -0
  278. moovio_sdk/models/components/paymentmethodsbankaccount.py +65 -0
  279. moovio_sdk/models/components/paymentmethodscard.py +121 -0
  280. moovio_sdk/models/components/paymentmethodswallet.py +14 -0
  281. moovio_sdk/models/components/paymentmethodtype.py +19 -0
  282. moovio_sdk/models/components/payoutdetailserror.py +21 -0
  283. moovio_sdk/models/components/payoutrecipient.py +23 -0
  284. moovio_sdk/models/components/payoutrecipienterror.py +14 -0
  285. moovio_sdk/models/components/payoutrecipientupdate.py +24 -0
  286. moovio_sdk/models/components/phonenumber.py +18 -0
  287. moovio_sdk/models/components/phonenumbererror.py +18 -0
  288. moovio_sdk/models/components/plaidintegration.py +39 -0
  289. moovio_sdk/models/components/plaidlinkintegration.py +36 -0
  290. moovio_sdk/models/components/plaidlinkpayload.py +45 -0
  291. moovio_sdk/models/components/plaidpayload.py +42 -0
  292. moovio_sdk/models/components/primaryregulator.py +13 -0
  293. moovio_sdk/models/components/profile.py +27 -0
  294. moovio_sdk/models/components/pullfromcardpaymentmethod.py +33 -0
  295. moovio_sdk/models/components/pushtocardpaymentmethod.py +33 -0
  296. moovio_sdk/models/components/qrcode.py +16 -0
  297. moovio_sdk/models/components/receiptkind.py +10 -0
  298. moovio_sdk/models/components/receiptrequest.py +75 -0
  299. moovio_sdk/models/components/receiptresponse.py +95 -0
  300. moovio_sdk/models/components/recur.py +40 -0
  301. moovio_sdk/models/components/refundcarddetails.py +44 -0
  302. moovio_sdk/models/components/refundcardstatus.py +12 -0
  303. moovio_sdk/models/components/refundstatus.py +11 -0
  304. moovio_sdk/models/components/registerapplepaymerchantdomains.py +22 -0
  305. moovio_sdk/models/components/representative.py +71 -0
  306. moovio_sdk/models/components/representativeresponsibilities.py +42 -0
  307. moovio_sdk/models/components/representativeresponsibilitieserror.py +26 -0
  308. moovio_sdk/models/components/requestcard.py +44 -0
  309. moovio_sdk/models/components/requirementerror.py +24 -0
  310. moovio_sdk/models/components/requirementerrorcode.py +25 -0
  311. moovio_sdk/models/components/requirementid.py +71 -0
  312. moovio_sdk/models/components/returnpolicytype.py +11 -0
  313. moovio_sdk/models/components/reversal.py +23 -0
  314. moovio_sdk/models/components/reversedwithcancellation.py +14 -0
  315. moovio_sdk/models/components/reversedwithrefund.py +16 -0
  316. moovio_sdk/models/components/revoketokenrequest.py +40 -0
  317. moovio_sdk/models/components/rtpcreditpaymentmethod.py +38 -0
  318. moovio_sdk/models/components/rtpfailurecode.py +19 -0
  319. moovio_sdk/models/components/rtprejectioncode.py +25 -0
  320. moovio_sdk/models/components/rtptransactiondetails.py +56 -0
  321. moovio_sdk/models/components/rtptransactionstatus.py +13 -0
  322. moovio_sdk/models/components/runtransfer.py +34 -0
  323. moovio_sdk/models/components/schedulepaymentmethod.py +56 -0
  324. moovio_sdk/models/components/scheduleresponse.py +60 -0
  325. moovio_sdk/models/components/seccode.py +13 -0
  326. moovio_sdk/models/components/security.py +32 -0
  327. moovio_sdk/models/components/sentreceipt.py +27 -0
  328. moovio_sdk/models/components/settings.py +30 -0
  329. moovio_sdk/models/components/sourcedestinationoptions.py +20 -0
  330. moovio_sdk/models/components/sweep.py +80 -0
  331. moovio_sdk/models/components/sweepconfig.py +81 -0
  332. moovio_sdk/models/components/sweepconfigpaymentmethod.py +31 -0
  333. moovio_sdk/models/components/sweepconfigstatus.py +9 -0
  334. moovio_sdk/models/components/sweepstatus.py +13 -0
  335. moovio_sdk/models/components/taxid.py +25 -0
  336. moovio_sdk/models/components/taxidupdate.py +26 -0
  337. moovio_sdk/models/components/terminalapplication.py +55 -0
  338. moovio_sdk/models/components/terminalapplicationplatform.py +12 -0
  339. moovio_sdk/models/components/terminalapplicationstatus.py +13 -0
  340. moovio_sdk/models/components/termsofservice.py +26 -0
  341. moovio_sdk/models/components/termsofserviceerror.py +39 -0
  342. moovio_sdk/models/components/termsofservicetoken.py +17 -0
  343. moovio_sdk/models/components/termsofservicetokenupdate.py +18 -0
  344. moovio_sdk/models/components/tokentype.py +10 -0
  345. moovio_sdk/models/components/transactionsource.py +16 -0
  346. moovio_sdk/models/components/transfer.py +126 -0
  347. moovio_sdk/models/components/transferaccount.py +20 -0
  348. moovio_sdk/models/components/transferdestination.py +83 -0
  349. moovio_sdk/models/components/transferfailurereason.py +14 -0
  350. moovio_sdk/models/components/transferoptions.py +23 -0
  351. moovio_sdk/models/components/transferresponse.py +15 -0
  352. moovio_sdk/models/components/transfersource.py +80 -0
  353. moovio_sdk/models/components/transferstatus.py +16 -0
  354. moovio_sdk/models/components/transferwaitfor.py +8 -0
  355. moovio_sdk/models/components/underwriting.py +56 -0
  356. moovio_sdk/models/components/underwritingstatus.py +16 -0
  357. moovio_sdk/models/components/updateapplepaymerchantdomains.py +26 -0
  358. moovio_sdk/models/components/updatebrand.py +15 -0
  359. moovio_sdk/models/components/updatecard.py +51 -0
  360. moovio_sdk/models/components/updatecardaddress.py +32 -0
  361. moovio_sdk/models/components/updatecardexpiration.py +17 -0
  362. moovio_sdk/models/components/updatecolor.py +14 -0
  363. moovio_sdk/models/components/updatecolors.py +18 -0
  364. moovio_sdk/models/components/updateevidence.py +23 -0
  365. moovio_sdk/models/components/updateissuedcard.py +44 -0
  366. moovio_sdk/models/components/updatepaymentlink.py +98 -0
  367. moovio_sdk/models/components/updaterepresentative.py +224 -0
  368. moovio_sdk/models/components/updateunderwriting.py +43 -0
  369. moovio_sdk/models/components/upsertschedule.py +26 -0
  370. moovio_sdk/models/components/verification.py +54 -0
  371. moovio_sdk/models/components/verificationstatus.py +17 -0
  372. moovio_sdk/models/components/verificationstatusdetail.py +23 -0
  373. moovio_sdk/models/components/volumebycustomertype.py +21 -0
  374. moovio_sdk/models/components/volumebycustomertypeerror.py +22 -0
  375. moovio_sdk/models/components/wallet.py +27 -0
  376. moovio_sdk/models/components/walletavailablebalance.py +30 -0
  377. moovio_sdk/models/components/wallettransaction.py +114 -0
  378. moovio_sdk/models/components/wallettransactionsourcetype.py +13 -0
  379. moovio_sdk/models/components/wallettransactionstatus.py +11 -0
  380. moovio_sdk/models/components/wallettransactiontype.py +32 -0
  381. moovio_sdk/models/errors/__init__.py +155 -0
  382. moovio_sdk/models/errors/addcapabilitieserror.py +23 -0
  383. moovio_sdk/models/errors/apierror.py +22 -0
  384. moovio_sdk/models/errors/assigncountrieserror.py +20 -0
  385. moovio_sdk/models/errors/authtokenrequesterror.py +22 -0
  386. moovio_sdk/models/errors/bankaccountvalidationerror.py +30 -0
  387. moovio_sdk/models/errors/brandvalidationerror.py +23 -0
  388. moovio_sdk/models/errors/cardacquiringrefund.py +44 -0
  389. moovio_sdk/models/errors/createaccount.py +24 -0
  390. moovio_sdk/models/errors/createpaymentlinkerror.py +46 -0
  391. moovio_sdk/models/errors/createsweepconfigerror.py +40 -0
  392. moovio_sdk/models/errors/feeplanagreementerror.py +22 -0
  393. moovio_sdk/models/errors/fileuploadvalidationerror.py +35 -0
  394. moovio_sdk/models/errors/filevalidationerror.py +28 -0
  395. moovio_sdk/models/errors/genericerror.py +19 -0
  396. moovio_sdk/models/errors/linkapplepayerror.py +36 -0
  397. moovio_sdk/models/errors/linkcarderror.py +47 -0
  398. moovio_sdk/models/errors/microdepositvalidationerror.py +20 -0
  399. moovio_sdk/models/errors/onboardinginviteerror.py +34 -0
  400. moovio_sdk/models/errors/patchsweepconfigerror.py +38 -0
  401. moovio_sdk/models/errors/receiptvalidationerror.py +40 -0
  402. moovio_sdk/models/errors/refundvalidationerror.py +23 -0
  403. moovio_sdk/models/errors/representativevalidationerror.py +68 -0
  404. moovio_sdk/models/errors/requestcarderror.py +42 -0
  405. moovio_sdk/models/errors/reversalvalidationerror.py +20 -0
  406. moovio_sdk/models/errors/revoketokenrequesterror.py +22 -0
  407. moovio_sdk/models/errors/schedulevalidationerror.py +24 -0
  408. moovio_sdk/models/errors/terminalapplicationerror.py +30 -0
  409. moovio_sdk/models/errors/transfer.py +108 -0
  410. moovio_sdk/models/errors/transferoptionsvalidationerror.py +24 -0
  411. moovio_sdk/models/errors/transfervalidationerror.py +49 -0
  412. moovio_sdk/models/errors/updateaccount.py +24 -0
  413. moovio_sdk/models/errors/updatecarderror.py +43 -0
  414. moovio_sdk/models/errors/updateissuedcarderror.py +32 -0
  415. moovio_sdk/models/errors/updatepaymentlinkerror.py +36 -0
  416. moovio_sdk/models/errors/updateunderwritingerror.py +70 -0
  417. moovio_sdk/models/internal/__init__.py +6 -0
  418. moovio_sdk/models/internal/globals.py +40 -0
  419. moovio_sdk/models/operations/__init__.py +1824 -0
  420. moovio_sdk/models/operations/acceptdispute.py +71 -0
  421. moovio_sdk/models/operations/assignaccountcountries.py +75 -0
  422. moovio_sdk/models/operations/cancelschedule.py +67 -0
  423. moovio_sdk/models/operations/completebankaccountverification.py +85 -0
  424. moovio_sdk/models/operations/completemicrodeposits.py +87 -0
  425. moovio_sdk/models/operations/createaccesstoken.py +52 -0
  426. moovio_sdk/models/operations/createaccount.py +52 -0
  427. moovio_sdk/models/operations/createapplepaysession.py +81 -0
  428. moovio_sdk/models/operations/createbrand.py +75 -0
  429. moovio_sdk/models/operations/createcancellation.py +75 -0
  430. moovio_sdk/models/operations/createfeeplanagreements.py +80 -0
  431. moovio_sdk/models/operations/createonboardinginvite.py +52 -0
  432. moovio_sdk/models/operations/createpaymentlink.py +78 -0
  433. moovio_sdk/models/operations/createreceipts.py +52 -0
  434. moovio_sdk/models/operations/createrepresentative.py +80 -0
  435. moovio_sdk/models/operations/createreversal.py +98 -0
  436. moovio_sdk/models/operations/createschedule.py +78 -0
  437. moovio_sdk/models/operations/createsweepconfig.py +78 -0
  438. moovio_sdk/models/operations/createterminalapplication.py +54 -0
  439. moovio_sdk/models/operations/createtransfer.py +125 -0
  440. moovio_sdk/models/operations/createtransferoptions.py +52 -0
  441. moovio_sdk/models/operations/deletedisputeevidencefile.py +74 -0
  442. moovio_sdk/models/operations/deleterepresentative.py +71 -0
  443. moovio_sdk/models/operations/deleteterminalapplication.py +60 -0
  444. moovio_sdk/models/operations/disablebankaccount.py +67 -0
  445. moovio_sdk/models/operations/disablecapability.py +76 -0
  446. moovio_sdk/models/operations/disablecard.py +67 -0
  447. moovio_sdk/models/operations/disablepaymentlink.py +67 -0
  448. moovio_sdk/models/operations/disconnectaccount.py +60 -0
  449. moovio_sdk/models/operations/generateendtoendkey.py +60 -0
  450. moovio_sdk/models/operations/getaccount.py +64 -0
  451. moovio_sdk/models/operations/getaccountcountries.py +64 -0
  452. moovio_sdk/models/operations/getadjustment.py +71 -0
  453. moovio_sdk/models/operations/getapplepaymerchantdomains.py +68 -0
  454. moovio_sdk/models/operations/getavatar.py +66 -0
  455. moovio_sdk/models/operations/getbankaccount.py +71 -0
  456. moovio_sdk/models/operations/getbankaccountverification.py +73 -0
  457. moovio_sdk/models/operations/getbrand.py +64 -0
  458. moovio_sdk/models/operations/getcancellation.py +84 -0
  459. moovio_sdk/models/operations/getcapability.py +82 -0
  460. moovio_sdk/models/operations/getcard.py +71 -0
  461. moovio_sdk/models/operations/getdispute.py +71 -0
  462. moovio_sdk/models/operations/getdisputeevidence.py +80 -0
  463. moovio_sdk/models/operations/getdisputeevidencedata.py +90 -0
  464. moovio_sdk/models/operations/getenrichmentaddress.py +178 -0
  465. moovio_sdk/models/operations/getenrichmentprofile.py +64 -0
  466. moovio_sdk/models/operations/getfiledetails.py +71 -0
  467. moovio_sdk/models/operations/getfullissuedcard.py +73 -0
  468. moovio_sdk/models/operations/getissuedcard.py +73 -0
  469. moovio_sdk/models/operations/getissuedcardauthorization.py +75 -0
  470. moovio_sdk/models/operations/getissuedcardtransaction.py +75 -0
  471. moovio_sdk/models/operations/getmerchantprocessingagreement.py +64 -0
  472. moovio_sdk/models/operations/getonboardinginvite.py +62 -0
  473. moovio_sdk/models/operations/getpaymentlink.py +71 -0
  474. moovio_sdk/models/operations/getpaymentlinkqrcode.py +84 -0
  475. moovio_sdk/models/operations/getpaymentmethod.py +71 -0
  476. moovio_sdk/models/operations/getrefund.py +84 -0
  477. moovio_sdk/models/operations/getrepresentative.py +75 -0
  478. moovio_sdk/models/operations/getscheduledoccurrence.py +92 -0
  479. moovio_sdk/models/operations/getschedules.py +71 -0
  480. moovio_sdk/models/operations/getsweep.py +78 -0
  481. moovio_sdk/models/operations/getsweepconfig.py +71 -0
  482. moovio_sdk/models/operations/getterminalapplication.py +66 -0
  483. moovio_sdk/models/operations/gettermsofservicetoken.py +75 -0
  484. moovio_sdk/models/operations/gettransfer.py +73 -0
  485. moovio_sdk/models/operations/getunderwriting.py +64 -0
  486. moovio_sdk/models/operations/getwallet.py +71 -0
  487. moovio_sdk/models/operations/getwallettransaction.py +80 -0
  488. moovio_sdk/models/operations/initiatebankaccountverification.py +89 -0
  489. moovio_sdk/models/operations/initiatemicrodeposits.py +67 -0
  490. moovio_sdk/models/operations/initiaterefund.py +131 -0
  491. moovio_sdk/models/operations/linkapplepaytoken.py +80 -0
  492. moovio_sdk/models/operations/linkbankaccount.py +96 -0
  493. moovio_sdk/models/operations/linkcard.py +96 -0
  494. moovio_sdk/models/operations/listaccounts.py +171 -0
  495. moovio_sdk/models/operations/listadjustments.py +78 -0
  496. moovio_sdk/models/operations/listbankaccounts.py +64 -0
  497. moovio_sdk/models/operations/listcapabilities.py +64 -0
  498. moovio_sdk/models/operations/listcards.py +64 -0
  499. moovio_sdk/models/operations/listdisputeevidence.py +73 -0
  500. moovio_sdk/models/operations/listdisputes.py +172 -0
  501. moovio_sdk/models/operations/listfeeplanagreements.py +101 -0
  502. moovio_sdk/models/operations/listfeeplans.py +78 -0
  503. moovio_sdk/models/operations/listfeesfetch.py +80 -0
  504. moovio_sdk/models/operations/listfiles.py +64 -0
  505. moovio_sdk/models/operations/listindustries.py +62 -0
  506. moovio_sdk/models/operations/listinstitutions.py +92 -0
  507. moovio_sdk/models/operations/listissuedcardauthorizationevents.py +94 -0
  508. moovio_sdk/models/operations/listissuedcardauthorizations.py +126 -0
  509. moovio_sdk/models/operations/listissuedcards.py +94 -0
  510. moovio_sdk/models/operations/listissuedcardtransactions.py +113 -0
  511. moovio_sdk/models/operations/listonboardinginvites.py +60 -0
  512. moovio_sdk/models/operations/listpartnerpricing.py +78 -0
  513. moovio_sdk/models/operations/listpartnerpricingagreements.py +101 -0
  514. moovio_sdk/models/operations/listpaymentlinks.py +64 -0
  515. moovio_sdk/models/operations/listpaymentmethods.py +98 -0
  516. moovio_sdk/models/operations/listreceipts.py +65 -0
  517. moovio_sdk/models/operations/listrefunds.py +75 -0
  518. moovio_sdk/models/operations/listrepresentatives.py +66 -0
  519. moovio_sdk/models/operations/listschedules.py +81 -0
  520. moovio_sdk/models/operations/listsweepconfigs.py +64 -0
  521. moovio_sdk/models/operations/listsweeps.py +108 -0
  522. moovio_sdk/models/operations/listterminalapplications.py +62 -0
  523. moovio_sdk/models/operations/listtransfers.py +145 -0
  524. moovio_sdk/models/operations/listwallets.py +64 -0
  525. moovio_sdk/models/operations/listwallettransactions.py +189 -0
  526. moovio_sdk/models/operations/ping.py +56 -0
  527. moovio_sdk/models/operations/registerapplepaymerchantdomains.py +80 -0
  528. moovio_sdk/models/operations/requestcapabilities.py +78 -0
  529. moovio_sdk/models/operations/requestcard.py +80 -0
  530. moovio_sdk/models/operations/retrievefees.py +117 -0
  531. moovio_sdk/models/operations/revokeaccesstoken.py +48 -0
  532. moovio_sdk/models/operations/revokeonboardinginvite.py +58 -0
  533. moovio_sdk/models/operations/submitdisputeevidence.py +71 -0
  534. moovio_sdk/models/operations/testendtoendtoken.py +56 -0
  535. moovio_sdk/models/operations/updateaccount.py +78 -0
  536. moovio_sdk/models/operations/updateapplepaymerchantdomains.py +78 -0
  537. moovio_sdk/models/operations/updatebrand.py +78 -0
  538. moovio_sdk/models/operations/updatecard.py +85 -0
  539. moovio_sdk/models/operations/updatedisputeevidence.py +92 -0
  540. moovio_sdk/models/operations/updateissuedcard.py +81 -0
  541. moovio_sdk/models/operations/updatepaymentlink.py +85 -0
  542. moovio_sdk/models/operations/updaterepresentative.py +89 -0
  543. moovio_sdk/models/operations/updateschedule.py +85 -0
  544. moovio_sdk/models/operations/updatesweepconfig.py +85 -0
  545. moovio_sdk/models/operations/updatetransfer.py +87 -0
  546. moovio_sdk/models/operations/uploaddisputeevidencefile.py +87 -0
  547. moovio_sdk/models/operations/uploaddisputeevidencetext.py +85 -0
  548. moovio_sdk/models/operations/uploadfile.py +80 -0
  549. moovio_sdk/models/operations/upsertbrand.py +75 -0
  550. moovio_sdk/models/operations/upsertunderwriting.py +78 -0
  551. moovio_sdk/onboarding.py +965 -0
  552. moovio_sdk/payment_links.py +1694 -0
  553. moovio_sdk/payment_methods.py +475 -0
  554. moovio_sdk/ping.py +233 -0
  555. moovio_sdk/py.typed +1 -0
  556. moovio_sdk/receipts.py +507 -0
  557. moovio_sdk/representatives.py +1513 -0
  558. moovio_sdk/scheduling.py +1565 -0
  559. moovio_sdk/sdk.py +242 -0
  560. moovio_sdk/sdkconfiguration.py +59 -0
  561. moovio_sdk/sweeps.py +1617 -0
  562. moovio_sdk/terminal_applications.py +1013 -0
  563. moovio_sdk/transfers.py +3040 -0
  564. moovio_sdk/types/__init__.py +21 -0
  565. moovio_sdk/types/basemodel.py +39 -0
  566. moovio_sdk/underwriting.py +581 -0
  567. moovio_sdk/utils/__init__.py +101 -0
  568. moovio_sdk/utils/annotations.py +55 -0
  569. moovio_sdk/utils/enums.py +34 -0
  570. moovio_sdk/utils/eventstreaming.py +238 -0
  571. moovio_sdk/utils/forms.py +202 -0
  572. moovio_sdk/utils/headers.py +136 -0
  573. moovio_sdk/utils/logger.py +27 -0
  574. moovio_sdk/utils/metadata.py +118 -0
  575. moovio_sdk/utils/queryparams.py +205 -0
  576. moovio_sdk/utils/requestbodies.py +66 -0
  577. moovio_sdk/utils/retries.py +217 -0
  578. moovio_sdk/utils/security.py +195 -0
  579. moovio_sdk/utils/serializers.py +215 -0
  580. moovio_sdk/utils/url.py +155 -0
  581. moovio_sdk/utils/values.py +137 -0
  582. moovio_sdk/wallet_transactions.py +558 -0
  583. moovio_sdk/wallets.py +465 -0
  584. moovio_sdk-0.3.8.dist-info/METADATA +1920 -0
  585. moovio_sdk-0.3.8.dist-info/RECORD +586 -0
  586. moovio_sdk-0.3.8.dist-info/WHEEL +4 -0
@@ -0,0 +1,1565 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from moovio_sdk import utils
5
+ from moovio_sdk._hooks import HookContext
6
+ from moovio_sdk.models import components, errors, operations
7
+ from moovio_sdk.types import OptionalNullable, UNSET
8
+ from moovio_sdk.utils import get_security_from_env
9
+ from typing import Any, List, Mapping, Optional, Union
10
+
11
+
12
+ class Scheduling(BaseSDK):
13
+ def create(
14
+ self,
15
+ *,
16
+ account_id: str,
17
+ description: Optional[str] = None,
18
+ occurrences: Optional[
19
+ Union[List[components.Occurrence], List[components.OccurrenceTypedDict]]
20
+ ] = None,
21
+ recur: Optional[Union[components.Recur, components.RecurTypedDict]] = None,
22
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
23
+ server_url: Optional[str] = None,
24
+ timeout_ms: Optional[int] = None,
25
+ http_headers: Optional[Mapping[str, str]] = None,
26
+ ) -> operations.CreateScheduleResponse:
27
+ r"""Describes the schedule to create or modify.
28
+
29
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
30
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
31
+
32
+ :param account_id:
33
+ :param description: Simple description of what the schedule is.
34
+ :param occurrences:
35
+ :param recur: Defines configuration for recurring transfers.
36
+ :param retries: Override the default retry configuration for this method
37
+ :param server_url: Override the default server URL for this method
38
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
39
+ :param http_headers: Additional headers to set or replace on requests.
40
+ """
41
+ base_url = None
42
+ url_variables = None
43
+ if timeout_ms is None:
44
+ timeout_ms = self.sdk_configuration.timeout_ms
45
+
46
+ if server_url is not None:
47
+ base_url = server_url
48
+ else:
49
+ base_url = self._get_url(base_url, url_variables)
50
+
51
+ request = operations.CreateScheduleRequest(
52
+ account_id=account_id,
53
+ upsert_schedule=components.UpsertSchedule(
54
+ description=description,
55
+ occurrences=utils.get_pydantic_model(
56
+ occurrences, Optional[List[components.Occurrence]]
57
+ ),
58
+ recur=utils.get_pydantic_model(recur, Optional[components.Recur]),
59
+ ),
60
+ )
61
+
62
+ req = self._build_request(
63
+ method="POST",
64
+ path="/accounts/{accountID}/schedules",
65
+ base_url=base_url,
66
+ url_variables=url_variables,
67
+ request=request,
68
+ request_body_required=True,
69
+ request_has_path_params=True,
70
+ request_has_query_params=True,
71
+ user_agent_header="user-agent",
72
+ accept_header_value="application/json",
73
+ http_headers=http_headers,
74
+ _globals=operations.CreateScheduleGlobals(
75
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
76
+ ),
77
+ security=self.sdk_configuration.security,
78
+ get_serialized_body=lambda: utils.serialize_request_body(
79
+ request.upsert_schedule, False, False, "json", components.UpsertSchedule
80
+ ),
81
+ timeout_ms=timeout_ms,
82
+ )
83
+
84
+ if retries == UNSET:
85
+ if self.sdk_configuration.retry_config is not UNSET:
86
+ retries = self.sdk_configuration.retry_config
87
+
88
+ retry_config = None
89
+ if isinstance(retries, utils.RetryConfig):
90
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
91
+
92
+ http_res = self.do_request(
93
+ hook_ctx=HookContext(
94
+ base_url=base_url or "",
95
+ operation_id="createSchedule",
96
+ oauth2_scopes=[],
97
+ security_source=get_security_from_env(
98
+ self.sdk_configuration.security, components.Security
99
+ ),
100
+ ),
101
+ request=req,
102
+ error_status_codes=[
103
+ "400",
104
+ "401",
105
+ "403",
106
+ "404",
107
+ "409",
108
+ "422",
109
+ "429",
110
+ "4XX",
111
+ "500",
112
+ "504",
113
+ "5XX",
114
+ ],
115
+ retry_config=retry_config,
116
+ )
117
+
118
+ response_data: Any = None
119
+ if utils.match_response(http_res, "200", "application/json"):
120
+ return operations.CreateScheduleResponse(
121
+ result=utils.unmarshal_json(http_res.text, components.ScheduleResponse),
122
+ headers=utils.get_response_headers(http_res.headers),
123
+ )
124
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
125
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
126
+ raise errors.GenericError(data=response_data)
127
+ if utils.match_response(http_res, "422", "application/json"):
128
+ response_data = utils.unmarshal_json(
129
+ http_res.text, errors.ScheduleValidationErrorData
130
+ )
131
+ raise errors.ScheduleValidationError(data=response_data)
132
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
133
+ http_res_text = utils.stream_to_text(http_res)
134
+ raise errors.APIError(
135
+ "API error occurred", http_res.status_code, http_res_text, http_res
136
+ )
137
+ if utils.match_response(http_res, ["500", "504"], "*"):
138
+ http_res_text = utils.stream_to_text(http_res)
139
+ raise errors.APIError(
140
+ "API error occurred", http_res.status_code, http_res_text, http_res
141
+ )
142
+ if utils.match_response(http_res, "4XX", "*"):
143
+ http_res_text = utils.stream_to_text(http_res)
144
+ raise errors.APIError(
145
+ "API error occurred", http_res.status_code, http_res_text, http_res
146
+ )
147
+ if utils.match_response(http_res, "5XX", "*"):
148
+ http_res_text = utils.stream_to_text(http_res)
149
+ raise errors.APIError(
150
+ "API error occurred", http_res.status_code, http_res_text, http_res
151
+ )
152
+
153
+ content_type = http_res.headers.get("Content-Type")
154
+ http_res_text = utils.stream_to_text(http_res)
155
+ raise errors.APIError(
156
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
157
+ http_res.status_code,
158
+ http_res_text,
159
+ http_res,
160
+ )
161
+
162
+ async def create_async(
163
+ self,
164
+ *,
165
+ account_id: str,
166
+ description: Optional[str] = None,
167
+ occurrences: Optional[
168
+ Union[List[components.Occurrence], List[components.OccurrenceTypedDict]]
169
+ ] = None,
170
+ recur: Optional[Union[components.Recur, components.RecurTypedDict]] = None,
171
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
172
+ server_url: Optional[str] = None,
173
+ timeout_ms: Optional[int] = None,
174
+ http_headers: Optional[Mapping[str, str]] = None,
175
+ ) -> operations.CreateScheduleResponse:
176
+ r"""Describes the schedule to create or modify.
177
+
178
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
179
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
180
+
181
+ :param account_id:
182
+ :param description: Simple description of what the schedule is.
183
+ :param occurrences:
184
+ :param recur: Defines configuration for recurring transfers.
185
+ :param retries: Override the default retry configuration for this method
186
+ :param server_url: Override the default server URL for this method
187
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
188
+ :param http_headers: Additional headers to set or replace on requests.
189
+ """
190
+ base_url = None
191
+ url_variables = None
192
+ if timeout_ms is None:
193
+ timeout_ms = self.sdk_configuration.timeout_ms
194
+
195
+ if server_url is not None:
196
+ base_url = server_url
197
+ else:
198
+ base_url = self._get_url(base_url, url_variables)
199
+
200
+ request = operations.CreateScheduleRequest(
201
+ account_id=account_id,
202
+ upsert_schedule=components.UpsertSchedule(
203
+ description=description,
204
+ occurrences=utils.get_pydantic_model(
205
+ occurrences, Optional[List[components.Occurrence]]
206
+ ),
207
+ recur=utils.get_pydantic_model(recur, Optional[components.Recur]),
208
+ ),
209
+ )
210
+
211
+ req = self._build_request_async(
212
+ method="POST",
213
+ path="/accounts/{accountID}/schedules",
214
+ base_url=base_url,
215
+ url_variables=url_variables,
216
+ request=request,
217
+ request_body_required=True,
218
+ request_has_path_params=True,
219
+ request_has_query_params=True,
220
+ user_agent_header="user-agent",
221
+ accept_header_value="application/json",
222
+ http_headers=http_headers,
223
+ _globals=operations.CreateScheduleGlobals(
224
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
225
+ ),
226
+ security=self.sdk_configuration.security,
227
+ get_serialized_body=lambda: utils.serialize_request_body(
228
+ request.upsert_schedule, False, False, "json", components.UpsertSchedule
229
+ ),
230
+ timeout_ms=timeout_ms,
231
+ )
232
+
233
+ if retries == UNSET:
234
+ if self.sdk_configuration.retry_config is not UNSET:
235
+ retries = self.sdk_configuration.retry_config
236
+
237
+ retry_config = None
238
+ if isinstance(retries, utils.RetryConfig):
239
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
240
+
241
+ http_res = await self.do_request_async(
242
+ hook_ctx=HookContext(
243
+ base_url=base_url or "",
244
+ operation_id="createSchedule",
245
+ oauth2_scopes=[],
246
+ security_source=get_security_from_env(
247
+ self.sdk_configuration.security, components.Security
248
+ ),
249
+ ),
250
+ request=req,
251
+ error_status_codes=[
252
+ "400",
253
+ "401",
254
+ "403",
255
+ "404",
256
+ "409",
257
+ "422",
258
+ "429",
259
+ "4XX",
260
+ "500",
261
+ "504",
262
+ "5XX",
263
+ ],
264
+ retry_config=retry_config,
265
+ )
266
+
267
+ response_data: Any = None
268
+ if utils.match_response(http_res, "200", "application/json"):
269
+ return operations.CreateScheduleResponse(
270
+ result=utils.unmarshal_json(http_res.text, components.ScheduleResponse),
271
+ headers=utils.get_response_headers(http_res.headers),
272
+ )
273
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
274
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
275
+ raise errors.GenericError(data=response_data)
276
+ if utils.match_response(http_res, "422", "application/json"):
277
+ response_data = utils.unmarshal_json(
278
+ http_res.text, errors.ScheduleValidationErrorData
279
+ )
280
+ raise errors.ScheduleValidationError(data=response_data)
281
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
282
+ http_res_text = await utils.stream_to_text_async(http_res)
283
+ raise errors.APIError(
284
+ "API error occurred", http_res.status_code, http_res_text, http_res
285
+ )
286
+ if utils.match_response(http_res, ["500", "504"], "*"):
287
+ http_res_text = await utils.stream_to_text_async(http_res)
288
+ raise errors.APIError(
289
+ "API error occurred", http_res.status_code, http_res_text, http_res
290
+ )
291
+ if utils.match_response(http_res, "4XX", "*"):
292
+ http_res_text = await utils.stream_to_text_async(http_res)
293
+ raise errors.APIError(
294
+ "API error occurred", http_res.status_code, http_res_text, http_res
295
+ )
296
+ if utils.match_response(http_res, "5XX", "*"):
297
+ http_res_text = await utils.stream_to_text_async(http_res)
298
+ raise errors.APIError(
299
+ "API error occurred", http_res.status_code, http_res_text, http_res
300
+ )
301
+
302
+ content_type = http_res.headers.get("Content-Type")
303
+ http_res_text = await utils.stream_to_text_async(http_res)
304
+ raise errors.APIError(
305
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
306
+ http_res.status_code,
307
+ http_res_text,
308
+ http_res,
309
+ )
310
+
311
+ def list(
312
+ self,
313
+ *,
314
+ account_id: str,
315
+ skip: Optional[int] = None,
316
+ count: Optional[int] = None,
317
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
318
+ server_url: Optional[str] = None,
319
+ timeout_ms: Optional[int] = None,
320
+ http_headers: Optional[Mapping[str, str]] = None,
321
+ ) -> operations.ListSchedulesResponse:
322
+ r"""Describes a list of schedules associated with an account. Requires at least 1 occurrence or recurTransfer to be specified.
323
+
324
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
325
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
326
+
327
+ :param account_id:
328
+ :param skip:
329
+ :param count:
330
+ :param retries: Override the default retry configuration for this method
331
+ :param server_url: Override the default server URL for this method
332
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
333
+ :param http_headers: Additional headers to set or replace on requests.
334
+ """
335
+ base_url = None
336
+ url_variables = None
337
+ if timeout_ms is None:
338
+ timeout_ms = self.sdk_configuration.timeout_ms
339
+
340
+ if server_url is not None:
341
+ base_url = server_url
342
+ else:
343
+ base_url = self._get_url(base_url, url_variables)
344
+
345
+ request = operations.ListSchedulesRequest(
346
+ skip=skip,
347
+ count=count,
348
+ account_id=account_id,
349
+ )
350
+
351
+ req = self._build_request(
352
+ method="GET",
353
+ path="/accounts/{accountID}/schedules",
354
+ base_url=base_url,
355
+ url_variables=url_variables,
356
+ request=request,
357
+ request_body_required=False,
358
+ request_has_path_params=True,
359
+ request_has_query_params=True,
360
+ user_agent_header="user-agent",
361
+ accept_header_value="application/json",
362
+ http_headers=http_headers,
363
+ _globals=operations.ListSchedulesGlobals(
364
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
365
+ ),
366
+ security=self.sdk_configuration.security,
367
+ timeout_ms=timeout_ms,
368
+ )
369
+
370
+ if retries == UNSET:
371
+ if self.sdk_configuration.retry_config is not UNSET:
372
+ retries = self.sdk_configuration.retry_config
373
+
374
+ retry_config = None
375
+ if isinstance(retries, utils.RetryConfig):
376
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
377
+
378
+ http_res = self.do_request(
379
+ hook_ctx=HookContext(
380
+ base_url=base_url or "",
381
+ operation_id="listSchedules",
382
+ oauth2_scopes=[],
383
+ security_source=get_security_from_env(
384
+ self.sdk_configuration.security, components.Security
385
+ ),
386
+ ),
387
+ request=req,
388
+ error_status_codes=["401", "403", "429", "4XX", "500", "504", "5XX"],
389
+ retry_config=retry_config,
390
+ )
391
+
392
+ if utils.match_response(http_res, "200", "application/json"):
393
+ return operations.ListSchedulesResponse(
394
+ result=utils.unmarshal_json(
395
+ http_res.text, List[components.ScheduleResponse]
396
+ ),
397
+ headers=utils.get_response_headers(http_res.headers),
398
+ )
399
+ if utils.match_response(http_res, ["401", "403", "429"], "*"):
400
+ http_res_text = utils.stream_to_text(http_res)
401
+ raise errors.APIError(
402
+ "API error occurred", http_res.status_code, http_res_text, http_res
403
+ )
404
+ if utils.match_response(http_res, ["500", "504"], "*"):
405
+ http_res_text = utils.stream_to_text(http_res)
406
+ raise errors.APIError(
407
+ "API error occurred", http_res.status_code, http_res_text, http_res
408
+ )
409
+ if utils.match_response(http_res, "4XX", "*"):
410
+ http_res_text = utils.stream_to_text(http_res)
411
+ raise errors.APIError(
412
+ "API error occurred", http_res.status_code, http_res_text, http_res
413
+ )
414
+ if utils.match_response(http_res, "5XX", "*"):
415
+ http_res_text = utils.stream_to_text(http_res)
416
+ raise errors.APIError(
417
+ "API error occurred", http_res.status_code, http_res_text, http_res
418
+ )
419
+
420
+ content_type = http_res.headers.get("Content-Type")
421
+ http_res_text = utils.stream_to_text(http_res)
422
+ raise errors.APIError(
423
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
424
+ http_res.status_code,
425
+ http_res_text,
426
+ http_res,
427
+ )
428
+
429
+ async def list_async(
430
+ self,
431
+ *,
432
+ account_id: str,
433
+ skip: Optional[int] = None,
434
+ count: Optional[int] = None,
435
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
436
+ server_url: Optional[str] = None,
437
+ timeout_ms: Optional[int] = None,
438
+ http_headers: Optional[Mapping[str, str]] = None,
439
+ ) -> operations.ListSchedulesResponse:
440
+ r"""Describes a list of schedules associated with an account. Requires at least 1 occurrence or recurTransfer to be specified.
441
+
442
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
443
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
444
+
445
+ :param account_id:
446
+ :param skip:
447
+ :param count:
448
+ :param retries: Override the default retry configuration for this method
449
+ :param server_url: Override the default server URL for this method
450
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
451
+ :param http_headers: Additional headers to set or replace on requests.
452
+ """
453
+ base_url = None
454
+ url_variables = None
455
+ if timeout_ms is None:
456
+ timeout_ms = self.sdk_configuration.timeout_ms
457
+
458
+ if server_url is not None:
459
+ base_url = server_url
460
+ else:
461
+ base_url = self._get_url(base_url, url_variables)
462
+
463
+ request = operations.ListSchedulesRequest(
464
+ skip=skip,
465
+ count=count,
466
+ account_id=account_id,
467
+ )
468
+
469
+ req = self._build_request_async(
470
+ method="GET",
471
+ path="/accounts/{accountID}/schedules",
472
+ base_url=base_url,
473
+ url_variables=url_variables,
474
+ request=request,
475
+ request_body_required=False,
476
+ request_has_path_params=True,
477
+ request_has_query_params=True,
478
+ user_agent_header="user-agent",
479
+ accept_header_value="application/json",
480
+ http_headers=http_headers,
481
+ _globals=operations.ListSchedulesGlobals(
482
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
483
+ ),
484
+ security=self.sdk_configuration.security,
485
+ timeout_ms=timeout_ms,
486
+ )
487
+
488
+ if retries == UNSET:
489
+ if self.sdk_configuration.retry_config is not UNSET:
490
+ retries = self.sdk_configuration.retry_config
491
+
492
+ retry_config = None
493
+ if isinstance(retries, utils.RetryConfig):
494
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
495
+
496
+ http_res = await self.do_request_async(
497
+ hook_ctx=HookContext(
498
+ base_url=base_url or "",
499
+ operation_id="listSchedules",
500
+ oauth2_scopes=[],
501
+ security_source=get_security_from_env(
502
+ self.sdk_configuration.security, components.Security
503
+ ),
504
+ ),
505
+ request=req,
506
+ error_status_codes=["401", "403", "429", "4XX", "500", "504", "5XX"],
507
+ retry_config=retry_config,
508
+ )
509
+
510
+ if utils.match_response(http_res, "200", "application/json"):
511
+ return operations.ListSchedulesResponse(
512
+ result=utils.unmarshal_json(
513
+ http_res.text, List[components.ScheduleResponse]
514
+ ),
515
+ headers=utils.get_response_headers(http_res.headers),
516
+ )
517
+ if utils.match_response(http_res, ["401", "403", "429"], "*"):
518
+ http_res_text = await utils.stream_to_text_async(http_res)
519
+ raise errors.APIError(
520
+ "API error occurred", http_res.status_code, http_res_text, http_res
521
+ )
522
+ if utils.match_response(http_res, ["500", "504"], "*"):
523
+ http_res_text = await utils.stream_to_text_async(http_res)
524
+ raise errors.APIError(
525
+ "API error occurred", http_res.status_code, http_res_text, http_res
526
+ )
527
+ if utils.match_response(http_res, "4XX", "*"):
528
+ http_res_text = await utils.stream_to_text_async(http_res)
529
+ raise errors.APIError(
530
+ "API error occurred", http_res.status_code, http_res_text, http_res
531
+ )
532
+ if utils.match_response(http_res, "5XX", "*"):
533
+ http_res_text = await utils.stream_to_text_async(http_res)
534
+ raise errors.APIError(
535
+ "API error occurred", http_res.status_code, http_res_text, http_res
536
+ )
537
+
538
+ content_type = http_res.headers.get("Content-Type")
539
+ http_res_text = await utils.stream_to_text_async(http_res)
540
+ raise errors.APIError(
541
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
542
+ http_res.status_code,
543
+ http_res_text,
544
+ http_res,
545
+ )
546
+
547
+ def update(
548
+ self,
549
+ *,
550
+ account_id: str,
551
+ schedule_id: str,
552
+ description: Optional[str] = None,
553
+ occurrences: Optional[
554
+ Union[List[components.Occurrence], List[components.OccurrenceTypedDict]]
555
+ ] = None,
556
+ recur: Optional[Union[components.Recur, components.RecurTypedDict]] = None,
557
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
558
+ server_url: Optional[str] = None,
559
+ timeout_ms: Optional[int] = None,
560
+ http_headers: Optional[Mapping[str, str]] = None,
561
+ ) -> operations.UpdateScheduleResponse:
562
+ r"""Describes the schedule to modify.
563
+
564
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
565
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
566
+
567
+ :param account_id:
568
+ :param schedule_id:
569
+ :param description: Simple description of what the schedule is.
570
+ :param occurrences:
571
+ :param recur: Defines configuration for recurring transfers.
572
+ :param retries: Override the default retry configuration for this method
573
+ :param server_url: Override the default server URL for this method
574
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
575
+ :param http_headers: Additional headers to set or replace on requests.
576
+ """
577
+ base_url = None
578
+ url_variables = None
579
+ if timeout_ms is None:
580
+ timeout_ms = self.sdk_configuration.timeout_ms
581
+
582
+ if server_url is not None:
583
+ base_url = server_url
584
+ else:
585
+ base_url = self._get_url(base_url, url_variables)
586
+
587
+ request = operations.UpdateScheduleRequest(
588
+ account_id=account_id,
589
+ schedule_id=schedule_id,
590
+ upsert_schedule=components.UpsertSchedule(
591
+ description=description,
592
+ occurrences=utils.get_pydantic_model(
593
+ occurrences, Optional[List[components.Occurrence]]
594
+ ),
595
+ recur=utils.get_pydantic_model(recur, Optional[components.Recur]),
596
+ ),
597
+ )
598
+
599
+ req = self._build_request(
600
+ method="PUT",
601
+ path="/accounts/{accountID}/schedules/{scheduleID}",
602
+ base_url=base_url,
603
+ url_variables=url_variables,
604
+ request=request,
605
+ request_body_required=True,
606
+ request_has_path_params=True,
607
+ request_has_query_params=True,
608
+ user_agent_header="user-agent",
609
+ accept_header_value="application/json",
610
+ http_headers=http_headers,
611
+ _globals=operations.UpdateScheduleGlobals(
612
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
613
+ ),
614
+ security=self.sdk_configuration.security,
615
+ get_serialized_body=lambda: utils.serialize_request_body(
616
+ request.upsert_schedule, False, False, "json", components.UpsertSchedule
617
+ ),
618
+ timeout_ms=timeout_ms,
619
+ )
620
+
621
+ if retries == UNSET:
622
+ if self.sdk_configuration.retry_config is not UNSET:
623
+ retries = self.sdk_configuration.retry_config
624
+
625
+ retry_config = None
626
+ if isinstance(retries, utils.RetryConfig):
627
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
628
+
629
+ http_res = self.do_request(
630
+ hook_ctx=HookContext(
631
+ base_url=base_url or "",
632
+ operation_id="updateSchedule",
633
+ oauth2_scopes=[],
634
+ security_source=get_security_from_env(
635
+ self.sdk_configuration.security, components.Security
636
+ ),
637
+ ),
638
+ request=req,
639
+ error_status_codes=[
640
+ "400",
641
+ "401",
642
+ "403",
643
+ "404",
644
+ "409",
645
+ "422",
646
+ "429",
647
+ "4XX",
648
+ "500",
649
+ "504",
650
+ "5XX",
651
+ ],
652
+ retry_config=retry_config,
653
+ )
654
+
655
+ response_data: Any = None
656
+ if utils.match_response(http_res, "200", "application/json"):
657
+ return operations.UpdateScheduleResponse(
658
+ result=utils.unmarshal_json(http_res.text, components.ScheduleResponse),
659
+ headers=utils.get_response_headers(http_res.headers),
660
+ )
661
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
662
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
663
+ raise errors.GenericError(data=response_data)
664
+ if utils.match_response(http_res, "422", "application/json"):
665
+ response_data = utils.unmarshal_json(
666
+ http_res.text, errors.ScheduleValidationErrorData
667
+ )
668
+ raise errors.ScheduleValidationError(data=response_data)
669
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
670
+ http_res_text = utils.stream_to_text(http_res)
671
+ raise errors.APIError(
672
+ "API error occurred", http_res.status_code, http_res_text, http_res
673
+ )
674
+ if utils.match_response(http_res, ["500", "504"], "*"):
675
+ http_res_text = utils.stream_to_text(http_res)
676
+ raise errors.APIError(
677
+ "API error occurred", http_res.status_code, http_res_text, http_res
678
+ )
679
+ if utils.match_response(http_res, "4XX", "*"):
680
+ http_res_text = utils.stream_to_text(http_res)
681
+ raise errors.APIError(
682
+ "API error occurred", http_res.status_code, http_res_text, http_res
683
+ )
684
+ if utils.match_response(http_res, "5XX", "*"):
685
+ http_res_text = utils.stream_to_text(http_res)
686
+ raise errors.APIError(
687
+ "API error occurred", http_res.status_code, http_res_text, http_res
688
+ )
689
+
690
+ content_type = http_res.headers.get("Content-Type")
691
+ http_res_text = utils.stream_to_text(http_res)
692
+ raise errors.APIError(
693
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
694
+ http_res.status_code,
695
+ http_res_text,
696
+ http_res,
697
+ )
698
+
699
+ async def update_async(
700
+ self,
701
+ *,
702
+ account_id: str,
703
+ schedule_id: str,
704
+ description: Optional[str] = None,
705
+ occurrences: Optional[
706
+ Union[List[components.Occurrence], List[components.OccurrenceTypedDict]]
707
+ ] = None,
708
+ recur: Optional[Union[components.Recur, components.RecurTypedDict]] = None,
709
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
710
+ server_url: Optional[str] = None,
711
+ timeout_ms: Optional[int] = None,
712
+ http_headers: Optional[Mapping[str, str]] = None,
713
+ ) -> operations.UpdateScheduleResponse:
714
+ r"""Describes the schedule to modify.
715
+
716
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
717
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
718
+
719
+ :param account_id:
720
+ :param schedule_id:
721
+ :param description: Simple description of what the schedule is.
722
+ :param occurrences:
723
+ :param recur: Defines configuration for recurring transfers.
724
+ :param retries: Override the default retry configuration for this method
725
+ :param server_url: Override the default server URL for this method
726
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
727
+ :param http_headers: Additional headers to set or replace on requests.
728
+ """
729
+ base_url = None
730
+ url_variables = None
731
+ if timeout_ms is None:
732
+ timeout_ms = self.sdk_configuration.timeout_ms
733
+
734
+ if server_url is not None:
735
+ base_url = server_url
736
+ else:
737
+ base_url = self._get_url(base_url, url_variables)
738
+
739
+ request = operations.UpdateScheduleRequest(
740
+ account_id=account_id,
741
+ schedule_id=schedule_id,
742
+ upsert_schedule=components.UpsertSchedule(
743
+ description=description,
744
+ occurrences=utils.get_pydantic_model(
745
+ occurrences, Optional[List[components.Occurrence]]
746
+ ),
747
+ recur=utils.get_pydantic_model(recur, Optional[components.Recur]),
748
+ ),
749
+ )
750
+
751
+ req = self._build_request_async(
752
+ method="PUT",
753
+ path="/accounts/{accountID}/schedules/{scheduleID}",
754
+ base_url=base_url,
755
+ url_variables=url_variables,
756
+ request=request,
757
+ request_body_required=True,
758
+ request_has_path_params=True,
759
+ request_has_query_params=True,
760
+ user_agent_header="user-agent",
761
+ accept_header_value="application/json",
762
+ http_headers=http_headers,
763
+ _globals=operations.UpdateScheduleGlobals(
764
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
765
+ ),
766
+ security=self.sdk_configuration.security,
767
+ get_serialized_body=lambda: utils.serialize_request_body(
768
+ request.upsert_schedule, False, False, "json", components.UpsertSchedule
769
+ ),
770
+ timeout_ms=timeout_ms,
771
+ )
772
+
773
+ if retries == UNSET:
774
+ if self.sdk_configuration.retry_config is not UNSET:
775
+ retries = self.sdk_configuration.retry_config
776
+
777
+ retry_config = None
778
+ if isinstance(retries, utils.RetryConfig):
779
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
780
+
781
+ http_res = await self.do_request_async(
782
+ hook_ctx=HookContext(
783
+ base_url=base_url or "",
784
+ operation_id="updateSchedule",
785
+ oauth2_scopes=[],
786
+ security_source=get_security_from_env(
787
+ self.sdk_configuration.security, components.Security
788
+ ),
789
+ ),
790
+ request=req,
791
+ error_status_codes=[
792
+ "400",
793
+ "401",
794
+ "403",
795
+ "404",
796
+ "409",
797
+ "422",
798
+ "429",
799
+ "4XX",
800
+ "500",
801
+ "504",
802
+ "5XX",
803
+ ],
804
+ retry_config=retry_config,
805
+ )
806
+
807
+ response_data: Any = None
808
+ if utils.match_response(http_res, "200", "application/json"):
809
+ return operations.UpdateScheduleResponse(
810
+ result=utils.unmarshal_json(http_res.text, components.ScheduleResponse),
811
+ headers=utils.get_response_headers(http_res.headers),
812
+ )
813
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
814
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
815
+ raise errors.GenericError(data=response_data)
816
+ if utils.match_response(http_res, "422", "application/json"):
817
+ response_data = utils.unmarshal_json(
818
+ http_res.text, errors.ScheduleValidationErrorData
819
+ )
820
+ raise errors.ScheduleValidationError(data=response_data)
821
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
822
+ http_res_text = await utils.stream_to_text_async(http_res)
823
+ raise errors.APIError(
824
+ "API error occurred", http_res.status_code, http_res_text, http_res
825
+ )
826
+ if utils.match_response(http_res, ["500", "504"], "*"):
827
+ http_res_text = await utils.stream_to_text_async(http_res)
828
+ raise errors.APIError(
829
+ "API error occurred", http_res.status_code, http_res_text, http_res
830
+ )
831
+ if utils.match_response(http_res, "4XX", "*"):
832
+ http_res_text = await utils.stream_to_text_async(http_res)
833
+ raise errors.APIError(
834
+ "API error occurred", http_res.status_code, http_res_text, http_res
835
+ )
836
+ if utils.match_response(http_res, "5XX", "*"):
837
+ http_res_text = await utils.stream_to_text_async(http_res)
838
+ raise errors.APIError(
839
+ "API error occurred", http_res.status_code, http_res_text, http_res
840
+ )
841
+
842
+ content_type = http_res.headers.get("Content-Type")
843
+ http_res_text = await utils.stream_to_text_async(http_res)
844
+ raise errors.APIError(
845
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
846
+ http_res.status_code,
847
+ http_res_text,
848
+ http_res,
849
+ )
850
+
851
+ def get(
852
+ self,
853
+ *,
854
+ account_id: str,
855
+ schedule_id: str,
856
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
857
+ server_url: Optional[str] = None,
858
+ timeout_ms: Optional[int] = None,
859
+ http_headers: Optional[Mapping[str, str]] = None,
860
+ ) -> operations.GetSchedulesResponse:
861
+ r"""Describes a schedule associated with an account. Requires at least 1 occurrence or recurTransfer to be specified.
862
+
863
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
864
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
865
+
866
+ :param account_id:
867
+ :param schedule_id:
868
+ :param retries: Override the default retry configuration for this method
869
+ :param server_url: Override the default server URL for this method
870
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
871
+ :param http_headers: Additional headers to set or replace on requests.
872
+ """
873
+ base_url = None
874
+ url_variables = None
875
+ if timeout_ms is None:
876
+ timeout_ms = self.sdk_configuration.timeout_ms
877
+
878
+ if server_url is not None:
879
+ base_url = server_url
880
+ else:
881
+ base_url = self._get_url(base_url, url_variables)
882
+
883
+ request = operations.GetSchedulesRequest(
884
+ account_id=account_id,
885
+ schedule_id=schedule_id,
886
+ )
887
+
888
+ req = self._build_request(
889
+ method="GET",
890
+ path="/accounts/{accountID}/schedules/{scheduleID}",
891
+ base_url=base_url,
892
+ url_variables=url_variables,
893
+ request=request,
894
+ request_body_required=False,
895
+ request_has_path_params=True,
896
+ request_has_query_params=True,
897
+ user_agent_header="user-agent",
898
+ accept_header_value="application/json",
899
+ http_headers=http_headers,
900
+ _globals=operations.GetSchedulesGlobals(
901
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
902
+ ),
903
+ security=self.sdk_configuration.security,
904
+ timeout_ms=timeout_ms,
905
+ )
906
+
907
+ if retries == UNSET:
908
+ if self.sdk_configuration.retry_config is not UNSET:
909
+ retries = self.sdk_configuration.retry_config
910
+
911
+ retry_config = None
912
+ if isinstance(retries, utils.RetryConfig):
913
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
914
+
915
+ http_res = self.do_request(
916
+ hook_ctx=HookContext(
917
+ base_url=base_url or "",
918
+ operation_id="getSchedules",
919
+ oauth2_scopes=[],
920
+ security_source=get_security_from_env(
921
+ self.sdk_configuration.security, components.Security
922
+ ),
923
+ ),
924
+ request=req,
925
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
926
+ retry_config=retry_config,
927
+ )
928
+
929
+ if utils.match_response(http_res, "200", "application/json"):
930
+ return operations.GetSchedulesResponse(
931
+ result=utils.unmarshal_json(http_res.text, components.ScheduleResponse),
932
+ headers=utils.get_response_headers(http_res.headers),
933
+ )
934
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
935
+ http_res_text = utils.stream_to_text(http_res)
936
+ raise errors.APIError(
937
+ "API error occurred", http_res.status_code, http_res_text, http_res
938
+ )
939
+ if utils.match_response(http_res, ["500", "504"], "*"):
940
+ http_res_text = utils.stream_to_text(http_res)
941
+ raise errors.APIError(
942
+ "API error occurred", http_res.status_code, http_res_text, http_res
943
+ )
944
+ if utils.match_response(http_res, "4XX", "*"):
945
+ http_res_text = utils.stream_to_text(http_res)
946
+ raise errors.APIError(
947
+ "API error occurred", http_res.status_code, http_res_text, http_res
948
+ )
949
+ if utils.match_response(http_res, "5XX", "*"):
950
+ http_res_text = utils.stream_to_text(http_res)
951
+ raise errors.APIError(
952
+ "API error occurred", http_res.status_code, http_res_text, http_res
953
+ )
954
+
955
+ content_type = http_res.headers.get("Content-Type")
956
+ http_res_text = utils.stream_to_text(http_res)
957
+ raise errors.APIError(
958
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
959
+ http_res.status_code,
960
+ http_res_text,
961
+ http_res,
962
+ )
963
+
964
+ async def get_async(
965
+ self,
966
+ *,
967
+ account_id: str,
968
+ schedule_id: str,
969
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
970
+ server_url: Optional[str] = None,
971
+ timeout_ms: Optional[int] = None,
972
+ http_headers: Optional[Mapping[str, str]] = None,
973
+ ) -> operations.GetSchedulesResponse:
974
+ r"""Describes a schedule associated with an account. Requires at least 1 occurrence or recurTransfer to be specified.
975
+
976
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
977
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
978
+
979
+ :param account_id:
980
+ :param schedule_id:
981
+ :param retries: Override the default retry configuration for this method
982
+ :param server_url: Override the default server URL for this method
983
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
984
+ :param http_headers: Additional headers to set or replace on requests.
985
+ """
986
+ base_url = None
987
+ url_variables = None
988
+ if timeout_ms is None:
989
+ timeout_ms = self.sdk_configuration.timeout_ms
990
+
991
+ if server_url is not None:
992
+ base_url = server_url
993
+ else:
994
+ base_url = self._get_url(base_url, url_variables)
995
+
996
+ request = operations.GetSchedulesRequest(
997
+ account_id=account_id,
998
+ schedule_id=schedule_id,
999
+ )
1000
+
1001
+ req = self._build_request_async(
1002
+ method="GET",
1003
+ path="/accounts/{accountID}/schedules/{scheduleID}",
1004
+ base_url=base_url,
1005
+ url_variables=url_variables,
1006
+ request=request,
1007
+ request_body_required=False,
1008
+ request_has_path_params=True,
1009
+ request_has_query_params=True,
1010
+ user_agent_header="user-agent",
1011
+ accept_header_value="application/json",
1012
+ http_headers=http_headers,
1013
+ _globals=operations.GetSchedulesGlobals(
1014
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1015
+ ),
1016
+ security=self.sdk_configuration.security,
1017
+ timeout_ms=timeout_ms,
1018
+ )
1019
+
1020
+ if retries == UNSET:
1021
+ if self.sdk_configuration.retry_config is not UNSET:
1022
+ retries = self.sdk_configuration.retry_config
1023
+
1024
+ retry_config = None
1025
+ if isinstance(retries, utils.RetryConfig):
1026
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1027
+
1028
+ http_res = await self.do_request_async(
1029
+ hook_ctx=HookContext(
1030
+ base_url=base_url or "",
1031
+ operation_id="getSchedules",
1032
+ oauth2_scopes=[],
1033
+ security_source=get_security_from_env(
1034
+ self.sdk_configuration.security, components.Security
1035
+ ),
1036
+ ),
1037
+ request=req,
1038
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
1039
+ retry_config=retry_config,
1040
+ )
1041
+
1042
+ if utils.match_response(http_res, "200", "application/json"):
1043
+ return operations.GetSchedulesResponse(
1044
+ result=utils.unmarshal_json(http_res.text, components.ScheduleResponse),
1045
+ headers=utils.get_response_headers(http_res.headers),
1046
+ )
1047
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1048
+ http_res_text = await utils.stream_to_text_async(http_res)
1049
+ raise errors.APIError(
1050
+ "API error occurred", http_res.status_code, http_res_text, http_res
1051
+ )
1052
+ if utils.match_response(http_res, ["500", "504"], "*"):
1053
+ http_res_text = await utils.stream_to_text_async(http_res)
1054
+ raise errors.APIError(
1055
+ "API error occurred", http_res.status_code, http_res_text, http_res
1056
+ )
1057
+ if utils.match_response(http_res, "4XX", "*"):
1058
+ http_res_text = await utils.stream_to_text_async(http_res)
1059
+ raise errors.APIError(
1060
+ "API error occurred", http_res.status_code, http_res_text, http_res
1061
+ )
1062
+ if utils.match_response(http_res, "5XX", "*"):
1063
+ http_res_text = await utils.stream_to_text_async(http_res)
1064
+ raise errors.APIError(
1065
+ "API error occurred", http_res.status_code, http_res_text, http_res
1066
+ )
1067
+
1068
+ content_type = http_res.headers.get("Content-Type")
1069
+ http_res_text = await utils.stream_to_text_async(http_res)
1070
+ raise errors.APIError(
1071
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1072
+ http_res.status_code,
1073
+ http_res_text,
1074
+ http_res,
1075
+ )
1076
+
1077
+ def cancel(
1078
+ self,
1079
+ *,
1080
+ account_id: str,
1081
+ schedule_id: str,
1082
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1083
+ server_url: Optional[str] = None,
1084
+ timeout_ms: Optional[int] = None,
1085
+ http_headers: Optional[Mapping[str, str]] = None,
1086
+ ) -> operations.CancelScheduleResponse:
1087
+ r"""Describes the schedule to cancel.
1088
+
1089
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1090
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1091
+
1092
+ :param account_id:
1093
+ :param schedule_id:
1094
+ :param retries: Override the default retry configuration for this method
1095
+ :param server_url: Override the default server URL for this method
1096
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1097
+ :param http_headers: Additional headers to set or replace on requests.
1098
+ """
1099
+ base_url = None
1100
+ url_variables = None
1101
+ if timeout_ms is None:
1102
+ timeout_ms = self.sdk_configuration.timeout_ms
1103
+
1104
+ if server_url is not None:
1105
+ base_url = server_url
1106
+ else:
1107
+ base_url = self._get_url(base_url, url_variables)
1108
+
1109
+ request = operations.CancelScheduleRequest(
1110
+ account_id=account_id,
1111
+ schedule_id=schedule_id,
1112
+ )
1113
+
1114
+ req = self._build_request(
1115
+ method="DELETE",
1116
+ path="/accounts/{accountID}/schedules/{scheduleID}",
1117
+ base_url=base_url,
1118
+ url_variables=url_variables,
1119
+ request=request,
1120
+ request_body_required=False,
1121
+ request_has_path_params=True,
1122
+ request_has_query_params=True,
1123
+ user_agent_header="user-agent",
1124
+ accept_header_value="application/json",
1125
+ http_headers=http_headers,
1126
+ _globals=operations.CancelScheduleGlobals(
1127
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1128
+ ),
1129
+ security=self.sdk_configuration.security,
1130
+ timeout_ms=timeout_ms,
1131
+ )
1132
+
1133
+ if retries == UNSET:
1134
+ if self.sdk_configuration.retry_config is not UNSET:
1135
+ retries = self.sdk_configuration.retry_config
1136
+
1137
+ retry_config = None
1138
+ if isinstance(retries, utils.RetryConfig):
1139
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1140
+
1141
+ http_res = self.do_request(
1142
+ hook_ctx=HookContext(
1143
+ base_url=base_url or "",
1144
+ operation_id="cancelSchedule",
1145
+ oauth2_scopes=[],
1146
+ security_source=get_security_from_env(
1147
+ self.sdk_configuration.security, components.Security
1148
+ ),
1149
+ ),
1150
+ request=req,
1151
+ error_status_codes=[
1152
+ "400",
1153
+ "401",
1154
+ "403",
1155
+ "404",
1156
+ "409",
1157
+ "429",
1158
+ "4XX",
1159
+ "500",
1160
+ "504",
1161
+ "5XX",
1162
+ ],
1163
+ retry_config=retry_config,
1164
+ )
1165
+
1166
+ response_data: Any = None
1167
+ if utils.match_response(http_res, "204", "*"):
1168
+ return operations.CancelScheduleResponse(
1169
+ headers=utils.get_response_headers(http_res.headers)
1170
+ )
1171
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1172
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1173
+ raise errors.GenericError(data=response_data)
1174
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1175
+ http_res_text = utils.stream_to_text(http_res)
1176
+ raise errors.APIError(
1177
+ "API error occurred", http_res.status_code, http_res_text, http_res
1178
+ )
1179
+ if utils.match_response(http_res, ["500", "504"], "*"):
1180
+ http_res_text = utils.stream_to_text(http_res)
1181
+ raise errors.APIError(
1182
+ "API error occurred", http_res.status_code, http_res_text, http_res
1183
+ )
1184
+ if utils.match_response(http_res, "4XX", "*"):
1185
+ http_res_text = utils.stream_to_text(http_res)
1186
+ raise errors.APIError(
1187
+ "API error occurred", http_res.status_code, http_res_text, http_res
1188
+ )
1189
+ if utils.match_response(http_res, "5XX", "*"):
1190
+ http_res_text = utils.stream_to_text(http_res)
1191
+ raise errors.APIError(
1192
+ "API error occurred", http_res.status_code, http_res_text, http_res
1193
+ )
1194
+
1195
+ content_type = http_res.headers.get("Content-Type")
1196
+ http_res_text = utils.stream_to_text(http_res)
1197
+ raise errors.APIError(
1198
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1199
+ http_res.status_code,
1200
+ http_res_text,
1201
+ http_res,
1202
+ )
1203
+
1204
+ async def cancel_async(
1205
+ self,
1206
+ *,
1207
+ account_id: str,
1208
+ schedule_id: str,
1209
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1210
+ server_url: Optional[str] = None,
1211
+ timeout_ms: Optional[int] = None,
1212
+ http_headers: Optional[Mapping[str, str]] = None,
1213
+ ) -> operations.CancelScheduleResponse:
1214
+ r"""Describes the schedule to cancel.
1215
+
1216
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1217
+ you'll need to specify the `/accounts/{accountID}/transfers.write` scope.
1218
+
1219
+ :param account_id:
1220
+ :param schedule_id:
1221
+ :param retries: Override the default retry configuration for this method
1222
+ :param server_url: Override the default server URL for this method
1223
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1224
+ :param http_headers: Additional headers to set or replace on requests.
1225
+ """
1226
+ base_url = None
1227
+ url_variables = None
1228
+ if timeout_ms is None:
1229
+ timeout_ms = self.sdk_configuration.timeout_ms
1230
+
1231
+ if server_url is not None:
1232
+ base_url = server_url
1233
+ else:
1234
+ base_url = self._get_url(base_url, url_variables)
1235
+
1236
+ request = operations.CancelScheduleRequest(
1237
+ account_id=account_id,
1238
+ schedule_id=schedule_id,
1239
+ )
1240
+
1241
+ req = self._build_request_async(
1242
+ method="DELETE",
1243
+ path="/accounts/{accountID}/schedules/{scheduleID}",
1244
+ base_url=base_url,
1245
+ url_variables=url_variables,
1246
+ request=request,
1247
+ request_body_required=False,
1248
+ request_has_path_params=True,
1249
+ request_has_query_params=True,
1250
+ user_agent_header="user-agent",
1251
+ accept_header_value="application/json",
1252
+ http_headers=http_headers,
1253
+ _globals=operations.CancelScheduleGlobals(
1254
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1255
+ ),
1256
+ security=self.sdk_configuration.security,
1257
+ timeout_ms=timeout_ms,
1258
+ )
1259
+
1260
+ if retries == UNSET:
1261
+ if self.sdk_configuration.retry_config is not UNSET:
1262
+ retries = self.sdk_configuration.retry_config
1263
+
1264
+ retry_config = None
1265
+ if isinstance(retries, utils.RetryConfig):
1266
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1267
+
1268
+ http_res = await self.do_request_async(
1269
+ hook_ctx=HookContext(
1270
+ base_url=base_url or "",
1271
+ operation_id="cancelSchedule",
1272
+ oauth2_scopes=[],
1273
+ security_source=get_security_from_env(
1274
+ self.sdk_configuration.security, components.Security
1275
+ ),
1276
+ ),
1277
+ request=req,
1278
+ error_status_codes=[
1279
+ "400",
1280
+ "401",
1281
+ "403",
1282
+ "404",
1283
+ "409",
1284
+ "429",
1285
+ "4XX",
1286
+ "500",
1287
+ "504",
1288
+ "5XX",
1289
+ ],
1290
+ retry_config=retry_config,
1291
+ )
1292
+
1293
+ response_data: Any = None
1294
+ if utils.match_response(http_res, "204", "*"):
1295
+ return operations.CancelScheduleResponse(
1296
+ headers=utils.get_response_headers(http_res.headers)
1297
+ )
1298
+ if utils.match_response(http_res, ["400", "409"], "application/json"):
1299
+ response_data = utils.unmarshal_json(http_res.text, errors.GenericErrorData)
1300
+ raise errors.GenericError(data=response_data)
1301
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1302
+ http_res_text = await utils.stream_to_text_async(http_res)
1303
+ raise errors.APIError(
1304
+ "API error occurred", http_res.status_code, http_res_text, http_res
1305
+ )
1306
+ if utils.match_response(http_res, ["500", "504"], "*"):
1307
+ http_res_text = await utils.stream_to_text_async(http_res)
1308
+ raise errors.APIError(
1309
+ "API error occurred", http_res.status_code, http_res_text, http_res
1310
+ )
1311
+ if utils.match_response(http_res, "4XX", "*"):
1312
+ http_res_text = await utils.stream_to_text_async(http_res)
1313
+ raise errors.APIError(
1314
+ "API error occurred", http_res.status_code, http_res_text, http_res
1315
+ )
1316
+ if utils.match_response(http_res, "5XX", "*"):
1317
+ http_res_text = await utils.stream_to_text_async(http_res)
1318
+ raise errors.APIError(
1319
+ "API error occurred", http_res.status_code, http_res_text, http_res
1320
+ )
1321
+
1322
+ content_type = http_res.headers.get("Content-Type")
1323
+ http_res_text = await utils.stream_to_text_async(http_res)
1324
+ raise errors.APIError(
1325
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1326
+ http_res.status_code,
1327
+ http_res_text,
1328
+ http_res,
1329
+ )
1330
+
1331
+ def get_occurrance(
1332
+ self,
1333
+ *,
1334
+ account_id: str,
1335
+ schedule_id: str,
1336
+ occurrence_filter: str,
1337
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1338
+ server_url: Optional[str] = None,
1339
+ timeout_ms: Optional[int] = None,
1340
+ http_headers: Optional[Mapping[str, str]] = None,
1341
+ ) -> operations.GetScheduledOccurrenceResponse:
1342
+ r"""Gets a specific occurrence.
1343
+
1344
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1345
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
1346
+
1347
+ :param account_id:
1348
+ :param schedule_id:
1349
+ :param occurrence_filter: Allows the specification of additional filters beyond the UUID. Specifying a UUID string returns the exact occurrence. Specifying a RFC 3339 timestamp returns the latest occurrence at or before that timestamp. Specifying `latest` returns the latest occurrence at or before now.
1350
+ :param retries: Override the default retry configuration for this method
1351
+ :param server_url: Override the default server URL for this method
1352
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1353
+ :param http_headers: Additional headers to set or replace on requests.
1354
+ """
1355
+ base_url = None
1356
+ url_variables = None
1357
+ if timeout_ms is None:
1358
+ timeout_ms = self.sdk_configuration.timeout_ms
1359
+
1360
+ if server_url is not None:
1361
+ base_url = server_url
1362
+ else:
1363
+ base_url = self._get_url(base_url, url_variables)
1364
+
1365
+ request = operations.GetScheduledOccurrenceRequest(
1366
+ account_id=account_id,
1367
+ schedule_id=schedule_id,
1368
+ occurrence_filter=occurrence_filter,
1369
+ )
1370
+
1371
+ req = self._build_request(
1372
+ method="GET",
1373
+ path="/accounts/{accountID}/schedules/{scheduleID}/occurrences/{occurrenceFilter}",
1374
+ base_url=base_url,
1375
+ url_variables=url_variables,
1376
+ request=request,
1377
+ request_body_required=False,
1378
+ request_has_path_params=True,
1379
+ request_has_query_params=True,
1380
+ user_agent_header="user-agent",
1381
+ accept_header_value="application/json",
1382
+ http_headers=http_headers,
1383
+ _globals=operations.GetScheduledOccurrenceGlobals(
1384
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1385
+ ),
1386
+ security=self.sdk_configuration.security,
1387
+ timeout_ms=timeout_ms,
1388
+ )
1389
+
1390
+ if retries == UNSET:
1391
+ if self.sdk_configuration.retry_config is not UNSET:
1392
+ retries = self.sdk_configuration.retry_config
1393
+
1394
+ retry_config = None
1395
+ if isinstance(retries, utils.RetryConfig):
1396
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1397
+
1398
+ http_res = self.do_request(
1399
+ hook_ctx=HookContext(
1400
+ base_url=base_url or "",
1401
+ operation_id="getScheduledOccurrence",
1402
+ oauth2_scopes=[],
1403
+ security_source=get_security_from_env(
1404
+ self.sdk_configuration.security, components.Security
1405
+ ),
1406
+ ),
1407
+ request=req,
1408
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
1409
+ retry_config=retry_config,
1410
+ )
1411
+
1412
+ if utils.match_response(http_res, "200", "application/json"):
1413
+ return operations.GetScheduledOccurrenceResponse(
1414
+ result=utils.unmarshal_json(
1415
+ http_res.text, components.OccurrencesResponse
1416
+ ),
1417
+ headers=utils.get_response_headers(http_res.headers),
1418
+ )
1419
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1420
+ http_res_text = utils.stream_to_text(http_res)
1421
+ raise errors.APIError(
1422
+ "API error occurred", http_res.status_code, http_res_text, http_res
1423
+ )
1424
+ if utils.match_response(http_res, ["500", "504"], "*"):
1425
+ http_res_text = utils.stream_to_text(http_res)
1426
+ raise errors.APIError(
1427
+ "API error occurred", http_res.status_code, http_res_text, http_res
1428
+ )
1429
+ if utils.match_response(http_res, "4XX", "*"):
1430
+ http_res_text = utils.stream_to_text(http_res)
1431
+ raise errors.APIError(
1432
+ "API error occurred", http_res.status_code, http_res_text, http_res
1433
+ )
1434
+ if utils.match_response(http_res, "5XX", "*"):
1435
+ http_res_text = utils.stream_to_text(http_res)
1436
+ raise errors.APIError(
1437
+ "API error occurred", http_res.status_code, http_res_text, http_res
1438
+ )
1439
+
1440
+ content_type = http_res.headers.get("Content-Type")
1441
+ http_res_text = utils.stream_to_text(http_res)
1442
+ raise errors.APIError(
1443
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1444
+ http_res.status_code,
1445
+ http_res_text,
1446
+ http_res,
1447
+ )
1448
+
1449
+ async def get_occurrance_async(
1450
+ self,
1451
+ *,
1452
+ account_id: str,
1453
+ schedule_id: str,
1454
+ occurrence_filter: str,
1455
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1456
+ server_url: Optional[str] = None,
1457
+ timeout_ms: Optional[int] = None,
1458
+ http_headers: Optional[Mapping[str, str]] = None,
1459
+ ) -> operations.GetScheduledOccurrenceResponse:
1460
+ r"""Gets a specific occurrence.
1461
+
1462
+ To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
1463
+ you'll need to specify the `/accounts/{accountID}/transfers.read` scope.
1464
+
1465
+ :param account_id:
1466
+ :param schedule_id:
1467
+ :param occurrence_filter: Allows the specification of additional filters beyond the UUID. Specifying a UUID string returns the exact occurrence. Specifying a RFC 3339 timestamp returns the latest occurrence at or before that timestamp. Specifying `latest` returns the latest occurrence at or before now.
1468
+ :param retries: Override the default retry configuration for this method
1469
+ :param server_url: Override the default server URL for this method
1470
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1471
+ :param http_headers: Additional headers to set or replace on requests.
1472
+ """
1473
+ base_url = None
1474
+ url_variables = None
1475
+ if timeout_ms is None:
1476
+ timeout_ms = self.sdk_configuration.timeout_ms
1477
+
1478
+ if server_url is not None:
1479
+ base_url = server_url
1480
+ else:
1481
+ base_url = self._get_url(base_url, url_variables)
1482
+
1483
+ request = operations.GetScheduledOccurrenceRequest(
1484
+ account_id=account_id,
1485
+ schedule_id=schedule_id,
1486
+ occurrence_filter=occurrence_filter,
1487
+ )
1488
+
1489
+ req = self._build_request_async(
1490
+ method="GET",
1491
+ path="/accounts/{accountID}/schedules/{scheduleID}/occurrences/{occurrenceFilter}",
1492
+ base_url=base_url,
1493
+ url_variables=url_variables,
1494
+ request=request,
1495
+ request_body_required=False,
1496
+ request_has_path_params=True,
1497
+ request_has_query_params=True,
1498
+ user_agent_header="user-agent",
1499
+ accept_header_value="application/json",
1500
+ http_headers=http_headers,
1501
+ _globals=operations.GetScheduledOccurrenceGlobals(
1502
+ x_moov_version=self.sdk_configuration.globals.x_moov_version,
1503
+ ),
1504
+ security=self.sdk_configuration.security,
1505
+ timeout_ms=timeout_ms,
1506
+ )
1507
+
1508
+ if retries == UNSET:
1509
+ if self.sdk_configuration.retry_config is not UNSET:
1510
+ retries = self.sdk_configuration.retry_config
1511
+
1512
+ retry_config = None
1513
+ if isinstance(retries, utils.RetryConfig):
1514
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
1515
+
1516
+ http_res = await self.do_request_async(
1517
+ hook_ctx=HookContext(
1518
+ base_url=base_url or "",
1519
+ operation_id="getScheduledOccurrence",
1520
+ oauth2_scopes=[],
1521
+ security_source=get_security_from_env(
1522
+ self.sdk_configuration.security, components.Security
1523
+ ),
1524
+ ),
1525
+ request=req,
1526
+ error_status_codes=["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
1527
+ retry_config=retry_config,
1528
+ )
1529
+
1530
+ if utils.match_response(http_res, "200", "application/json"):
1531
+ return operations.GetScheduledOccurrenceResponse(
1532
+ result=utils.unmarshal_json(
1533
+ http_res.text, components.OccurrencesResponse
1534
+ ),
1535
+ headers=utils.get_response_headers(http_res.headers),
1536
+ )
1537
+ if utils.match_response(http_res, ["401", "403", "404", "429"], "*"):
1538
+ http_res_text = await utils.stream_to_text_async(http_res)
1539
+ raise errors.APIError(
1540
+ "API error occurred", http_res.status_code, http_res_text, http_res
1541
+ )
1542
+ if utils.match_response(http_res, ["500", "504"], "*"):
1543
+ http_res_text = await utils.stream_to_text_async(http_res)
1544
+ raise errors.APIError(
1545
+ "API error occurred", http_res.status_code, http_res_text, http_res
1546
+ )
1547
+ if utils.match_response(http_res, "4XX", "*"):
1548
+ http_res_text = await utils.stream_to_text_async(http_res)
1549
+ raise errors.APIError(
1550
+ "API error occurred", http_res.status_code, http_res_text, http_res
1551
+ )
1552
+ if utils.match_response(http_res, "5XX", "*"):
1553
+ http_res_text = await utils.stream_to_text_async(http_res)
1554
+ raise errors.APIError(
1555
+ "API error occurred", http_res.status_code, http_res_text, http_res
1556
+ )
1557
+
1558
+ content_type = http_res.headers.get("Content-Type")
1559
+ http_res_text = await utils.stream_to_text_async(http_res)
1560
+ raise errors.APIError(
1561
+ f"Unexpected response received (code: {http_res.status_code}, type: {content_type})",
1562
+ http_res.status_code,
1563
+ http_res_text,
1564
+ http_res,
1565
+ )