moolabs 0.3.0__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 (1417) hide show
  1. moolabs/__init__.py +1487 -0
  2. moolabs/_dx_attribution_context.py +213 -0
  3. moolabs/_dx_attribution_db_time.py +2126 -0
  4. moolabs/_dx_attribution_db_time_transport.py +173 -0
  5. moolabs/_dx_attribution_delta.py +142 -0
  6. moolabs/_dx_attribution_deposits.py +552 -0
  7. moolabs/_dx_attribution_instrument.py +416 -0
  8. moolabs/_dx_attribution_middleware.py +541 -0
  9. moolabs/_dx_attribution_propagate.py +509 -0
  10. moolabs/_dx_attribution_signal_transport.py +232 -0
  11. moolabs/_dx_attribution_signals.py +927 -0
  12. moolabs/_dx_buffer.py +429 -0
  13. moolabs/_dx_client.py +726 -0
  14. moolabs/_dx_exceptions.py +84 -0
  15. moolabs/_dx_namespaces.py +1780 -0
  16. moolabs/_dx_pagination.py +131 -0
  17. moolabs/_dx_routing.py +276 -0
  18. moolabs/_dx_urls.py +629 -0
  19. moolabs/_dx_webhooks.py +82 -0
  20. moolabs/api/__init__.py +121 -0
  21. moolabs/api/account_team_api.py +1444 -0
  22. moolabs/api/accounts_api.py +4950 -0
  23. moolabs/api/acute_analytics_api.py +5750 -0
  24. moolabs/api/acute_integrations_api.py +3449 -0
  25. moolabs/api/admin_api.py +3347 -0
  26. moolabs/api/alerts_api.py +1626 -0
  27. moolabs/api/allocation_rules_api.py +1720 -0
  28. moolabs/api/analytics_api.py +3204 -0
  29. moolabs/api/app_custom_invoicing_api.py +952 -0
  30. moolabs/api/app_stripe_api.py +958 -0
  31. moolabs/api/apps_api.py +3064 -0
  32. moolabs/api/arc_admin_api.py +8773 -0
  33. moolabs/api/arc_communications_api.py +1991 -0
  34. moolabs/api/arc_portal_api.py +1737 -0
  35. moolabs/api/arc_webhooks_api.py +2087 -0
  36. moolabs/api/attribution_allocation_api.py +2345 -0
  37. moolabs/api/attribution_api.py +1717 -0
  38. moolabs/api/attribution_customer_keys_api.py +600 -0
  39. moolabs/api/attribution_db_time_api.py +918 -0
  40. moolabs/api/attribution_opencost_api.py +1372 -0
  41. moolabs/api/attribution_readouts_api.py +393 -0
  42. moolabs/api/attribution_signals_api.py +315 -0
  43. moolabs/api/auto_topup_api.py +3095 -0
  44. moolabs/api/batch_api.py +6714 -0
  45. moolabs/api/billing_api.py +300 -0
  46. moolabs/api/bom_api.py +2769 -0
  47. moolabs/api/budgets_api.py +2112 -0
  48. moolabs/api/buyer_quotes_api.py +2007 -0
  49. moolabs/api/cases_api.py +5075 -0
  50. moolabs/api/cash_credits_api.py +1548 -0
  51. moolabs/api/chat_api.py +3101 -0
  52. moolabs/api/clause_packs_api.py +2785 -0
  53. moolabs/api/cloud_billing_api.py +1747 -0
  54. moolabs/api/contract_editor_api.py +3384 -0
  55. moolabs/api/cost_events_api.py +1732 -0
  56. moolabs/api/credit_memos_api.py +3478 -0
  57. moolabs/api/customers_api.py +3931 -0
  58. moolabs/api/dashboard_api.py +771 -0
  59. moolabs/api/debug_api.py +300 -0
  60. moolabs/api/default_api.py +526 -0
  61. moolabs/api/disputes_api.py +3586 -0
  62. moolabs/api/dunning_templates_api.py +8737 -0
  63. moolabs/api/email_provider_api.py +526 -0
  64. moolabs/api/entitlements_api.py +9846 -0
  65. moolabs/api/escalations_api.py +2541 -0
  66. moolabs/api/events_api.py +1125 -0
  67. moolabs/api/fx_rates_api.py +1452 -0
  68. moolabs/api/governance_api.py +4402 -0
  69. moolabs/api/grants_api.py +1370 -0
  70. moolabs/api/handoffs_api.py +2138 -0
  71. moolabs/api/health_api.py +281 -0
  72. moolabs/api/homepage_api.py +305 -0
  73. moolabs/api/integrations_api.py +3374 -0
  74. moolabs/api/internal_api.py +7145 -0
  75. moolabs/api/internal_credit_memos_api.py +914 -0
  76. moolabs/api/internal_grants_api.py +1000 -0
  77. moolabs/api/internal_period_settlements_api.py +657 -0
  78. moolabs/api/internal_plan_pricing_api.py +326 -0
  79. moolabs/api/internal_subscriptions_api.py +326 -0
  80. moolabs/api/ledger_api.py +1483 -0
  81. moolabs/api/lookup_information_api.py +587 -0
  82. moolabs/api/mapping_rules_api.py +1782 -0
  83. moolabs/api/mappings_api.py +632 -0
  84. moolabs/api/margin_simulation_api.py +595 -0
  85. moolabs/api/margins_api.py +2301 -0
  86. moolabs/api/meter_billing_api.py +7419 -0
  87. moolabs/api/meter_portal_api.py +1368 -0
  88. moolabs/api/meter_subscriptions_api.py +4358 -0
  89. moolabs/api/meters_api.py +3707 -0
  90. moolabs/api/monitoring_api.py +561 -0
  91. moolabs/api/moolabs_api.py +1182 -0
  92. moolabs/api/moometer_proxy_api.py +1357 -0
  93. moolabs/api/netsuite_sync_api.py +2180 -0
  94. moolabs/api/notes_api.py +1425 -0
  95. moolabs/api/notifications_api.py +4490 -0
  96. moolabs/api/ops_api.py +315 -0
  97. moolabs/api/outbox_api.py +653 -0
  98. moolabs/api/payments_api.py +2889 -0
  99. moolabs/api/performance_api.py +2471 -0
  100. moolabs/api/plan_pricing_api.py +3409 -0
  101. moolabs/api/plans_api.py +2197 -0
  102. moolabs/api/pools_api.py +2358 -0
  103. moolabs/api/portal_api.py +1103 -0
  104. moolabs/api/product_catalog_api.py +7644 -0
  105. moolabs/api/promises_api.py +2814 -0
  106. moolabs/api/quote_agents_api.py +2036 -0
  107. moolabs/api/quote_contract_webhooks_api.py +327 -0
  108. moolabs/api/quote_contracts_api.py +2551 -0
  109. moolabs/api/quote_sessions_api.py +881 -0
  110. moolabs/api/quotes_api.py +12880 -0
  111. moolabs/api/rate_cards_api.py +578 -0
  112. moolabs/api/rate_catalog_api.py +2120 -0
  113. moolabs/api/rate_schedules_api.py +1224 -0
  114. moolabs/api/rating_api.py +617 -0
  115. moolabs/api/reconstruction_api.py +1281 -0
  116. moolabs/api/remittances_api.py +1521 -0
  117. moolabs/api/reports_api.py +722 -0
  118. moolabs/api/rollover_api.py +313 -0
  119. moolabs/api/sdk_ingest_api.py +312 -0
  120. moolabs/api/snapshots_api.py +1218 -0
  121. moolabs/api/state_projection_api.py +961 -0
  122. moolabs/api/steering_api.py +1862 -0
  123. moolabs/api/subjects_api.py +1160 -0
  124. moolabs/api/subscription_overrides_api.py +579 -0
  125. moolabs/api/subscriptions_api.py +1200 -0
  126. moolabs/api/tasks_api.py +1509 -0
  127. moolabs/api/tenant_api.py +22395 -0
  128. moolabs/api/tenant_config_api.py +282 -0
  129. moolabs/api/topup_api.py +632 -0
  130. moolabs/api/unpriced_api.py +933 -0
  131. moolabs/api/usage_api.py +999 -0
  132. moolabs/api/variance_api.py +1327 -0
  133. moolabs/api/wallets_api.py +3787 -0
  134. moolabs/api/webhooks_api.py +281 -0
  135. moolabs/api/well_known_api.py +278 -0
  136. moolabs/api/word_addin_api.py +623 -0
  137. moolabs/api_client.py +797 -0
  138. moolabs/api_response.py +21 -0
  139. moolabs/configuration.py +620 -0
  140. moolabs/exceptions.py +199 -0
  141. moolabs/models/__init__.py +1286 -0
  142. moolabs/models/account_create.py +114 -0
  143. moolabs/models/account_filter_options_response.py +97 -0
  144. moolabs/models/account_invoice_list_response.py +95 -0
  145. moolabs/models/account_list_item_response.py +152 -0
  146. moolabs/models/account_list_item_response_subsidiaries_inner.py +152 -0
  147. moolabs/models/account_list_response.py +101 -0
  148. moolabs/models/account_overview_bucket_response.py +91 -0
  149. moolabs/models/account_overview_response.py +106 -0
  150. moolabs/models/account_response.py +132 -0
  151. moolabs/models/account_segment_row.py +91 -0
  152. moolabs/models/account_subsidiary_option.py +89 -0
  153. moolabs/models/account_summary.py +97 -0
  154. moolabs/models/account_team_member_in.py +97 -0
  155. moolabs/models/account_team_member_out.py +101 -0
  156. moolabs/models/account_team_member_patch.py +97 -0
  157. moolabs/models/account_team_role.py +39 -0
  158. moolabs/models/account_update.py +106 -0
  159. moolabs/models/action_kind.py +45 -0
  160. moolabs/models/acute_approve_request.py +87 -0
  161. moolabs/models/acute_demo_seed_lifecycle_request.py +103 -0
  162. moolabs/models/acute_http_validation_error.py +95 -0
  163. moolabs/models/acute_validation_error.py +99 -0
  164. moolabs/models/add_contract_participant_request.py +107 -0
  165. moolabs/models/addon.py +178 -0
  166. moolabs/models/addon1.py +115 -0
  167. moolabs/models/addon2.py +95 -0
  168. moolabs/models/addon_create.py +123 -0
  169. moolabs/models/addon_instance_type.py +37 -0
  170. moolabs/models/addon_order_by.py +40 -0
  171. moolabs/models/addon_paginated_response.py +101 -0
  172. moolabs/models/addon_replace_update.py +105 -0
  173. moolabs/models/addon_status.py +38 -0
  174. moolabs/models/address.py +110 -0
  175. moolabs/models/adjusted_total.py +152 -0
  176. moolabs/models/adjustment_amount.py +152 -0
  177. moolabs/models/aging_bucket_detail.py +93 -0
  178. moolabs/models/aging_report_response.py +106 -0
  179. moolabs/models/alb_bootstrap_response.py +89 -0
  180. moolabs/models/alb_connector_config.py +128 -0
  181. moolabs/models/alb_connector_health_response.py +112 -0
  182. moolabs/models/alb_connector_list_response.py +138 -0
  183. moolabs/models/alb_load_balancer_config.py +111 -0
  184. moolabs/models/alb_route_rule.py +107 -0
  185. moolabs/models/alb_source_config.py +123 -0
  186. moolabs/models/alb_source_health_response.py +93 -0
  187. moolabs/models/alb_status_patch_request.py +94 -0
  188. moolabs/models/alb_status_patch_response.py +94 -0
  189. moolabs/models/alb_target_group_config.py +103 -0
  190. moolabs/models/algorithm_breakdown_item.py +89 -0
  191. moolabs/models/algorithm_info.py +93 -0
  192. moolabs/models/alignment.py +87 -0
  193. moolabs/models/allocate_credits_request.py +95 -0
  194. moolabs/models/allocation_coverage_response.py +157 -0
  195. moolabs/models/allocation_fact_page_response.py +97 -0
  196. moolabs/models/allocation_fact_response.py +146 -0
  197. moolabs/models/allocation_key.py +91 -0
  198. moolabs/models/allocation_rule_create.py +114 -0
  199. moolabs/models/allocation_rule_response.py +113 -0
  200. moolabs/models/allocation_rule_update.py +111 -0
  201. moolabs/models/allocation_run_create_request.py +100 -0
  202. moolabs/models/allocation_run_create_response.py +142 -0
  203. moolabs/models/allocation_run_open_cost_snapshot_response.py +120 -0
  204. moolabs/models/allocation_run_readout_response.py +110 -0
  205. moolabs/models/allocation_run_response.py +133 -0
  206. moolabs/models/allocations_list_response.py +97 -0
  207. moolabs/models/amount.py +152 -0
  208. moolabs/models/amount1.py +152 -0
  209. moolabs/models/api_key_item.py +103 -0
  210. moolabs/models/app.py +164 -0
  211. moolabs/models/app_api_v1_auto_topup_router_trigger_response.py +108 -0
  212. moolabs/models/app_api_v1_fx_rates_router_fx_rate_response.py +104 -0
  213. moolabs/models/app_api_v1_integrations_netsuite_sync_router_trigger_response.py +89 -0
  214. moolabs/models/app_api_v1_internal_subscription_sync_schemas_subscription_sync_request.py +123 -0
  215. moolabs/models/app_api_v1_portal_router_create_portal_token_request.py +92 -0
  216. moolabs/models/app_api_v1_quotes_schemas_quote_settings_response.py +91 -0
  217. moolabs/models/app_api_v1_quotes_schemas_update_quote_settings_request.py +89 -0
  218. moolabs/models/app_api_v1_subscriptions_router_subscription_sync_request.py +125 -0
  219. moolabs/models/app_api_v1_tenant_access_router_create_portal_token_request.py +101 -0
  220. moolabs/models/app_api_v1_tenant_fx_rates_router_fx_rate_response.py +93 -0
  221. moolabs/models/app_api_v1_tenant_quote_settings_router_quote_settings_response.py +89 -0
  222. moolabs/models/app_api_v1_tenant_quote_settings_router_update_quote_settings_request.py +87 -0
  223. moolabs/models/app_capability.py +102 -0
  224. moolabs/models/app_capability_type.py +40 -0
  225. moolabs/models/app_paginated_response.py +101 -0
  226. moolabs/models/app_reference.py +95 -0
  227. moolabs/models/app_replace_update.py +164 -0
  228. moolabs/models/app_status.py +37 -0
  229. moolabs/models/app_type.py +38 -0
  230. moolabs/models/apply_credit_request.py +92 -0
  231. moolabs/models/approval_action_request.py +88 -0
  232. moolabs/models/approval_action_response.py +95 -0
  233. moolabs/models/approval_policy_response.py +91 -0
  234. moolabs/models/approve_request.py +88 -0
  235. moolabs/models/approve_response.py +91 -0
  236. moolabs/models/approver_in.py +95 -0
  237. moolabs/models/arc_demo_seed_lifecycle_request.py +103 -0
  238. moolabs/models/arc_dunning_permission_grant_request.py +96 -0
  239. moolabs/models/arc_dunning_permission_revoke_request.py +90 -0
  240. moolabs/models/arc_dunning_template_admin_grant_request.py +90 -0
  241. moolabs/models/arc_dunning_template_admin_grant_response.py +115 -0
  242. moolabs/models/arc_dunning_template_admin_revoke_request.py +88 -0
  243. moolabs/models/arc_dunning_template_admin_user_dto.py +107 -0
  244. moolabs/models/arc_dunning_template_admin_user_grant_dto.py +105 -0
  245. moolabs/models/arc_dunning_template_admin_users_response.py +110 -0
  246. moolabs/models/arc_http_validation_error.py +95 -0
  247. moolabs/models/arc_transaction_request.py +110 -0
  248. moolabs/models/arc_validation_error.py +99 -0
  249. moolabs/models/ask_customer_request.py +97 -0
  250. moolabs/models/ask_customer_response.py +91 -0
  251. moolabs/models/ask_moo_redline_request.py +98 -0
  252. moolabs/models/attribution_allocation_error_detail.py +94 -0
  253. moolabs/models/attribution_allocation_error_response.py +91 -0
  254. moolabs/models/attribution_completeness_response.py +97 -0
  255. moolabs/models/attribution_signal_conflict_detail.py +94 -0
  256. moolabs/models/attribution_signal_conflict_response.py +91 -0
  257. moolabs/models/attribution_signal_delta.py +98 -0
  258. moolabs/models/attribution_signal_request.py +123 -0
  259. moolabs/models/attribution_signal_response.py +96 -0
  260. moolabs/models/audit_request.py +91 -0
  261. moolabs/models/auto_topup_activity_item.py +104 -0
  262. moolabs/models/auto_topup_activity_response.py +97 -0
  263. moolabs/models/auto_topup_rule_response.py +114 -0
  264. moolabs/models/availability.py +43 -0
  265. moolabs/models/backfill_candidate.py +97 -0
  266. moolabs/models/backfill_malformed_disputes_request.py +87 -0
  267. moolabs/models/backfill_malformed_disputes_response.py +101 -0
  268. moolabs/models/balance_history_window.py +99 -0
  269. moolabs/models/basis.py +37 -0
  270. moolabs/models/batch_ingest_request.py +96 -0
  271. moolabs/models/batch_wallet_state_request.py +105 -0
  272. moolabs/models/batch_wallet_state_request_item.py +91 -0
  273. moolabs/models/batch_wallet_state_response.py +97 -0
  274. moolabs/models/batch_wallets_by_subjects_request.py +88 -0
  275. moolabs/models/billing_customer_profile.py +109 -0
  276. moolabs/models/billing_discount_percentage.py +100 -0
  277. moolabs/models/billing_discount_reason.py +164 -0
  278. moolabs/models/billing_discount_usage.py +107 -0
  279. moolabs/models/billing_discounts.py +97 -0
  280. moolabs/models/billing_import_request.py +105 -0
  281. moolabs/models/billing_import_response.py +104 -0
  282. moolabs/models/billing_invoice_customer_extended_details.py +116 -0
  283. moolabs/models/billing_party.py +110 -0
  284. moolabs/models/billing_party_replace_update.py +106 -0
  285. moolabs/models/billing_party_tax_identity.py +88 -0
  286. moolabs/models/billing_profile.py +140 -0
  287. moolabs/models/billing_profile_app_references.py +107 -0
  288. moolabs/models/billing_profile_apps.py +107 -0
  289. moolabs/models/billing_profile_apps_create.py +113 -0
  290. moolabs/models/billing_profile_apps_or_reference.py +148 -0
  291. moolabs/models/billing_profile_create.py +112 -0
  292. moolabs/models/billing_profile_customer_override.py +116 -0
  293. moolabs/models/billing_profile_customer_override_create.py +98 -0
  294. moolabs/models/billing_profile_customer_override_expand.py +37 -0
  295. moolabs/models/billing_profile_customer_override_order_by.py +40 -0
  296. moolabs/models/billing_profile_customer_override_with_details.py +113 -0
  297. moolabs/models/billing_profile_customer_override_with_details_paginated_response.py +101 -0
  298. moolabs/models/billing_profile_expand.py +36 -0
  299. moolabs/models/billing_profile_order_by.py +39 -0
  300. moolabs/models/billing_profile_paginated_response.py +101 -0
  301. moolabs/models/billing_profile_replace_update_with_workflow.py +106 -0
  302. moolabs/models/billing_tenant_settings_out.py +89 -0
  303. moolabs/models/billing_tenant_settings_update.py +88 -0
  304. moolabs/models/billing_workflow.py +109 -0
  305. moolabs/models/billing_workflow_collection_alignment.py +150 -0
  306. moolabs/models/billing_workflow_collection_alignment_anchored.py +100 -0
  307. moolabs/models/billing_workflow_collection_alignment_subscription.py +94 -0
  308. moolabs/models/billing_workflow_collection_settings.py +93 -0
  309. moolabs/models/billing_workflow_create.py +109 -0
  310. moolabs/models/billing_workflow_invoicing_settings.py +99 -0
  311. moolabs/models/billing_workflow_payment_settings.py +88 -0
  312. moolabs/models/billing_workflow_tax_settings.py +89 -0
  313. moolabs/models/bom_component_in.py +105 -0
  314. moolabs/models/bom_component_out.py +109 -0
  315. moolabs/models/bom_create_request.py +107 -0
  316. moolabs/models/bom_out.py +127 -0
  317. moolabs/models/bom_update_request.py +103 -0
  318. moolabs/models/bom_variance_out.py +115 -0
  319. moolabs/models/breakdown_response.py +124 -0
  320. moolabs/models/breakdown_row.py +121 -0
  321. moolabs/models/breakdown_row_kind.py +39 -0
  322. moolabs/models/budget_alert_response.py +107 -0
  323. moolabs/models/budget_amount.py +152 -0
  324. moolabs/models/budget_amount1.py +152 -0
  325. moolabs/models/budget_create.py +110 -0
  326. moolabs/models/budget_pace_status.py +38 -0
  327. moolabs/models/budget_response.py +113 -0
  328. moolabs/models/budget_status_item.py +105 -0
  329. moolabs/models/budget_update.py +107 -0
  330. moolabs/models/budget_with_utilization.py +119 -0
  331. moolabs/models/bulk_action_request.py +92 -0
  332. moolabs/models/bulk_replay_request.py +92 -0
  333. moolabs/models/buyer_accept_request.py +95 -0
  334. moolabs/models/buyer_otp_request_response.py +91 -0
  335. moolabs/models/buyer_otp_verify_request.py +95 -0
  336. moolabs/models/buyer_otp_verify_response.py +89 -0
  337. moolabs/models/buyer_quote_line_item.py +103 -0
  338. moolabs/models/buyer_quote_pricing.py +93 -0
  339. moolabs/models/buyer_quote_projection.py +133 -0
  340. moolabs/models/buyer_reject_request.py +88 -0
  341. moolabs/models/buyer_request_changes_request.py +94 -0
  342. moolabs/models/buyer_request_changes_response.py +93 -0
  343. moolabs/models/buyer_requested_changes.py +90 -0
  344. moolabs/models/cancel_subscription_request.py +91 -0
  345. moolabs/models/card_type.py +37 -0
  346. moolabs/models/case_create.py +112 -0
  347. moolabs/models/case_escalate_request.py +90 -0
  348. moolabs/models/case_invoice_create.py +127 -0
  349. moolabs/models/case_invoice_response.py +150 -0
  350. moolabs/models/case_list_item_response.py +171 -0
  351. moolabs/models/case_list_response.py +101 -0
  352. moolabs/models/case_pause_request.py +91 -0
  353. moolabs/models/case_response.py +169 -0
  354. moolabs/models/case_update.py +102 -0
  355. moolabs/models/case_write_off_request.py +90 -0
  356. moolabs/models/cash_app_config_update_request.py +96 -0
  357. moolabs/models/cei_response.py +102 -0
  358. moolabs/models/change_item.py +101 -0
  359. moolabs/models/channel_policy_schema.py +112 -0
  360. moolabs/models/channel_preference_create.py +99 -0
  361. moolabs/models/channel_preference_response.py +106 -0
  362. moolabs/models/channel_preference_update.py +95 -0
  363. moolabs/models/channel_preferences_response.py +95 -0
  364. moolabs/models/chat_feedback_in.py +91 -0
  365. moolabs/models/chat_message_in.py +89 -0
  366. moolabs/models/chat_request.py +101 -0
  367. moolabs/models/check_trigger_request.py +88 -0
  368. moolabs/models/checkout_session_custom_text_after_submit_params.py +109 -0
  369. moolabs/models/checkout_session_custom_text_after_submit_params_after_submit.py +88 -0
  370. moolabs/models/checkout_session_custom_text_after_submit_params_shipping_address.py +88 -0
  371. moolabs/models/checkout_session_custom_text_after_submit_params_submit.py +88 -0
  372. moolabs/models/checkout_session_custom_text_after_submit_params_terms_of_service_acceptance.py +88 -0
  373. moolabs/models/checkout_session_ui_mode.py +37 -0
  374. moolabs/models/clause_citations.py +91 -0
  375. moolabs/models/clause_family.py +129 -0
  376. moolabs/models/clause_finding.py +110 -0
  377. moolabs/models/clause_pack.py +118 -0
  378. moolabs/models/clause_position.py +91 -0
  379. moolabs/models/client_app_start_response.py +87 -0
  380. moolabs/models/cloud_cost_row_input.py +105 -0
  381. moolabs/models/cloud_provider.py +38 -0
  382. moolabs/models/cloud_provider_data_through.py +116 -0
  383. moolabs/models/cloud_provider_quality_axis.py +107 -0
  384. moolabs/models/cloud_temporal_coverage_summary.py +114 -0
  385. moolabs/models/collection_method.py +37 -0
  386. moolabs/models/commercial_basis.py +39 -0
  387. moolabs/models/commercial_overrides.py +113 -0
  388. moolabs/models/commercial_overrides_input.py +115 -0
  389. moolabs/models/commercial_overrides_payload.py +113 -0
  390. moolabs/models/communication_create.py +110 -0
  391. moolabs/models/communication_list_response.py +101 -0
  392. moolabs/models/communication_response.py +138 -0
  393. moolabs/models/comparison_mode.py +37 -0
  394. moolabs/models/completeness_response.py +105 -0
  395. moolabs/models/component_coverage_response.py +123 -0
  396. moolabs/models/compute_variance_request.py +96 -0
  397. moolabs/models/compute_variance_response.py +105 -0
  398. moolabs/models/config_upload_gap_out.py +89 -0
  399. moolabs/models/config_upload_response.py +109 -0
  400. moolabs/models/config_upload_summary_out.py +95 -0
  401. moolabs/models/connector_config_response.py +93 -0
  402. moolabs/models/connector_health_response.py +102 -0
  403. moolabs/models/connector_item.py +105 -0
  404. moolabs/models/contact_create.py +100 -0
  405. moolabs/models/contact_list_response.py +101 -0
  406. moolabs/models/contact_response.py +134 -0
  407. moolabs/models/contact_update.py +102 -0
  408. moolabs/models/contract_document_response.py +104 -0
  409. moolabs/models/contract_event_response.py +108 -0
  410. moolabs/models/contract_inbound_message_response.py +106 -0
  411. moolabs/models/contract_participant_response.py +131 -0
  412. moolabs/models/contract_segment_response.py +95 -0
  413. moolabs/models/contract_thread_response.py +115 -0
  414. moolabs/models/contract_thread_snapshot_response.py +121 -0
  415. moolabs/models/contract_upload_detail_response.py +103 -0
  416. moolabs/models/contract_version_response.py +128 -0
  417. moolabs/models/contributor_item.py +123 -0
  418. moolabs/models/contributor_kind.py +38 -0
  419. moolabs/models/contributor_query_request.py +146 -0
  420. moolabs/models/contributor_response.py +174 -0
  421. moolabs/models/cost.py +152 -0
  422. moolabs/models/cost_adjustment_create.py +131 -0
  423. moolabs/models/cost_adjustment_response.py +102 -0
  424. moolabs/models/cost_driver_rule_create_request.py +158 -0
  425. moolabs/models/cost_driver_rule_response.py +126 -0
  426. moolabs/models/cost_driver_rule_update_request.py +100 -0
  427. moolabs/models/cost_event_detail_response.py +132 -0
  428. moolabs/models/cost_event_ingest.py +177 -0
  429. moolabs/models/cost_event_response.py +122 -0
  430. moolabs/models/cost_event_summary_item.py +103 -0
  431. moolabs/models/cost_event_summary_request.py +88 -0
  432. moolabs/models/cost_event_summary_response.py +95 -0
  433. moolabs/models/cost_explorer_response.py +155 -0
  434. moolabs/models/cost_scope.py +37 -0
  435. moolabs/models/coverage_snapshot_response.py +114 -0
  436. moolabs/models/cpu_core_hours.py +152 -0
  437. moolabs/models/cpu_cost_weight.py +152 -0
  438. moolabs/models/create_allocation_run_api422_response.py +147 -0
  439. moolabs/models/create_api_key_request.py +89 -0
  440. moolabs/models/create_api_key_response.py +105 -0
  441. moolabs/models/create_auto_topup_rule_request.py +106 -0
  442. moolabs/models/create_checkout_session_tax_id_collection.py +90 -0
  443. moolabs/models/create_checkout_session_tax_id_collection_required.py +37 -0
  444. moolabs/models/create_contract_thread_request.py +87 -0
  445. moolabs/models/create_credit_request.py +97 -0
  446. moolabs/models/create_fx_rate_request.py +103 -0
  447. moolabs/models/create_grant_request.py +136 -0
  448. moolabs/models/create_mapping_request.py +91 -0
  449. moolabs/models/create_matrix_price_row_request.py +91 -0
  450. moolabs/models/create_matrix_price_row_response.py +89 -0
  451. moolabs/models/create_portal_token_response.py +91 -0
  452. moolabs/models/create_quote_redline_request.py +103 -0
  453. moolabs/models/create_quote_request.py +119 -0
  454. moolabs/models/create_quote_template_request.py +102 -0
  455. moolabs/models/create_rate_card_request.py +105 -0
  456. moolabs/models/create_reconstruction_run_request.py +101 -0
  457. moolabs/models/create_session_response.py +97 -0
  458. moolabs/models/create_snapshot_request.py +98 -0
  459. moolabs/models/create_stripe_checkout_session_billing_address_collection.py +37 -0
  460. moolabs/models/create_stripe_checkout_session_consent_collection.py +97 -0
  461. moolabs/models/create_stripe_checkout_session_consent_collection_payment_method_reuse_agreement.py +88 -0
  462. moolabs/models/create_stripe_checkout_session_consent_collection_payment_method_reuse_agreement_position.py +37 -0
  463. moolabs/models/create_stripe_checkout_session_consent_collection_promotions.py +37 -0
  464. moolabs/models/create_stripe_checkout_session_consent_collection_terms_of_service.py +37 -0
  465. moolabs/models/create_stripe_checkout_session_customer_update.py +92 -0
  466. moolabs/models/create_stripe_checkout_session_customer_update_behavior.py +37 -0
  467. moolabs/models/create_stripe_checkout_session_redirect_on_completion.py +38 -0
  468. moolabs/models/create_stripe_checkout_session_request.py +112 -0
  469. moolabs/models/create_stripe_checkout_session_request_customer.py +163 -0
  470. moolabs/models/create_stripe_checkout_session_request_options.py +147 -0
  471. moolabs/models/create_stripe_checkout_session_result.py +139 -0
  472. moolabs/models/create_stripe_customer_portal_session_params.py +91 -0
  473. moolabs/models/create_threshold_request.py +99 -0
  474. moolabs/models/create_value_recognition_request.py +100 -0
  475. moolabs/models/create_wallet_request.py +106 -0
  476. moolabs/models/credit_config.py +119 -0
  477. moolabs/models/credit_config_payload.py +135 -0
  478. moolabs/models/credit_cost_ratio_item.py +93 -0
  479. moolabs/models/credit_cost_ratio_response.py +101 -0
  480. moolabs/models/credit_memo_apply_request.py +90 -0
  481. moolabs/models/credit_memo_create.py +104 -0
  482. moolabs/models/credit_memo_create_internal.py +114 -0
  483. moolabs/models/credit_memo_create_public.py +108 -0
  484. moolabs/models/credit_memo_item.py +102 -0
  485. moolabs/models/credit_memo_line_in.py +90 -0
  486. moolabs/models/credit_memo_list_response.py +101 -0
  487. moolabs/models/credit_memo_out.py +138 -0
  488. moolabs/models/credit_memo_response.py +124 -0
  489. moolabs/models/credit_memo_update.py +94 -0
  490. moolabs/models/credit_note_original_invoice_ref.py +114 -0
  491. moolabs/models/credit_override.py +87 -0
  492. moolabs/models/credit_override_input.py +101 -0
  493. moolabs/models/credit_override_payload.py +100 -0
  494. moolabs/models/crm_quote_context_request.py +94 -0
  495. moolabs/models/crm_quote_context_response.py +101 -0
  496. moolabs/models/crm_quote_draft_request.py +98 -0
  497. moolabs/models/crm_quote_draft_response.py +107 -0
  498. moolabs/models/crm_quote_record_card_response.py +97 -0
  499. moolabs/models/crm_surface_response.py +97 -0
  500. moolabs/models/currency.py +101 -0
  501. moolabs/models/current.py +152 -0
  502. moolabs/models/custom_invoicing_app.py +142 -0
  503. moolabs/models/custom_invoicing_app_replace_update.py +105 -0
  504. moolabs/models/custom_invoicing_customer_app_data.py +117 -0
  505. moolabs/models/custom_invoicing_draft_synchronized_request.py +91 -0
  506. moolabs/models/custom_invoicing_finalized_invoicing_request.py +91 -0
  507. moolabs/models/custom_invoicing_finalized_payment_request.py +87 -0
  508. moolabs/models/custom_invoicing_finalized_request.py +97 -0
  509. moolabs/models/custom_invoicing_line_discount_external_id_mapping.py +97 -0
  510. moolabs/models/custom_invoicing_line_external_id_mapping.py +97 -0
  511. moolabs/models/custom_invoicing_payment_trigger.py +41 -0
  512. moolabs/models/custom_invoicing_sync_result.py +110 -0
  513. moolabs/models/custom_invoicing_tax_config.py +87 -0
  514. moolabs/models/custom_invoicing_update_payment_status_request.py +92 -0
  515. moolabs/models/custom_plan_input.py +136 -0
  516. moolabs/models/custom_subscription_change.py +119 -0
  517. moolabs/models/custom_subscription_create.py +153 -0
  518. moolabs/models/customer.py +172 -0
  519. moolabs/models/customer_access.py +102 -0
  520. moolabs/models/customer_app_data.py +164 -0
  521. moolabs/models/customer_app_data_create_or_update_item.py +164 -0
  522. moolabs/models/customer_app_data_paginated_response.py +101 -0
  523. moolabs/models/customer_cost_item.py +95 -0
  524. moolabs/models/customer_create.py +120 -0
  525. moolabs/models/customer_expand.py +36 -0
  526. moolabs/models/customer_id.py +95 -0
  527. moolabs/models/customer_item.py +114 -0
  528. moolabs/models/customer_key.py +87 -0
  529. moolabs/models/customer_key_page_response.py +101 -0
  530. moolabs/models/customer_key_put_request.py +103 -0
  531. moolabs/models/customer_key_response.py +94 -0
  532. moolabs/models/customer_margin_item.py +99 -0
  533. moolabs/models/customer_margin_response.py +101 -0
  534. moolabs/models/customer_order_by.py +38 -0
  535. moolabs/models/customer_paginated_response.py +101 -0
  536. moolabs/models/customer_replace_update.py +120 -0
  537. moolabs/models/customer_subscription_order_by.py +37 -0
  538. moolabs/models/customer_upsert_request.py +102 -0
  539. moolabs/models/customer_usage_attribution.py +88 -0
  540. moolabs/models/danger_request.py +89 -0
  541. moolabs/models/dashboard_meta.py +172 -0
  542. moolabs/models/dashboard_overview_response.py +115 -0
  543. moolabs/models/data_through.py +115 -0
  544. moolabs/models/db_time_coverage_response.py +154 -0
  545. moolabs/models/db_time_evidence_batch_readback_response.py +135 -0
  546. moolabs/models/db_time_evidence_batch_request.py +147 -0
  547. moolabs/models/db_time_evidence_batch_response.py +100 -0
  548. moolabs/models/db_time_evidence_conflict_detail.py +94 -0
  549. moolabs/models/db_time_evidence_conflict_response.py +91 -0
  550. moolabs/models/db_time_evidence_not_found_detail.py +94 -0
  551. moolabs/models/db_time_evidence_not_found_response.py +91 -0
  552. moolabs/models/db_time_observation_request.py +131 -0
  553. moolabs/models/db_time_readout_quality_response.py +103 -0
  554. moolabs/models/deal_context.py +97 -0
  555. moolabs/models/deal_context_rule.py +105 -0
  556. moolabs/models/decision_item.py +131 -0
  557. moolabs/models/decision_kind.py +46 -0
  558. moolabs/models/decision_overview_response.py +172 -0
  559. moolabs/models/decision_queue_response.py +115 -0
  560. moolabs/models/decision_reason_code.py +53 -0
  561. moolabs/models/delta.py +152 -0
  562. moolabs/models/delta_pct.py +152 -0
  563. moolabs/models/demo_seed_acute_history_baseline_request.py +106 -0
  564. moolabs/models/demo_seed_acute_tenant_registration_request.py +114 -0
  565. moolabs/models/demo_seed_agent_report_baseline_request.py +106 -0
  566. moolabs/models/demo_seed_arc_invoice_ref.py +107 -0
  567. moolabs/models/demo_seed_arc_portfolio_baseline_request.py +121 -0
  568. moolabs/models/demo_seed_catalog_baseline_request.py +108 -0
  569. moolabs/models/demo_seed_customer_portfolio_baseline_request.py +103 -0
  570. moolabs/models/demo_seed_integration_crm_baseline_request.py +106 -0
  571. moolabs/models/demo_seed_integration_finance_baseline_request.py +106 -0
  572. moolabs/models/demo_seed_integration_netsuite_baseline_request.py +106 -0
  573. moolabs/models/demo_seed_integration_webhook_baseline_request.py +106 -0
  574. moolabs/models/demo_seed_invoice_payment_baseline_request.py +106 -0
  575. moolabs/models/demo_seed_isolation_canary_baseline_request.py +106 -0
  576. moolabs/models/demo_seed_lifecycle_request.py +103 -0
  577. moolabs/models/demo_seed_quote_contract_baseline_request.py +106 -0
  578. moolabs/models/demo_seed_security_credentials_baseline_request.py +106 -0
  579. moolabs/models/demo_seed_settings_baseline_request.py +106 -0
  580. moolabs/models/demo_seed_subscription_baseline_request.py +106 -0
  581. moolabs/models/demo_seed_tenant_config_baseline_request.py +119 -0
  582. moolabs/models/demo_seed_usage_baseline_request.py +106 -0
  583. moolabs/models/derive_request.py +94 -0
  584. moolabs/models/dimension.py +39 -0
  585. moolabs/models/dimension_coverage_response.py +102 -0
  586. moolabs/models/disclosure_policy_response.py +93 -0
  587. moolabs/models/disclosure_policy_update_request.py +102 -0
  588. moolabs/models/discount_percentage.py +87 -0
  589. moolabs/models/discount_reason_maximum_spend.py +94 -0
  590. moolabs/models/discount_reason_ratecard_percentage.py +109 -0
  591. moolabs/models/discount_reason_ratecard_usage.py +116 -0
  592. moolabs/models/discount_usage.py +95 -0
  593. moolabs/models/discounts.py +97 -0
  594. moolabs/models/dismiss_refinement_request.py +87 -0
  595. moolabs/models/dispute_approval_request.py +88 -0
  596. moolabs/models/dispute_list_response.py +101 -0
  597. moolabs/models/dispute_resolve_request.py +92 -0
  598. moolabs/models/dispute_response.py +134 -0
  599. moolabs/models/dispute_summary_response.py +104 -0
  600. moolabs/models/dispute_update_request.py +102 -0
  601. moolabs/models/dns_record.py +119 -0
  602. moolabs/models/domain_response.py +95 -0
  603. moolabs/models/domain_update.py +87 -0
  604. moolabs/models/draft_lock_request.py +88 -0
  605. moolabs/models/draft_lock_response.py +97 -0
  606. moolabs/models/draft_save_request.py +114 -0
  607. moolabs/models/draft_unlock_request.py +90 -0
  608. moolabs/models/driver_item.py +122 -0
  609. moolabs/models/dry_run_request.py +89 -0
  610. moolabs/models/dry_run_response.py +97 -0
  611. moolabs/models/dso_response.py +100 -0
  612. moolabs/models/dynamic_price_with_commitments.py +131 -0
  613. moolabs/models/economics_summary.py +114 -0
  614. moolabs/models/edit_subscription_add_item.py +102 -0
  615. moolabs/models/edit_subscription_add_phase.py +100 -0
  616. moolabs/models/edit_subscription_remove_item.py +98 -0
  617. moolabs/models/edit_subscription_remove_phase.py +99 -0
  618. moolabs/models/edit_subscription_stretch_phase.py +98 -0
  619. moolabs/models/edit_subscription_unschedule_edit.py +94 -0
  620. moolabs/models/effective_permission_grant_dto.py +105 -0
  621. moolabs/models/effective_permissions_response.py +129 -0
  622. moolabs/models/email_config_out.py +188 -0
  623. moolabs/models/email_config_upsert.py +111 -0
  624. moolabs/models/email_context.py +44 -0
  625. moolabs/models/email_message_status.py +42 -0
  626. moolabs/models/email_provider.py +37 -0
  627. moolabs/models/email_provider_identity.py +157 -0
  628. moolabs/models/email_provider_identity_list.py +108 -0
  629. moolabs/models/email_provider_operator_upsert.py +131 -0
  630. moolabs/models/email_provider_route.py +128 -0
  631. moolabs/models/email_provider_route_list.py +108 -0
  632. moolabs/models/enable_tier3_response.py +93 -0
  633. moolabs/models/endpoints_response.py +89 -0
  634. moolabs/models/entitlement.py +164 -0
  635. moolabs/models/entitlement_boolean.py +168 -0
  636. moolabs/models/entitlement_boolean_create_inputs.py +127 -0
  637. moolabs/models/entitlement_boolean_v2.py +170 -0
  638. moolabs/models/entitlement_create_inputs.py +164 -0
  639. moolabs/models/entitlement_grant.py +148 -0
  640. moolabs/models/entitlement_grant_create_input.py +111 -0
  641. moolabs/models/entitlement_grant_create_input_v2.py +113 -0
  642. moolabs/models/entitlement_grant_v2.py +148 -0
  643. moolabs/models/entitlement_metered.py +190 -0
  644. moolabs/models/entitlement_metered_create_inputs.py +143 -0
  645. moolabs/models/entitlement_metered_v2.py +196 -0
  646. moolabs/models/entitlement_metered_v2_create_inputs.py +157 -0
  647. moolabs/models/entitlement_order_by.py +37 -0
  648. moolabs/models/entitlement_override.py +89 -0
  649. moolabs/models/entitlement_override_input.py +95 -0
  650. moolabs/models/entitlement_override_payload.py +93 -0
  651. moolabs/models/entitlement_paginated_response.py +101 -0
  652. moolabs/models/entitlement_payload.py +103 -0
  653. moolabs/models/entitlement_static.py +170 -0
  654. moolabs/models/entitlement_static_create_inputs.py +129 -0
  655. moolabs/models/entitlement_static_v2.py +172 -0
  656. moolabs/models/entitlement_type.py +38 -0
  657. moolabs/models/entitlement_v2.py +164 -0
  658. moolabs/models/entitlement_v2_create_inputs.py +164 -0
  659. moolabs/models/entitlement_v2_paginated_response.py +101 -0
  660. moolabs/models/entitlement_value.py +109 -0
  661. moolabs/models/error_extension.py +110 -0
  662. moolabs/models/escalate_request.py +90 -0
  663. moolabs/models/escalate_response.py +91 -0
  664. moolabs/models/escalation_action_request.py +90 -0
  665. moolabs/models/escalation_action_response.py +91 -0
  666. moolabs/models/escalation_create.py +97 -0
  667. moolabs/models/escalation_dismiss_request.py +90 -0
  668. moolabs/models/escalation_list_response.py +101 -0
  669. moolabs/models/escalation_resolve_request.py +87 -0
  670. moolabs/models/escalation_response.py +112 -0
  671. moolabs/models/escalation_update.py +93 -0
  672. moolabs/models/event.py +115 -0
  673. moolabs/models/event_delivery_attempt_response.py +101 -0
  674. moolabs/models/evidence_create_request.py +96 -0
  675. moolabs/models/evidence_kind.py +39 -0
  676. moolabs/models/evidence_list_response.py +97 -0
  677. moolabs/models/evidence_response.py +106 -0
  678. moolabs/models/evidence_review_request.py +90 -0
  679. moolabs/models/evidence_window.py +37 -0
  680. moolabs/models/exchange_rate.py +152 -0
  681. moolabs/models/expiration_duration.py +40 -0
  682. moolabs/models/expiration_period.py +91 -0
  683. moolabs/models/explorer_alias_hint.py +104 -0
  684. moolabs/models/explorer_alias_hint1.py +110 -0
  685. moolabs/models/explorer_alias_kind.py +39 -0
  686. moolabs/models/explorer_breakdown_page.py +166 -0
  687. moolabs/models/explorer_breakdown_row.py +200 -0
  688. moolabs/models/explorer_cloud_provider_quality_axis.py +107 -0
  689. moolabs/models/explorer_cloud_temporal_coverage_summary.py +115 -0
  690. moolabs/models/explorer_contributor_kind.py +40 -0
  691. moolabs/models/explorer_contributor_query_request.py +190 -0
  692. moolabs/models/explorer_contributor_response.py +201 -0
  693. moolabs/models/explorer_contributor_row.py +177 -0
  694. moolabs/models/explorer_cost_event_status.py +39 -0
  695. moolabs/models/explorer_dimension.py +40 -0
  696. moolabs/models/explorer_effective_sort.py +107 -0
  697. moolabs/models/explorer_effective_sort_field.py +41 -0
  698. moolabs/models/explorer_evidence_kind.py +41 -0
  699. moolabs/models/explorer_evidence_role.py +37 -0
  700. moolabs/models/explorer_excluded_event_count.py +104 -0
  701. moolabs/models/explorer_excluded_event_reason.py +38 -0
  702. moolabs/models/explorer_exposure_summary.py +124 -0
  703. moolabs/models/explorer_measure_source.py +40 -0
  704. moolabs/models/explorer_meta.py +196 -0
  705. moolabs/models/explorer_quality_axis.py +117 -0
  706. moolabs/models/explorer_quality_caveat_code.py +45 -0
  707. moolabs/models/explorer_quality_summary.py +151 -0
  708. moolabs/models/explorer_query_request.py +184 -0
  709. moolabs/models/explorer_request_detail_event.py +134 -0
  710. moolabs/models/explorer_request_detail_line.py +133 -0
  711. moolabs/models/explorer_request_detail_query_request.py +201 -0
  712. moolabs/models/explorer_request_detail_response.py +205 -0
  713. moolabs/models/explorer_request_detail_result_cap.py +125 -0
  714. moolabs/models/explorer_request_distribution.py +109 -0
  715. moolabs/models/explorer_request_query_request.py +190 -0
  716. moolabs/models/explorer_search.py +111 -0
  717. moolabs/models/explorer_selection_result.py +107 -0
  718. moolabs/models/explorer_selection_row.py +185 -0
  719. moolabs/models/explorer_selection_status.py +39 -0
  720. moolabs/models/explorer_sort.py +104 -0
  721. moolabs/models/explorer_sort1.py +116 -0
  722. moolabs/models/explorer_sort_fallback_reason.py +39 -0
  723. moolabs/models/explorer_sort_field.py +40 -0
  724. moolabs/models/explorer_source_scope.py +38 -0
  725. moolabs/models/explorer_summary.py +134 -0
  726. moolabs/models/explorer_trend_point.py +124 -0
  727. moolabs/models/explorer_usage_history_evidence.py +110 -0
  728. moolabs/models/explorer_usage_history_source.py +38 -0
  729. moolabs/models/feature.py +156 -0
  730. moolabs/models/feature_contributor_customer.py +91 -0
  731. moolabs/models/feature_contributor_model.py +93 -0
  732. moolabs/models/feature_contributor_request.py +91 -0
  733. moolabs/models/feature_contributors_response.py +121 -0
  734. moolabs/models/feature_cost_item.py +97 -0
  735. moolabs/models/feature_create_inputs.py +128 -0
  736. moolabs/models/feature_flag_item.py +97 -0
  737. moolabs/models/feature_flag_update.py +87 -0
  738. moolabs/models/feature_margin_item.py +101 -0
  739. moolabs/models/feature_margin_response.py +101 -0
  740. moolabs/models/feature_meta.py +97 -0
  741. moolabs/models/feature_order_by.py +40 -0
  742. moolabs/models/feature_override_request.py +93 -0
  743. moolabs/models/feature_paginated_response.py +101 -0
  744. moolabs/models/feature_pool.py +99 -0
  745. moolabs/models/feature_pool_payload.py +107 -0
  746. moolabs/models/feature_price_request.py +93 -0
  747. moolabs/models/feature_pricing_input.py +120 -0
  748. moolabs/models/filter_id_exact.py +88 -0
  749. moolabs/models/filter_string.py +129 -0
  750. moolabs/models/filter_time.py +114 -0
  751. moolabs/models/finance_summary.py +143 -0
  752. moolabs/models/first_pass_redline_request.py +88 -0
  753. moolabs/models/first_pass_redline_response.py +89 -0
  754. moolabs/models/flag_disputed_request.py +92 -0
  755. moolabs/models/flag_disputed_response.py +97 -0
  756. moolabs/models/flat_price.py +104 -0
  757. moolabs/models/flat_price_with_payment_term.py +107 -0
  758. moolabs/models/flatamount.py +152 -0
  759. moolabs/models/freshness_axis.py +121 -0
  760. moolabs/models/freshness_source.py +40 -0
  761. moolabs/models/fx_rate_to_reporting.py +153 -0
  762. moolabs/models/fx_rates_list_response.py +97 -0
  763. moolabs/models/gate_status_response.py +105 -0
  764. moolabs/models/get_fx_rate_request.py +92 -0
  765. moolabs/models/get_matrix_price_rows_response.py +107 -0
  766. moolabs/models/google_chat_quote_response.py +89 -0
  767. moolabs/models/grant_activation_request.py +122 -0
  768. moolabs/models/grant_burn_down_history_segment.py +125 -0
  769. moolabs/models/grant_order_by.py +38 -0
  770. moolabs/models/grant_paginated_response.py +101 -0
  771. moolabs/models/grant_plan_change_request.py +126 -0
  772. moolabs/models/grant_renewal_request.py +122 -0
  773. moolabs/models/grant_response.py +128 -0
  774. moolabs/models/grant_source_type.py +40 -0
  775. moolabs/models/grant_usage_record.py +97 -0
  776. moolabs/models/grant_v2_paginated_response.py +101 -0
  777. moolabs/models/grants_list_response.py +99 -0
  778. moolabs/models/handoff_create_request.py +92 -0
  779. moolabs/models/helicone_config_request.py +92 -0
  780. moolabs/models/homepage_response.py +107 -0
  781. moolabs/models/hosted_checkout_settlement_ptp_response.py +100 -0
  782. moolabs/models/hosted_checkout_settlement_request.py +109 -0
  783. moolabs/models/hosted_checkout_settlement_response.py +97 -0
  784. moolabs/models/http_validation_error.py +95 -0
  785. moolabs/models/hub_spot_connect_request.py +91 -0
  786. moolabs/models/id_resource.py +97 -0
  787. moolabs/models/identity_scope.py +39 -0
  788. moolabs/models/identity_scope_coverage_response.py +96 -0
  789. moolabs/models/import_batch_detail_response.py +105 -0
  790. moolabs/models/import_batch_detail_row.py +111 -0
  791. moolabs/models/import_batch_request.py +112 -0
  792. moolabs/models/import_batch_response.py +101 -0
  793. moolabs/models/import_batch_summary.py +111 -0
  794. moolabs/models/import_dispute_item.py +122 -0
  795. moolabs/models/import_disputes_request.py +96 -0
  796. moolabs/models/import_invoice_item.py +133 -0
  797. moolabs/models/import_invoices_request.py +96 -0
  798. moolabs/models/import_promise_item.py +155 -0
  799. moolabs/models/import_promises_request.py +96 -0
  800. moolabs/models/inbound_email_attachment.py +91 -0
  801. moolabs/models/inbound_email_payload.py +103 -0
  802. moolabs/models/inbound_email_process_response.py +97 -0
  803. moolabs/models/ingest_events_body.py +150 -0
  804. moolabs/models/ingest_health.py +97 -0
  805. moolabs/models/ingested_event.py +111 -0
  806. moolabs/models/ingested_event_cursor_paginated_response.py +98 -0
  807. moolabs/models/initialamount.py +152 -0
  808. moolabs/models/insight_card.py +111 -0
  809. moolabs/models/install_method.py +38 -0
  810. moolabs/models/integration_update.py +89 -0
  811. moolabs/models/invalidate_portal_token_request.py +89 -0
  812. moolabs/models/invalidate_portal_tokens_request.py +89 -0
  813. moolabs/models/invoice.py +249 -0
  814. moolabs/models/invoice_allocation_out.py +103 -0
  815. moolabs/models/invoice_app_external_ids.py +97 -0
  816. moolabs/models/invoice_available_action_details.py +89 -0
  817. moolabs/models/invoice_available_actions.py +132 -0
  818. moolabs/models/invoice_detailed_line.py +244 -0
  819. moolabs/models/invoice_detailed_line_cost_category.py +37 -0
  820. moolabs/models/invoice_detailed_line_rate_card.py +116 -0
  821. moolabs/models/invoice_document_ref_type.py +36 -0
  822. moolabs/models/invoice_expand.py +38 -0
  823. moolabs/models/invoice_generic_document_ref.py +98 -0
  824. moolabs/models/invoice_item.py +112 -0
  825. moolabs/models/invoice_line.py +296 -0
  826. moolabs/models/invoice_line_amount_discount.py +141 -0
  827. moolabs/models/invoice_line_app_external_ids.py +93 -0
  828. moolabs/models/invoice_line_discounts.py +105 -0
  829. moolabs/models/invoice_line_managed_by.py +38 -0
  830. moolabs/models/invoice_line_out.py +99 -0
  831. moolabs/models/invoice_line_replace_update.py +143 -0
  832. moolabs/models/invoice_line_status.py +38 -0
  833. moolabs/models/invoice_line_subscription_reference.py +115 -0
  834. moolabs/models/invoice_line_tax_behavior.py +37 -0
  835. moolabs/models/invoice_line_tax_item.py +117 -0
  836. moolabs/models/invoice_line_usage_discount.py +155 -0
  837. moolabs/models/invoice_order_by.py +41 -0
  838. moolabs/models/invoice_paginated_response.py +101 -0
  839. moolabs/models/invoice_payment_terms.py +91 -0
  840. moolabs/models/invoice_pending_line_create.py +131 -0
  841. moolabs/models/invoice_pending_line_create_input.py +105 -0
  842. moolabs/models/invoice_pending_line_create_response.py +107 -0
  843. moolabs/models/invoice_pending_lines_action_filters_input.py +88 -0
  844. moolabs/models/invoice_pending_lines_action_input.py +106 -0
  845. moolabs/models/invoice_reference.py +101 -0
  846. moolabs/models/invoice_replace_update.py +117 -0
  847. moolabs/models/invoice_simulation_input.py +107 -0
  848. moolabs/models/invoice_simulation_line.py +164 -0
  849. moolabs/models/invoice_status.py +44 -0
  850. moolabs/models/invoice_status_details.py +103 -0
  851. moolabs/models/invoice_totals.py +163 -0
  852. moolabs/models/invoice_type.py +37 -0
  853. moolabs/models/invoice_upsert_request.py +112 -0
  854. moolabs/models/invoice_usage_based_rate_card.py +116 -0
  855. moolabs/models/invoice_workflow_invoicing_settings_replace_update.py +97 -0
  856. moolabs/models/invoice_workflow_replace_update.py +91 -0
  857. moolabs/models/invoice_workflow_settings.py +111 -0
  858. moolabs/models/invoice_workflow_settings_replace_update.py +97 -0
  859. moolabs/models/issue_after_reset.py +90 -0
  860. moolabs/models/jurisdiction_profile_response.py +102 -0
  861. moolabs/models/jurisdiction_resolution_request.py +92 -0
  862. moolabs/models/kill_switch_request.py +87 -0
  863. moolabs/models/langfuse_config_request.py +92 -0
  864. moolabs/models/lesson_action_request.py +89 -0
  865. moolabs/models/level_in.py +91 -0
  866. moolabs/models/lifecycle_event_request.py +97 -0
  867. moolabs/models/line_item_create.py +118 -0
  868. moolabs/models/line_total.py +153 -0
  869. moolabs/models/link_net_suite_account_request.py +89 -0
  870. moolabs/models/list_auto_topup_rules_response.py +97 -0
  871. moolabs/models/list_connectors200_response_inner.py +148 -0
  872. moolabs/models/list_entitlements_result.py +151 -0
  873. moolabs/models/list_events_v2_filter_param.py +123 -0
  874. moolabs/models/list_features_result.py +151 -0
  875. moolabs/models/list_grants_get200_response.py +151 -0
  876. moolabs/models/mapping_response.py +97 -0
  877. moolabs/models/mapping_rule_create.py +105 -0
  878. moolabs/models/mapping_rule_response.py +118 -0
  879. moolabs/models/mapping_rule_update.py +103 -0
  880. moolabs/models/margin_snapshot_response.py +131 -0
  881. moolabs/models/marketplace_app_api_key_install_request.py +91 -0
  882. moolabs/models/marketplace_install_request_payload.py +89 -0
  883. moolabs/models/marketplace_install_response.py +94 -0
  884. moolabs/models/marketplace_listing.py +105 -0
  885. moolabs/models/marketplace_listing_paginated_response.py +101 -0
  886. moolabs/models/matrix_price_row.py +91 -0
  887. moolabs/models/measure.py +146 -0
  888. moolabs/models/measure_kind.py +41 -0
  889. moolabs/models/measure_usage_from.py +151 -0
  890. moolabs/models/measure_usage_from_preset.py +37 -0
  891. moolabs/models/merge_remittances_request.py +89 -0
  892. moolabs/models/meter.py +176 -0
  893. moolabs/models/meter_aggregation.py +42 -0
  894. moolabs/models/meter_create.py +113 -0
  895. moolabs/models/meter_mapping_item.py +95 -0
  896. moolabs/models/meter_order_by.py +40 -0
  897. moolabs/models/meter_query_request.py +121 -0
  898. moolabs/models/meter_query_result.py +103 -0
  899. moolabs/models/meter_query_row.py +98 -0
  900. moolabs/models/meter_test_event_request.py +87 -0
  901. moolabs/models/meter_test_event_response.py +93 -0
  902. moolabs/models/meter_update.py +94 -0
  903. moolabs/models/meter_usage_summary_item.py +103 -0
  904. moolabs/models/meter_usage_summary_response.py +95 -0
  905. moolabs/models/meter_validation_error.py +101 -0
  906. moolabs/models/migrate_subscription_request.py +105 -0
  907. moolabs/models/model_cost_item.py +95 -0
  908. moolabs/models/net_suite_connect_request.py +103 -0
  909. moolabs/models/net_suite_cutover_guard_request.py +87 -0
  910. moolabs/models/net_suite_m2_m_finalize_request.py +87 -0
  911. moolabs/models/net_suite_m2_m_setup_request.py +101 -0
  912. moolabs/models/net_suite_managed_portal_backfill_cancel_request.py +87 -0
  913. moolabs/models/net_suite_managed_portal_backfill_request.py +89 -0
  914. moolabs/models/net_suite_managed_portal_backfill_run_request.py +90 -0
  915. moolabs/models/net_suite_managed_portal_mapping_delete_request.py +91 -0
  916. moolabs/models/net_suite_managed_portal_mapping_request.py +97 -0
  917. moolabs/models/net_suite_managed_portal_protection_ack_request.py +89 -0
  918. moolabs/models/next_action_type.py +41 -0
  919. moolabs/models/note_create.py +94 -0
  920. moolabs/models/note_list_response.py +101 -0
  921. moolabs/models/note_response.py +104 -0
  922. moolabs/models/notification_channel_meta.py +100 -0
  923. moolabs/models/notification_channel_order_by.py +39 -0
  924. moolabs/models/notification_channel_paginated_response.py +101 -0
  925. moolabs/models/notification_channel_type.py +36 -0
  926. moolabs/models/notification_channel_webhook.py +145 -0
  927. moolabs/models/notification_channel_webhook_create_request.py +117 -0
  928. moolabs/models/notification_event.py +137 -0
  929. moolabs/models/notification_event_balance_threshold_payload.py +121 -0
  930. moolabs/models/notification_event_balance_threshold_payload_data.py +133 -0
  931. moolabs/models/notification_event_delivery_attempt.py +103 -0
  932. moolabs/models/notification_event_delivery_status.py +125 -0
  933. moolabs/models/notification_event_delivery_status_state.py +40 -0
  934. moolabs/models/notification_event_entitlement_value_payload_base.py +125 -0
  935. moolabs/models/notification_event_invoice_created_payload.py +121 -0
  936. moolabs/models/notification_event_invoice_updated_payload.py +121 -0
  937. moolabs/models/notification_event_order_by.py +37 -0
  938. moolabs/models/notification_event_paginated_response.py +101 -0
  939. moolabs/models/notification_event_payload.py +178 -0
  940. moolabs/models/notification_event_resend_request.py +88 -0
  941. moolabs/models/notification_event_reset_payload.py +121 -0
  942. moolabs/models/notification_event_type.py +39 -0
  943. moolabs/models/notification_rule.py +178 -0
  944. moolabs/models/notification_rule_balance_threshold.py +159 -0
  945. moolabs/models/notification_rule_balance_threshold_create_request.py +115 -0
  946. moolabs/models/notification_rule_balance_threshold_value.py +90 -0
  947. moolabs/models/notification_rule_balance_threshold_value_type.py +40 -0
  948. moolabs/models/notification_rule_create_request.py +178 -0
  949. moolabs/models/notification_rule_entitlement_reset.py +149 -0
  950. moolabs/models/notification_rule_entitlement_reset_create_request.py +105 -0
  951. moolabs/models/notification_rule_invoice_created.py +139 -0
  952. moolabs/models/notification_rule_invoice_created_create_request.py +103 -0
  953. moolabs/models/notification_rule_invoice_updated.py +139 -0
  954. moolabs/models/notification_rule_invoice_updated_create_request.py +103 -0
  955. moolabs/models/notification_rule_order_by.py +39 -0
  956. moolabs/models/notification_rule_paginated_response.py +101 -0
  957. moolabs/models/notify_channel.py +89 -0
  958. moolabs/models/o_auth2_authorization_code_grant_error_type.py +42 -0
  959. moolabs/models/observation_out.py +103 -0
  960. moolabs/models/observed_total_cost.py +153 -0
  961. moolabs/models/open_cost_cluster_binding.py +115 -0
  962. moolabs/models/open_cost_dedicated_namespace.py +104 -0
  963. moolabs/models/open_cost_installation_create_request.py +122 -0
  964. moolabs/models/open_cost_installation_create_response.py +116 -0
  965. moolabs/models/open_cost_installation_response.py +114 -0
  966. moolabs/models/open_cost_snapshot_request.py +139 -0
  967. moolabs/models/open_cost_snapshot_response.py +125 -0
  968. moolabs/models/open_cost_trust_policy.py +145 -0
  969. moolabs/models/open_cost_wire_row.py +140 -0
  970. moolabs/models/open_from_scope_request.py +98 -0
  971. moolabs/models/operations_summary.py +120 -0
  972. moolabs/models/opt_out_request.py +90 -0
  973. moolabs/models/opt_out_response.py +93 -0
  974. moolabs/models/org_role.py +152 -0
  975. moolabs/models/original_total.py +152 -0
  976. moolabs/models/otlp_ingest_response.py +91 -0
  977. moolabs/models/overall_freshness.py +116 -0
  978. moolabs/models/overdraft_settings.py +93 -0
  979. moolabs/models/overdraft_settings_payload.py +93 -0
  980. moolabs/models/override_first_ingress_request.py +94 -0
  981. moolabs/models/override_request.py +90 -0
  982. moolabs/models/override_response.py +91 -0
  983. moolabs/models/overview_response.py +109 -0
  984. moolabs/models/pack_provenance.py +101 -0
  985. moolabs/models/package_price_with_commitments.py +137 -0
  986. moolabs/models/paginated_credit_memos.py +97 -0
  987. moolabs/models/paginated_customers.py +99 -0
  988. moolabs/models/paginated_invoices.py +97 -0
  989. moolabs/models/paginated_payments.py +97 -0
  990. moolabs/models/paginated_sync_runs.py +97 -0
  991. moolabs/models/patch_quote_agent_policy_request.py +98 -0
  992. moolabs/models/patch_rows_request.py +95 -0
  993. moolabs/models/patch_session_request.py +107 -0
  994. moolabs/models/payment_allocation_response.py +104 -0
  995. moolabs/models/payment_create.py +109 -0
  996. moolabs/models/payment_due_date.py +124 -0
  997. moolabs/models/payment_failed_request.py +101 -0
  998. moolabs/models/payment_failed_response.py +93 -0
  999. moolabs/models/payment_instructions_response.py +95 -0
  1000. moolabs/models/payment_instructions_update_request.py +90 -0
  1001. moolabs/models/payment_item.py +104 -0
  1002. moolabs/models/payment_link_request.py +105 -0
  1003. moolabs/models/payment_link_response.py +89 -0
  1004. moolabs/models/payment_list_response.py +101 -0
  1005. moolabs/models/payment_match_request.py +90 -0
  1006. moolabs/models/payment_response.py +136 -0
  1007. moolabs/models/payment_reversal_request.py +90 -0
  1008. moolabs/models/payment_succeeded_request.py +103 -0
  1009. moolabs/models/payment_succeeded_response.py +97 -0
  1010. moolabs/models/payment_term_due_date.py +113 -0
  1011. moolabs/models/payment_term_instant.py +102 -0
  1012. moolabs/models/payment_terms.py +148 -0
  1013. moolabs/models/pending_provider_confirmation_reconcile_request.py +88 -0
  1014. moolabs/models/pending_sns_confirmation_out.py +102 -0
  1015. moolabs/models/period.py +90 -0
  1016. moolabs/models/period_settlement_out.py +143 -0
  1017. moolabs/models/period_window.py +103 -0
  1018. moolabs/models/persona.py +39 -0
  1019. moolabs/models/plan.py +191 -0
  1020. moolabs/models/plan_addon.py +126 -0
  1021. moolabs/models/plan_addon_create.py +101 -0
  1022. moolabs/models/plan_addon_order_by.py +40 -0
  1023. moolabs/models/plan_addon_paginated_response.py +101 -0
  1024. moolabs/models/plan_addon_replace_update.py +91 -0
  1025. moolabs/models/plan_amend_request.py +103 -0
  1026. moolabs/models/plan_cost_item.py +97 -0
  1027. moolabs/models/plan_create.py +140 -0
  1028. moolabs/models/plan_create_request.py +103 -0
  1029. moolabs/models/plan_order_by.py +40 -0
  1030. moolabs/models/plan_paginated_response.py +101 -0
  1031. moolabs/models/plan_phase.py +113 -0
  1032. moolabs/models/plan_pricing_input.py +103 -0
  1033. moolabs/models/plan_pricing_sync_request.py +105 -0
  1034. moolabs/models/plan_pricing_view.py +107 -0
  1035. moolabs/models/plan_ref_payload.py +91 -0
  1036. moolabs/models/plan_reference.py +106 -0
  1037. moolabs/models/plan_reference_input.py +97 -0
  1038. moolabs/models/plan_replace_update.py +122 -0
  1039. moolabs/models/plan_status.py +39 -0
  1040. moolabs/models/plan_subscription_change.py +153 -0
  1041. moolabs/models/plan_subscription_create.py +167 -0
  1042. moolabs/models/policy_update_request.py +94 -0
  1043. moolabs/models/pool_notification_config_request.py +87 -0
  1044. moolabs/models/pooloverrides_value.py +152 -0
  1045. moolabs/models/portal_case_response.py +108 -0
  1046. moolabs/models/portal_channel_preference_request.py +100 -0
  1047. moolabs/models/portal_dispute_request.py +94 -0
  1048. moolabs/models/portal_dispute_response.py +102 -0
  1049. moolabs/models/portal_invoice_response.py +124 -0
  1050. moolabs/models/portal_payment_intent_response.py +91 -0
  1051. moolabs/models/portal_payment_request.py +102 -0
  1052. moolabs/models/portal_preferences_request.py +113 -0
  1053. moolabs/models/portal_preferences_response.py +87 -0
  1054. moolabs/models/portal_promise_to_pay_response.py +106 -0
  1055. moolabs/models/portal_ptp_request.py +95 -0
  1056. moolabs/models/portal_token.py +121 -0
  1057. moolabs/models/portal_token_item.py +97 -0
  1058. moolabs/models/preview_resolution_request.py +89 -0
  1059. moolabs/models/preview_resolution_response.py +101 -0
  1060. moolabs/models/preview_template_request.py +102 -0
  1061. moolabs/models/preview_template_response.py +95 -0
  1062. moolabs/models/preview_trace_entry.py +97 -0
  1063. moolabs/models/previous.py +152 -0
  1064. moolabs/models/price_payment_term.py +37 -0
  1065. moolabs/models/price_session_response.py +109 -0
  1066. moolabs/models/price_tier.py +110 -0
  1067. moolabs/models/price_tier_payload.py +103 -0
  1068. moolabs/models/pricing_override_input.py +100 -0
  1069. moolabs/models/pricing_result.py +100 -0
  1070. moolabs/models/pricing_snapshot_response.py +109 -0
  1071. moolabs/models/pricing_tier_input.py +90 -0
  1072. moolabs/models/priority.py +38 -0
  1073. moolabs/models/pro_rating_config.py +90 -0
  1074. moolabs/models/pro_rating_mode.py +36 -0
  1075. moolabs/models/process_value_recognition_request.py +94 -0
  1076. moolabs/models/progress.py +94 -0
  1077. moolabs/models/projection_link_in.py +91 -0
  1078. moolabs/models/projection_links_request.py +98 -0
  1079. moolabs/models/projection_links_response.py +89 -0
  1080. moolabs/models/promise_response.py +112 -0
  1081. moolabs/models/promote_response.py +89 -0
  1082. moolabs/models/provider_billing_reference.py +146 -0
  1083. moolabs/models/provider_billing_reference_kind.py +37 -0
  1084. moolabs/models/provider_blocking_reason.py +115 -0
  1085. moolabs/models/provider_confirmation_repair_request.py +99 -0
  1086. moolabs/models/provider_connection_status.py +42 -0
  1087. moolabs/models/provider_identity_details.py +110 -0
  1088. moolabs/models/provider_identity_purpose.py +38 -0
  1089. moolabs/models/provider_kind.py +37 -0
  1090. moolabs/models/provider_readiness_response.py +97 -0
  1091. moolabs/models/provider_readiness_summary.py +123 -0
  1092. moolabs/models/provider_route_status.py +39 -0
  1093. moolabs/models/provider_safe_test_send_request.py +107 -0
  1094. moolabs/models/provider_safe_test_send_response.py +109 -0
  1095. moolabs/models/provider_summary.py +89 -0
  1096. moolabs/models/provider_warning.py +115 -0
  1097. moolabs/models/ptp_approval_request.py +88 -0
  1098. moolabs/models/ptp_create_request.py +103 -0
  1099. moolabs/models/ptp_fulfill_request.py +90 -0
  1100. moolabs/models/ptp_payment_link_response.py +89 -0
  1101. moolabs/models/ptp_summary_response.py +104 -0
  1102. moolabs/models/publish_plan_request.py +93 -0
  1103. moolabs/models/publish_plan_result.py +93 -0
  1104. moolabs/models/publish_template_request.py +96 -0
  1105. moolabs/models/put_account_segment_request.py +89 -0
  1106. moolabs/models/put_sku_eligibility_request.py +89 -0
  1107. moolabs/models/put_tenant_segments_request.py +89 -0
  1108. moolabs/models/quality_axis.py +116 -0
  1109. moolabs/models/quality_caveat_code.py +40 -0
  1110. moolabs/models/quality_status.py +40 -0
  1111. moolabs/models/quality_summary.py +135 -0
  1112. moolabs/models/quantity.py +153 -0
  1113. moolabs/models/quick_action.py +99 -0
  1114. moolabs/models/quick_books_connect_request.py +93 -0
  1115. moolabs/models/quick_redline_response.py +123 -0
  1116. moolabs/models/quote_agent_evaluation_response.py +106 -0
  1117. moolabs/models/quote_agent_policy_response.py +112 -0
  1118. moolabs/models/quote_agent_provenance_run_response.py +114 -0
  1119. moolabs/models/quote_agent_run_response.py +122 -0
  1120. moolabs/models/quote_approval_decision_request.py +88 -0
  1121. moolabs/models/quote_approval_response.py +107 -0
  1122. moolabs/models/quote_line_item_input.py +144 -0
  1123. moolabs/models/quote_list_response.py +101 -0
  1124. moolabs/models/quote_metrics_response.py +105 -0
  1125. moolabs/models/quote_redline_decision_request.py +88 -0
  1126. moolabs/models/quote_redline_response.py +125 -0
  1127. moolabs/models/quote_response.py +125 -0
  1128. moolabs/models/quote_template_list_response.py +95 -0
  1129. moolabs/models/quote_template_response.py +109 -0
  1130. moolabs/models/quote_version_response.py +129 -0
  1131. moolabs/models/ram_cost_weight.py +152 -0
  1132. moolabs/models/ram_gib_hours.py +152 -0
  1133. moolabs/models/rate_bulk_import_request.py +97 -0
  1134. moolabs/models/rate_bulk_import_response.py +91 -0
  1135. moolabs/models/rate_card.py +150 -0
  1136. moolabs/models/rate_card_boolean_entitlement.py +96 -0
  1137. moolabs/models/rate_card_cost_list_response.py +95 -0
  1138. moolabs/models/rate_card_cost_row.py +103 -0
  1139. moolabs/models/rate_card_discount.py +87 -0
  1140. moolabs/models/rate_card_discount_input.py +103 -0
  1141. moolabs/models/rate_card_discount_payload.py +87 -0
  1142. moolabs/models/rate_card_entitlement.py +164 -0
  1143. moolabs/models/rate_card_flat_fee.py +148 -0
  1144. moolabs/models/rate_card_metered_entitlement.py +107 -0
  1145. moolabs/models/rate_card_payload.py +103 -0
  1146. moolabs/models/rate_card_response.py +106 -0
  1147. moolabs/models/rate_card_static_entitlement.py +98 -0
  1148. moolabs/models/rate_card_usage_based.py +148 -0
  1149. moolabs/models/rate_card_usage_based_price.py +192 -0
  1150. moolabs/models/rate_catalog_create.py +117 -0
  1151. moolabs/models/rate_catalog_response.py +118 -0
  1152. moolabs/models/rate_catalog_update.py +107 -0
  1153. moolabs/models/rate_generation_list_view.py +97 -0
  1154. moolabs/models/rate_generation_view.py +98 -0
  1155. moolabs/models/rate_per_unit.py +153 -0
  1156. moolabs/models/rate_per_unit1.py +153 -0
  1157. moolabs/models/rate_schedule_list_response.py +95 -0
  1158. moolabs/models/rate_schedule_preview_response.py +105 -0
  1159. moolabs/models/rate_schedule_version_out.py +101 -0
  1160. moolabs/models/ratify_family_request.py +91 -0
  1161. moolabs/models/ratify_refinement_request.py +93 -0
  1162. moolabs/models/re_scope_request.py +89 -0
  1163. moolabs/models/readiness_summary.py +89 -0
  1164. moolabs/models/readout_page_response.py +119 -0
  1165. moolabs/models/readout_row_response.py +104 -0
  1166. moolabs/models/readout_snapshot_response.py +116 -0
  1167. moolabs/models/reallocate_request.py +90 -0
  1168. moolabs/models/reallocate_response.py +97 -0
  1169. moolabs/models/reattempt_request.py +88 -0
  1170. moolabs/models/reattempt_response.py +89 -0
  1171. moolabs/models/recall_request.py +87 -0
  1172. moolabs/models/reconcile_request.py +89 -0
  1173. moolabs/models/reconcile_response.py +95 -0
  1174. moolabs/models/reconciliation_basis.py +99 -0
  1175. moolabs/models/reconciliation_basis_out.py +95 -0
  1176. moolabs/models/reconstruction_run_response.py +95 -0
  1177. moolabs/models/record_usage_request.py +115 -0
  1178. moolabs/models/recurring_period.py +96 -0
  1179. moolabs/models/recurring_period_create_input.py +94 -0
  1180. moolabs/models/recurring_period_interval.py +151 -0
  1181. moolabs/models/recurring_period_interval_enum.py +39 -0
  1182. moolabs/models/recurring_period_v2.py +94 -0
  1183. moolabs/models/recurringamount.py +152 -0
  1184. moolabs/models/redline_summary.py +89 -0
  1185. moolabs/models/refund_credit_request.py +90 -0
  1186. moolabs/models/reject_rate_generation_request.py +87 -0
  1187. moolabs/models/remittance_create_request.py +103 -0
  1188. moolabs/models/remittance_list_response.py +101 -0
  1189. moolabs/models/remittance_response.py +120 -0
  1190. moolabs/models/remove_contract_participant_response.py +131 -0
  1191. moolabs/models/remove_phase_shifting.py +37 -0
  1192. moolabs/models/replace_levels_request.py +95 -0
  1193. moolabs/models/replay_dead_letter_request.py +89 -0
  1194. moolabs/models/report_create_request.py +105 -0
  1195. moolabs/models/report_create_response.py +139 -0
  1196. moolabs/models/reporting_line_total.py +153 -0
  1197. moolabs/models/reporting_total_cost.py +153 -0
  1198. moolabs/models/request_cost_distribution.py +127 -0
  1199. moolabs/models/request_evidence_response.py +197 -0
  1200. moolabs/models/request_evidence_row.py +154 -0
  1201. moolabs/models/request_pricing_state.py +40 -0
  1202. moolabs/models/reschedule_request.py +88 -0
  1203. moolabs/models/resend_identity_details.py +104 -0
  1204. moolabs/models/reset_entitlement_usage_input.py +92 -0
  1205. moolabs/models/resolve_unapplied_request.py +87 -0
  1206. moolabs/models/resource_map_create_request.py +103 -0
  1207. moolabs/models/resource_map_response.py +113 -0
  1208. moolabs/models/retry_unpriced_request.py +91 -0
  1209. moolabs/models/retry_unpriced_response.py +91 -0
  1210. moolabs/models/revenue_recognition_request.py +89 -0
  1211. moolabs/models/reversed_settlement_ref.py +93 -0
  1212. moolabs/models/review_quarantined_request.py +95 -0
  1213. moolabs/models/review_quarantined_response.py +95 -0
  1214. moolabs/models/revoke_api_key_request.py +87 -0
  1215. moolabs/models/revoke_portal_token_request.py +87 -0
  1216. moolabs/models/rollover_mode.py +38 -0
  1217. moolabs/models/rollover_request.py +95 -0
  1218. moolabs/models/rollover_response.py +98 -0
  1219. moolabs/models/rollovercapamount.py +152 -0
  1220. moolabs/models/rolloverpercent.py +152 -0
  1221. moolabs/models/rotate_key_request.py +88 -0
  1222. moolabs/models/rotate_key_response.py +92 -0
  1223. moolabs/models/route_update_request.py +110 -0
  1224. moolabs/models/salesforce_connect_request.py +93 -0
  1225. moolabs/models/sample_rate.py +153 -0
  1226. moolabs/models/sandbox_app.py +138 -0
  1227. moolabs/models/sandbox_app_replace_update.py +101 -0
  1228. moolabs/models/sandbox_customer_app_data.py +115 -0
  1229. moolabs/models/save_redline_edit_request.py +95 -0
  1230. moolabs/models/scenario_compare_response.py +97 -0
  1231. moolabs/models/scenario_item.py +117 -0
  1232. moolabs/models/scenario_request.py +96 -0
  1233. moolabs/models/scope_type.py +38 -0
  1234. moolabs/models/sdk_batch_ingest_request.py +96 -0
  1235. moolabs/models/sdk_batch_ingest_response.py +91 -0
  1236. moolabs/models/sdk_event.py +111 -0
  1237. moolabs/models/sdk_span.py +106 -0
  1238. moolabs/models/segment_out.py +95 -0
  1239. moolabs/models/sender_response.py +93 -0
  1240. moolabs/models/sender_update.py +93 -0
  1241. moolabs/models/ses_identity_details.py +127 -0
  1242. moolabs/models/ses_provider_scope_status.py +89 -0
  1243. moolabs/models/set_rate_card_cost_request.py +89 -0
  1244. moolabs/models/severity.py +38 -0
  1245. moolabs/models/shadow_mode_request.py +87 -0
  1246. moolabs/models/shadow_run_list_item.py +101 -0
  1247. moolabs/models/shadow_run_metrics.py +114 -0
  1248. moolabs/models/shadow_run_request.py +92 -0
  1249. moolabs/models/shadow_run_summary.py +95 -0
  1250. moolabs/models/simulate_margin_request.py +100 -0
  1251. moolabs/models/simulate_margin_response.py +115 -0
  1252. moolabs/models/simulate_out.py +103 -0
  1253. moolabs/models/sku_eligibility_list_response.py +95 -0
  1254. moolabs/models/sku_eligibility_row.py +91 -0
  1255. moolabs/models/slack_quote_command_response.py +93 -0
  1256. moolabs/models/snapshot_compute_request.py +104 -0
  1257. moolabs/models/snapshot_compute_response.py +99 -0
  1258. moolabs/models/snapshot_response.py +104 -0
  1259. moolabs/models/sns_confirmation_command_out.py +98 -0
  1260. moolabs/models/sns_confirmation_confirmed_out.py +94 -0
  1261. moolabs/models/sns_confirmation_confirmed_request.py +101 -0
  1262. moolabs/models/sns_confirmation_list_out.py +95 -0
  1263. moolabs/models/sort_direction.py +37 -0
  1264. moolabs/models/sort_order.py +37 -0
  1265. moolabs/models/spend_summary.py +114 -0
  1266. moolabs/models/stage_schema.py +117 -0
  1267. moolabs/models/strategy_create_request.py +130 -0
  1268. moolabs/models/strategy_preview_request.py +87 -0
  1269. moolabs/models/strategy_update_request.py +133 -0
  1270. moolabs/models/stripe_api_key_input.py +87 -0
  1271. moolabs/models/stripe_app.py +150 -0
  1272. moolabs/models/stripe_app_replace_update.py +103 -0
  1273. moolabs/models/stripe_checkout_session_mode.py +36 -0
  1274. moolabs/models/stripe_customer_app_data.py +119 -0
  1275. moolabs/models/stripe_customer_app_data_base.py +89 -0
  1276. moolabs/models/stripe_customer_app_data_create_or_update_item.py +111 -0
  1277. moolabs/models/stripe_customer_portal_session.py +102 -0
  1278. moolabs/models/stripe_tax_config.py +95 -0
  1279. moolabs/models/stripe_webhook_event.py +99 -0
  1280. moolabs/models/stripe_webhook_event_data.py +92 -0
  1281. moolabs/models/stripe_webhook_response.py +118 -0
  1282. moolabs/models/subject.py +122 -0
  1283. moolabs/models/subject_upsert.py +98 -0
  1284. moolabs/models/subscription.py +201 -0
  1285. moolabs/models/subscription_activate_request.py +101 -0
  1286. moolabs/models/subscription_addon.py +167 -0
  1287. moolabs/models/subscription_addon_create.py +106 -0
  1288. moolabs/models/subscription_addon_rate_card.py +94 -0
  1289. moolabs/models/subscription_addon_timeline_segment.py +95 -0
  1290. moolabs/models/subscription_addon_update.py +100 -0
  1291. moolabs/models/subscription_alignment.py +93 -0
  1292. moolabs/models/subscription_bad_request_error_response.py +102 -0
  1293. moolabs/models/subscription_change.py +147 -0
  1294. moolabs/models/subscription_change_response_body.py +97 -0
  1295. moolabs/models/subscription_conflict_error_response.py +102 -0
  1296. moolabs/models/subscription_create.py +147 -0
  1297. moolabs/models/subscription_edit.py +102 -0
  1298. moolabs/models/subscription_edit_operation.py +206 -0
  1299. moolabs/models/subscription_error_extensions.py +95 -0
  1300. moolabs/models/subscription_expanded.py +211 -0
  1301. moolabs/models/subscription_item.py +167 -0
  1302. moolabs/models/subscription_item_included.py +97 -0
  1303. moolabs/models/subscription_item_price_override.py +111 -0
  1304. moolabs/models/subscription_item_price_override_type.py +37 -0
  1305. moolabs/models/subscription_paginated_response.py +101 -0
  1306. moolabs/models/subscription_phase_create.py +109 -0
  1307. moolabs/models/subscription_phase_expanded.py +163 -0
  1308. moolabs/models/subscription_ramp_phase.py +91 -0
  1309. moolabs/models/subscription_status.py +39 -0
  1310. moolabs/models/subscription_timing.py +151 -0
  1311. moolabs/models/subscription_timing_enum.py +37 -0
  1312. moolabs/models/sync_config_request.py +109 -0
  1313. moolabs/models/sync_config_response.py +111 -0
  1314. moolabs/models/sync_invoices_request.py +87 -0
  1315. moolabs/models/sync_run_item.py +102 -0
  1316. moolabs/models/synthetic_request_evidence_row.py +118 -0
  1317. moolabs/models/task_complete_request.py +92 -0
  1318. moolabs/models/task_list_response.py +101 -0
  1319. moolabs/models/task_response.py +130 -0
  1320. moolabs/models/task_update.py +93 -0
  1321. moolabs/models/tax_behavior.py +37 -0
  1322. moolabs/models/tax_config.py +100 -0
  1323. moolabs/models/template_archive_request.py +88 -0
  1324. moolabs/models/template_card_action_request.py +99 -0
  1325. moolabs/models/template_item.py +97 -0
  1326. moolabs/models/template_key_create_request.py +92 -0
  1327. moolabs/models/template_key_list_response.py +116 -0
  1328. moolabs/models/template_key_response.py +126 -0
  1329. moolabs/models/template_meta_response.py +93 -0
  1330. moolabs/models/template_preview_request.py +87 -0
  1331. moolabs/models/template_preview_response.py +101 -0
  1332. moolabs/models/template_test_send_request.py +87 -0
  1333. moolabs/models/template_test_send_response.py +93 -0
  1334. moolabs/models/template_update.py +91 -0
  1335. moolabs/models/template_version_list_response.py +95 -0
  1336. moolabs/models/template_version_response.py +143 -0
  1337. moolabs/models/tenant_config_response.py +95 -0
  1338. moolabs/models/tenant_escalation_config_out.py +97 -0
  1339. moolabs/models/tenant_escalation_config_patch.py +92 -0
  1340. moolabs/models/tenant_provision_request.py +89 -0
  1341. moolabs/models/tenant_segment_entry.py +89 -0
  1342. moolabs/models/tenant_segments_response.py +97 -0
  1343. moolabs/models/tenant_unit_economics.py +97 -0
  1344. moolabs/models/territory_in.py +89 -0
  1345. moolabs/models/test_send_request.py +104 -0
  1346. moolabs/models/test_send_response.py +93 -0
  1347. moolabs/models/tiered_price_mode.py +37 -0
  1348. moolabs/models/tiered_price_with_commitments.py +132 -0
  1349. moolabs/models/tiered_pricing_payload.py +97 -0
  1350. moolabs/models/timestamp_window.py +103 -0
  1351. moolabs/models/top_consumer.py +93 -0
  1352. moolabs/models/topup_defaults_request.py +93 -0
  1353. moolabs/models/total_cost.py +153 -0
  1354. moolabs/models/traces_response.py +95 -0
  1355. moolabs/models/trend_data_point.py +91 -0
  1356. moolabs/models/trend_point.py +116 -0
  1357. moolabs/models/trigger_request.py +87 -0
  1358. moolabs/models/ulidor_external_key.py +153 -0
  1359. moolabs/models/unapplied_cash_response.py +106 -0
  1360. moolabs/models/unavailable_reason.py +66 -0
  1361. moolabs/models/unexpected_problem_response.py +111 -0
  1362. moolabs/models/unified_price_row_input.py +99 -0
  1363. moolabs/models/unified_price_row_out.py +109 -0
  1364. moolabs/models/unit_cost.py +153 -0
  1365. moolabs/models/unit_economics.py +97 -0
  1366. moolabs/models/unit_price.py +104 -0
  1367. moolabs/models/unit_price_with_commitments.py +128 -0
  1368. moolabs/models/unitamount.py +152 -0
  1369. moolabs/models/update_approval_policy_request.py +87 -0
  1370. moolabs/models/update_auto_topup_rule_request.py +102 -0
  1371. moolabs/models/update_credit_pool_request.py +98 -0
  1372. moolabs/models/update_quote_template_request.py +102 -0
  1373. moolabs/models/update_threshold_request.py +97 -0
  1374. moolabs/models/update_wallet_settings_request.py +95 -0
  1375. moolabs/models/update_wallet_thresholds_request.py +92 -0
  1376. moolabs/models/upsert_fx_rate_request.py +92 -0
  1377. moolabs/models/upsert_provider_identity_request.py +115 -0
  1378. moolabs/models/upto.py +152 -0
  1379. moolabs/models/usage_summary_window_size.py +37 -0
  1380. moolabs/models/validate_template_request.py +116 -0
  1381. moolabs/models/validate_template_response.py +89 -0
  1382. moolabs/models/validation_error.py +99 -0
  1383. moolabs/models/validation_error_loc_inner.py +152 -0
  1384. moolabs/models/validation_issue.py +135 -0
  1385. moolabs/models/validation_issue_severity.py +37 -0
  1386. moolabs/models/validation_response.py +105 -0
  1387. moolabs/models/value_recognition_response.py +93 -0
  1388. moolabs/models/variance_decomposition_out.py +117 -0
  1389. moolabs/models/variance_summary_response.py +101 -0
  1390. moolabs/models/verification_status.py +39 -0
  1391. moolabs/models/void_grant_request.py +88 -0
  1392. moolabs/models/void_invoice_action_create.py +93 -0
  1393. moolabs/models/void_invoice_action_create_item.py +93 -0
  1394. moolabs/models/void_invoice_action_input.py +103 -0
  1395. moolabs/models/void_invoice_action_line_override.py +101 -0
  1396. moolabs/models/void_invoice_line_action_create.py +150 -0
  1397. moolabs/models/void_invoice_line_action_create_item.py +150 -0
  1398. moolabs/models/void_invoice_line_discard_action.py +94 -0
  1399. moolabs/models/void_invoice_line_pending_action_create.py +97 -0
  1400. moolabs/models/void_invoice_line_pending_action_create_item.py +97 -0
  1401. moolabs/models/volume_summary.py +114 -0
  1402. moolabs/models/wallet_owner_type.py +43 -0
  1403. moolabs/models/wallet_policy.py +38 -0
  1404. moolabs/models/wallet_response.py +112 -0
  1405. moolabs/models/wallet_state_response.py +105 -0
  1406. moolabs/models/warning_item.py +93 -0
  1407. moolabs/models/webhook_response.py +95 -0
  1408. moolabs/models/webhook_update.py +95 -0
  1409. moolabs/models/window_size.py +39 -0
  1410. moolabs/models/windowed_balance_history.py +105 -0
  1411. moolabs/models/xero_connect_request.py +91 -0
  1412. moolabs/py.typed +0 -0
  1413. moolabs/rest.py +257 -0
  1414. moolabs-0.3.0.dist-info/METADATA +31 -0
  1415. moolabs-0.3.0.dist-info/RECORD +1417 -0
  1416. moolabs-0.3.0.dist-info/WHEEL +5 -0
  1417. moolabs-0.3.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,3095 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Moolabs API
5
+
6
+ Unified Moolabs SDK. Capability-based public surface stitched from internal service specs: bff, meter, arc, acute. Customers see capability namespaces (usage, billing, collections, etc.); the SDK routes per-operation internally.
7
+
8
+ The version of the OpenAPI document: 0.3.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ import warnings
15
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
+ from typing import Any, Dict, List, Optional, Tuple, Union
17
+ from typing_extensions import Annotated
18
+
19
+ from pydantic import Field, StrictStr
20
+ from typing import Any, Optional
21
+ from typing_extensions import Annotated
22
+ from moolabs.models.app_api_v1_auto_topup_router_trigger_response import AppApiV1AutoTopupRouterTriggerResponse
23
+ from moolabs.models.auto_topup_activity_response import AutoTopupActivityResponse
24
+ from moolabs.models.auto_topup_rule_response import AutoTopupRuleResponse
25
+ from moolabs.models.check_trigger_request import CheckTriggerRequest
26
+ from moolabs.models.create_auto_topup_rule_request import CreateAutoTopupRuleRequest
27
+ from moolabs.models.list_auto_topup_rules_response import ListAutoTopupRulesResponse
28
+ from moolabs.models.payment_failed_request import PaymentFailedRequest
29
+ from moolabs.models.payment_failed_response import PaymentFailedResponse
30
+ from moolabs.models.payment_succeeded_request import PaymentSucceededRequest
31
+ from moolabs.models.payment_succeeded_response import PaymentSucceededResponse
32
+ from moolabs.models.update_auto_topup_rule_request import UpdateAutoTopupRuleRequest
33
+
34
+ from moolabs.api_client import ApiClient, RequestSerialized
35
+ from moolabs.api_response import ApiResponse
36
+ from moolabs.rest import RESTResponseType
37
+
38
+
39
+ class AutoTopupApi:
40
+ """NOTE: This class is auto generated by OpenAPI Generator
41
+ Ref: https://openapi-generator.tech
42
+
43
+ Do not edit the class manually.
44
+ """
45
+
46
+ def __init__(self, api_client=None) -> None:
47
+ if api_client is None:
48
+ api_client = ApiClient.get_default()
49
+ self.api_client = api_client
50
+
51
+
52
+ @validate_call
53
+ def check_trigger_v1(
54
+ self,
55
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
56
+ check_trigger_request: Optional[CheckTriggerRequest] = None,
57
+ _request_timeout: Union[
58
+ None,
59
+ Annotated[StrictFloat, Field(gt=0)],
60
+ Tuple[
61
+ Annotated[StrictFloat, Field(gt=0)],
62
+ Annotated[StrictFloat, Field(gt=0)]
63
+ ]
64
+ ] = None,
65
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
66
+ _content_type: Optional[StrictStr] = None,
67
+ _headers: Optional[Dict[StrictStr, Any]] = None,
68
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
69
+ ) -> AppApiV1AutoTopupRouterTriggerResponse:
70
+ """Check Trigger
71
+
72
+ Check trigger condition and trigger auto top-up if needed. This endpoint: - Checks if trigger condition is met - Checks cooldown atomicity - Acquires trigger lock - Emits AUTO_TOPUP_REQUESTED outbox event
73
+
74
+ :param rule_id: Auto top-up rule ID (required)
75
+ :type rule_id: str
76
+ :param check_trigger_request:
77
+ :type check_trigger_request: CheckTriggerRequest
78
+ :param _request_timeout: timeout setting for this request. If one
79
+ number provided, it will be total request
80
+ timeout. It can also be a pair (tuple) of
81
+ (connection, read) timeouts.
82
+ :type _request_timeout: int, tuple(int, int), optional
83
+ :param _request_auth: set to override the auth_settings for an a single
84
+ request; this effectively ignores the
85
+ authentication in the spec for a single request.
86
+ :type _request_auth: dict, optional
87
+ :param _content_type: force content-type for the request.
88
+ :type _content_type: str, Optional
89
+ :param _headers: set to override the headers for a single
90
+ request; this effectively ignores the headers
91
+ in the spec for a single request.
92
+ :type _headers: dict, optional
93
+ :param _host_index: set to override the host_index for a single
94
+ request; this effectively ignores the host_index
95
+ in the spec for a single request.
96
+ :type _host_index: int, optional
97
+ :return: Returns the result object.
98
+ """ # noqa: E501
99
+
100
+ _param = self._check_trigger_v1_serialize(
101
+ rule_id=rule_id,
102
+ check_trigger_request=check_trigger_request,
103
+ _request_auth=_request_auth,
104
+ _content_type=_content_type,
105
+ _headers=_headers,
106
+ _host_index=_host_index
107
+ )
108
+
109
+ _response_types_map: Dict[str, Optional[str]] = {
110
+ '200': "AppApiV1AutoTopupRouterTriggerResponse",
111
+ '422': "HTTPValidationError",
112
+ }
113
+ response_data = self.api_client.call_api(
114
+ *_param,
115
+ _request_timeout=_request_timeout
116
+ )
117
+ response_data.read()
118
+ return self.api_client.response_deserialize(
119
+ response_data=response_data,
120
+ response_types_map=_response_types_map,
121
+ ).data
122
+
123
+
124
+ @validate_call
125
+ def check_trigger_v1_with_http_info(
126
+ self,
127
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
128
+ check_trigger_request: Optional[CheckTriggerRequest] = None,
129
+ _request_timeout: Union[
130
+ None,
131
+ Annotated[StrictFloat, Field(gt=0)],
132
+ Tuple[
133
+ Annotated[StrictFloat, Field(gt=0)],
134
+ Annotated[StrictFloat, Field(gt=0)]
135
+ ]
136
+ ] = None,
137
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
138
+ _content_type: Optional[StrictStr] = None,
139
+ _headers: Optional[Dict[StrictStr, Any]] = None,
140
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
141
+ ) -> ApiResponse[AppApiV1AutoTopupRouterTriggerResponse]:
142
+ """Check Trigger
143
+
144
+ Check trigger condition and trigger auto top-up if needed. This endpoint: - Checks if trigger condition is met - Checks cooldown atomicity - Acquires trigger lock - Emits AUTO_TOPUP_REQUESTED outbox event
145
+
146
+ :param rule_id: Auto top-up rule ID (required)
147
+ :type rule_id: str
148
+ :param check_trigger_request:
149
+ :type check_trigger_request: CheckTriggerRequest
150
+ :param _request_timeout: timeout setting for this request. If one
151
+ number provided, it will be total request
152
+ timeout. It can also be a pair (tuple) of
153
+ (connection, read) timeouts.
154
+ :type _request_timeout: int, tuple(int, int), optional
155
+ :param _request_auth: set to override the auth_settings for an a single
156
+ request; this effectively ignores the
157
+ authentication in the spec for a single request.
158
+ :type _request_auth: dict, optional
159
+ :param _content_type: force content-type for the request.
160
+ :type _content_type: str, Optional
161
+ :param _headers: set to override the headers for a single
162
+ request; this effectively ignores the headers
163
+ in the spec for a single request.
164
+ :type _headers: dict, optional
165
+ :param _host_index: set to override the host_index for a single
166
+ request; this effectively ignores the host_index
167
+ in the spec for a single request.
168
+ :type _host_index: int, optional
169
+ :return: Returns the result object.
170
+ """ # noqa: E501
171
+
172
+ _param = self._check_trigger_v1_serialize(
173
+ rule_id=rule_id,
174
+ check_trigger_request=check_trigger_request,
175
+ _request_auth=_request_auth,
176
+ _content_type=_content_type,
177
+ _headers=_headers,
178
+ _host_index=_host_index
179
+ )
180
+
181
+ _response_types_map: Dict[str, Optional[str]] = {
182
+ '200': "AppApiV1AutoTopupRouterTriggerResponse",
183
+ '422': "HTTPValidationError",
184
+ }
185
+ response_data = self.api_client.call_api(
186
+ *_param,
187
+ _request_timeout=_request_timeout
188
+ )
189
+ response_data.read()
190
+ return self.api_client.response_deserialize(
191
+ response_data=response_data,
192
+ response_types_map=_response_types_map,
193
+ )
194
+
195
+
196
+ @validate_call
197
+ def check_trigger_v1_without_preload_content(
198
+ self,
199
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
200
+ check_trigger_request: Optional[CheckTriggerRequest] = None,
201
+ _request_timeout: Union[
202
+ None,
203
+ Annotated[StrictFloat, Field(gt=0)],
204
+ Tuple[
205
+ Annotated[StrictFloat, Field(gt=0)],
206
+ Annotated[StrictFloat, Field(gt=0)]
207
+ ]
208
+ ] = None,
209
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
210
+ _content_type: Optional[StrictStr] = None,
211
+ _headers: Optional[Dict[StrictStr, Any]] = None,
212
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
213
+ ) -> RESTResponseType:
214
+ """Check Trigger
215
+
216
+ Check trigger condition and trigger auto top-up if needed. This endpoint: - Checks if trigger condition is met - Checks cooldown atomicity - Acquires trigger lock - Emits AUTO_TOPUP_REQUESTED outbox event
217
+
218
+ :param rule_id: Auto top-up rule ID (required)
219
+ :type rule_id: str
220
+ :param check_trigger_request:
221
+ :type check_trigger_request: CheckTriggerRequest
222
+ :param _request_timeout: timeout setting for this request. If one
223
+ number provided, it will be total request
224
+ timeout. It can also be a pair (tuple) of
225
+ (connection, read) timeouts.
226
+ :type _request_timeout: int, tuple(int, int), optional
227
+ :param _request_auth: set to override the auth_settings for an a single
228
+ request; this effectively ignores the
229
+ authentication in the spec for a single request.
230
+ :type _request_auth: dict, optional
231
+ :param _content_type: force content-type for the request.
232
+ :type _content_type: str, Optional
233
+ :param _headers: set to override the headers for a single
234
+ request; this effectively ignores the headers
235
+ in the spec for a single request.
236
+ :type _headers: dict, optional
237
+ :param _host_index: set to override the host_index for a single
238
+ request; this effectively ignores the host_index
239
+ in the spec for a single request.
240
+ :type _host_index: int, optional
241
+ :return: Returns the result object.
242
+ """ # noqa: E501
243
+
244
+ _param = self._check_trigger_v1_serialize(
245
+ rule_id=rule_id,
246
+ check_trigger_request=check_trigger_request,
247
+ _request_auth=_request_auth,
248
+ _content_type=_content_type,
249
+ _headers=_headers,
250
+ _host_index=_host_index
251
+ )
252
+
253
+ _response_types_map: Dict[str, Optional[str]] = {
254
+ '200': "AppApiV1AutoTopupRouterTriggerResponse",
255
+ '422': "HTTPValidationError",
256
+ }
257
+ response_data = self.api_client.call_api(
258
+ *_param,
259
+ _request_timeout=_request_timeout
260
+ )
261
+ return response_data.response
262
+
263
+
264
+ def _check_trigger_v1_serialize(
265
+ self,
266
+ rule_id,
267
+ check_trigger_request,
268
+ _request_auth,
269
+ _content_type,
270
+ _headers,
271
+ _host_index,
272
+ ) -> RequestSerialized:
273
+
274
+ _host = None
275
+
276
+ _collection_formats: Dict[str, str] = {
277
+ }
278
+
279
+ _path_params: Dict[str, str] = {}
280
+ _query_params: List[Tuple[str, str]] = []
281
+ _header_params: Dict[str, Optional[str]] = _headers or {}
282
+ _form_params: List[Tuple[str, str]] = []
283
+ _files: Dict[
284
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
285
+ ] = {}
286
+ _body_params: Optional[bytes] = None
287
+
288
+ # process the path parameters
289
+ if rule_id is not None:
290
+ _path_params['rule_id'] = rule_id
291
+ # process the query parameters
292
+ # process the header parameters
293
+ # process the form parameters
294
+ # process the body parameter
295
+ if check_trigger_request is not None:
296
+ _body_params = check_trigger_request
297
+
298
+
299
+ # set the HTTP header `Accept`
300
+ if 'Accept' not in _header_params:
301
+ _header_params['Accept'] = self.api_client.select_header_accept(
302
+ [
303
+ 'application/json'
304
+ ]
305
+ )
306
+
307
+ # set the HTTP header `Content-Type`
308
+ if _content_type:
309
+ _header_params['Content-Type'] = _content_type
310
+ else:
311
+ _default_content_type = (
312
+ self.api_client.select_header_content_type(
313
+ [
314
+ 'application/json'
315
+ ]
316
+ )
317
+ )
318
+ if _default_content_type is not None:
319
+ _header_params['Content-Type'] = _default_content_type
320
+
321
+ # authentication setting
322
+ _auth_settings: List[str] = [
323
+ ]
324
+
325
+ return self.api_client.param_serialize(
326
+ method='POST',
327
+ resource_path='/v1/auto-topup/rules/{rule_id}/check',
328
+ path_params=_path_params,
329
+ query_params=_query_params,
330
+ header_params=_header_params,
331
+ body=_body_params,
332
+ post_params=_form_params,
333
+ files=_files,
334
+ auth_settings=_auth_settings,
335
+ collection_formats=_collection_formats,
336
+ _host=_host,
337
+ _request_auth=_request_auth
338
+ )
339
+
340
+
341
+
342
+
343
+ @validate_call
344
+ def create_rule_v1(
345
+ self,
346
+ create_auto_topup_rule_request: CreateAutoTopupRuleRequest,
347
+ _request_timeout: Union[
348
+ None,
349
+ Annotated[StrictFloat, Field(gt=0)],
350
+ Tuple[
351
+ Annotated[StrictFloat, Field(gt=0)],
352
+ Annotated[StrictFloat, Field(gt=0)]
353
+ ]
354
+ ] = None,
355
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
356
+ _content_type: Optional[StrictStr] = None,
357
+ _headers: Optional[Dict[StrictStr, Any]] = None,
358
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
359
+ ) -> AutoTopupRuleResponse:
360
+ """Create Rule
361
+
362
+ Create an auto top-up rule. This endpoint creates a rule that triggers automatic wallet top-up when certain conditions are met (e.g., LOW state, threshold crossed).
363
+
364
+ :param create_auto_topup_rule_request: (required)
365
+ :type create_auto_topup_rule_request: CreateAutoTopupRuleRequest
366
+ :param _request_timeout: timeout setting for this request. If one
367
+ number provided, it will be total request
368
+ timeout. It can also be a pair (tuple) of
369
+ (connection, read) timeouts.
370
+ :type _request_timeout: int, tuple(int, int), optional
371
+ :param _request_auth: set to override the auth_settings for an a single
372
+ request; this effectively ignores the
373
+ authentication in the spec for a single request.
374
+ :type _request_auth: dict, optional
375
+ :param _content_type: force content-type for the request.
376
+ :type _content_type: str, Optional
377
+ :param _headers: set to override the headers for a single
378
+ request; this effectively ignores the headers
379
+ in the spec for a single request.
380
+ :type _headers: dict, optional
381
+ :param _host_index: set to override the host_index for a single
382
+ request; this effectively ignores the host_index
383
+ in the spec for a single request.
384
+ :type _host_index: int, optional
385
+ :return: Returns the result object.
386
+ """ # noqa: E501
387
+
388
+ _param = self._create_rule_v1_serialize(
389
+ create_auto_topup_rule_request=create_auto_topup_rule_request,
390
+ _request_auth=_request_auth,
391
+ _content_type=_content_type,
392
+ _headers=_headers,
393
+ _host_index=_host_index
394
+ )
395
+
396
+ _response_types_map: Dict[str, Optional[str]] = {
397
+ '200': "AutoTopupRuleResponse",
398
+ '422': "HTTPValidationError",
399
+ }
400
+ response_data = self.api_client.call_api(
401
+ *_param,
402
+ _request_timeout=_request_timeout
403
+ )
404
+ response_data.read()
405
+ return self.api_client.response_deserialize(
406
+ response_data=response_data,
407
+ response_types_map=_response_types_map,
408
+ ).data
409
+
410
+
411
+ @validate_call
412
+ def create_rule_v1_with_http_info(
413
+ self,
414
+ create_auto_topup_rule_request: CreateAutoTopupRuleRequest,
415
+ _request_timeout: Union[
416
+ None,
417
+ Annotated[StrictFloat, Field(gt=0)],
418
+ Tuple[
419
+ Annotated[StrictFloat, Field(gt=0)],
420
+ Annotated[StrictFloat, Field(gt=0)]
421
+ ]
422
+ ] = None,
423
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
424
+ _content_type: Optional[StrictStr] = None,
425
+ _headers: Optional[Dict[StrictStr, Any]] = None,
426
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
427
+ ) -> ApiResponse[AutoTopupRuleResponse]:
428
+ """Create Rule
429
+
430
+ Create an auto top-up rule. This endpoint creates a rule that triggers automatic wallet top-up when certain conditions are met (e.g., LOW state, threshold crossed).
431
+
432
+ :param create_auto_topup_rule_request: (required)
433
+ :type create_auto_topup_rule_request: CreateAutoTopupRuleRequest
434
+ :param _request_timeout: timeout setting for this request. If one
435
+ number provided, it will be total request
436
+ timeout. It can also be a pair (tuple) of
437
+ (connection, read) timeouts.
438
+ :type _request_timeout: int, tuple(int, int), optional
439
+ :param _request_auth: set to override the auth_settings for an a single
440
+ request; this effectively ignores the
441
+ authentication in the spec for a single request.
442
+ :type _request_auth: dict, optional
443
+ :param _content_type: force content-type for the request.
444
+ :type _content_type: str, Optional
445
+ :param _headers: set to override the headers for a single
446
+ request; this effectively ignores the headers
447
+ in the spec for a single request.
448
+ :type _headers: dict, optional
449
+ :param _host_index: set to override the host_index for a single
450
+ request; this effectively ignores the host_index
451
+ in the spec for a single request.
452
+ :type _host_index: int, optional
453
+ :return: Returns the result object.
454
+ """ # noqa: E501
455
+
456
+ _param = self._create_rule_v1_serialize(
457
+ create_auto_topup_rule_request=create_auto_topup_rule_request,
458
+ _request_auth=_request_auth,
459
+ _content_type=_content_type,
460
+ _headers=_headers,
461
+ _host_index=_host_index
462
+ )
463
+
464
+ _response_types_map: Dict[str, Optional[str]] = {
465
+ '200': "AutoTopupRuleResponse",
466
+ '422': "HTTPValidationError",
467
+ }
468
+ response_data = self.api_client.call_api(
469
+ *_param,
470
+ _request_timeout=_request_timeout
471
+ )
472
+ response_data.read()
473
+ return self.api_client.response_deserialize(
474
+ response_data=response_data,
475
+ response_types_map=_response_types_map,
476
+ )
477
+
478
+
479
+ @validate_call
480
+ def create_rule_v1_without_preload_content(
481
+ self,
482
+ create_auto_topup_rule_request: CreateAutoTopupRuleRequest,
483
+ _request_timeout: Union[
484
+ None,
485
+ Annotated[StrictFloat, Field(gt=0)],
486
+ Tuple[
487
+ Annotated[StrictFloat, Field(gt=0)],
488
+ Annotated[StrictFloat, Field(gt=0)]
489
+ ]
490
+ ] = None,
491
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
492
+ _content_type: Optional[StrictStr] = None,
493
+ _headers: Optional[Dict[StrictStr, Any]] = None,
494
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
495
+ ) -> RESTResponseType:
496
+ """Create Rule
497
+
498
+ Create an auto top-up rule. This endpoint creates a rule that triggers automatic wallet top-up when certain conditions are met (e.g., LOW state, threshold crossed).
499
+
500
+ :param create_auto_topup_rule_request: (required)
501
+ :type create_auto_topup_rule_request: CreateAutoTopupRuleRequest
502
+ :param _request_timeout: timeout setting for this request. If one
503
+ number provided, it will be total request
504
+ timeout. It can also be a pair (tuple) of
505
+ (connection, read) timeouts.
506
+ :type _request_timeout: int, tuple(int, int), optional
507
+ :param _request_auth: set to override the auth_settings for an a single
508
+ request; this effectively ignores the
509
+ authentication in the spec for a single request.
510
+ :type _request_auth: dict, optional
511
+ :param _content_type: force content-type for the request.
512
+ :type _content_type: str, Optional
513
+ :param _headers: set to override the headers for a single
514
+ request; this effectively ignores the headers
515
+ in the spec for a single request.
516
+ :type _headers: dict, optional
517
+ :param _host_index: set to override the host_index for a single
518
+ request; this effectively ignores the host_index
519
+ in the spec for a single request.
520
+ :type _host_index: int, optional
521
+ :return: Returns the result object.
522
+ """ # noqa: E501
523
+
524
+ _param = self._create_rule_v1_serialize(
525
+ create_auto_topup_rule_request=create_auto_topup_rule_request,
526
+ _request_auth=_request_auth,
527
+ _content_type=_content_type,
528
+ _headers=_headers,
529
+ _host_index=_host_index
530
+ )
531
+
532
+ _response_types_map: Dict[str, Optional[str]] = {
533
+ '200': "AutoTopupRuleResponse",
534
+ '422': "HTTPValidationError",
535
+ }
536
+ response_data = self.api_client.call_api(
537
+ *_param,
538
+ _request_timeout=_request_timeout
539
+ )
540
+ return response_data.response
541
+
542
+
543
+ def _create_rule_v1_serialize(
544
+ self,
545
+ create_auto_topup_rule_request,
546
+ _request_auth,
547
+ _content_type,
548
+ _headers,
549
+ _host_index,
550
+ ) -> RequestSerialized:
551
+
552
+ _host = None
553
+
554
+ _collection_formats: Dict[str, str] = {
555
+ }
556
+
557
+ _path_params: Dict[str, str] = {}
558
+ _query_params: List[Tuple[str, str]] = []
559
+ _header_params: Dict[str, Optional[str]] = _headers or {}
560
+ _form_params: List[Tuple[str, str]] = []
561
+ _files: Dict[
562
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
563
+ ] = {}
564
+ _body_params: Optional[bytes] = None
565
+
566
+ # process the path parameters
567
+ # process the query parameters
568
+ # process the header parameters
569
+ # process the form parameters
570
+ # process the body parameter
571
+ if create_auto_topup_rule_request is not None:
572
+ _body_params = create_auto_topup_rule_request
573
+
574
+
575
+ # set the HTTP header `Accept`
576
+ if 'Accept' not in _header_params:
577
+ _header_params['Accept'] = self.api_client.select_header_accept(
578
+ [
579
+ 'application/json'
580
+ ]
581
+ )
582
+
583
+ # set the HTTP header `Content-Type`
584
+ if _content_type:
585
+ _header_params['Content-Type'] = _content_type
586
+ else:
587
+ _default_content_type = (
588
+ self.api_client.select_header_content_type(
589
+ [
590
+ 'application/json'
591
+ ]
592
+ )
593
+ )
594
+ if _default_content_type is not None:
595
+ _header_params['Content-Type'] = _default_content_type
596
+
597
+ # authentication setting
598
+ _auth_settings: List[str] = [
599
+ ]
600
+
601
+ return self.api_client.param_serialize(
602
+ method='POST',
603
+ resource_path='/v1/auto-topup/rules',
604
+ path_params=_path_params,
605
+ query_params=_query_params,
606
+ header_params=_header_params,
607
+ body=_body_params,
608
+ post_params=_form_params,
609
+ files=_files,
610
+ auth_settings=_auth_settings,
611
+ collection_formats=_collection_formats,
612
+ _host=_host,
613
+ _request_auth=_request_auth
614
+ )
615
+
616
+
617
+
618
+
619
+ @validate_call
620
+ def delete_rule_v1(
621
+ self,
622
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
623
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
624
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
625
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
626
+ _request_timeout: Union[
627
+ None,
628
+ Annotated[StrictFloat, Field(gt=0)],
629
+ Tuple[
630
+ Annotated[StrictFloat, Field(gt=0)],
631
+ Annotated[StrictFloat, Field(gt=0)]
632
+ ]
633
+ ] = None,
634
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
635
+ _content_type: Optional[StrictStr] = None,
636
+ _headers: Optional[Dict[StrictStr, Any]] = None,
637
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
638
+ ) -> object:
639
+ """Delete Rule
640
+
641
+ Delete an auto top-up rule.
642
+
643
+ :param rule_id: Auto top-up rule ID (required)
644
+ :type rule_id: str
645
+ :param tenant_id: Optional tenant identifier for validation
646
+ :type tenant_id: str
647
+ :param pool_id: Optional pool identifier for validation
648
+ :type pool_id: str
649
+ :param wallet_id: Optional wallet identifier for validation
650
+ :type wallet_id: str
651
+ :param _request_timeout: timeout setting for this request. If one
652
+ number provided, it will be total request
653
+ timeout. It can also be a pair (tuple) of
654
+ (connection, read) timeouts.
655
+ :type _request_timeout: int, tuple(int, int), optional
656
+ :param _request_auth: set to override the auth_settings for an a single
657
+ request; this effectively ignores the
658
+ authentication in the spec for a single request.
659
+ :type _request_auth: dict, optional
660
+ :param _content_type: force content-type for the request.
661
+ :type _content_type: str, Optional
662
+ :param _headers: set to override the headers for a single
663
+ request; this effectively ignores the headers
664
+ in the spec for a single request.
665
+ :type _headers: dict, optional
666
+ :param _host_index: set to override the host_index for a single
667
+ request; this effectively ignores the host_index
668
+ in the spec for a single request.
669
+ :type _host_index: int, optional
670
+ :return: Returns the result object.
671
+ """ # noqa: E501
672
+
673
+ _param = self._delete_rule_v1_serialize(
674
+ rule_id=rule_id,
675
+ tenant_id=tenant_id,
676
+ pool_id=pool_id,
677
+ wallet_id=wallet_id,
678
+ _request_auth=_request_auth,
679
+ _content_type=_content_type,
680
+ _headers=_headers,
681
+ _host_index=_host_index
682
+ )
683
+
684
+ _response_types_map: Dict[str, Optional[str]] = {
685
+ '200': "object",
686
+ '422': "HTTPValidationError",
687
+ }
688
+ response_data = self.api_client.call_api(
689
+ *_param,
690
+ _request_timeout=_request_timeout
691
+ )
692
+ response_data.read()
693
+ return self.api_client.response_deserialize(
694
+ response_data=response_data,
695
+ response_types_map=_response_types_map,
696
+ ).data
697
+
698
+
699
+ @validate_call
700
+ def delete_rule_v1_with_http_info(
701
+ self,
702
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
703
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
704
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
705
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
706
+ _request_timeout: Union[
707
+ None,
708
+ Annotated[StrictFloat, Field(gt=0)],
709
+ Tuple[
710
+ Annotated[StrictFloat, Field(gt=0)],
711
+ Annotated[StrictFloat, Field(gt=0)]
712
+ ]
713
+ ] = None,
714
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
715
+ _content_type: Optional[StrictStr] = None,
716
+ _headers: Optional[Dict[StrictStr, Any]] = None,
717
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
718
+ ) -> ApiResponse[object]:
719
+ """Delete Rule
720
+
721
+ Delete an auto top-up rule.
722
+
723
+ :param rule_id: Auto top-up rule ID (required)
724
+ :type rule_id: str
725
+ :param tenant_id: Optional tenant identifier for validation
726
+ :type tenant_id: str
727
+ :param pool_id: Optional pool identifier for validation
728
+ :type pool_id: str
729
+ :param wallet_id: Optional wallet identifier for validation
730
+ :type wallet_id: str
731
+ :param _request_timeout: timeout setting for this request. If one
732
+ number provided, it will be total request
733
+ timeout. It can also be a pair (tuple) of
734
+ (connection, read) timeouts.
735
+ :type _request_timeout: int, tuple(int, int), optional
736
+ :param _request_auth: set to override the auth_settings for an a single
737
+ request; this effectively ignores the
738
+ authentication in the spec for a single request.
739
+ :type _request_auth: dict, optional
740
+ :param _content_type: force content-type for the request.
741
+ :type _content_type: str, Optional
742
+ :param _headers: set to override the headers for a single
743
+ request; this effectively ignores the headers
744
+ in the spec for a single request.
745
+ :type _headers: dict, optional
746
+ :param _host_index: set to override the host_index for a single
747
+ request; this effectively ignores the host_index
748
+ in the spec for a single request.
749
+ :type _host_index: int, optional
750
+ :return: Returns the result object.
751
+ """ # noqa: E501
752
+
753
+ _param = self._delete_rule_v1_serialize(
754
+ rule_id=rule_id,
755
+ tenant_id=tenant_id,
756
+ pool_id=pool_id,
757
+ wallet_id=wallet_id,
758
+ _request_auth=_request_auth,
759
+ _content_type=_content_type,
760
+ _headers=_headers,
761
+ _host_index=_host_index
762
+ )
763
+
764
+ _response_types_map: Dict[str, Optional[str]] = {
765
+ '200': "object",
766
+ '422': "HTTPValidationError",
767
+ }
768
+ response_data = self.api_client.call_api(
769
+ *_param,
770
+ _request_timeout=_request_timeout
771
+ )
772
+ response_data.read()
773
+ return self.api_client.response_deserialize(
774
+ response_data=response_data,
775
+ response_types_map=_response_types_map,
776
+ )
777
+
778
+
779
+ @validate_call
780
+ def delete_rule_v1_without_preload_content(
781
+ self,
782
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
783
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
784
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
785
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
786
+ _request_timeout: Union[
787
+ None,
788
+ Annotated[StrictFloat, Field(gt=0)],
789
+ Tuple[
790
+ Annotated[StrictFloat, Field(gt=0)],
791
+ Annotated[StrictFloat, Field(gt=0)]
792
+ ]
793
+ ] = None,
794
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
795
+ _content_type: Optional[StrictStr] = None,
796
+ _headers: Optional[Dict[StrictStr, Any]] = None,
797
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
798
+ ) -> RESTResponseType:
799
+ """Delete Rule
800
+
801
+ Delete an auto top-up rule.
802
+
803
+ :param rule_id: Auto top-up rule ID (required)
804
+ :type rule_id: str
805
+ :param tenant_id: Optional tenant identifier for validation
806
+ :type tenant_id: str
807
+ :param pool_id: Optional pool identifier for validation
808
+ :type pool_id: str
809
+ :param wallet_id: Optional wallet identifier for validation
810
+ :type wallet_id: str
811
+ :param _request_timeout: timeout setting for this request. If one
812
+ number provided, it will be total request
813
+ timeout. It can also be a pair (tuple) of
814
+ (connection, read) timeouts.
815
+ :type _request_timeout: int, tuple(int, int), optional
816
+ :param _request_auth: set to override the auth_settings for an a single
817
+ request; this effectively ignores the
818
+ authentication in the spec for a single request.
819
+ :type _request_auth: dict, optional
820
+ :param _content_type: force content-type for the request.
821
+ :type _content_type: str, Optional
822
+ :param _headers: set to override the headers for a single
823
+ request; this effectively ignores the headers
824
+ in the spec for a single request.
825
+ :type _headers: dict, optional
826
+ :param _host_index: set to override the host_index for a single
827
+ request; this effectively ignores the host_index
828
+ in the spec for a single request.
829
+ :type _host_index: int, optional
830
+ :return: Returns the result object.
831
+ """ # noqa: E501
832
+
833
+ _param = self._delete_rule_v1_serialize(
834
+ rule_id=rule_id,
835
+ tenant_id=tenant_id,
836
+ pool_id=pool_id,
837
+ wallet_id=wallet_id,
838
+ _request_auth=_request_auth,
839
+ _content_type=_content_type,
840
+ _headers=_headers,
841
+ _host_index=_host_index
842
+ )
843
+
844
+ _response_types_map: Dict[str, Optional[str]] = {
845
+ '200': "object",
846
+ '422': "HTTPValidationError",
847
+ }
848
+ response_data = self.api_client.call_api(
849
+ *_param,
850
+ _request_timeout=_request_timeout
851
+ )
852
+ return response_data.response
853
+
854
+
855
+ def _delete_rule_v1_serialize(
856
+ self,
857
+ rule_id,
858
+ tenant_id,
859
+ pool_id,
860
+ wallet_id,
861
+ _request_auth,
862
+ _content_type,
863
+ _headers,
864
+ _host_index,
865
+ ) -> RequestSerialized:
866
+
867
+ _host = None
868
+
869
+ _collection_formats: Dict[str, str] = {
870
+ }
871
+
872
+ _path_params: Dict[str, str] = {}
873
+ _query_params: List[Tuple[str, str]] = []
874
+ _header_params: Dict[str, Optional[str]] = _headers or {}
875
+ _form_params: List[Tuple[str, str]] = []
876
+ _files: Dict[
877
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
878
+ ] = {}
879
+ _body_params: Optional[bytes] = None
880
+
881
+ # process the path parameters
882
+ if rule_id is not None:
883
+ _path_params['rule_id'] = rule_id
884
+ # process the query parameters
885
+ if tenant_id is not None:
886
+
887
+ _query_params.append(('tenant_id', tenant_id))
888
+
889
+ if pool_id is not None:
890
+
891
+ _query_params.append(('pool_id', pool_id))
892
+
893
+ if wallet_id is not None:
894
+
895
+ _query_params.append(('wallet_id', wallet_id))
896
+
897
+ # process the header parameters
898
+ # process the form parameters
899
+ # process the body parameter
900
+
901
+
902
+ # set the HTTP header `Accept`
903
+ if 'Accept' not in _header_params:
904
+ _header_params['Accept'] = self.api_client.select_header_accept(
905
+ [
906
+ 'application/json'
907
+ ]
908
+ )
909
+
910
+
911
+ # authentication setting
912
+ _auth_settings: List[str] = [
913
+ ]
914
+
915
+ return self.api_client.param_serialize(
916
+ method='DELETE',
917
+ resource_path='/v1/auto-topup/rules/{rule_id}',
918
+ path_params=_path_params,
919
+ query_params=_query_params,
920
+ header_params=_header_params,
921
+ body=_body_params,
922
+ post_params=_form_params,
923
+ files=_files,
924
+ auth_settings=_auth_settings,
925
+ collection_formats=_collection_formats,
926
+ _host=_host,
927
+ _request_auth=_request_auth
928
+ )
929
+
930
+
931
+
932
+
933
+ @validate_call
934
+ def get_activity_v1(
935
+ self,
936
+ tenant_id: Annotated[StrictStr, Field(description="Tenant identifier")],
937
+ pool_id: Annotated[StrictStr, Field(description="Pool identifier")],
938
+ wallet_id: Annotated[StrictStr, Field(description="Wallet identifier")],
939
+ limit: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Maximum number of items to return")] = None,
940
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Offset for pagination")] = None,
941
+ _request_timeout: Union[
942
+ None,
943
+ Annotated[StrictFloat, Field(gt=0)],
944
+ Tuple[
945
+ Annotated[StrictFloat, Field(gt=0)],
946
+ Annotated[StrictFloat, Field(gt=0)]
947
+ ]
948
+ ] = None,
949
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
950
+ _content_type: Optional[StrictStr] = None,
951
+ _headers: Optional[Dict[StrictStr, Any]] = None,
952
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
953
+ ) -> AutoTopupActivityResponse:
954
+ """Get Activity
955
+
956
+ Get auto-topup activity/history for a wallet. Returns history of auto-topup executions (both requested and completed).
957
+
958
+ :param tenant_id: Tenant identifier (required)
959
+ :type tenant_id: str
960
+ :param pool_id: Pool identifier (required)
961
+ :type pool_id: str
962
+ :param wallet_id: Wallet identifier (required)
963
+ :type wallet_id: str
964
+ :param limit: Maximum number of items to return
965
+ :type limit: int
966
+ :param offset: Offset for pagination
967
+ :type offset: int
968
+ :param _request_timeout: timeout setting for this request. If one
969
+ number provided, it will be total request
970
+ timeout. It can also be a pair (tuple) of
971
+ (connection, read) timeouts.
972
+ :type _request_timeout: int, tuple(int, int), optional
973
+ :param _request_auth: set to override the auth_settings for an a single
974
+ request; this effectively ignores the
975
+ authentication in the spec for a single request.
976
+ :type _request_auth: dict, optional
977
+ :param _content_type: force content-type for the request.
978
+ :type _content_type: str, Optional
979
+ :param _headers: set to override the headers for a single
980
+ request; this effectively ignores the headers
981
+ in the spec for a single request.
982
+ :type _headers: dict, optional
983
+ :param _host_index: set to override the host_index for a single
984
+ request; this effectively ignores the host_index
985
+ in the spec for a single request.
986
+ :type _host_index: int, optional
987
+ :return: Returns the result object.
988
+ """ # noqa: E501
989
+
990
+ _param = self._get_activity_v1_serialize(
991
+ tenant_id=tenant_id,
992
+ pool_id=pool_id,
993
+ wallet_id=wallet_id,
994
+ limit=limit,
995
+ offset=offset,
996
+ _request_auth=_request_auth,
997
+ _content_type=_content_type,
998
+ _headers=_headers,
999
+ _host_index=_host_index
1000
+ )
1001
+
1002
+ _response_types_map: Dict[str, Optional[str]] = {
1003
+ '200': "AutoTopupActivityResponse",
1004
+ '422': "HTTPValidationError",
1005
+ }
1006
+ response_data = self.api_client.call_api(
1007
+ *_param,
1008
+ _request_timeout=_request_timeout
1009
+ )
1010
+ response_data.read()
1011
+ return self.api_client.response_deserialize(
1012
+ response_data=response_data,
1013
+ response_types_map=_response_types_map,
1014
+ ).data
1015
+
1016
+
1017
+ @validate_call
1018
+ def get_activity_v1_with_http_info(
1019
+ self,
1020
+ tenant_id: Annotated[StrictStr, Field(description="Tenant identifier")],
1021
+ pool_id: Annotated[StrictStr, Field(description="Pool identifier")],
1022
+ wallet_id: Annotated[StrictStr, Field(description="Wallet identifier")],
1023
+ limit: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Maximum number of items to return")] = None,
1024
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Offset for pagination")] = None,
1025
+ _request_timeout: Union[
1026
+ None,
1027
+ Annotated[StrictFloat, Field(gt=0)],
1028
+ Tuple[
1029
+ Annotated[StrictFloat, Field(gt=0)],
1030
+ Annotated[StrictFloat, Field(gt=0)]
1031
+ ]
1032
+ ] = None,
1033
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1034
+ _content_type: Optional[StrictStr] = None,
1035
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1036
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1037
+ ) -> ApiResponse[AutoTopupActivityResponse]:
1038
+ """Get Activity
1039
+
1040
+ Get auto-topup activity/history for a wallet. Returns history of auto-topup executions (both requested and completed).
1041
+
1042
+ :param tenant_id: Tenant identifier (required)
1043
+ :type tenant_id: str
1044
+ :param pool_id: Pool identifier (required)
1045
+ :type pool_id: str
1046
+ :param wallet_id: Wallet identifier (required)
1047
+ :type wallet_id: str
1048
+ :param limit: Maximum number of items to return
1049
+ :type limit: int
1050
+ :param offset: Offset for pagination
1051
+ :type offset: int
1052
+ :param _request_timeout: timeout setting for this request. If one
1053
+ number provided, it will be total request
1054
+ timeout. It can also be a pair (tuple) of
1055
+ (connection, read) timeouts.
1056
+ :type _request_timeout: int, tuple(int, int), optional
1057
+ :param _request_auth: set to override the auth_settings for an a single
1058
+ request; this effectively ignores the
1059
+ authentication in the spec for a single request.
1060
+ :type _request_auth: dict, optional
1061
+ :param _content_type: force content-type for the request.
1062
+ :type _content_type: str, Optional
1063
+ :param _headers: set to override the headers for a single
1064
+ request; this effectively ignores the headers
1065
+ in the spec for a single request.
1066
+ :type _headers: dict, optional
1067
+ :param _host_index: set to override the host_index for a single
1068
+ request; this effectively ignores the host_index
1069
+ in the spec for a single request.
1070
+ :type _host_index: int, optional
1071
+ :return: Returns the result object.
1072
+ """ # noqa: E501
1073
+
1074
+ _param = self._get_activity_v1_serialize(
1075
+ tenant_id=tenant_id,
1076
+ pool_id=pool_id,
1077
+ wallet_id=wallet_id,
1078
+ limit=limit,
1079
+ offset=offset,
1080
+ _request_auth=_request_auth,
1081
+ _content_type=_content_type,
1082
+ _headers=_headers,
1083
+ _host_index=_host_index
1084
+ )
1085
+
1086
+ _response_types_map: Dict[str, Optional[str]] = {
1087
+ '200': "AutoTopupActivityResponse",
1088
+ '422': "HTTPValidationError",
1089
+ }
1090
+ response_data = self.api_client.call_api(
1091
+ *_param,
1092
+ _request_timeout=_request_timeout
1093
+ )
1094
+ response_data.read()
1095
+ return self.api_client.response_deserialize(
1096
+ response_data=response_data,
1097
+ response_types_map=_response_types_map,
1098
+ )
1099
+
1100
+
1101
+ @validate_call
1102
+ def get_activity_v1_without_preload_content(
1103
+ self,
1104
+ tenant_id: Annotated[StrictStr, Field(description="Tenant identifier")],
1105
+ pool_id: Annotated[StrictStr, Field(description="Pool identifier")],
1106
+ wallet_id: Annotated[StrictStr, Field(description="Wallet identifier")],
1107
+ limit: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="Maximum number of items to return")] = None,
1108
+ offset: Annotated[Optional[Annotated[int, Field(strict=True, ge=0)]], Field(description="Offset for pagination")] = None,
1109
+ _request_timeout: Union[
1110
+ None,
1111
+ Annotated[StrictFloat, Field(gt=0)],
1112
+ Tuple[
1113
+ Annotated[StrictFloat, Field(gt=0)],
1114
+ Annotated[StrictFloat, Field(gt=0)]
1115
+ ]
1116
+ ] = None,
1117
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1118
+ _content_type: Optional[StrictStr] = None,
1119
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1120
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1121
+ ) -> RESTResponseType:
1122
+ """Get Activity
1123
+
1124
+ Get auto-topup activity/history for a wallet. Returns history of auto-topup executions (both requested and completed).
1125
+
1126
+ :param tenant_id: Tenant identifier (required)
1127
+ :type tenant_id: str
1128
+ :param pool_id: Pool identifier (required)
1129
+ :type pool_id: str
1130
+ :param wallet_id: Wallet identifier (required)
1131
+ :type wallet_id: str
1132
+ :param limit: Maximum number of items to return
1133
+ :type limit: int
1134
+ :param offset: Offset for pagination
1135
+ :type offset: int
1136
+ :param _request_timeout: timeout setting for this request. If one
1137
+ number provided, it will be total request
1138
+ timeout. It can also be a pair (tuple) of
1139
+ (connection, read) timeouts.
1140
+ :type _request_timeout: int, tuple(int, int), optional
1141
+ :param _request_auth: set to override the auth_settings for an a single
1142
+ request; this effectively ignores the
1143
+ authentication in the spec for a single request.
1144
+ :type _request_auth: dict, optional
1145
+ :param _content_type: force content-type for the request.
1146
+ :type _content_type: str, Optional
1147
+ :param _headers: set to override the headers for a single
1148
+ request; this effectively ignores the headers
1149
+ in the spec for a single request.
1150
+ :type _headers: dict, optional
1151
+ :param _host_index: set to override the host_index for a single
1152
+ request; this effectively ignores the host_index
1153
+ in the spec for a single request.
1154
+ :type _host_index: int, optional
1155
+ :return: Returns the result object.
1156
+ """ # noqa: E501
1157
+
1158
+ _param = self._get_activity_v1_serialize(
1159
+ tenant_id=tenant_id,
1160
+ pool_id=pool_id,
1161
+ wallet_id=wallet_id,
1162
+ limit=limit,
1163
+ offset=offset,
1164
+ _request_auth=_request_auth,
1165
+ _content_type=_content_type,
1166
+ _headers=_headers,
1167
+ _host_index=_host_index
1168
+ )
1169
+
1170
+ _response_types_map: Dict[str, Optional[str]] = {
1171
+ '200': "AutoTopupActivityResponse",
1172
+ '422': "HTTPValidationError",
1173
+ }
1174
+ response_data = self.api_client.call_api(
1175
+ *_param,
1176
+ _request_timeout=_request_timeout
1177
+ )
1178
+ return response_data.response
1179
+
1180
+
1181
+ def _get_activity_v1_serialize(
1182
+ self,
1183
+ tenant_id,
1184
+ pool_id,
1185
+ wallet_id,
1186
+ limit,
1187
+ offset,
1188
+ _request_auth,
1189
+ _content_type,
1190
+ _headers,
1191
+ _host_index,
1192
+ ) -> RequestSerialized:
1193
+
1194
+ _host = None
1195
+
1196
+ _collection_formats: Dict[str, str] = {
1197
+ }
1198
+
1199
+ _path_params: Dict[str, str] = {}
1200
+ _query_params: List[Tuple[str, str]] = []
1201
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1202
+ _form_params: List[Tuple[str, str]] = []
1203
+ _files: Dict[
1204
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1205
+ ] = {}
1206
+ _body_params: Optional[bytes] = None
1207
+
1208
+ # process the path parameters
1209
+ # process the query parameters
1210
+ if tenant_id is not None:
1211
+
1212
+ _query_params.append(('tenant_id', tenant_id))
1213
+
1214
+ if pool_id is not None:
1215
+
1216
+ _query_params.append(('pool_id', pool_id))
1217
+
1218
+ if wallet_id is not None:
1219
+
1220
+ _query_params.append(('wallet_id', wallet_id))
1221
+
1222
+ if limit is not None:
1223
+
1224
+ _query_params.append(('limit', limit))
1225
+
1226
+ if offset is not None:
1227
+
1228
+ _query_params.append(('offset', offset))
1229
+
1230
+ # process the header parameters
1231
+ # process the form parameters
1232
+ # process the body parameter
1233
+
1234
+
1235
+ # set the HTTP header `Accept`
1236
+ if 'Accept' not in _header_params:
1237
+ _header_params['Accept'] = self.api_client.select_header_accept(
1238
+ [
1239
+ 'application/json'
1240
+ ]
1241
+ )
1242
+
1243
+
1244
+ # authentication setting
1245
+ _auth_settings: List[str] = [
1246
+ ]
1247
+
1248
+ return self.api_client.param_serialize(
1249
+ method='GET',
1250
+ resource_path='/v1/auto-topup/activity',
1251
+ path_params=_path_params,
1252
+ query_params=_query_params,
1253
+ header_params=_header_params,
1254
+ body=_body_params,
1255
+ post_params=_form_params,
1256
+ files=_files,
1257
+ auth_settings=_auth_settings,
1258
+ collection_formats=_collection_formats,
1259
+ _host=_host,
1260
+ _request_auth=_request_auth
1261
+ )
1262
+
1263
+
1264
+
1265
+
1266
+ @validate_call
1267
+ def get_rule_v1(
1268
+ self,
1269
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
1270
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
1271
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
1272
+ _request_timeout: Union[
1273
+ None,
1274
+ Annotated[StrictFloat, Field(gt=0)],
1275
+ Tuple[
1276
+ Annotated[StrictFloat, Field(gt=0)],
1277
+ Annotated[StrictFloat, Field(gt=0)]
1278
+ ]
1279
+ ] = None,
1280
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1281
+ _content_type: Optional[StrictStr] = None,
1282
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1283
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1284
+ ) -> AutoTopupRuleResponse:
1285
+ """Get Rule
1286
+
1287
+ Get a specific auto top-up rule by ID.
1288
+
1289
+ :param rule_id: Auto top-up rule ID (required)
1290
+ :type rule_id: str
1291
+ :param tenant_id: Optional tenant identifier for validation
1292
+ :type tenant_id: str
1293
+ :param pool_id: Optional pool identifier for validation
1294
+ :type pool_id: str
1295
+ :param _request_timeout: timeout setting for this request. If one
1296
+ number provided, it will be total request
1297
+ timeout. It can also be a pair (tuple) of
1298
+ (connection, read) timeouts.
1299
+ :type _request_timeout: int, tuple(int, int), optional
1300
+ :param _request_auth: set to override the auth_settings for an a single
1301
+ request; this effectively ignores the
1302
+ authentication in the spec for a single request.
1303
+ :type _request_auth: dict, optional
1304
+ :param _content_type: force content-type for the request.
1305
+ :type _content_type: str, Optional
1306
+ :param _headers: set to override the headers for a single
1307
+ request; this effectively ignores the headers
1308
+ in the spec for a single request.
1309
+ :type _headers: dict, optional
1310
+ :param _host_index: set to override the host_index for a single
1311
+ request; this effectively ignores the host_index
1312
+ in the spec for a single request.
1313
+ :type _host_index: int, optional
1314
+ :return: Returns the result object.
1315
+ """ # noqa: E501
1316
+
1317
+ _param = self._get_rule_v1_serialize(
1318
+ rule_id=rule_id,
1319
+ tenant_id=tenant_id,
1320
+ pool_id=pool_id,
1321
+ _request_auth=_request_auth,
1322
+ _content_type=_content_type,
1323
+ _headers=_headers,
1324
+ _host_index=_host_index
1325
+ )
1326
+
1327
+ _response_types_map: Dict[str, Optional[str]] = {
1328
+ '200': "AutoTopupRuleResponse",
1329
+ '422': "HTTPValidationError",
1330
+ }
1331
+ response_data = self.api_client.call_api(
1332
+ *_param,
1333
+ _request_timeout=_request_timeout
1334
+ )
1335
+ response_data.read()
1336
+ return self.api_client.response_deserialize(
1337
+ response_data=response_data,
1338
+ response_types_map=_response_types_map,
1339
+ ).data
1340
+
1341
+
1342
+ @validate_call
1343
+ def get_rule_v1_with_http_info(
1344
+ self,
1345
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
1346
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
1347
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
1348
+ _request_timeout: Union[
1349
+ None,
1350
+ Annotated[StrictFloat, Field(gt=0)],
1351
+ Tuple[
1352
+ Annotated[StrictFloat, Field(gt=0)],
1353
+ Annotated[StrictFloat, Field(gt=0)]
1354
+ ]
1355
+ ] = None,
1356
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1357
+ _content_type: Optional[StrictStr] = None,
1358
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1359
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1360
+ ) -> ApiResponse[AutoTopupRuleResponse]:
1361
+ """Get Rule
1362
+
1363
+ Get a specific auto top-up rule by ID.
1364
+
1365
+ :param rule_id: Auto top-up rule ID (required)
1366
+ :type rule_id: str
1367
+ :param tenant_id: Optional tenant identifier for validation
1368
+ :type tenant_id: str
1369
+ :param pool_id: Optional pool identifier for validation
1370
+ :type pool_id: str
1371
+ :param _request_timeout: timeout setting for this request. If one
1372
+ number provided, it will be total request
1373
+ timeout. It can also be a pair (tuple) of
1374
+ (connection, read) timeouts.
1375
+ :type _request_timeout: int, tuple(int, int), optional
1376
+ :param _request_auth: set to override the auth_settings for an a single
1377
+ request; this effectively ignores the
1378
+ authentication in the spec for a single request.
1379
+ :type _request_auth: dict, optional
1380
+ :param _content_type: force content-type for the request.
1381
+ :type _content_type: str, Optional
1382
+ :param _headers: set to override the headers for a single
1383
+ request; this effectively ignores the headers
1384
+ in the spec for a single request.
1385
+ :type _headers: dict, optional
1386
+ :param _host_index: set to override the host_index for a single
1387
+ request; this effectively ignores the host_index
1388
+ in the spec for a single request.
1389
+ :type _host_index: int, optional
1390
+ :return: Returns the result object.
1391
+ """ # noqa: E501
1392
+
1393
+ _param = self._get_rule_v1_serialize(
1394
+ rule_id=rule_id,
1395
+ tenant_id=tenant_id,
1396
+ pool_id=pool_id,
1397
+ _request_auth=_request_auth,
1398
+ _content_type=_content_type,
1399
+ _headers=_headers,
1400
+ _host_index=_host_index
1401
+ )
1402
+
1403
+ _response_types_map: Dict[str, Optional[str]] = {
1404
+ '200': "AutoTopupRuleResponse",
1405
+ '422': "HTTPValidationError",
1406
+ }
1407
+ response_data = self.api_client.call_api(
1408
+ *_param,
1409
+ _request_timeout=_request_timeout
1410
+ )
1411
+ response_data.read()
1412
+ return self.api_client.response_deserialize(
1413
+ response_data=response_data,
1414
+ response_types_map=_response_types_map,
1415
+ )
1416
+
1417
+
1418
+ @validate_call
1419
+ def get_rule_v1_without_preload_content(
1420
+ self,
1421
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
1422
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
1423
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
1424
+ _request_timeout: Union[
1425
+ None,
1426
+ Annotated[StrictFloat, Field(gt=0)],
1427
+ Tuple[
1428
+ Annotated[StrictFloat, Field(gt=0)],
1429
+ Annotated[StrictFloat, Field(gt=0)]
1430
+ ]
1431
+ ] = None,
1432
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1433
+ _content_type: Optional[StrictStr] = None,
1434
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1435
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1436
+ ) -> RESTResponseType:
1437
+ """Get Rule
1438
+
1439
+ Get a specific auto top-up rule by ID.
1440
+
1441
+ :param rule_id: Auto top-up rule ID (required)
1442
+ :type rule_id: str
1443
+ :param tenant_id: Optional tenant identifier for validation
1444
+ :type tenant_id: str
1445
+ :param pool_id: Optional pool identifier for validation
1446
+ :type pool_id: str
1447
+ :param _request_timeout: timeout setting for this request. If one
1448
+ number provided, it will be total request
1449
+ timeout. It can also be a pair (tuple) of
1450
+ (connection, read) timeouts.
1451
+ :type _request_timeout: int, tuple(int, int), optional
1452
+ :param _request_auth: set to override the auth_settings for an a single
1453
+ request; this effectively ignores the
1454
+ authentication in the spec for a single request.
1455
+ :type _request_auth: dict, optional
1456
+ :param _content_type: force content-type for the request.
1457
+ :type _content_type: str, Optional
1458
+ :param _headers: set to override the headers for a single
1459
+ request; this effectively ignores the headers
1460
+ in the spec for a single request.
1461
+ :type _headers: dict, optional
1462
+ :param _host_index: set to override the host_index for a single
1463
+ request; this effectively ignores the host_index
1464
+ in the spec for a single request.
1465
+ :type _host_index: int, optional
1466
+ :return: Returns the result object.
1467
+ """ # noqa: E501
1468
+
1469
+ _param = self._get_rule_v1_serialize(
1470
+ rule_id=rule_id,
1471
+ tenant_id=tenant_id,
1472
+ pool_id=pool_id,
1473
+ _request_auth=_request_auth,
1474
+ _content_type=_content_type,
1475
+ _headers=_headers,
1476
+ _host_index=_host_index
1477
+ )
1478
+
1479
+ _response_types_map: Dict[str, Optional[str]] = {
1480
+ '200': "AutoTopupRuleResponse",
1481
+ '422': "HTTPValidationError",
1482
+ }
1483
+ response_data = self.api_client.call_api(
1484
+ *_param,
1485
+ _request_timeout=_request_timeout
1486
+ )
1487
+ return response_data.response
1488
+
1489
+
1490
+ def _get_rule_v1_serialize(
1491
+ self,
1492
+ rule_id,
1493
+ tenant_id,
1494
+ pool_id,
1495
+ _request_auth,
1496
+ _content_type,
1497
+ _headers,
1498
+ _host_index,
1499
+ ) -> RequestSerialized:
1500
+
1501
+ _host = None
1502
+
1503
+ _collection_formats: Dict[str, str] = {
1504
+ }
1505
+
1506
+ _path_params: Dict[str, str] = {}
1507
+ _query_params: List[Tuple[str, str]] = []
1508
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1509
+ _form_params: List[Tuple[str, str]] = []
1510
+ _files: Dict[
1511
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1512
+ ] = {}
1513
+ _body_params: Optional[bytes] = None
1514
+
1515
+ # process the path parameters
1516
+ if rule_id is not None:
1517
+ _path_params['rule_id'] = rule_id
1518
+ # process the query parameters
1519
+ if tenant_id is not None:
1520
+
1521
+ _query_params.append(('tenant_id', tenant_id))
1522
+
1523
+ if pool_id is not None:
1524
+
1525
+ _query_params.append(('pool_id', pool_id))
1526
+
1527
+ # process the header parameters
1528
+ # process the form parameters
1529
+ # process the body parameter
1530
+
1531
+
1532
+ # set the HTTP header `Accept`
1533
+ if 'Accept' not in _header_params:
1534
+ _header_params['Accept'] = self.api_client.select_header_accept(
1535
+ [
1536
+ 'application/json'
1537
+ ]
1538
+ )
1539
+
1540
+
1541
+ # authentication setting
1542
+ _auth_settings: List[str] = [
1543
+ ]
1544
+
1545
+ return self.api_client.param_serialize(
1546
+ method='GET',
1547
+ resource_path='/v1/auto-topup/rules/{rule_id}',
1548
+ path_params=_path_params,
1549
+ query_params=_query_params,
1550
+ header_params=_header_params,
1551
+ body=_body_params,
1552
+ post_params=_form_params,
1553
+ files=_files,
1554
+ auth_settings=_auth_settings,
1555
+ collection_formats=_collection_formats,
1556
+ _host=_host,
1557
+ _request_auth=_request_auth
1558
+ )
1559
+
1560
+
1561
+
1562
+
1563
+ @validate_call
1564
+ def list_rules_v1(
1565
+ self,
1566
+ tenant_id: Annotated[StrictStr, Field(description="Tenant identifier")],
1567
+ pool_id: Annotated[StrictStr, Field(description="Pool identifier")],
1568
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier to filter by")] = None,
1569
+ _request_timeout: Union[
1570
+ None,
1571
+ Annotated[StrictFloat, Field(gt=0)],
1572
+ Tuple[
1573
+ Annotated[StrictFloat, Field(gt=0)],
1574
+ Annotated[StrictFloat, Field(gt=0)]
1575
+ ]
1576
+ ] = None,
1577
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1578
+ _content_type: Optional[StrictStr] = None,
1579
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1580
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1581
+ ) -> ListAutoTopupRulesResponse:
1582
+ """List Rules
1583
+
1584
+ List auto top-up rules. Returns all rules for a tenant/pool, optionally filtered by wallet_id.
1585
+
1586
+ :param tenant_id: Tenant identifier (required)
1587
+ :type tenant_id: str
1588
+ :param pool_id: Pool identifier (required)
1589
+ :type pool_id: str
1590
+ :param wallet_id: Optional wallet identifier to filter by
1591
+ :type wallet_id: str
1592
+ :param _request_timeout: timeout setting for this request. If one
1593
+ number provided, it will be total request
1594
+ timeout. It can also be a pair (tuple) of
1595
+ (connection, read) timeouts.
1596
+ :type _request_timeout: int, tuple(int, int), optional
1597
+ :param _request_auth: set to override the auth_settings for an a single
1598
+ request; this effectively ignores the
1599
+ authentication in the spec for a single request.
1600
+ :type _request_auth: dict, optional
1601
+ :param _content_type: force content-type for the request.
1602
+ :type _content_type: str, Optional
1603
+ :param _headers: set to override the headers for a single
1604
+ request; this effectively ignores the headers
1605
+ in the spec for a single request.
1606
+ :type _headers: dict, optional
1607
+ :param _host_index: set to override the host_index for a single
1608
+ request; this effectively ignores the host_index
1609
+ in the spec for a single request.
1610
+ :type _host_index: int, optional
1611
+ :return: Returns the result object.
1612
+ """ # noqa: E501
1613
+
1614
+ _param = self._list_rules_v1_serialize(
1615
+ tenant_id=tenant_id,
1616
+ pool_id=pool_id,
1617
+ wallet_id=wallet_id,
1618
+ _request_auth=_request_auth,
1619
+ _content_type=_content_type,
1620
+ _headers=_headers,
1621
+ _host_index=_host_index
1622
+ )
1623
+
1624
+ _response_types_map: Dict[str, Optional[str]] = {
1625
+ '200': "ListAutoTopupRulesResponse",
1626
+ '422': "HTTPValidationError",
1627
+ }
1628
+ response_data = self.api_client.call_api(
1629
+ *_param,
1630
+ _request_timeout=_request_timeout
1631
+ )
1632
+ response_data.read()
1633
+ return self.api_client.response_deserialize(
1634
+ response_data=response_data,
1635
+ response_types_map=_response_types_map,
1636
+ ).data
1637
+
1638
+
1639
+ @validate_call
1640
+ def list_rules_v1_with_http_info(
1641
+ self,
1642
+ tenant_id: Annotated[StrictStr, Field(description="Tenant identifier")],
1643
+ pool_id: Annotated[StrictStr, Field(description="Pool identifier")],
1644
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier to filter by")] = None,
1645
+ _request_timeout: Union[
1646
+ None,
1647
+ Annotated[StrictFloat, Field(gt=0)],
1648
+ Tuple[
1649
+ Annotated[StrictFloat, Field(gt=0)],
1650
+ Annotated[StrictFloat, Field(gt=0)]
1651
+ ]
1652
+ ] = None,
1653
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1654
+ _content_type: Optional[StrictStr] = None,
1655
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1656
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1657
+ ) -> ApiResponse[ListAutoTopupRulesResponse]:
1658
+ """List Rules
1659
+
1660
+ List auto top-up rules. Returns all rules for a tenant/pool, optionally filtered by wallet_id.
1661
+
1662
+ :param tenant_id: Tenant identifier (required)
1663
+ :type tenant_id: str
1664
+ :param pool_id: Pool identifier (required)
1665
+ :type pool_id: str
1666
+ :param wallet_id: Optional wallet identifier to filter by
1667
+ :type wallet_id: str
1668
+ :param _request_timeout: timeout setting for this request. If one
1669
+ number provided, it will be total request
1670
+ timeout. It can also be a pair (tuple) of
1671
+ (connection, read) timeouts.
1672
+ :type _request_timeout: int, tuple(int, int), optional
1673
+ :param _request_auth: set to override the auth_settings for an a single
1674
+ request; this effectively ignores the
1675
+ authentication in the spec for a single request.
1676
+ :type _request_auth: dict, optional
1677
+ :param _content_type: force content-type for the request.
1678
+ :type _content_type: str, Optional
1679
+ :param _headers: set to override the headers for a single
1680
+ request; this effectively ignores the headers
1681
+ in the spec for a single request.
1682
+ :type _headers: dict, optional
1683
+ :param _host_index: set to override the host_index for a single
1684
+ request; this effectively ignores the host_index
1685
+ in the spec for a single request.
1686
+ :type _host_index: int, optional
1687
+ :return: Returns the result object.
1688
+ """ # noqa: E501
1689
+
1690
+ _param = self._list_rules_v1_serialize(
1691
+ tenant_id=tenant_id,
1692
+ pool_id=pool_id,
1693
+ wallet_id=wallet_id,
1694
+ _request_auth=_request_auth,
1695
+ _content_type=_content_type,
1696
+ _headers=_headers,
1697
+ _host_index=_host_index
1698
+ )
1699
+
1700
+ _response_types_map: Dict[str, Optional[str]] = {
1701
+ '200': "ListAutoTopupRulesResponse",
1702
+ '422': "HTTPValidationError",
1703
+ }
1704
+ response_data = self.api_client.call_api(
1705
+ *_param,
1706
+ _request_timeout=_request_timeout
1707
+ )
1708
+ response_data.read()
1709
+ return self.api_client.response_deserialize(
1710
+ response_data=response_data,
1711
+ response_types_map=_response_types_map,
1712
+ )
1713
+
1714
+
1715
+ @validate_call
1716
+ def list_rules_v1_without_preload_content(
1717
+ self,
1718
+ tenant_id: Annotated[StrictStr, Field(description="Tenant identifier")],
1719
+ pool_id: Annotated[StrictStr, Field(description="Pool identifier")],
1720
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier to filter by")] = None,
1721
+ _request_timeout: Union[
1722
+ None,
1723
+ Annotated[StrictFloat, Field(gt=0)],
1724
+ Tuple[
1725
+ Annotated[StrictFloat, Field(gt=0)],
1726
+ Annotated[StrictFloat, Field(gt=0)]
1727
+ ]
1728
+ ] = None,
1729
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1730
+ _content_type: Optional[StrictStr] = None,
1731
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1732
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1733
+ ) -> RESTResponseType:
1734
+ """List Rules
1735
+
1736
+ List auto top-up rules. Returns all rules for a tenant/pool, optionally filtered by wallet_id.
1737
+
1738
+ :param tenant_id: Tenant identifier (required)
1739
+ :type tenant_id: str
1740
+ :param pool_id: Pool identifier (required)
1741
+ :type pool_id: str
1742
+ :param wallet_id: Optional wallet identifier to filter by
1743
+ :type wallet_id: str
1744
+ :param _request_timeout: timeout setting for this request. If one
1745
+ number provided, it will be total request
1746
+ timeout. It can also be a pair (tuple) of
1747
+ (connection, read) timeouts.
1748
+ :type _request_timeout: int, tuple(int, int), optional
1749
+ :param _request_auth: set to override the auth_settings for an a single
1750
+ request; this effectively ignores the
1751
+ authentication in the spec for a single request.
1752
+ :type _request_auth: dict, optional
1753
+ :param _content_type: force content-type for the request.
1754
+ :type _content_type: str, Optional
1755
+ :param _headers: set to override the headers for a single
1756
+ request; this effectively ignores the headers
1757
+ in the spec for a single request.
1758
+ :type _headers: dict, optional
1759
+ :param _host_index: set to override the host_index for a single
1760
+ request; this effectively ignores the host_index
1761
+ in the spec for a single request.
1762
+ :type _host_index: int, optional
1763
+ :return: Returns the result object.
1764
+ """ # noqa: E501
1765
+
1766
+ _param = self._list_rules_v1_serialize(
1767
+ tenant_id=tenant_id,
1768
+ pool_id=pool_id,
1769
+ wallet_id=wallet_id,
1770
+ _request_auth=_request_auth,
1771
+ _content_type=_content_type,
1772
+ _headers=_headers,
1773
+ _host_index=_host_index
1774
+ )
1775
+
1776
+ _response_types_map: Dict[str, Optional[str]] = {
1777
+ '200': "ListAutoTopupRulesResponse",
1778
+ '422': "HTTPValidationError",
1779
+ }
1780
+ response_data = self.api_client.call_api(
1781
+ *_param,
1782
+ _request_timeout=_request_timeout
1783
+ )
1784
+ return response_data.response
1785
+
1786
+
1787
+ def _list_rules_v1_serialize(
1788
+ self,
1789
+ tenant_id,
1790
+ pool_id,
1791
+ wallet_id,
1792
+ _request_auth,
1793
+ _content_type,
1794
+ _headers,
1795
+ _host_index,
1796
+ ) -> RequestSerialized:
1797
+
1798
+ _host = None
1799
+
1800
+ _collection_formats: Dict[str, str] = {
1801
+ }
1802
+
1803
+ _path_params: Dict[str, str] = {}
1804
+ _query_params: List[Tuple[str, str]] = []
1805
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1806
+ _form_params: List[Tuple[str, str]] = []
1807
+ _files: Dict[
1808
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1809
+ ] = {}
1810
+ _body_params: Optional[bytes] = None
1811
+
1812
+ # process the path parameters
1813
+ # process the query parameters
1814
+ if tenant_id is not None:
1815
+
1816
+ _query_params.append(('tenant_id', tenant_id))
1817
+
1818
+ if pool_id is not None:
1819
+
1820
+ _query_params.append(('pool_id', pool_id))
1821
+
1822
+ if wallet_id is not None:
1823
+
1824
+ _query_params.append(('wallet_id', wallet_id))
1825
+
1826
+ # process the header parameters
1827
+ # process the form parameters
1828
+ # process the body parameter
1829
+
1830
+
1831
+ # set the HTTP header `Accept`
1832
+ if 'Accept' not in _header_params:
1833
+ _header_params['Accept'] = self.api_client.select_header_accept(
1834
+ [
1835
+ 'application/json'
1836
+ ]
1837
+ )
1838
+
1839
+
1840
+ # authentication setting
1841
+ _auth_settings: List[str] = [
1842
+ ]
1843
+
1844
+ return self.api_client.param_serialize(
1845
+ method='GET',
1846
+ resource_path='/v1/auto-topup/rules',
1847
+ path_params=_path_params,
1848
+ query_params=_query_params,
1849
+ header_params=_header_params,
1850
+ body=_body_params,
1851
+ post_params=_form_params,
1852
+ files=_files,
1853
+ auth_settings=_auth_settings,
1854
+ collection_formats=_collection_formats,
1855
+ _host=_host,
1856
+ _request_auth=_request_auth
1857
+ )
1858
+
1859
+
1860
+
1861
+
1862
+ @validate_call
1863
+ def patch_rule_v1(
1864
+ self,
1865
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
1866
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
1867
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
1868
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
1869
+ update_auto_topup_rule_request: Optional[UpdateAutoTopupRuleRequest] = None,
1870
+ _request_timeout: Union[
1871
+ None,
1872
+ Annotated[StrictFloat, Field(gt=0)],
1873
+ Tuple[
1874
+ Annotated[StrictFloat, Field(gt=0)],
1875
+ Annotated[StrictFloat, Field(gt=0)]
1876
+ ]
1877
+ ] = None,
1878
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1879
+ _content_type: Optional[StrictStr] = None,
1880
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1881
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1882
+ ) -> AutoTopupRuleResponse:
1883
+ """Patch Rule
1884
+
1885
+ Partially update an auto top-up rule (e.g., enable/disable). This is an alias for PUT - updates the specified fields.
1886
+
1887
+ :param rule_id: Auto top-up rule ID (required)
1888
+ :type rule_id: str
1889
+ :param tenant_id: Optional tenant identifier for validation
1890
+ :type tenant_id: str
1891
+ :param pool_id: Optional pool identifier for validation
1892
+ :type pool_id: str
1893
+ :param wallet_id: Optional wallet identifier for validation
1894
+ :type wallet_id: str
1895
+ :param update_auto_topup_rule_request:
1896
+ :type update_auto_topup_rule_request: UpdateAutoTopupRuleRequest
1897
+ :param _request_timeout: timeout setting for this request. If one
1898
+ number provided, it will be total request
1899
+ timeout. It can also be a pair (tuple) of
1900
+ (connection, read) timeouts.
1901
+ :type _request_timeout: int, tuple(int, int), optional
1902
+ :param _request_auth: set to override the auth_settings for an a single
1903
+ request; this effectively ignores the
1904
+ authentication in the spec for a single request.
1905
+ :type _request_auth: dict, optional
1906
+ :param _content_type: force content-type for the request.
1907
+ :type _content_type: str, Optional
1908
+ :param _headers: set to override the headers for a single
1909
+ request; this effectively ignores the headers
1910
+ in the spec for a single request.
1911
+ :type _headers: dict, optional
1912
+ :param _host_index: set to override the host_index for a single
1913
+ request; this effectively ignores the host_index
1914
+ in the spec for a single request.
1915
+ :type _host_index: int, optional
1916
+ :return: Returns the result object.
1917
+ """ # noqa: E501
1918
+
1919
+ _param = self._patch_rule_v1_serialize(
1920
+ rule_id=rule_id,
1921
+ tenant_id=tenant_id,
1922
+ pool_id=pool_id,
1923
+ wallet_id=wallet_id,
1924
+ update_auto_topup_rule_request=update_auto_topup_rule_request,
1925
+ _request_auth=_request_auth,
1926
+ _content_type=_content_type,
1927
+ _headers=_headers,
1928
+ _host_index=_host_index
1929
+ )
1930
+
1931
+ _response_types_map: Dict[str, Optional[str]] = {
1932
+ '200': "AutoTopupRuleResponse",
1933
+ '422': "HTTPValidationError",
1934
+ }
1935
+ response_data = self.api_client.call_api(
1936
+ *_param,
1937
+ _request_timeout=_request_timeout
1938
+ )
1939
+ response_data.read()
1940
+ return self.api_client.response_deserialize(
1941
+ response_data=response_data,
1942
+ response_types_map=_response_types_map,
1943
+ ).data
1944
+
1945
+
1946
+ @validate_call
1947
+ def patch_rule_v1_with_http_info(
1948
+ self,
1949
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
1950
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
1951
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
1952
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
1953
+ update_auto_topup_rule_request: Optional[UpdateAutoTopupRuleRequest] = None,
1954
+ _request_timeout: Union[
1955
+ None,
1956
+ Annotated[StrictFloat, Field(gt=0)],
1957
+ Tuple[
1958
+ Annotated[StrictFloat, Field(gt=0)],
1959
+ Annotated[StrictFloat, Field(gt=0)]
1960
+ ]
1961
+ ] = None,
1962
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1963
+ _content_type: Optional[StrictStr] = None,
1964
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1965
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1966
+ ) -> ApiResponse[AutoTopupRuleResponse]:
1967
+ """Patch Rule
1968
+
1969
+ Partially update an auto top-up rule (e.g., enable/disable). This is an alias for PUT - updates the specified fields.
1970
+
1971
+ :param rule_id: Auto top-up rule ID (required)
1972
+ :type rule_id: str
1973
+ :param tenant_id: Optional tenant identifier for validation
1974
+ :type tenant_id: str
1975
+ :param pool_id: Optional pool identifier for validation
1976
+ :type pool_id: str
1977
+ :param wallet_id: Optional wallet identifier for validation
1978
+ :type wallet_id: str
1979
+ :param update_auto_topup_rule_request:
1980
+ :type update_auto_topup_rule_request: UpdateAutoTopupRuleRequest
1981
+ :param _request_timeout: timeout setting for this request. If one
1982
+ number provided, it will be total request
1983
+ timeout. It can also be a pair (tuple) of
1984
+ (connection, read) timeouts.
1985
+ :type _request_timeout: int, tuple(int, int), optional
1986
+ :param _request_auth: set to override the auth_settings for an a single
1987
+ request; this effectively ignores the
1988
+ authentication in the spec for a single request.
1989
+ :type _request_auth: dict, optional
1990
+ :param _content_type: force content-type for the request.
1991
+ :type _content_type: str, Optional
1992
+ :param _headers: set to override the headers for a single
1993
+ request; this effectively ignores the headers
1994
+ in the spec for a single request.
1995
+ :type _headers: dict, optional
1996
+ :param _host_index: set to override the host_index for a single
1997
+ request; this effectively ignores the host_index
1998
+ in the spec for a single request.
1999
+ :type _host_index: int, optional
2000
+ :return: Returns the result object.
2001
+ """ # noqa: E501
2002
+
2003
+ _param = self._patch_rule_v1_serialize(
2004
+ rule_id=rule_id,
2005
+ tenant_id=tenant_id,
2006
+ pool_id=pool_id,
2007
+ wallet_id=wallet_id,
2008
+ update_auto_topup_rule_request=update_auto_topup_rule_request,
2009
+ _request_auth=_request_auth,
2010
+ _content_type=_content_type,
2011
+ _headers=_headers,
2012
+ _host_index=_host_index
2013
+ )
2014
+
2015
+ _response_types_map: Dict[str, Optional[str]] = {
2016
+ '200': "AutoTopupRuleResponse",
2017
+ '422': "HTTPValidationError",
2018
+ }
2019
+ response_data = self.api_client.call_api(
2020
+ *_param,
2021
+ _request_timeout=_request_timeout
2022
+ )
2023
+ response_data.read()
2024
+ return self.api_client.response_deserialize(
2025
+ response_data=response_data,
2026
+ response_types_map=_response_types_map,
2027
+ )
2028
+
2029
+
2030
+ @validate_call
2031
+ def patch_rule_v1_without_preload_content(
2032
+ self,
2033
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
2034
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
2035
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
2036
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
2037
+ update_auto_topup_rule_request: Optional[UpdateAutoTopupRuleRequest] = None,
2038
+ _request_timeout: Union[
2039
+ None,
2040
+ Annotated[StrictFloat, Field(gt=0)],
2041
+ Tuple[
2042
+ Annotated[StrictFloat, Field(gt=0)],
2043
+ Annotated[StrictFloat, Field(gt=0)]
2044
+ ]
2045
+ ] = None,
2046
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2047
+ _content_type: Optional[StrictStr] = None,
2048
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2049
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2050
+ ) -> RESTResponseType:
2051
+ """Patch Rule
2052
+
2053
+ Partially update an auto top-up rule (e.g., enable/disable). This is an alias for PUT - updates the specified fields.
2054
+
2055
+ :param rule_id: Auto top-up rule ID (required)
2056
+ :type rule_id: str
2057
+ :param tenant_id: Optional tenant identifier for validation
2058
+ :type tenant_id: str
2059
+ :param pool_id: Optional pool identifier for validation
2060
+ :type pool_id: str
2061
+ :param wallet_id: Optional wallet identifier for validation
2062
+ :type wallet_id: str
2063
+ :param update_auto_topup_rule_request:
2064
+ :type update_auto_topup_rule_request: UpdateAutoTopupRuleRequest
2065
+ :param _request_timeout: timeout setting for this request. If one
2066
+ number provided, it will be total request
2067
+ timeout. It can also be a pair (tuple) of
2068
+ (connection, read) timeouts.
2069
+ :type _request_timeout: int, tuple(int, int), optional
2070
+ :param _request_auth: set to override the auth_settings for an a single
2071
+ request; this effectively ignores the
2072
+ authentication in the spec for a single request.
2073
+ :type _request_auth: dict, optional
2074
+ :param _content_type: force content-type for the request.
2075
+ :type _content_type: str, Optional
2076
+ :param _headers: set to override the headers for a single
2077
+ request; this effectively ignores the headers
2078
+ in the spec for a single request.
2079
+ :type _headers: dict, optional
2080
+ :param _host_index: set to override the host_index for a single
2081
+ request; this effectively ignores the host_index
2082
+ in the spec for a single request.
2083
+ :type _host_index: int, optional
2084
+ :return: Returns the result object.
2085
+ """ # noqa: E501
2086
+
2087
+ _param = self._patch_rule_v1_serialize(
2088
+ rule_id=rule_id,
2089
+ tenant_id=tenant_id,
2090
+ pool_id=pool_id,
2091
+ wallet_id=wallet_id,
2092
+ update_auto_topup_rule_request=update_auto_topup_rule_request,
2093
+ _request_auth=_request_auth,
2094
+ _content_type=_content_type,
2095
+ _headers=_headers,
2096
+ _host_index=_host_index
2097
+ )
2098
+
2099
+ _response_types_map: Dict[str, Optional[str]] = {
2100
+ '200': "AutoTopupRuleResponse",
2101
+ '422': "HTTPValidationError",
2102
+ }
2103
+ response_data = self.api_client.call_api(
2104
+ *_param,
2105
+ _request_timeout=_request_timeout
2106
+ )
2107
+ return response_data.response
2108
+
2109
+
2110
+ def _patch_rule_v1_serialize(
2111
+ self,
2112
+ rule_id,
2113
+ tenant_id,
2114
+ pool_id,
2115
+ wallet_id,
2116
+ update_auto_topup_rule_request,
2117
+ _request_auth,
2118
+ _content_type,
2119
+ _headers,
2120
+ _host_index,
2121
+ ) -> RequestSerialized:
2122
+
2123
+ _host = None
2124
+
2125
+ _collection_formats: Dict[str, str] = {
2126
+ }
2127
+
2128
+ _path_params: Dict[str, str] = {}
2129
+ _query_params: List[Tuple[str, str]] = []
2130
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2131
+ _form_params: List[Tuple[str, str]] = []
2132
+ _files: Dict[
2133
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2134
+ ] = {}
2135
+ _body_params: Optional[bytes] = None
2136
+
2137
+ # process the path parameters
2138
+ if rule_id is not None:
2139
+ _path_params['rule_id'] = rule_id
2140
+ # process the query parameters
2141
+ if tenant_id is not None:
2142
+
2143
+ _query_params.append(('tenant_id', tenant_id))
2144
+
2145
+ if pool_id is not None:
2146
+
2147
+ _query_params.append(('pool_id', pool_id))
2148
+
2149
+ if wallet_id is not None:
2150
+
2151
+ _query_params.append(('wallet_id', wallet_id))
2152
+
2153
+ # process the header parameters
2154
+ # process the form parameters
2155
+ # process the body parameter
2156
+ if update_auto_topup_rule_request is not None:
2157
+ _body_params = update_auto_topup_rule_request
2158
+
2159
+
2160
+ # set the HTTP header `Accept`
2161
+ if 'Accept' not in _header_params:
2162
+ _header_params['Accept'] = self.api_client.select_header_accept(
2163
+ [
2164
+ 'application/json'
2165
+ ]
2166
+ )
2167
+
2168
+ # set the HTTP header `Content-Type`
2169
+ if _content_type:
2170
+ _header_params['Content-Type'] = _content_type
2171
+ else:
2172
+ _default_content_type = (
2173
+ self.api_client.select_header_content_type(
2174
+ [
2175
+ 'application/json'
2176
+ ]
2177
+ )
2178
+ )
2179
+ if _default_content_type is not None:
2180
+ _header_params['Content-Type'] = _default_content_type
2181
+
2182
+ # authentication setting
2183
+ _auth_settings: List[str] = [
2184
+ ]
2185
+
2186
+ return self.api_client.param_serialize(
2187
+ method='PATCH',
2188
+ resource_path='/v1/auto-topup/rules/{rule_id}',
2189
+ path_params=_path_params,
2190
+ query_params=_query_params,
2191
+ header_params=_header_params,
2192
+ body=_body_params,
2193
+ post_params=_form_params,
2194
+ files=_files,
2195
+ auth_settings=_auth_settings,
2196
+ collection_formats=_collection_formats,
2197
+ _host=_host,
2198
+ _request_auth=_request_auth
2199
+ )
2200
+
2201
+
2202
+
2203
+
2204
+ @validate_call
2205
+ def payment_failed_v1(
2206
+ self,
2207
+ payment_failed_request: PaymentFailedRequest,
2208
+ _request_timeout: Union[
2209
+ None,
2210
+ Annotated[StrictFloat, Field(gt=0)],
2211
+ Tuple[
2212
+ Annotated[StrictFloat, Field(gt=0)],
2213
+ Annotated[StrictFloat, Field(gt=0)]
2214
+ ]
2215
+ ] = None,
2216
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2217
+ _content_type: Optional[StrictStr] = None,
2218
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2219
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2220
+ ) -> PaymentFailedResponse:
2221
+ """Payment Failed
2222
+
2223
+ Handle payment failed callback. This endpoint: - Emits AUTO_TOPUP_FAILED outbox event (idempotent) - Dispatches topup-failed email via centralized template renderer
2224
+
2225
+ :param payment_failed_request: (required)
2226
+ :type payment_failed_request: PaymentFailedRequest
2227
+ :param _request_timeout: timeout setting for this request. If one
2228
+ number provided, it will be total request
2229
+ timeout. It can also be a pair (tuple) of
2230
+ (connection, read) timeouts.
2231
+ :type _request_timeout: int, tuple(int, int), optional
2232
+ :param _request_auth: set to override the auth_settings for an a single
2233
+ request; this effectively ignores the
2234
+ authentication in the spec for a single request.
2235
+ :type _request_auth: dict, optional
2236
+ :param _content_type: force content-type for the request.
2237
+ :type _content_type: str, Optional
2238
+ :param _headers: set to override the headers for a single
2239
+ request; this effectively ignores the headers
2240
+ in the spec for a single request.
2241
+ :type _headers: dict, optional
2242
+ :param _host_index: set to override the host_index for a single
2243
+ request; this effectively ignores the host_index
2244
+ in the spec for a single request.
2245
+ :type _host_index: int, optional
2246
+ :return: Returns the result object.
2247
+ """ # noqa: E501
2248
+
2249
+ _param = self._payment_failed_v1_serialize(
2250
+ payment_failed_request=payment_failed_request,
2251
+ _request_auth=_request_auth,
2252
+ _content_type=_content_type,
2253
+ _headers=_headers,
2254
+ _host_index=_host_index
2255
+ )
2256
+
2257
+ _response_types_map: Dict[str, Optional[str]] = {
2258
+ '200': "PaymentFailedResponse",
2259
+ '422': "HTTPValidationError",
2260
+ }
2261
+ response_data = self.api_client.call_api(
2262
+ *_param,
2263
+ _request_timeout=_request_timeout
2264
+ )
2265
+ response_data.read()
2266
+ return self.api_client.response_deserialize(
2267
+ response_data=response_data,
2268
+ response_types_map=_response_types_map,
2269
+ ).data
2270
+
2271
+
2272
+ @validate_call
2273
+ def payment_failed_v1_with_http_info(
2274
+ self,
2275
+ payment_failed_request: PaymentFailedRequest,
2276
+ _request_timeout: Union[
2277
+ None,
2278
+ Annotated[StrictFloat, Field(gt=0)],
2279
+ Tuple[
2280
+ Annotated[StrictFloat, Field(gt=0)],
2281
+ Annotated[StrictFloat, Field(gt=0)]
2282
+ ]
2283
+ ] = None,
2284
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2285
+ _content_type: Optional[StrictStr] = None,
2286
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2287
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2288
+ ) -> ApiResponse[PaymentFailedResponse]:
2289
+ """Payment Failed
2290
+
2291
+ Handle payment failed callback. This endpoint: - Emits AUTO_TOPUP_FAILED outbox event (idempotent) - Dispatches topup-failed email via centralized template renderer
2292
+
2293
+ :param payment_failed_request: (required)
2294
+ :type payment_failed_request: PaymentFailedRequest
2295
+ :param _request_timeout: timeout setting for this request. If one
2296
+ number provided, it will be total request
2297
+ timeout. It can also be a pair (tuple) of
2298
+ (connection, read) timeouts.
2299
+ :type _request_timeout: int, tuple(int, int), optional
2300
+ :param _request_auth: set to override the auth_settings for an a single
2301
+ request; this effectively ignores the
2302
+ authentication in the spec for a single request.
2303
+ :type _request_auth: dict, optional
2304
+ :param _content_type: force content-type for the request.
2305
+ :type _content_type: str, Optional
2306
+ :param _headers: set to override the headers for a single
2307
+ request; this effectively ignores the headers
2308
+ in the spec for a single request.
2309
+ :type _headers: dict, optional
2310
+ :param _host_index: set to override the host_index for a single
2311
+ request; this effectively ignores the host_index
2312
+ in the spec for a single request.
2313
+ :type _host_index: int, optional
2314
+ :return: Returns the result object.
2315
+ """ # noqa: E501
2316
+
2317
+ _param = self._payment_failed_v1_serialize(
2318
+ payment_failed_request=payment_failed_request,
2319
+ _request_auth=_request_auth,
2320
+ _content_type=_content_type,
2321
+ _headers=_headers,
2322
+ _host_index=_host_index
2323
+ )
2324
+
2325
+ _response_types_map: Dict[str, Optional[str]] = {
2326
+ '200': "PaymentFailedResponse",
2327
+ '422': "HTTPValidationError",
2328
+ }
2329
+ response_data = self.api_client.call_api(
2330
+ *_param,
2331
+ _request_timeout=_request_timeout
2332
+ )
2333
+ response_data.read()
2334
+ return self.api_client.response_deserialize(
2335
+ response_data=response_data,
2336
+ response_types_map=_response_types_map,
2337
+ )
2338
+
2339
+
2340
+ @validate_call
2341
+ def payment_failed_v1_without_preload_content(
2342
+ self,
2343
+ payment_failed_request: PaymentFailedRequest,
2344
+ _request_timeout: Union[
2345
+ None,
2346
+ Annotated[StrictFloat, Field(gt=0)],
2347
+ Tuple[
2348
+ Annotated[StrictFloat, Field(gt=0)],
2349
+ Annotated[StrictFloat, Field(gt=0)]
2350
+ ]
2351
+ ] = None,
2352
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2353
+ _content_type: Optional[StrictStr] = None,
2354
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2355
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2356
+ ) -> RESTResponseType:
2357
+ """Payment Failed
2358
+
2359
+ Handle payment failed callback. This endpoint: - Emits AUTO_TOPUP_FAILED outbox event (idempotent) - Dispatches topup-failed email via centralized template renderer
2360
+
2361
+ :param payment_failed_request: (required)
2362
+ :type payment_failed_request: PaymentFailedRequest
2363
+ :param _request_timeout: timeout setting for this request. If one
2364
+ number provided, it will be total request
2365
+ timeout. It can also be a pair (tuple) of
2366
+ (connection, read) timeouts.
2367
+ :type _request_timeout: int, tuple(int, int), optional
2368
+ :param _request_auth: set to override the auth_settings for an a single
2369
+ request; this effectively ignores the
2370
+ authentication in the spec for a single request.
2371
+ :type _request_auth: dict, optional
2372
+ :param _content_type: force content-type for the request.
2373
+ :type _content_type: str, Optional
2374
+ :param _headers: set to override the headers for a single
2375
+ request; this effectively ignores the headers
2376
+ in the spec for a single request.
2377
+ :type _headers: dict, optional
2378
+ :param _host_index: set to override the host_index for a single
2379
+ request; this effectively ignores the host_index
2380
+ in the spec for a single request.
2381
+ :type _host_index: int, optional
2382
+ :return: Returns the result object.
2383
+ """ # noqa: E501
2384
+
2385
+ _param = self._payment_failed_v1_serialize(
2386
+ payment_failed_request=payment_failed_request,
2387
+ _request_auth=_request_auth,
2388
+ _content_type=_content_type,
2389
+ _headers=_headers,
2390
+ _host_index=_host_index
2391
+ )
2392
+
2393
+ _response_types_map: Dict[str, Optional[str]] = {
2394
+ '200': "PaymentFailedResponse",
2395
+ '422': "HTTPValidationError",
2396
+ }
2397
+ response_data = self.api_client.call_api(
2398
+ *_param,
2399
+ _request_timeout=_request_timeout
2400
+ )
2401
+ return response_data.response
2402
+
2403
+
2404
+ def _payment_failed_v1_serialize(
2405
+ self,
2406
+ payment_failed_request,
2407
+ _request_auth,
2408
+ _content_type,
2409
+ _headers,
2410
+ _host_index,
2411
+ ) -> RequestSerialized:
2412
+
2413
+ _host = None
2414
+
2415
+ _collection_formats: Dict[str, str] = {
2416
+ }
2417
+
2418
+ _path_params: Dict[str, str] = {}
2419
+ _query_params: List[Tuple[str, str]] = []
2420
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2421
+ _form_params: List[Tuple[str, str]] = []
2422
+ _files: Dict[
2423
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2424
+ ] = {}
2425
+ _body_params: Optional[bytes] = None
2426
+
2427
+ # process the path parameters
2428
+ # process the query parameters
2429
+ # process the header parameters
2430
+ # process the form parameters
2431
+ # process the body parameter
2432
+ if payment_failed_request is not None:
2433
+ _body_params = payment_failed_request
2434
+
2435
+
2436
+ # set the HTTP header `Accept`
2437
+ if 'Accept' not in _header_params:
2438
+ _header_params['Accept'] = self.api_client.select_header_accept(
2439
+ [
2440
+ 'application/json'
2441
+ ]
2442
+ )
2443
+
2444
+ # set the HTTP header `Content-Type`
2445
+ if _content_type:
2446
+ _header_params['Content-Type'] = _content_type
2447
+ else:
2448
+ _default_content_type = (
2449
+ self.api_client.select_header_content_type(
2450
+ [
2451
+ 'application/json'
2452
+ ]
2453
+ )
2454
+ )
2455
+ if _default_content_type is not None:
2456
+ _header_params['Content-Type'] = _default_content_type
2457
+
2458
+ # authentication setting
2459
+ _auth_settings: List[str] = [
2460
+ ]
2461
+
2462
+ return self.api_client.param_serialize(
2463
+ method='POST',
2464
+ resource_path='/v1/auto-topup/payments/failed',
2465
+ path_params=_path_params,
2466
+ query_params=_query_params,
2467
+ header_params=_header_params,
2468
+ body=_body_params,
2469
+ post_params=_form_params,
2470
+ files=_files,
2471
+ auth_settings=_auth_settings,
2472
+ collection_formats=_collection_formats,
2473
+ _host=_host,
2474
+ _request_auth=_request_auth
2475
+ )
2476
+
2477
+
2478
+
2479
+
2480
+ @validate_call
2481
+ def payment_succeeded_v1(
2482
+ self,
2483
+ payment_succeeded_request: PaymentSucceededRequest,
2484
+ _request_timeout: Union[
2485
+ None,
2486
+ Annotated[StrictFloat, Field(gt=0)],
2487
+ Tuple[
2488
+ Annotated[StrictFloat, Field(gt=0)],
2489
+ Annotated[StrictFloat, Field(gt=0)]
2490
+ ]
2491
+ ] = None,
2492
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2493
+ _content_type: Optional[StrictStr] = None,
2494
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2495
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2496
+ ) -> PaymentSucceededResponse:
2497
+ """Payment Succeeded
2498
+
2499
+ Handle payment succeeded callback. This endpoint: - Mints grant with FX locking (idempotent) - Creates CREDIT_MINT journal entry - Emits AUTO_TOPUP_SUCCEEDED outbox event
2500
+
2501
+ :param payment_succeeded_request: (required)
2502
+ :type payment_succeeded_request: PaymentSucceededRequest
2503
+ :param _request_timeout: timeout setting for this request. If one
2504
+ number provided, it will be total request
2505
+ timeout. It can also be a pair (tuple) of
2506
+ (connection, read) timeouts.
2507
+ :type _request_timeout: int, tuple(int, int), optional
2508
+ :param _request_auth: set to override the auth_settings for an a single
2509
+ request; this effectively ignores the
2510
+ authentication in the spec for a single request.
2511
+ :type _request_auth: dict, optional
2512
+ :param _content_type: force content-type for the request.
2513
+ :type _content_type: str, Optional
2514
+ :param _headers: set to override the headers for a single
2515
+ request; this effectively ignores the headers
2516
+ in the spec for a single request.
2517
+ :type _headers: dict, optional
2518
+ :param _host_index: set to override the host_index for a single
2519
+ request; this effectively ignores the host_index
2520
+ in the spec for a single request.
2521
+ :type _host_index: int, optional
2522
+ :return: Returns the result object.
2523
+ """ # noqa: E501
2524
+
2525
+ _param = self._payment_succeeded_v1_serialize(
2526
+ payment_succeeded_request=payment_succeeded_request,
2527
+ _request_auth=_request_auth,
2528
+ _content_type=_content_type,
2529
+ _headers=_headers,
2530
+ _host_index=_host_index
2531
+ )
2532
+
2533
+ _response_types_map: Dict[str, Optional[str]] = {
2534
+ '200': "PaymentSucceededResponse",
2535
+ '422': "HTTPValidationError",
2536
+ }
2537
+ response_data = self.api_client.call_api(
2538
+ *_param,
2539
+ _request_timeout=_request_timeout
2540
+ )
2541
+ response_data.read()
2542
+ return self.api_client.response_deserialize(
2543
+ response_data=response_data,
2544
+ response_types_map=_response_types_map,
2545
+ ).data
2546
+
2547
+
2548
+ @validate_call
2549
+ def payment_succeeded_v1_with_http_info(
2550
+ self,
2551
+ payment_succeeded_request: PaymentSucceededRequest,
2552
+ _request_timeout: Union[
2553
+ None,
2554
+ Annotated[StrictFloat, Field(gt=0)],
2555
+ Tuple[
2556
+ Annotated[StrictFloat, Field(gt=0)],
2557
+ Annotated[StrictFloat, Field(gt=0)]
2558
+ ]
2559
+ ] = None,
2560
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2561
+ _content_type: Optional[StrictStr] = None,
2562
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2563
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2564
+ ) -> ApiResponse[PaymentSucceededResponse]:
2565
+ """Payment Succeeded
2566
+
2567
+ Handle payment succeeded callback. This endpoint: - Mints grant with FX locking (idempotent) - Creates CREDIT_MINT journal entry - Emits AUTO_TOPUP_SUCCEEDED outbox event
2568
+
2569
+ :param payment_succeeded_request: (required)
2570
+ :type payment_succeeded_request: PaymentSucceededRequest
2571
+ :param _request_timeout: timeout setting for this request. If one
2572
+ number provided, it will be total request
2573
+ timeout. It can also be a pair (tuple) of
2574
+ (connection, read) timeouts.
2575
+ :type _request_timeout: int, tuple(int, int), optional
2576
+ :param _request_auth: set to override the auth_settings for an a single
2577
+ request; this effectively ignores the
2578
+ authentication in the spec for a single request.
2579
+ :type _request_auth: dict, optional
2580
+ :param _content_type: force content-type for the request.
2581
+ :type _content_type: str, Optional
2582
+ :param _headers: set to override the headers for a single
2583
+ request; this effectively ignores the headers
2584
+ in the spec for a single request.
2585
+ :type _headers: dict, optional
2586
+ :param _host_index: set to override the host_index for a single
2587
+ request; this effectively ignores the host_index
2588
+ in the spec for a single request.
2589
+ :type _host_index: int, optional
2590
+ :return: Returns the result object.
2591
+ """ # noqa: E501
2592
+
2593
+ _param = self._payment_succeeded_v1_serialize(
2594
+ payment_succeeded_request=payment_succeeded_request,
2595
+ _request_auth=_request_auth,
2596
+ _content_type=_content_type,
2597
+ _headers=_headers,
2598
+ _host_index=_host_index
2599
+ )
2600
+
2601
+ _response_types_map: Dict[str, Optional[str]] = {
2602
+ '200': "PaymentSucceededResponse",
2603
+ '422': "HTTPValidationError",
2604
+ }
2605
+ response_data = self.api_client.call_api(
2606
+ *_param,
2607
+ _request_timeout=_request_timeout
2608
+ )
2609
+ response_data.read()
2610
+ return self.api_client.response_deserialize(
2611
+ response_data=response_data,
2612
+ response_types_map=_response_types_map,
2613
+ )
2614
+
2615
+
2616
+ @validate_call
2617
+ def payment_succeeded_v1_without_preload_content(
2618
+ self,
2619
+ payment_succeeded_request: PaymentSucceededRequest,
2620
+ _request_timeout: Union[
2621
+ None,
2622
+ Annotated[StrictFloat, Field(gt=0)],
2623
+ Tuple[
2624
+ Annotated[StrictFloat, Field(gt=0)],
2625
+ Annotated[StrictFloat, Field(gt=0)]
2626
+ ]
2627
+ ] = None,
2628
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2629
+ _content_type: Optional[StrictStr] = None,
2630
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2631
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2632
+ ) -> RESTResponseType:
2633
+ """Payment Succeeded
2634
+
2635
+ Handle payment succeeded callback. This endpoint: - Mints grant with FX locking (idempotent) - Creates CREDIT_MINT journal entry - Emits AUTO_TOPUP_SUCCEEDED outbox event
2636
+
2637
+ :param payment_succeeded_request: (required)
2638
+ :type payment_succeeded_request: PaymentSucceededRequest
2639
+ :param _request_timeout: timeout setting for this request. If one
2640
+ number provided, it will be total request
2641
+ timeout. It can also be a pair (tuple) of
2642
+ (connection, read) timeouts.
2643
+ :type _request_timeout: int, tuple(int, int), optional
2644
+ :param _request_auth: set to override the auth_settings for an a single
2645
+ request; this effectively ignores the
2646
+ authentication in the spec for a single request.
2647
+ :type _request_auth: dict, optional
2648
+ :param _content_type: force content-type for the request.
2649
+ :type _content_type: str, Optional
2650
+ :param _headers: set to override the headers for a single
2651
+ request; this effectively ignores the headers
2652
+ in the spec for a single request.
2653
+ :type _headers: dict, optional
2654
+ :param _host_index: set to override the host_index for a single
2655
+ request; this effectively ignores the host_index
2656
+ in the spec for a single request.
2657
+ :type _host_index: int, optional
2658
+ :return: Returns the result object.
2659
+ """ # noqa: E501
2660
+
2661
+ _param = self._payment_succeeded_v1_serialize(
2662
+ payment_succeeded_request=payment_succeeded_request,
2663
+ _request_auth=_request_auth,
2664
+ _content_type=_content_type,
2665
+ _headers=_headers,
2666
+ _host_index=_host_index
2667
+ )
2668
+
2669
+ _response_types_map: Dict[str, Optional[str]] = {
2670
+ '200': "PaymentSucceededResponse",
2671
+ '422': "HTTPValidationError",
2672
+ }
2673
+ response_data = self.api_client.call_api(
2674
+ *_param,
2675
+ _request_timeout=_request_timeout
2676
+ )
2677
+ return response_data.response
2678
+
2679
+
2680
+ def _payment_succeeded_v1_serialize(
2681
+ self,
2682
+ payment_succeeded_request,
2683
+ _request_auth,
2684
+ _content_type,
2685
+ _headers,
2686
+ _host_index,
2687
+ ) -> RequestSerialized:
2688
+
2689
+ _host = None
2690
+
2691
+ _collection_formats: Dict[str, str] = {
2692
+ }
2693
+
2694
+ _path_params: Dict[str, str] = {}
2695
+ _query_params: List[Tuple[str, str]] = []
2696
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2697
+ _form_params: List[Tuple[str, str]] = []
2698
+ _files: Dict[
2699
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2700
+ ] = {}
2701
+ _body_params: Optional[bytes] = None
2702
+
2703
+ # process the path parameters
2704
+ # process the query parameters
2705
+ # process the header parameters
2706
+ # process the form parameters
2707
+ # process the body parameter
2708
+ if payment_succeeded_request is not None:
2709
+ _body_params = payment_succeeded_request
2710
+
2711
+
2712
+ # set the HTTP header `Accept`
2713
+ if 'Accept' not in _header_params:
2714
+ _header_params['Accept'] = self.api_client.select_header_accept(
2715
+ [
2716
+ 'application/json'
2717
+ ]
2718
+ )
2719
+
2720
+ # set the HTTP header `Content-Type`
2721
+ if _content_type:
2722
+ _header_params['Content-Type'] = _content_type
2723
+ else:
2724
+ _default_content_type = (
2725
+ self.api_client.select_header_content_type(
2726
+ [
2727
+ 'application/json'
2728
+ ]
2729
+ )
2730
+ )
2731
+ if _default_content_type is not None:
2732
+ _header_params['Content-Type'] = _default_content_type
2733
+
2734
+ # authentication setting
2735
+ _auth_settings: List[str] = [
2736
+ ]
2737
+
2738
+ return self.api_client.param_serialize(
2739
+ method='POST',
2740
+ resource_path='/v1/auto-topup/payments/succeeded',
2741
+ path_params=_path_params,
2742
+ query_params=_query_params,
2743
+ header_params=_header_params,
2744
+ body=_body_params,
2745
+ post_params=_form_params,
2746
+ files=_files,
2747
+ auth_settings=_auth_settings,
2748
+ collection_formats=_collection_formats,
2749
+ _host=_host,
2750
+ _request_auth=_request_auth
2751
+ )
2752
+
2753
+
2754
+
2755
+
2756
+ @validate_call
2757
+ def update_rule_v1(
2758
+ self,
2759
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
2760
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
2761
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
2762
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
2763
+ update_auto_topup_rule_request: Optional[UpdateAutoTopupRuleRequest] = None,
2764
+ _request_timeout: Union[
2765
+ None,
2766
+ Annotated[StrictFloat, Field(gt=0)],
2767
+ Tuple[
2768
+ Annotated[StrictFloat, Field(gt=0)],
2769
+ Annotated[StrictFloat, Field(gt=0)]
2770
+ ]
2771
+ ] = None,
2772
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2773
+ _content_type: Optional[StrictStr] = None,
2774
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2775
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2776
+ ) -> AutoTopupRuleResponse:
2777
+ """Update Rule
2778
+
2779
+ Update an auto top-up rule. Updates the specified fields of an existing rule.
2780
+
2781
+ :param rule_id: Auto top-up rule ID (required)
2782
+ :type rule_id: str
2783
+ :param tenant_id: Optional tenant identifier for validation
2784
+ :type tenant_id: str
2785
+ :param pool_id: Optional pool identifier for validation
2786
+ :type pool_id: str
2787
+ :param wallet_id: Optional wallet identifier for validation
2788
+ :type wallet_id: str
2789
+ :param update_auto_topup_rule_request:
2790
+ :type update_auto_topup_rule_request: UpdateAutoTopupRuleRequest
2791
+ :param _request_timeout: timeout setting for this request. If one
2792
+ number provided, it will be total request
2793
+ timeout. It can also be a pair (tuple) of
2794
+ (connection, read) timeouts.
2795
+ :type _request_timeout: int, tuple(int, int), optional
2796
+ :param _request_auth: set to override the auth_settings for an a single
2797
+ request; this effectively ignores the
2798
+ authentication in the spec for a single request.
2799
+ :type _request_auth: dict, optional
2800
+ :param _content_type: force content-type for the request.
2801
+ :type _content_type: str, Optional
2802
+ :param _headers: set to override the headers for a single
2803
+ request; this effectively ignores the headers
2804
+ in the spec for a single request.
2805
+ :type _headers: dict, optional
2806
+ :param _host_index: set to override the host_index for a single
2807
+ request; this effectively ignores the host_index
2808
+ in the spec for a single request.
2809
+ :type _host_index: int, optional
2810
+ :return: Returns the result object.
2811
+ """ # noqa: E501
2812
+
2813
+ _param = self._update_rule_v1_serialize(
2814
+ rule_id=rule_id,
2815
+ tenant_id=tenant_id,
2816
+ pool_id=pool_id,
2817
+ wallet_id=wallet_id,
2818
+ update_auto_topup_rule_request=update_auto_topup_rule_request,
2819
+ _request_auth=_request_auth,
2820
+ _content_type=_content_type,
2821
+ _headers=_headers,
2822
+ _host_index=_host_index
2823
+ )
2824
+
2825
+ _response_types_map: Dict[str, Optional[str]] = {
2826
+ '200': "AutoTopupRuleResponse",
2827
+ '422': "HTTPValidationError",
2828
+ }
2829
+ response_data = self.api_client.call_api(
2830
+ *_param,
2831
+ _request_timeout=_request_timeout
2832
+ )
2833
+ response_data.read()
2834
+ return self.api_client.response_deserialize(
2835
+ response_data=response_data,
2836
+ response_types_map=_response_types_map,
2837
+ ).data
2838
+
2839
+
2840
+ @validate_call
2841
+ def update_rule_v1_with_http_info(
2842
+ self,
2843
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
2844
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
2845
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
2846
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
2847
+ update_auto_topup_rule_request: Optional[UpdateAutoTopupRuleRequest] = None,
2848
+ _request_timeout: Union[
2849
+ None,
2850
+ Annotated[StrictFloat, Field(gt=0)],
2851
+ Tuple[
2852
+ Annotated[StrictFloat, Field(gt=0)],
2853
+ Annotated[StrictFloat, Field(gt=0)]
2854
+ ]
2855
+ ] = None,
2856
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2857
+ _content_type: Optional[StrictStr] = None,
2858
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2859
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2860
+ ) -> ApiResponse[AutoTopupRuleResponse]:
2861
+ """Update Rule
2862
+
2863
+ Update an auto top-up rule. Updates the specified fields of an existing rule.
2864
+
2865
+ :param rule_id: Auto top-up rule ID (required)
2866
+ :type rule_id: str
2867
+ :param tenant_id: Optional tenant identifier for validation
2868
+ :type tenant_id: str
2869
+ :param pool_id: Optional pool identifier for validation
2870
+ :type pool_id: str
2871
+ :param wallet_id: Optional wallet identifier for validation
2872
+ :type wallet_id: str
2873
+ :param update_auto_topup_rule_request:
2874
+ :type update_auto_topup_rule_request: UpdateAutoTopupRuleRequest
2875
+ :param _request_timeout: timeout setting for this request. If one
2876
+ number provided, it will be total request
2877
+ timeout. It can also be a pair (tuple) of
2878
+ (connection, read) timeouts.
2879
+ :type _request_timeout: int, tuple(int, int), optional
2880
+ :param _request_auth: set to override the auth_settings for an a single
2881
+ request; this effectively ignores the
2882
+ authentication in the spec for a single request.
2883
+ :type _request_auth: dict, optional
2884
+ :param _content_type: force content-type for the request.
2885
+ :type _content_type: str, Optional
2886
+ :param _headers: set to override the headers for a single
2887
+ request; this effectively ignores the headers
2888
+ in the spec for a single request.
2889
+ :type _headers: dict, optional
2890
+ :param _host_index: set to override the host_index for a single
2891
+ request; this effectively ignores the host_index
2892
+ in the spec for a single request.
2893
+ :type _host_index: int, optional
2894
+ :return: Returns the result object.
2895
+ """ # noqa: E501
2896
+
2897
+ _param = self._update_rule_v1_serialize(
2898
+ rule_id=rule_id,
2899
+ tenant_id=tenant_id,
2900
+ pool_id=pool_id,
2901
+ wallet_id=wallet_id,
2902
+ update_auto_topup_rule_request=update_auto_topup_rule_request,
2903
+ _request_auth=_request_auth,
2904
+ _content_type=_content_type,
2905
+ _headers=_headers,
2906
+ _host_index=_host_index
2907
+ )
2908
+
2909
+ _response_types_map: Dict[str, Optional[str]] = {
2910
+ '200': "AutoTopupRuleResponse",
2911
+ '422': "HTTPValidationError",
2912
+ }
2913
+ response_data = self.api_client.call_api(
2914
+ *_param,
2915
+ _request_timeout=_request_timeout
2916
+ )
2917
+ response_data.read()
2918
+ return self.api_client.response_deserialize(
2919
+ response_data=response_data,
2920
+ response_types_map=_response_types_map,
2921
+ )
2922
+
2923
+
2924
+ @validate_call
2925
+ def update_rule_v1_without_preload_content(
2926
+ self,
2927
+ rule_id: Annotated[StrictStr, Field(description="Auto top-up rule ID")],
2928
+ tenant_id: Annotated[Optional[StrictStr], Field(description="Optional tenant identifier for validation")] = None,
2929
+ pool_id: Annotated[Optional[StrictStr], Field(description="Optional pool identifier for validation")] = None,
2930
+ wallet_id: Annotated[Optional[StrictStr], Field(description="Optional wallet identifier for validation")] = None,
2931
+ update_auto_topup_rule_request: Optional[UpdateAutoTopupRuleRequest] = None,
2932
+ _request_timeout: Union[
2933
+ None,
2934
+ Annotated[StrictFloat, Field(gt=0)],
2935
+ Tuple[
2936
+ Annotated[StrictFloat, Field(gt=0)],
2937
+ Annotated[StrictFloat, Field(gt=0)]
2938
+ ]
2939
+ ] = None,
2940
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2941
+ _content_type: Optional[StrictStr] = None,
2942
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2943
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2944
+ ) -> RESTResponseType:
2945
+ """Update Rule
2946
+
2947
+ Update an auto top-up rule. Updates the specified fields of an existing rule.
2948
+
2949
+ :param rule_id: Auto top-up rule ID (required)
2950
+ :type rule_id: str
2951
+ :param tenant_id: Optional tenant identifier for validation
2952
+ :type tenant_id: str
2953
+ :param pool_id: Optional pool identifier for validation
2954
+ :type pool_id: str
2955
+ :param wallet_id: Optional wallet identifier for validation
2956
+ :type wallet_id: str
2957
+ :param update_auto_topup_rule_request:
2958
+ :type update_auto_topup_rule_request: UpdateAutoTopupRuleRequest
2959
+ :param _request_timeout: timeout setting for this request. If one
2960
+ number provided, it will be total request
2961
+ timeout. It can also be a pair (tuple) of
2962
+ (connection, read) timeouts.
2963
+ :type _request_timeout: int, tuple(int, int), optional
2964
+ :param _request_auth: set to override the auth_settings for an a single
2965
+ request; this effectively ignores the
2966
+ authentication in the spec for a single request.
2967
+ :type _request_auth: dict, optional
2968
+ :param _content_type: force content-type for the request.
2969
+ :type _content_type: str, Optional
2970
+ :param _headers: set to override the headers for a single
2971
+ request; this effectively ignores the headers
2972
+ in the spec for a single request.
2973
+ :type _headers: dict, optional
2974
+ :param _host_index: set to override the host_index for a single
2975
+ request; this effectively ignores the host_index
2976
+ in the spec for a single request.
2977
+ :type _host_index: int, optional
2978
+ :return: Returns the result object.
2979
+ """ # noqa: E501
2980
+
2981
+ _param = self._update_rule_v1_serialize(
2982
+ rule_id=rule_id,
2983
+ tenant_id=tenant_id,
2984
+ pool_id=pool_id,
2985
+ wallet_id=wallet_id,
2986
+ update_auto_topup_rule_request=update_auto_topup_rule_request,
2987
+ _request_auth=_request_auth,
2988
+ _content_type=_content_type,
2989
+ _headers=_headers,
2990
+ _host_index=_host_index
2991
+ )
2992
+
2993
+ _response_types_map: Dict[str, Optional[str]] = {
2994
+ '200': "AutoTopupRuleResponse",
2995
+ '422': "HTTPValidationError",
2996
+ }
2997
+ response_data = self.api_client.call_api(
2998
+ *_param,
2999
+ _request_timeout=_request_timeout
3000
+ )
3001
+ return response_data.response
3002
+
3003
+
3004
+ def _update_rule_v1_serialize(
3005
+ self,
3006
+ rule_id,
3007
+ tenant_id,
3008
+ pool_id,
3009
+ wallet_id,
3010
+ update_auto_topup_rule_request,
3011
+ _request_auth,
3012
+ _content_type,
3013
+ _headers,
3014
+ _host_index,
3015
+ ) -> RequestSerialized:
3016
+
3017
+ _host = None
3018
+
3019
+ _collection_formats: Dict[str, str] = {
3020
+ }
3021
+
3022
+ _path_params: Dict[str, str] = {}
3023
+ _query_params: List[Tuple[str, str]] = []
3024
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3025
+ _form_params: List[Tuple[str, str]] = []
3026
+ _files: Dict[
3027
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3028
+ ] = {}
3029
+ _body_params: Optional[bytes] = None
3030
+
3031
+ # process the path parameters
3032
+ if rule_id is not None:
3033
+ _path_params['rule_id'] = rule_id
3034
+ # process the query parameters
3035
+ if tenant_id is not None:
3036
+
3037
+ _query_params.append(('tenant_id', tenant_id))
3038
+
3039
+ if pool_id is not None:
3040
+
3041
+ _query_params.append(('pool_id', pool_id))
3042
+
3043
+ if wallet_id is not None:
3044
+
3045
+ _query_params.append(('wallet_id', wallet_id))
3046
+
3047
+ # process the header parameters
3048
+ # process the form parameters
3049
+ # process the body parameter
3050
+ if update_auto_topup_rule_request is not None:
3051
+ _body_params = update_auto_topup_rule_request
3052
+
3053
+
3054
+ # set the HTTP header `Accept`
3055
+ if 'Accept' not in _header_params:
3056
+ _header_params['Accept'] = self.api_client.select_header_accept(
3057
+ [
3058
+ 'application/json'
3059
+ ]
3060
+ )
3061
+
3062
+ # set the HTTP header `Content-Type`
3063
+ if _content_type:
3064
+ _header_params['Content-Type'] = _content_type
3065
+ else:
3066
+ _default_content_type = (
3067
+ self.api_client.select_header_content_type(
3068
+ [
3069
+ 'application/json'
3070
+ ]
3071
+ )
3072
+ )
3073
+ if _default_content_type is not None:
3074
+ _header_params['Content-Type'] = _default_content_type
3075
+
3076
+ # authentication setting
3077
+ _auth_settings: List[str] = [
3078
+ ]
3079
+
3080
+ return self.api_client.param_serialize(
3081
+ method='PUT',
3082
+ resource_path='/v1/auto-topup/rules/{rule_id}',
3083
+ path_params=_path_params,
3084
+ query_params=_query_params,
3085
+ header_params=_header_params,
3086
+ body=_body_params,
3087
+ post_params=_form_params,
3088
+ files=_files,
3089
+ auth_settings=_auth_settings,
3090
+ collection_formats=_collection_formats,
3091
+ _host=_host,
3092
+ _request_auth=_request_auth
3093
+ )
3094
+
3095
+