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,3931 @@
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, StrictBool, StrictStr, field_validator
20
+ from typing import Any, List, Optional
21
+ from typing_extensions import Annotated
22
+ from moolabs.models.app_type import AppType
23
+ from moolabs.models.create_stripe_customer_portal_session_params import CreateStripeCustomerPortalSessionParams
24
+ from moolabs.models.customer import Customer
25
+ from moolabs.models.customer_app_data import CustomerAppData
26
+ from moolabs.models.customer_app_data_create_or_update_item import CustomerAppDataCreateOrUpdateItem
27
+ from moolabs.models.customer_app_data_paginated_response import CustomerAppDataPaginatedResponse
28
+ from moolabs.models.customer_create import CustomerCreate
29
+ from moolabs.models.customer_expand import CustomerExpand
30
+ from moolabs.models.customer_order_by import CustomerOrderBy
31
+ from moolabs.models.customer_paginated_response import CustomerPaginatedResponse
32
+ from moolabs.models.customer_replace_update import CustomerReplaceUpdate
33
+ from moolabs.models.customer_subscription_order_by import CustomerSubscriptionOrderBy
34
+ from moolabs.models.sort_order import SortOrder
35
+ from moolabs.models.stripe_customer_app_data import StripeCustomerAppData
36
+ from moolabs.models.stripe_customer_app_data_base import StripeCustomerAppDataBase
37
+ from moolabs.models.stripe_customer_portal_session import StripeCustomerPortalSession
38
+ from moolabs.models.subscription_paginated_response import SubscriptionPaginatedResponse
39
+ from moolabs.models.subscription_status import SubscriptionStatus
40
+
41
+ from moolabs.api_client import ApiClient, RequestSerialized
42
+ from moolabs.api_response import ApiResponse
43
+ from moolabs.rest import RESTResponseType
44
+
45
+
46
+ class CustomersApi:
47
+ """NOTE: This class is auto generated by OpenAPI Generator
48
+ Ref: https://openapi-generator.tech
49
+
50
+ Do not edit the class manually.
51
+ """
52
+
53
+ def __init__(self, api_client=None) -> None:
54
+ if api_client is None:
55
+ api_client = ApiClient.get_default()
56
+ self.api_client = api_client
57
+
58
+
59
+ @validate_call
60
+ def create_customer(
61
+ self,
62
+ customer_create: CustomerCreate,
63
+ _request_timeout: Union[
64
+ None,
65
+ Annotated[StrictFloat, Field(gt=0)],
66
+ Tuple[
67
+ Annotated[StrictFloat, Field(gt=0)],
68
+ Annotated[StrictFloat, Field(gt=0)]
69
+ ]
70
+ ] = None,
71
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
72
+ _content_type: Optional[StrictStr] = None,
73
+ _headers: Optional[Dict[StrictStr, Any]] = None,
74
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
75
+ ) -> Customer:
76
+ """Create customer
77
+
78
+ Create a new customer.
79
+
80
+ :param customer_create: (required)
81
+ :type customer_create: CustomerCreate
82
+ :param _request_timeout: timeout setting for this request. If one
83
+ number provided, it will be total request
84
+ timeout. It can also be a pair (tuple) of
85
+ (connection, read) timeouts.
86
+ :type _request_timeout: int, tuple(int, int), optional
87
+ :param _request_auth: set to override the auth_settings for an a single
88
+ request; this effectively ignores the
89
+ authentication in the spec for a single request.
90
+ :type _request_auth: dict, optional
91
+ :param _content_type: force content-type for the request.
92
+ :type _content_type: str, Optional
93
+ :param _headers: set to override the headers for a single
94
+ request; this effectively ignores the headers
95
+ in the spec for a single request.
96
+ :type _headers: dict, optional
97
+ :param _host_index: set to override the host_index for a single
98
+ request; this effectively ignores the host_index
99
+ in the spec for a single request.
100
+ :type _host_index: int, optional
101
+ :return: Returns the result object.
102
+ """ # noqa: E501
103
+
104
+ _param = self._create_customer_serialize(
105
+ customer_create=customer_create,
106
+ _request_auth=_request_auth,
107
+ _content_type=_content_type,
108
+ _headers=_headers,
109
+ _host_index=_host_index
110
+ )
111
+
112
+ _response_types_map: Dict[str, Optional[str]] = {
113
+ '201': "Customer",
114
+ '400': "UnexpectedProblemResponse",
115
+ '401': "UnexpectedProblemResponse",
116
+ '403': "UnexpectedProblemResponse",
117
+ '412': "UnexpectedProblemResponse",
118
+ '500': "UnexpectedProblemResponse",
119
+ '503': "UnexpectedProblemResponse",
120
+ }
121
+ response_data = self.api_client.call_api(
122
+ *_param,
123
+ _request_timeout=_request_timeout
124
+ )
125
+ response_data.read()
126
+ return self.api_client.response_deserialize(
127
+ response_data=response_data,
128
+ response_types_map=_response_types_map,
129
+ ).data
130
+
131
+
132
+ @validate_call
133
+ def create_customer_with_http_info(
134
+ self,
135
+ customer_create: CustomerCreate,
136
+ _request_timeout: Union[
137
+ None,
138
+ Annotated[StrictFloat, Field(gt=0)],
139
+ Tuple[
140
+ Annotated[StrictFloat, Field(gt=0)],
141
+ Annotated[StrictFloat, Field(gt=0)]
142
+ ]
143
+ ] = None,
144
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
145
+ _content_type: Optional[StrictStr] = None,
146
+ _headers: Optional[Dict[StrictStr, Any]] = None,
147
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
148
+ ) -> ApiResponse[Customer]:
149
+ """Create customer
150
+
151
+ Create a new customer.
152
+
153
+ :param customer_create: (required)
154
+ :type customer_create: CustomerCreate
155
+ :param _request_timeout: timeout setting for this request. If one
156
+ number provided, it will be total request
157
+ timeout. It can also be a pair (tuple) of
158
+ (connection, read) timeouts.
159
+ :type _request_timeout: int, tuple(int, int), optional
160
+ :param _request_auth: set to override the auth_settings for an a single
161
+ request; this effectively ignores the
162
+ authentication in the spec for a single request.
163
+ :type _request_auth: dict, optional
164
+ :param _content_type: force content-type for the request.
165
+ :type _content_type: str, Optional
166
+ :param _headers: set to override the headers for a single
167
+ request; this effectively ignores the headers
168
+ in the spec for a single request.
169
+ :type _headers: dict, optional
170
+ :param _host_index: set to override the host_index for a single
171
+ request; this effectively ignores the host_index
172
+ in the spec for a single request.
173
+ :type _host_index: int, optional
174
+ :return: Returns the result object.
175
+ """ # noqa: E501
176
+
177
+ _param = self._create_customer_serialize(
178
+ customer_create=customer_create,
179
+ _request_auth=_request_auth,
180
+ _content_type=_content_type,
181
+ _headers=_headers,
182
+ _host_index=_host_index
183
+ )
184
+
185
+ _response_types_map: Dict[str, Optional[str]] = {
186
+ '201': "Customer",
187
+ '400': "UnexpectedProblemResponse",
188
+ '401': "UnexpectedProblemResponse",
189
+ '403': "UnexpectedProblemResponse",
190
+ '412': "UnexpectedProblemResponse",
191
+ '500': "UnexpectedProblemResponse",
192
+ '503': "UnexpectedProblemResponse",
193
+ }
194
+ response_data = self.api_client.call_api(
195
+ *_param,
196
+ _request_timeout=_request_timeout
197
+ )
198
+ response_data.read()
199
+ return self.api_client.response_deserialize(
200
+ response_data=response_data,
201
+ response_types_map=_response_types_map,
202
+ )
203
+
204
+
205
+ @validate_call
206
+ def create_customer_without_preload_content(
207
+ self,
208
+ customer_create: CustomerCreate,
209
+ _request_timeout: Union[
210
+ None,
211
+ Annotated[StrictFloat, Field(gt=0)],
212
+ Tuple[
213
+ Annotated[StrictFloat, Field(gt=0)],
214
+ Annotated[StrictFloat, Field(gt=0)]
215
+ ]
216
+ ] = None,
217
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
218
+ _content_type: Optional[StrictStr] = None,
219
+ _headers: Optional[Dict[StrictStr, Any]] = None,
220
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
221
+ ) -> RESTResponseType:
222
+ """Create customer
223
+
224
+ Create a new customer.
225
+
226
+ :param customer_create: (required)
227
+ :type customer_create: CustomerCreate
228
+ :param _request_timeout: timeout setting for this request. If one
229
+ number provided, it will be total request
230
+ timeout. It can also be a pair (tuple) of
231
+ (connection, read) timeouts.
232
+ :type _request_timeout: int, tuple(int, int), optional
233
+ :param _request_auth: set to override the auth_settings for an a single
234
+ request; this effectively ignores the
235
+ authentication in the spec for a single request.
236
+ :type _request_auth: dict, optional
237
+ :param _content_type: force content-type for the request.
238
+ :type _content_type: str, Optional
239
+ :param _headers: set to override the headers for a single
240
+ request; this effectively ignores the headers
241
+ in the spec for a single request.
242
+ :type _headers: dict, optional
243
+ :param _host_index: set to override the host_index for a single
244
+ request; this effectively ignores the host_index
245
+ in the spec for a single request.
246
+ :type _host_index: int, optional
247
+ :return: Returns the result object.
248
+ """ # noqa: E501
249
+
250
+ _param = self._create_customer_serialize(
251
+ customer_create=customer_create,
252
+ _request_auth=_request_auth,
253
+ _content_type=_content_type,
254
+ _headers=_headers,
255
+ _host_index=_host_index
256
+ )
257
+
258
+ _response_types_map: Dict[str, Optional[str]] = {
259
+ '201': "Customer",
260
+ '400': "UnexpectedProblemResponse",
261
+ '401': "UnexpectedProblemResponse",
262
+ '403': "UnexpectedProblemResponse",
263
+ '412': "UnexpectedProblemResponse",
264
+ '500': "UnexpectedProblemResponse",
265
+ '503': "UnexpectedProblemResponse",
266
+ }
267
+ response_data = self.api_client.call_api(
268
+ *_param,
269
+ _request_timeout=_request_timeout
270
+ )
271
+ return response_data.response
272
+
273
+
274
+ def _create_customer_serialize(
275
+ self,
276
+ customer_create,
277
+ _request_auth,
278
+ _content_type,
279
+ _headers,
280
+ _host_index,
281
+ ) -> RequestSerialized:
282
+
283
+ _host = None
284
+
285
+ _collection_formats: Dict[str, str] = {
286
+ }
287
+
288
+ _path_params: Dict[str, str] = {}
289
+ _query_params: List[Tuple[str, str]] = []
290
+ _header_params: Dict[str, Optional[str]] = _headers or {}
291
+ _form_params: List[Tuple[str, str]] = []
292
+ _files: Dict[
293
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
294
+ ] = {}
295
+ _body_params: Optional[bytes] = None
296
+
297
+ # process the path parameters
298
+ # process the query parameters
299
+ # process the header parameters
300
+ # process the form parameters
301
+ # process the body parameter
302
+ if customer_create is not None:
303
+ _body_params = customer_create
304
+
305
+
306
+ # set the HTTP header `Accept`
307
+ if 'Accept' not in _header_params:
308
+ _header_params['Accept'] = self.api_client.select_header_accept(
309
+ [
310
+ 'application/json',
311
+ 'application/problem+json'
312
+ ]
313
+ )
314
+
315
+ # set the HTTP header `Content-Type`
316
+ if _content_type:
317
+ _header_params['Content-Type'] = _content_type
318
+ else:
319
+ _default_content_type = (
320
+ self.api_client.select_header_content_type(
321
+ [
322
+ 'application/json'
323
+ ]
324
+ )
325
+ )
326
+ if _default_content_type is not None:
327
+ _header_params['Content-Type'] = _default_content_type
328
+
329
+ # authentication setting
330
+ _auth_settings: List[str] = [
331
+ 'CloudTokenAuth'
332
+ ]
333
+
334
+ return self.api_client.param_serialize(
335
+ method='POST',
336
+ resource_path='/api/v1/customers',
337
+ path_params=_path_params,
338
+ query_params=_query_params,
339
+ header_params=_header_params,
340
+ body=_body_params,
341
+ post_params=_form_params,
342
+ files=_files,
343
+ auth_settings=_auth_settings,
344
+ collection_formats=_collection_formats,
345
+ _host=_host,
346
+ _request_auth=_request_auth
347
+ )
348
+
349
+
350
+
351
+
352
+ @validate_call
353
+ def create_customer_stripe_portal_session(
354
+ self,
355
+ customer_id_or_key: Any,
356
+ create_stripe_customer_portal_session_params: CreateStripeCustomerPortalSessionParams,
357
+ _request_timeout: Union[
358
+ None,
359
+ Annotated[StrictFloat, Field(gt=0)],
360
+ Tuple[
361
+ Annotated[StrictFloat, Field(gt=0)],
362
+ Annotated[StrictFloat, Field(gt=0)]
363
+ ]
364
+ ] = None,
365
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
366
+ _content_type: Optional[StrictStr] = None,
367
+ _headers: Optional[Dict[StrictStr, Any]] = None,
368
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
369
+ ) -> StripeCustomerPortalSession:
370
+ """Create Stripe customer portal session
371
+
372
+ Create Stripe customer portal session. Only returns URL if the customer billing profile is linked to a stripe app and customer. Useful to redirect the customer to the Stripe customer portal to manage their payment methods, change their billing address and access their invoice history.
373
+
374
+ :param customer_id_or_key: (required)
375
+ :type customer_id_or_key: ULIDOrExternalKey
376
+ :param create_stripe_customer_portal_session_params: (required)
377
+ :type create_stripe_customer_portal_session_params: CreateStripeCustomerPortalSessionParams
378
+ :param _request_timeout: timeout setting for this request. If one
379
+ number provided, it will be total request
380
+ timeout. It can also be a pair (tuple) of
381
+ (connection, read) timeouts.
382
+ :type _request_timeout: int, tuple(int, int), optional
383
+ :param _request_auth: set to override the auth_settings for an a single
384
+ request; this effectively ignores the
385
+ authentication in the spec for a single request.
386
+ :type _request_auth: dict, optional
387
+ :param _content_type: force content-type for the request.
388
+ :type _content_type: str, Optional
389
+ :param _headers: set to override the headers for a single
390
+ request; this effectively ignores the headers
391
+ in the spec for a single request.
392
+ :type _headers: dict, optional
393
+ :param _host_index: set to override the host_index for a single
394
+ request; this effectively ignores the host_index
395
+ in the spec for a single request.
396
+ :type _host_index: int, optional
397
+ :return: Returns the result object.
398
+ """ # noqa: E501
399
+
400
+ _param = self._create_customer_stripe_portal_session_serialize(
401
+ customer_id_or_key=customer_id_or_key,
402
+ create_stripe_customer_portal_session_params=create_stripe_customer_portal_session_params,
403
+ _request_auth=_request_auth,
404
+ _content_type=_content_type,
405
+ _headers=_headers,
406
+ _host_index=_host_index
407
+ )
408
+
409
+ _response_types_map: Dict[str, Optional[str]] = {
410
+ '201': "StripeCustomerPortalSession",
411
+ '400': "UnexpectedProblemResponse",
412
+ '401': "UnexpectedProblemResponse",
413
+ '403': "UnexpectedProblemResponse",
414
+ '404': "UnexpectedProblemResponse",
415
+ '412': "UnexpectedProblemResponse",
416
+ '500': "UnexpectedProblemResponse",
417
+ '503': "UnexpectedProblemResponse",
418
+ }
419
+ response_data = self.api_client.call_api(
420
+ *_param,
421
+ _request_timeout=_request_timeout
422
+ )
423
+ response_data.read()
424
+ return self.api_client.response_deserialize(
425
+ response_data=response_data,
426
+ response_types_map=_response_types_map,
427
+ ).data
428
+
429
+
430
+ @validate_call
431
+ def create_customer_stripe_portal_session_with_http_info(
432
+ self,
433
+ customer_id_or_key: Any,
434
+ create_stripe_customer_portal_session_params: CreateStripeCustomerPortalSessionParams,
435
+ _request_timeout: Union[
436
+ None,
437
+ Annotated[StrictFloat, Field(gt=0)],
438
+ Tuple[
439
+ Annotated[StrictFloat, Field(gt=0)],
440
+ Annotated[StrictFloat, Field(gt=0)]
441
+ ]
442
+ ] = None,
443
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
444
+ _content_type: Optional[StrictStr] = None,
445
+ _headers: Optional[Dict[StrictStr, Any]] = None,
446
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
447
+ ) -> ApiResponse[StripeCustomerPortalSession]:
448
+ """Create Stripe customer portal session
449
+
450
+ Create Stripe customer portal session. Only returns URL if the customer billing profile is linked to a stripe app and customer. Useful to redirect the customer to the Stripe customer portal to manage their payment methods, change their billing address and access their invoice history.
451
+
452
+ :param customer_id_or_key: (required)
453
+ :type customer_id_or_key: ULIDOrExternalKey
454
+ :param create_stripe_customer_portal_session_params: (required)
455
+ :type create_stripe_customer_portal_session_params: CreateStripeCustomerPortalSessionParams
456
+ :param _request_timeout: timeout setting for this request. If one
457
+ number provided, it will be total request
458
+ timeout. It can also be a pair (tuple) of
459
+ (connection, read) timeouts.
460
+ :type _request_timeout: int, tuple(int, int), optional
461
+ :param _request_auth: set to override the auth_settings for an a single
462
+ request; this effectively ignores the
463
+ authentication in the spec for a single request.
464
+ :type _request_auth: dict, optional
465
+ :param _content_type: force content-type for the request.
466
+ :type _content_type: str, Optional
467
+ :param _headers: set to override the headers for a single
468
+ request; this effectively ignores the headers
469
+ in the spec for a single request.
470
+ :type _headers: dict, optional
471
+ :param _host_index: set to override the host_index for a single
472
+ request; this effectively ignores the host_index
473
+ in the spec for a single request.
474
+ :type _host_index: int, optional
475
+ :return: Returns the result object.
476
+ """ # noqa: E501
477
+
478
+ _param = self._create_customer_stripe_portal_session_serialize(
479
+ customer_id_or_key=customer_id_or_key,
480
+ create_stripe_customer_portal_session_params=create_stripe_customer_portal_session_params,
481
+ _request_auth=_request_auth,
482
+ _content_type=_content_type,
483
+ _headers=_headers,
484
+ _host_index=_host_index
485
+ )
486
+
487
+ _response_types_map: Dict[str, Optional[str]] = {
488
+ '201': "StripeCustomerPortalSession",
489
+ '400': "UnexpectedProblemResponse",
490
+ '401': "UnexpectedProblemResponse",
491
+ '403': "UnexpectedProblemResponse",
492
+ '404': "UnexpectedProblemResponse",
493
+ '412': "UnexpectedProblemResponse",
494
+ '500': "UnexpectedProblemResponse",
495
+ '503': "UnexpectedProblemResponse",
496
+ }
497
+ response_data = self.api_client.call_api(
498
+ *_param,
499
+ _request_timeout=_request_timeout
500
+ )
501
+ response_data.read()
502
+ return self.api_client.response_deserialize(
503
+ response_data=response_data,
504
+ response_types_map=_response_types_map,
505
+ )
506
+
507
+
508
+ @validate_call
509
+ def create_customer_stripe_portal_session_without_preload_content(
510
+ self,
511
+ customer_id_or_key: Any,
512
+ create_stripe_customer_portal_session_params: CreateStripeCustomerPortalSessionParams,
513
+ _request_timeout: Union[
514
+ None,
515
+ Annotated[StrictFloat, Field(gt=0)],
516
+ Tuple[
517
+ Annotated[StrictFloat, Field(gt=0)],
518
+ Annotated[StrictFloat, Field(gt=0)]
519
+ ]
520
+ ] = None,
521
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
522
+ _content_type: Optional[StrictStr] = None,
523
+ _headers: Optional[Dict[StrictStr, Any]] = None,
524
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
525
+ ) -> RESTResponseType:
526
+ """Create Stripe customer portal session
527
+
528
+ Create Stripe customer portal session. Only returns URL if the customer billing profile is linked to a stripe app and customer. Useful to redirect the customer to the Stripe customer portal to manage their payment methods, change their billing address and access their invoice history.
529
+
530
+ :param customer_id_or_key: (required)
531
+ :type customer_id_or_key: ULIDOrExternalKey
532
+ :param create_stripe_customer_portal_session_params: (required)
533
+ :type create_stripe_customer_portal_session_params: CreateStripeCustomerPortalSessionParams
534
+ :param _request_timeout: timeout setting for this request. If one
535
+ number provided, it will be total request
536
+ timeout. It can also be a pair (tuple) of
537
+ (connection, read) timeouts.
538
+ :type _request_timeout: int, tuple(int, int), optional
539
+ :param _request_auth: set to override the auth_settings for an a single
540
+ request; this effectively ignores the
541
+ authentication in the spec for a single request.
542
+ :type _request_auth: dict, optional
543
+ :param _content_type: force content-type for the request.
544
+ :type _content_type: str, Optional
545
+ :param _headers: set to override the headers for a single
546
+ request; this effectively ignores the headers
547
+ in the spec for a single request.
548
+ :type _headers: dict, optional
549
+ :param _host_index: set to override the host_index for a single
550
+ request; this effectively ignores the host_index
551
+ in the spec for a single request.
552
+ :type _host_index: int, optional
553
+ :return: Returns the result object.
554
+ """ # noqa: E501
555
+
556
+ _param = self._create_customer_stripe_portal_session_serialize(
557
+ customer_id_or_key=customer_id_or_key,
558
+ create_stripe_customer_portal_session_params=create_stripe_customer_portal_session_params,
559
+ _request_auth=_request_auth,
560
+ _content_type=_content_type,
561
+ _headers=_headers,
562
+ _host_index=_host_index
563
+ )
564
+
565
+ _response_types_map: Dict[str, Optional[str]] = {
566
+ '201': "StripeCustomerPortalSession",
567
+ '400': "UnexpectedProblemResponse",
568
+ '401': "UnexpectedProblemResponse",
569
+ '403': "UnexpectedProblemResponse",
570
+ '404': "UnexpectedProblemResponse",
571
+ '412': "UnexpectedProblemResponse",
572
+ '500': "UnexpectedProblemResponse",
573
+ '503': "UnexpectedProblemResponse",
574
+ }
575
+ response_data = self.api_client.call_api(
576
+ *_param,
577
+ _request_timeout=_request_timeout
578
+ )
579
+ return response_data.response
580
+
581
+
582
+ def _create_customer_stripe_portal_session_serialize(
583
+ self,
584
+ customer_id_or_key,
585
+ create_stripe_customer_portal_session_params,
586
+ _request_auth,
587
+ _content_type,
588
+ _headers,
589
+ _host_index,
590
+ ) -> RequestSerialized:
591
+
592
+ _host = None
593
+
594
+ _collection_formats: Dict[str, str] = {
595
+ }
596
+
597
+ _path_params: Dict[str, str] = {}
598
+ _query_params: List[Tuple[str, str]] = []
599
+ _header_params: Dict[str, Optional[str]] = _headers or {}
600
+ _form_params: List[Tuple[str, str]] = []
601
+ _files: Dict[
602
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
603
+ ] = {}
604
+ _body_params: Optional[bytes] = None
605
+
606
+ # process the path parameters
607
+ if customer_id_or_key is not None:
608
+ _path_params['customerIdOrKey'] = customer_id_or_key
609
+ # process the query parameters
610
+ # process the header parameters
611
+ # process the form parameters
612
+ # process the body parameter
613
+ if create_stripe_customer_portal_session_params is not None:
614
+ _body_params = create_stripe_customer_portal_session_params
615
+
616
+
617
+ # set the HTTP header `Accept`
618
+ if 'Accept' not in _header_params:
619
+ _header_params['Accept'] = self.api_client.select_header_accept(
620
+ [
621
+ 'application/json',
622
+ 'application/problem+json'
623
+ ]
624
+ )
625
+
626
+ # set the HTTP header `Content-Type`
627
+ if _content_type:
628
+ _header_params['Content-Type'] = _content_type
629
+ else:
630
+ _default_content_type = (
631
+ self.api_client.select_header_content_type(
632
+ [
633
+ 'application/json'
634
+ ]
635
+ )
636
+ )
637
+ if _default_content_type is not None:
638
+ _header_params['Content-Type'] = _default_content_type
639
+
640
+ # authentication setting
641
+ _auth_settings: List[str] = [
642
+ 'CloudTokenAuth'
643
+ ]
644
+
645
+ return self.api_client.param_serialize(
646
+ method='POST',
647
+ resource_path='/api/v1/customers/{customerIdOrKey}/stripe/portal',
648
+ path_params=_path_params,
649
+ query_params=_query_params,
650
+ header_params=_header_params,
651
+ body=_body_params,
652
+ post_params=_form_params,
653
+ files=_files,
654
+ auth_settings=_auth_settings,
655
+ collection_formats=_collection_formats,
656
+ _host=_host,
657
+ _request_auth=_request_auth
658
+ )
659
+
660
+
661
+
662
+
663
+ @validate_call
664
+ def delete_customer(
665
+ self,
666
+ customer_id_or_key: Any,
667
+ _request_timeout: Union[
668
+ None,
669
+ Annotated[StrictFloat, Field(gt=0)],
670
+ Tuple[
671
+ Annotated[StrictFloat, Field(gt=0)],
672
+ Annotated[StrictFloat, Field(gt=0)]
673
+ ]
674
+ ] = None,
675
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
676
+ _content_type: Optional[StrictStr] = None,
677
+ _headers: Optional[Dict[StrictStr, Any]] = None,
678
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
679
+ ) -> None:
680
+ """Delete customer
681
+
682
+ Delete a customer by ID.
683
+
684
+ :param customer_id_or_key: (required)
685
+ :type customer_id_or_key: ULIDOrExternalKey
686
+ :param _request_timeout: timeout setting for this request. If one
687
+ number provided, it will be total request
688
+ timeout. It can also be a pair (tuple) of
689
+ (connection, read) timeouts.
690
+ :type _request_timeout: int, tuple(int, int), optional
691
+ :param _request_auth: set to override the auth_settings for an a single
692
+ request; this effectively ignores the
693
+ authentication in the spec for a single request.
694
+ :type _request_auth: dict, optional
695
+ :param _content_type: force content-type for the request.
696
+ :type _content_type: str, Optional
697
+ :param _headers: set to override the headers for a single
698
+ request; this effectively ignores the headers
699
+ in the spec for a single request.
700
+ :type _headers: dict, optional
701
+ :param _host_index: set to override the host_index for a single
702
+ request; this effectively ignores the host_index
703
+ in the spec for a single request.
704
+ :type _host_index: int, optional
705
+ :return: Returns the result object.
706
+ """ # noqa: E501
707
+
708
+ _param = self._delete_customer_serialize(
709
+ customer_id_or_key=customer_id_or_key,
710
+ _request_auth=_request_auth,
711
+ _content_type=_content_type,
712
+ _headers=_headers,
713
+ _host_index=_host_index
714
+ )
715
+
716
+ _response_types_map: Dict[str, Optional[str]] = {
717
+ '204': None,
718
+ '400': "UnexpectedProblemResponse",
719
+ '401': "UnexpectedProblemResponse",
720
+ '403': "UnexpectedProblemResponse",
721
+ '404': "UnexpectedProblemResponse",
722
+ '412': "UnexpectedProblemResponse",
723
+ '500': "UnexpectedProblemResponse",
724
+ '503': "UnexpectedProblemResponse",
725
+ }
726
+ response_data = self.api_client.call_api(
727
+ *_param,
728
+ _request_timeout=_request_timeout
729
+ )
730
+ response_data.read()
731
+ return self.api_client.response_deserialize(
732
+ response_data=response_data,
733
+ response_types_map=_response_types_map,
734
+ ).data
735
+
736
+
737
+ @validate_call
738
+ def delete_customer_with_http_info(
739
+ self,
740
+ customer_id_or_key: Any,
741
+ _request_timeout: Union[
742
+ None,
743
+ Annotated[StrictFloat, Field(gt=0)],
744
+ Tuple[
745
+ Annotated[StrictFloat, Field(gt=0)],
746
+ Annotated[StrictFloat, Field(gt=0)]
747
+ ]
748
+ ] = None,
749
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
750
+ _content_type: Optional[StrictStr] = None,
751
+ _headers: Optional[Dict[StrictStr, Any]] = None,
752
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
753
+ ) -> ApiResponse[None]:
754
+ """Delete customer
755
+
756
+ Delete a customer by ID.
757
+
758
+ :param customer_id_or_key: (required)
759
+ :type customer_id_or_key: ULIDOrExternalKey
760
+ :param _request_timeout: timeout setting for this request. If one
761
+ number provided, it will be total request
762
+ timeout. It can also be a pair (tuple) of
763
+ (connection, read) timeouts.
764
+ :type _request_timeout: int, tuple(int, int), optional
765
+ :param _request_auth: set to override the auth_settings for an a single
766
+ request; this effectively ignores the
767
+ authentication in the spec for a single request.
768
+ :type _request_auth: dict, optional
769
+ :param _content_type: force content-type for the request.
770
+ :type _content_type: str, Optional
771
+ :param _headers: set to override the headers for a single
772
+ request; this effectively ignores the headers
773
+ in the spec for a single request.
774
+ :type _headers: dict, optional
775
+ :param _host_index: set to override the host_index for a single
776
+ request; this effectively ignores the host_index
777
+ in the spec for a single request.
778
+ :type _host_index: int, optional
779
+ :return: Returns the result object.
780
+ """ # noqa: E501
781
+
782
+ _param = self._delete_customer_serialize(
783
+ customer_id_or_key=customer_id_or_key,
784
+ _request_auth=_request_auth,
785
+ _content_type=_content_type,
786
+ _headers=_headers,
787
+ _host_index=_host_index
788
+ )
789
+
790
+ _response_types_map: Dict[str, Optional[str]] = {
791
+ '204': None,
792
+ '400': "UnexpectedProblemResponse",
793
+ '401': "UnexpectedProblemResponse",
794
+ '403': "UnexpectedProblemResponse",
795
+ '404': "UnexpectedProblemResponse",
796
+ '412': "UnexpectedProblemResponse",
797
+ '500': "UnexpectedProblemResponse",
798
+ '503': "UnexpectedProblemResponse",
799
+ }
800
+ response_data = self.api_client.call_api(
801
+ *_param,
802
+ _request_timeout=_request_timeout
803
+ )
804
+ response_data.read()
805
+ return self.api_client.response_deserialize(
806
+ response_data=response_data,
807
+ response_types_map=_response_types_map,
808
+ )
809
+
810
+
811
+ @validate_call
812
+ def delete_customer_without_preload_content(
813
+ self,
814
+ customer_id_or_key: Any,
815
+ _request_timeout: Union[
816
+ None,
817
+ Annotated[StrictFloat, Field(gt=0)],
818
+ Tuple[
819
+ Annotated[StrictFloat, Field(gt=0)],
820
+ Annotated[StrictFloat, Field(gt=0)]
821
+ ]
822
+ ] = None,
823
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
824
+ _content_type: Optional[StrictStr] = None,
825
+ _headers: Optional[Dict[StrictStr, Any]] = None,
826
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
827
+ ) -> RESTResponseType:
828
+ """Delete customer
829
+
830
+ Delete a customer by ID.
831
+
832
+ :param customer_id_or_key: (required)
833
+ :type customer_id_or_key: ULIDOrExternalKey
834
+ :param _request_timeout: timeout setting for this request. If one
835
+ number provided, it will be total request
836
+ timeout. It can also be a pair (tuple) of
837
+ (connection, read) timeouts.
838
+ :type _request_timeout: int, tuple(int, int), optional
839
+ :param _request_auth: set to override the auth_settings for an a single
840
+ request; this effectively ignores the
841
+ authentication in the spec for a single request.
842
+ :type _request_auth: dict, optional
843
+ :param _content_type: force content-type for the request.
844
+ :type _content_type: str, Optional
845
+ :param _headers: set to override the headers for a single
846
+ request; this effectively ignores the headers
847
+ in the spec for a single request.
848
+ :type _headers: dict, optional
849
+ :param _host_index: set to override the host_index for a single
850
+ request; this effectively ignores the host_index
851
+ in the spec for a single request.
852
+ :type _host_index: int, optional
853
+ :return: Returns the result object.
854
+ """ # noqa: E501
855
+
856
+ _param = self._delete_customer_serialize(
857
+ customer_id_or_key=customer_id_or_key,
858
+ _request_auth=_request_auth,
859
+ _content_type=_content_type,
860
+ _headers=_headers,
861
+ _host_index=_host_index
862
+ )
863
+
864
+ _response_types_map: Dict[str, Optional[str]] = {
865
+ '204': None,
866
+ '400': "UnexpectedProblemResponse",
867
+ '401': "UnexpectedProblemResponse",
868
+ '403': "UnexpectedProblemResponse",
869
+ '404': "UnexpectedProblemResponse",
870
+ '412': "UnexpectedProblemResponse",
871
+ '500': "UnexpectedProblemResponse",
872
+ '503': "UnexpectedProblemResponse",
873
+ }
874
+ response_data = self.api_client.call_api(
875
+ *_param,
876
+ _request_timeout=_request_timeout
877
+ )
878
+ return response_data.response
879
+
880
+
881
+ def _delete_customer_serialize(
882
+ self,
883
+ customer_id_or_key,
884
+ _request_auth,
885
+ _content_type,
886
+ _headers,
887
+ _host_index,
888
+ ) -> RequestSerialized:
889
+
890
+ _host = None
891
+
892
+ _collection_formats: Dict[str, str] = {
893
+ }
894
+
895
+ _path_params: Dict[str, str] = {}
896
+ _query_params: List[Tuple[str, str]] = []
897
+ _header_params: Dict[str, Optional[str]] = _headers or {}
898
+ _form_params: List[Tuple[str, str]] = []
899
+ _files: Dict[
900
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
901
+ ] = {}
902
+ _body_params: Optional[bytes] = None
903
+
904
+ # process the path parameters
905
+ if customer_id_or_key is not None:
906
+ _path_params['customerIdOrKey'] = customer_id_or_key
907
+ # process the query parameters
908
+ # process the header parameters
909
+ # process the form parameters
910
+ # process the body parameter
911
+
912
+
913
+ # set the HTTP header `Accept`
914
+ if 'Accept' not in _header_params:
915
+ _header_params['Accept'] = self.api_client.select_header_accept(
916
+ [
917
+ 'application/problem+json'
918
+ ]
919
+ )
920
+
921
+
922
+ # authentication setting
923
+ _auth_settings: List[str] = [
924
+ 'CloudTokenAuth'
925
+ ]
926
+
927
+ return self.api_client.param_serialize(
928
+ method='DELETE',
929
+ resource_path='/api/v1/customers/{customerIdOrKey}',
930
+ path_params=_path_params,
931
+ query_params=_query_params,
932
+ header_params=_header_params,
933
+ body=_body_params,
934
+ post_params=_form_params,
935
+ files=_files,
936
+ auth_settings=_auth_settings,
937
+ collection_formats=_collection_formats,
938
+ _host=_host,
939
+ _request_auth=_request_auth
940
+ )
941
+
942
+
943
+
944
+
945
+ @validate_call
946
+ def delete_customer_app_data(
947
+ self,
948
+ customer_id_or_key: Any,
949
+ app_id: Annotated[str, Field(strict=True)],
950
+ _request_timeout: Union[
951
+ None,
952
+ Annotated[StrictFloat, Field(gt=0)],
953
+ Tuple[
954
+ Annotated[StrictFloat, Field(gt=0)],
955
+ Annotated[StrictFloat, Field(gt=0)]
956
+ ]
957
+ ] = None,
958
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
959
+ _content_type: Optional[StrictStr] = None,
960
+ _headers: Optional[Dict[StrictStr, Any]] = None,
961
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
962
+ ) -> None:
963
+ """Delete customer app data
964
+
965
+ Delete customer app data.
966
+
967
+ :param customer_id_or_key: (required)
968
+ :type customer_id_or_key: ULIDOrExternalKey
969
+ :param app_id: (required)
970
+ :type app_id: str
971
+ :param _request_timeout: timeout setting for this request. If one
972
+ number provided, it will be total request
973
+ timeout. It can also be a pair (tuple) of
974
+ (connection, read) timeouts.
975
+ :type _request_timeout: int, tuple(int, int), optional
976
+ :param _request_auth: set to override the auth_settings for an a single
977
+ request; this effectively ignores the
978
+ authentication in the spec for a single request.
979
+ :type _request_auth: dict, optional
980
+ :param _content_type: force content-type for the request.
981
+ :type _content_type: str, Optional
982
+ :param _headers: set to override the headers for a single
983
+ request; this effectively ignores the headers
984
+ in the spec for a single request.
985
+ :type _headers: dict, optional
986
+ :param _host_index: set to override the host_index for a single
987
+ request; this effectively ignores the host_index
988
+ in the spec for a single request.
989
+ :type _host_index: int, optional
990
+ :return: Returns the result object.
991
+ """ # noqa: E501
992
+
993
+ _param = self._delete_customer_app_data_serialize(
994
+ customer_id_or_key=customer_id_or_key,
995
+ app_id=app_id,
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
+ '204': None,
1004
+ '400': "UnexpectedProblemResponse",
1005
+ '401': "UnexpectedProblemResponse",
1006
+ '403': "UnexpectedProblemResponse",
1007
+ '404': "UnexpectedProblemResponse",
1008
+ '412': "UnexpectedProblemResponse",
1009
+ '500': "UnexpectedProblemResponse",
1010
+ '503': "UnexpectedProblemResponse",
1011
+ }
1012
+ response_data = self.api_client.call_api(
1013
+ *_param,
1014
+ _request_timeout=_request_timeout
1015
+ )
1016
+ response_data.read()
1017
+ return self.api_client.response_deserialize(
1018
+ response_data=response_data,
1019
+ response_types_map=_response_types_map,
1020
+ ).data
1021
+
1022
+
1023
+ @validate_call
1024
+ def delete_customer_app_data_with_http_info(
1025
+ self,
1026
+ customer_id_or_key: Any,
1027
+ app_id: Annotated[str, Field(strict=True)],
1028
+ _request_timeout: Union[
1029
+ None,
1030
+ Annotated[StrictFloat, Field(gt=0)],
1031
+ Tuple[
1032
+ Annotated[StrictFloat, Field(gt=0)],
1033
+ Annotated[StrictFloat, Field(gt=0)]
1034
+ ]
1035
+ ] = None,
1036
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1037
+ _content_type: Optional[StrictStr] = None,
1038
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1039
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1040
+ ) -> ApiResponse[None]:
1041
+ """Delete customer app data
1042
+
1043
+ Delete customer app data.
1044
+
1045
+ :param customer_id_or_key: (required)
1046
+ :type customer_id_or_key: ULIDOrExternalKey
1047
+ :param app_id: (required)
1048
+ :type app_id: str
1049
+ :param _request_timeout: timeout setting for this request. If one
1050
+ number provided, it will be total request
1051
+ timeout. It can also be a pair (tuple) of
1052
+ (connection, read) timeouts.
1053
+ :type _request_timeout: int, tuple(int, int), optional
1054
+ :param _request_auth: set to override the auth_settings for an a single
1055
+ request; this effectively ignores the
1056
+ authentication in the spec for a single request.
1057
+ :type _request_auth: dict, optional
1058
+ :param _content_type: force content-type for the request.
1059
+ :type _content_type: str, Optional
1060
+ :param _headers: set to override the headers for a single
1061
+ request; this effectively ignores the headers
1062
+ in the spec for a single request.
1063
+ :type _headers: dict, optional
1064
+ :param _host_index: set to override the host_index for a single
1065
+ request; this effectively ignores the host_index
1066
+ in the spec for a single request.
1067
+ :type _host_index: int, optional
1068
+ :return: Returns the result object.
1069
+ """ # noqa: E501
1070
+
1071
+ _param = self._delete_customer_app_data_serialize(
1072
+ customer_id_or_key=customer_id_or_key,
1073
+ app_id=app_id,
1074
+ _request_auth=_request_auth,
1075
+ _content_type=_content_type,
1076
+ _headers=_headers,
1077
+ _host_index=_host_index
1078
+ )
1079
+
1080
+ _response_types_map: Dict[str, Optional[str]] = {
1081
+ '204': None,
1082
+ '400': "UnexpectedProblemResponse",
1083
+ '401': "UnexpectedProblemResponse",
1084
+ '403': "UnexpectedProblemResponse",
1085
+ '404': "UnexpectedProblemResponse",
1086
+ '412': "UnexpectedProblemResponse",
1087
+ '500': "UnexpectedProblemResponse",
1088
+ '503': "UnexpectedProblemResponse",
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 delete_customer_app_data_without_preload_content(
1103
+ self,
1104
+ customer_id_or_key: Any,
1105
+ app_id: Annotated[str, Field(strict=True)],
1106
+ _request_timeout: Union[
1107
+ None,
1108
+ Annotated[StrictFloat, Field(gt=0)],
1109
+ Tuple[
1110
+ Annotated[StrictFloat, Field(gt=0)],
1111
+ Annotated[StrictFloat, Field(gt=0)]
1112
+ ]
1113
+ ] = None,
1114
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1115
+ _content_type: Optional[StrictStr] = None,
1116
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1117
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1118
+ ) -> RESTResponseType:
1119
+ """Delete customer app data
1120
+
1121
+ Delete customer app data.
1122
+
1123
+ :param customer_id_or_key: (required)
1124
+ :type customer_id_or_key: ULIDOrExternalKey
1125
+ :param app_id: (required)
1126
+ :type app_id: str
1127
+ :param _request_timeout: timeout setting for this request. If one
1128
+ number provided, it will be total request
1129
+ timeout. It can also be a pair (tuple) of
1130
+ (connection, read) timeouts.
1131
+ :type _request_timeout: int, tuple(int, int), optional
1132
+ :param _request_auth: set to override the auth_settings for an a single
1133
+ request; this effectively ignores the
1134
+ authentication in the spec for a single request.
1135
+ :type _request_auth: dict, optional
1136
+ :param _content_type: force content-type for the request.
1137
+ :type _content_type: str, Optional
1138
+ :param _headers: set to override the headers for a single
1139
+ request; this effectively ignores the headers
1140
+ in the spec for a single request.
1141
+ :type _headers: dict, optional
1142
+ :param _host_index: set to override the host_index for a single
1143
+ request; this effectively ignores the host_index
1144
+ in the spec for a single request.
1145
+ :type _host_index: int, optional
1146
+ :return: Returns the result object.
1147
+ """ # noqa: E501
1148
+
1149
+ _param = self._delete_customer_app_data_serialize(
1150
+ customer_id_or_key=customer_id_or_key,
1151
+ app_id=app_id,
1152
+ _request_auth=_request_auth,
1153
+ _content_type=_content_type,
1154
+ _headers=_headers,
1155
+ _host_index=_host_index
1156
+ )
1157
+
1158
+ _response_types_map: Dict[str, Optional[str]] = {
1159
+ '204': None,
1160
+ '400': "UnexpectedProblemResponse",
1161
+ '401': "UnexpectedProblemResponse",
1162
+ '403': "UnexpectedProblemResponse",
1163
+ '404': "UnexpectedProblemResponse",
1164
+ '412': "UnexpectedProblemResponse",
1165
+ '500': "UnexpectedProblemResponse",
1166
+ '503': "UnexpectedProblemResponse",
1167
+ }
1168
+ response_data = self.api_client.call_api(
1169
+ *_param,
1170
+ _request_timeout=_request_timeout
1171
+ )
1172
+ return response_data.response
1173
+
1174
+
1175
+ def _delete_customer_app_data_serialize(
1176
+ self,
1177
+ customer_id_or_key,
1178
+ app_id,
1179
+ _request_auth,
1180
+ _content_type,
1181
+ _headers,
1182
+ _host_index,
1183
+ ) -> RequestSerialized:
1184
+
1185
+ _host = None
1186
+
1187
+ _collection_formats: Dict[str, str] = {
1188
+ }
1189
+
1190
+ _path_params: Dict[str, str] = {}
1191
+ _query_params: List[Tuple[str, str]] = []
1192
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1193
+ _form_params: List[Tuple[str, str]] = []
1194
+ _files: Dict[
1195
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1196
+ ] = {}
1197
+ _body_params: Optional[bytes] = None
1198
+
1199
+ # process the path parameters
1200
+ if customer_id_or_key is not None:
1201
+ _path_params['customerIdOrKey'] = customer_id_or_key
1202
+ if app_id is not None:
1203
+ _path_params['appId'] = app_id
1204
+ # process the query parameters
1205
+ # process the header parameters
1206
+ # process the form parameters
1207
+ # process the body parameter
1208
+
1209
+
1210
+ # set the HTTP header `Accept`
1211
+ if 'Accept' not in _header_params:
1212
+ _header_params['Accept'] = self.api_client.select_header_accept(
1213
+ [
1214
+ 'application/problem+json'
1215
+ ]
1216
+ )
1217
+
1218
+
1219
+ # authentication setting
1220
+ _auth_settings: List[str] = [
1221
+ 'CloudTokenAuth'
1222
+ ]
1223
+
1224
+ return self.api_client.param_serialize(
1225
+ method='DELETE',
1226
+ resource_path='/api/v1/customers/{customerIdOrKey}/apps/{appId}',
1227
+ path_params=_path_params,
1228
+ query_params=_query_params,
1229
+ header_params=_header_params,
1230
+ body=_body_params,
1231
+ post_params=_form_params,
1232
+ files=_files,
1233
+ auth_settings=_auth_settings,
1234
+ collection_formats=_collection_formats,
1235
+ _host=_host,
1236
+ _request_auth=_request_auth
1237
+ )
1238
+
1239
+
1240
+
1241
+
1242
+ @validate_call
1243
+ def get_customer(
1244
+ self,
1245
+ customer_id_or_key: Any,
1246
+ expand: Annotated[Optional[List[CustomerExpand]], Field(description="What parts of the customer output to expand")] = None,
1247
+ _request_timeout: Union[
1248
+ None,
1249
+ Annotated[StrictFloat, Field(gt=0)],
1250
+ Tuple[
1251
+ Annotated[StrictFloat, Field(gt=0)],
1252
+ Annotated[StrictFloat, Field(gt=0)]
1253
+ ]
1254
+ ] = None,
1255
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1256
+ _content_type: Optional[StrictStr] = None,
1257
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1258
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1259
+ ) -> Customer:
1260
+ """Get customer
1261
+
1262
+ Get a customer by ID or key.
1263
+
1264
+ :param customer_id_or_key: (required)
1265
+ :type customer_id_or_key: ULIDOrExternalKey
1266
+ :param expand: What parts of the customer output to expand
1267
+ :type expand: List[CustomerExpand]
1268
+ :param _request_timeout: timeout setting for this request. If one
1269
+ number provided, it will be total request
1270
+ timeout. It can also be a pair (tuple) of
1271
+ (connection, read) timeouts.
1272
+ :type _request_timeout: int, tuple(int, int), optional
1273
+ :param _request_auth: set to override the auth_settings for an a single
1274
+ request; this effectively ignores the
1275
+ authentication in the spec for a single request.
1276
+ :type _request_auth: dict, optional
1277
+ :param _content_type: force content-type for the request.
1278
+ :type _content_type: str, Optional
1279
+ :param _headers: set to override the headers for a single
1280
+ request; this effectively ignores the headers
1281
+ in the spec for a single request.
1282
+ :type _headers: dict, optional
1283
+ :param _host_index: set to override the host_index for a single
1284
+ request; this effectively ignores the host_index
1285
+ in the spec for a single request.
1286
+ :type _host_index: int, optional
1287
+ :return: Returns the result object.
1288
+ """ # noqa: E501
1289
+
1290
+ _param = self._get_customer_serialize(
1291
+ customer_id_or_key=customer_id_or_key,
1292
+ expand=expand,
1293
+ _request_auth=_request_auth,
1294
+ _content_type=_content_type,
1295
+ _headers=_headers,
1296
+ _host_index=_host_index
1297
+ )
1298
+
1299
+ _response_types_map: Dict[str, Optional[str]] = {
1300
+ '200': "Customer",
1301
+ '400': "UnexpectedProblemResponse",
1302
+ '401': "UnexpectedProblemResponse",
1303
+ '403': "UnexpectedProblemResponse",
1304
+ '404': "UnexpectedProblemResponse",
1305
+ '412': "UnexpectedProblemResponse",
1306
+ '500': "UnexpectedProblemResponse",
1307
+ '503': "UnexpectedProblemResponse",
1308
+ }
1309
+ response_data = self.api_client.call_api(
1310
+ *_param,
1311
+ _request_timeout=_request_timeout
1312
+ )
1313
+ response_data.read()
1314
+ return self.api_client.response_deserialize(
1315
+ response_data=response_data,
1316
+ response_types_map=_response_types_map,
1317
+ ).data
1318
+
1319
+
1320
+ @validate_call
1321
+ def get_customer_with_http_info(
1322
+ self,
1323
+ customer_id_or_key: Any,
1324
+ expand: Annotated[Optional[List[CustomerExpand]], Field(description="What parts of the customer output to expand")] = None,
1325
+ _request_timeout: Union[
1326
+ None,
1327
+ Annotated[StrictFloat, Field(gt=0)],
1328
+ Tuple[
1329
+ Annotated[StrictFloat, Field(gt=0)],
1330
+ Annotated[StrictFloat, Field(gt=0)]
1331
+ ]
1332
+ ] = None,
1333
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1334
+ _content_type: Optional[StrictStr] = None,
1335
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1336
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1337
+ ) -> ApiResponse[Customer]:
1338
+ """Get customer
1339
+
1340
+ Get a customer by ID or key.
1341
+
1342
+ :param customer_id_or_key: (required)
1343
+ :type customer_id_or_key: ULIDOrExternalKey
1344
+ :param expand: What parts of the customer output to expand
1345
+ :type expand: List[CustomerExpand]
1346
+ :param _request_timeout: timeout setting for this request. If one
1347
+ number provided, it will be total request
1348
+ timeout. It can also be a pair (tuple) of
1349
+ (connection, read) timeouts.
1350
+ :type _request_timeout: int, tuple(int, int), optional
1351
+ :param _request_auth: set to override the auth_settings for an a single
1352
+ request; this effectively ignores the
1353
+ authentication in the spec for a single request.
1354
+ :type _request_auth: dict, optional
1355
+ :param _content_type: force content-type for the request.
1356
+ :type _content_type: str, Optional
1357
+ :param _headers: set to override the headers for a single
1358
+ request; this effectively ignores the headers
1359
+ in the spec for a single request.
1360
+ :type _headers: dict, optional
1361
+ :param _host_index: set to override the host_index for a single
1362
+ request; this effectively ignores the host_index
1363
+ in the spec for a single request.
1364
+ :type _host_index: int, optional
1365
+ :return: Returns the result object.
1366
+ """ # noqa: E501
1367
+
1368
+ _param = self._get_customer_serialize(
1369
+ customer_id_or_key=customer_id_or_key,
1370
+ expand=expand,
1371
+ _request_auth=_request_auth,
1372
+ _content_type=_content_type,
1373
+ _headers=_headers,
1374
+ _host_index=_host_index
1375
+ )
1376
+
1377
+ _response_types_map: Dict[str, Optional[str]] = {
1378
+ '200': "Customer",
1379
+ '400': "UnexpectedProblemResponse",
1380
+ '401': "UnexpectedProblemResponse",
1381
+ '403': "UnexpectedProblemResponse",
1382
+ '404': "UnexpectedProblemResponse",
1383
+ '412': "UnexpectedProblemResponse",
1384
+ '500': "UnexpectedProblemResponse",
1385
+ '503': "UnexpectedProblemResponse",
1386
+ }
1387
+ response_data = self.api_client.call_api(
1388
+ *_param,
1389
+ _request_timeout=_request_timeout
1390
+ )
1391
+ response_data.read()
1392
+ return self.api_client.response_deserialize(
1393
+ response_data=response_data,
1394
+ response_types_map=_response_types_map,
1395
+ )
1396
+
1397
+
1398
+ @validate_call
1399
+ def get_customer_without_preload_content(
1400
+ self,
1401
+ customer_id_or_key: Any,
1402
+ expand: Annotated[Optional[List[CustomerExpand]], Field(description="What parts of the customer output to expand")] = None,
1403
+ _request_timeout: Union[
1404
+ None,
1405
+ Annotated[StrictFloat, Field(gt=0)],
1406
+ Tuple[
1407
+ Annotated[StrictFloat, Field(gt=0)],
1408
+ Annotated[StrictFloat, Field(gt=0)]
1409
+ ]
1410
+ ] = None,
1411
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1412
+ _content_type: Optional[StrictStr] = None,
1413
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1414
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1415
+ ) -> RESTResponseType:
1416
+ """Get customer
1417
+
1418
+ Get a customer by ID or key.
1419
+
1420
+ :param customer_id_or_key: (required)
1421
+ :type customer_id_or_key: ULIDOrExternalKey
1422
+ :param expand: What parts of the customer output to expand
1423
+ :type expand: List[CustomerExpand]
1424
+ :param _request_timeout: timeout setting for this request. If one
1425
+ number provided, it will be total request
1426
+ timeout. It can also be a pair (tuple) of
1427
+ (connection, read) timeouts.
1428
+ :type _request_timeout: int, tuple(int, int), optional
1429
+ :param _request_auth: set to override the auth_settings for an a single
1430
+ request; this effectively ignores the
1431
+ authentication in the spec for a single request.
1432
+ :type _request_auth: dict, optional
1433
+ :param _content_type: force content-type for the request.
1434
+ :type _content_type: str, Optional
1435
+ :param _headers: set to override the headers for a single
1436
+ request; this effectively ignores the headers
1437
+ in the spec for a single request.
1438
+ :type _headers: dict, optional
1439
+ :param _host_index: set to override the host_index for a single
1440
+ request; this effectively ignores the host_index
1441
+ in the spec for a single request.
1442
+ :type _host_index: int, optional
1443
+ :return: Returns the result object.
1444
+ """ # noqa: E501
1445
+
1446
+ _param = self._get_customer_serialize(
1447
+ customer_id_or_key=customer_id_or_key,
1448
+ expand=expand,
1449
+ _request_auth=_request_auth,
1450
+ _content_type=_content_type,
1451
+ _headers=_headers,
1452
+ _host_index=_host_index
1453
+ )
1454
+
1455
+ _response_types_map: Dict[str, Optional[str]] = {
1456
+ '200': "Customer",
1457
+ '400': "UnexpectedProblemResponse",
1458
+ '401': "UnexpectedProblemResponse",
1459
+ '403': "UnexpectedProblemResponse",
1460
+ '404': "UnexpectedProblemResponse",
1461
+ '412': "UnexpectedProblemResponse",
1462
+ '500': "UnexpectedProblemResponse",
1463
+ '503': "UnexpectedProblemResponse",
1464
+ }
1465
+ response_data = self.api_client.call_api(
1466
+ *_param,
1467
+ _request_timeout=_request_timeout
1468
+ )
1469
+ return response_data.response
1470
+
1471
+
1472
+ def _get_customer_serialize(
1473
+ self,
1474
+ customer_id_or_key,
1475
+ expand,
1476
+ _request_auth,
1477
+ _content_type,
1478
+ _headers,
1479
+ _host_index,
1480
+ ) -> RequestSerialized:
1481
+
1482
+ _host = None
1483
+
1484
+ _collection_formats: Dict[str, str] = {
1485
+ 'expand': 'multi',
1486
+ }
1487
+
1488
+ _path_params: Dict[str, str] = {}
1489
+ _query_params: List[Tuple[str, str]] = []
1490
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1491
+ _form_params: List[Tuple[str, str]] = []
1492
+ _files: Dict[
1493
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1494
+ ] = {}
1495
+ _body_params: Optional[bytes] = None
1496
+
1497
+ # process the path parameters
1498
+ if customer_id_or_key is not None:
1499
+ _path_params['customerIdOrKey'] = customer_id_or_key
1500
+ # process the query parameters
1501
+ if expand is not None:
1502
+
1503
+ _query_params.append(('expand', expand))
1504
+
1505
+ # process the header parameters
1506
+ # process the form parameters
1507
+ # process the body parameter
1508
+
1509
+
1510
+ # set the HTTP header `Accept`
1511
+ if 'Accept' not in _header_params:
1512
+ _header_params['Accept'] = self.api_client.select_header_accept(
1513
+ [
1514
+ 'application/json',
1515
+ 'application/problem+json'
1516
+ ]
1517
+ )
1518
+
1519
+
1520
+ # authentication setting
1521
+ _auth_settings: List[str] = [
1522
+ 'CloudTokenAuth'
1523
+ ]
1524
+
1525
+ return self.api_client.param_serialize(
1526
+ method='GET',
1527
+ resource_path='/api/v1/customers/{customerIdOrKey}',
1528
+ path_params=_path_params,
1529
+ query_params=_query_params,
1530
+ header_params=_header_params,
1531
+ body=_body_params,
1532
+ post_params=_form_params,
1533
+ files=_files,
1534
+ auth_settings=_auth_settings,
1535
+ collection_formats=_collection_formats,
1536
+ _host=_host,
1537
+ _request_auth=_request_auth
1538
+ )
1539
+
1540
+
1541
+
1542
+
1543
+ @validate_call
1544
+ def get_customer_stripe_app_data(
1545
+ self,
1546
+ customer_id_or_key: Any,
1547
+ _request_timeout: Union[
1548
+ None,
1549
+ Annotated[StrictFloat, Field(gt=0)],
1550
+ Tuple[
1551
+ Annotated[StrictFloat, Field(gt=0)],
1552
+ Annotated[StrictFloat, Field(gt=0)]
1553
+ ]
1554
+ ] = None,
1555
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1556
+ _content_type: Optional[StrictStr] = None,
1557
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1558
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1559
+ ) -> StripeCustomerAppData:
1560
+ """Get customer stripe app data
1561
+
1562
+ Get stripe app data for a customer. Only returns data if the customer billing profile is linked to a stripe app.
1563
+
1564
+ :param customer_id_or_key: (required)
1565
+ :type customer_id_or_key: ULIDOrExternalKey
1566
+ :param _request_timeout: timeout setting for this request. If one
1567
+ number provided, it will be total request
1568
+ timeout. It can also be a pair (tuple) of
1569
+ (connection, read) timeouts.
1570
+ :type _request_timeout: int, tuple(int, int), optional
1571
+ :param _request_auth: set to override the auth_settings for an a single
1572
+ request; this effectively ignores the
1573
+ authentication in the spec for a single request.
1574
+ :type _request_auth: dict, optional
1575
+ :param _content_type: force content-type for the request.
1576
+ :type _content_type: str, Optional
1577
+ :param _headers: set to override the headers for a single
1578
+ request; this effectively ignores the headers
1579
+ in the spec for a single request.
1580
+ :type _headers: dict, optional
1581
+ :param _host_index: set to override the host_index for a single
1582
+ request; this effectively ignores the host_index
1583
+ in the spec for a single request.
1584
+ :type _host_index: int, optional
1585
+ :return: Returns the result object.
1586
+ """ # noqa: E501
1587
+
1588
+ _param = self._get_customer_stripe_app_data_serialize(
1589
+ customer_id_or_key=customer_id_or_key,
1590
+ _request_auth=_request_auth,
1591
+ _content_type=_content_type,
1592
+ _headers=_headers,
1593
+ _host_index=_host_index
1594
+ )
1595
+
1596
+ _response_types_map: Dict[str, Optional[str]] = {
1597
+ '200': "StripeCustomerAppData",
1598
+ '400': "UnexpectedProblemResponse",
1599
+ '401': "UnexpectedProblemResponse",
1600
+ '403': "UnexpectedProblemResponse",
1601
+ '404': "UnexpectedProblemResponse",
1602
+ '412': "UnexpectedProblemResponse",
1603
+ '500': "UnexpectedProblemResponse",
1604
+ '503': "UnexpectedProblemResponse",
1605
+ }
1606
+ response_data = self.api_client.call_api(
1607
+ *_param,
1608
+ _request_timeout=_request_timeout
1609
+ )
1610
+ response_data.read()
1611
+ return self.api_client.response_deserialize(
1612
+ response_data=response_data,
1613
+ response_types_map=_response_types_map,
1614
+ ).data
1615
+
1616
+
1617
+ @validate_call
1618
+ def get_customer_stripe_app_data_with_http_info(
1619
+ self,
1620
+ customer_id_or_key: Any,
1621
+ _request_timeout: Union[
1622
+ None,
1623
+ Annotated[StrictFloat, Field(gt=0)],
1624
+ Tuple[
1625
+ Annotated[StrictFloat, Field(gt=0)],
1626
+ Annotated[StrictFloat, Field(gt=0)]
1627
+ ]
1628
+ ] = None,
1629
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1630
+ _content_type: Optional[StrictStr] = None,
1631
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1632
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1633
+ ) -> ApiResponse[StripeCustomerAppData]:
1634
+ """Get customer stripe app data
1635
+
1636
+ Get stripe app data for a customer. Only returns data if the customer billing profile is linked to a stripe app.
1637
+
1638
+ :param customer_id_or_key: (required)
1639
+ :type customer_id_or_key: ULIDOrExternalKey
1640
+ :param _request_timeout: timeout setting for this request. If one
1641
+ number provided, it will be total request
1642
+ timeout. It can also be a pair (tuple) of
1643
+ (connection, read) timeouts.
1644
+ :type _request_timeout: int, tuple(int, int), optional
1645
+ :param _request_auth: set to override the auth_settings for an a single
1646
+ request; this effectively ignores the
1647
+ authentication in the spec for a single request.
1648
+ :type _request_auth: dict, optional
1649
+ :param _content_type: force content-type for the request.
1650
+ :type _content_type: str, Optional
1651
+ :param _headers: set to override the headers for a single
1652
+ request; this effectively ignores the headers
1653
+ in the spec for a single request.
1654
+ :type _headers: dict, optional
1655
+ :param _host_index: set to override the host_index for a single
1656
+ request; this effectively ignores the host_index
1657
+ in the spec for a single request.
1658
+ :type _host_index: int, optional
1659
+ :return: Returns the result object.
1660
+ """ # noqa: E501
1661
+
1662
+ _param = self._get_customer_stripe_app_data_serialize(
1663
+ customer_id_or_key=customer_id_or_key,
1664
+ _request_auth=_request_auth,
1665
+ _content_type=_content_type,
1666
+ _headers=_headers,
1667
+ _host_index=_host_index
1668
+ )
1669
+
1670
+ _response_types_map: Dict[str, Optional[str]] = {
1671
+ '200': "StripeCustomerAppData",
1672
+ '400': "UnexpectedProblemResponse",
1673
+ '401': "UnexpectedProblemResponse",
1674
+ '403': "UnexpectedProblemResponse",
1675
+ '404': "UnexpectedProblemResponse",
1676
+ '412': "UnexpectedProblemResponse",
1677
+ '500': "UnexpectedProblemResponse",
1678
+ '503': "UnexpectedProblemResponse",
1679
+ }
1680
+ response_data = self.api_client.call_api(
1681
+ *_param,
1682
+ _request_timeout=_request_timeout
1683
+ )
1684
+ response_data.read()
1685
+ return self.api_client.response_deserialize(
1686
+ response_data=response_data,
1687
+ response_types_map=_response_types_map,
1688
+ )
1689
+
1690
+
1691
+ @validate_call
1692
+ def get_customer_stripe_app_data_without_preload_content(
1693
+ self,
1694
+ customer_id_or_key: Any,
1695
+ _request_timeout: Union[
1696
+ None,
1697
+ Annotated[StrictFloat, Field(gt=0)],
1698
+ Tuple[
1699
+ Annotated[StrictFloat, Field(gt=0)],
1700
+ Annotated[StrictFloat, Field(gt=0)]
1701
+ ]
1702
+ ] = None,
1703
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1704
+ _content_type: Optional[StrictStr] = None,
1705
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1706
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1707
+ ) -> RESTResponseType:
1708
+ """Get customer stripe app data
1709
+
1710
+ Get stripe app data for a customer. Only returns data if the customer billing profile is linked to a stripe app.
1711
+
1712
+ :param customer_id_or_key: (required)
1713
+ :type customer_id_or_key: ULIDOrExternalKey
1714
+ :param _request_timeout: timeout setting for this request. If one
1715
+ number provided, it will be total request
1716
+ timeout. It can also be a pair (tuple) of
1717
+ (connection, read) timeouts.
1718
+ :type _request_timeout: int, tuple(int, int), optional
1719
+ :param _request_auth: set to override the auth_settings for an a single
1720
+ request; this effectively ignores the
1721
+ authentication in the spec for a single request.
1722
+ :type _request_auth: dict, optional
1723
+ :param _content_type: force content-type for the request.
1724
+ :type _content_type: str, Optional
1725
+ :param _headers: set to override the headers for a single
1726
+ request; this effectively ignores the headers
1727
+ in the spec for a single request.
1728
+ :type _headers: dict, optional
1729
+ :param _host_index: set to override the host_index for a single
1730
+ request; this effectively ignores the host_index
1731
+ in the spec for a single request.
1732
+ :type _host_index: int, optional
1733
+ :return: Returns the result object.
1734
+ """ # noqa: E501
1735
+
1736
+ _param = self._get_customer_stripe_app_data_serialize(
1737
+ customer_id_or_key=customer_id_or_key,
1738
+ _request_auth=_request_auth,
1739
+ _content_type=_content_type,
1740
+ _headers=_headers,
1741
+ _host_index=_host_index
1742
+ )
1743
+
1744
+ _response_types_map: Dict[str, Optional[str]] = {
1745
+ '200': "StripeCustomerAppData",
1746
+ '400': "UnexpectedProblemResponse",
1747
+ '401': "UnexpectedProblemResponse",
1748
+ '403': "UnexpectedProblemResponse",
1749
+ '404': "UnexpectedProblemResponse",
1750
+ '412': "UnexpectedProblemResponse",
1751
+ '500': "UnexpectedProblemResponse",
1752
+ '503': "UnexpectedProblemResponse",
1753
+ }
1754
+ response_data = self.api_client.call_api(
1755
+ *_param,
1756
+ _request_timeout=_request_timeout
1757
+ )
1758
+ return response_data.response
1759
+
1760
+
1761
+ def _get_customer_stripe_app_data_serialize(
1762
+ self,
1763
+ customer_id_or_key,
1764
+ _request_auth,
1765
+ _content_type,
1766
+ _headers,
1767
+ _host_index,
1768
+ ) -> RequestSerialized:
1769
+
1770
+ _host = None
1771
+
1772
+ _collection_formats: Dict[str, str] = {
1773
+ }
1774
+
1775
+ _path_params: Dict[str, str] = {}
1776
+ _query_params: List[Tuple[str, str]] = []
1777
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1778
+ _form_params: List[Tuple[str, str]] = []
1779
+ _files: Dict[
1780
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1781
+ ] = {}
1782
+ _body_params: Optional[bytes] = None
1783
+
1784
+ # process the path parameters
1785
+ if customer_id_or_key is not None:
1786
+ _path_params['customerIdOrKey'] = customer_id_or_key
1787
+ # process the query parameters
1788
+ # process the header parameters
1789
+ # process the form parameters
1790
+ # process the body parameter
1791
+
1792
+
1793
+ # set the HTTP header `Accept`
1794
+ if 'Accept' not in _header_params:
1795
+ _header_params['Accept'] = self.api_client.select_header_accept(
1796
+ [
1797
+ 'application/json',
1798
+ 'application/problem+json'
1799
+ ]
1800
+ )
1801
+
1802
+
1803
+ # authentication setting
1804
+ _auth_settings: List[str] = [
1805
+ 'CloudTokenAuth'
1806
+ ]
1807
+
1808
+ return self.api_client.param_serialize(
1809
+ method='GET',
1810
+ resource_path='/api/v1/customers/{customerIdOrKey}/stripe',
1811
+ path_params=_path_params,
1812
+ query_params=_query_params,
1813
+ header_params=_header_params,
1814
+ body=_body_params,
1815
+ post_params=_form_params,
1816
+ files=_files,
1817
+ auth_settings=_auth_settings,
1818
+ collection_formats=_collection_formats,
1819
+ _host=_host,
1820
+ _request_auth=_request_auth
1821
+ )
1822
+
1823
+
1824
+
1825
+
1826
+ @validate_call
1827
+ def list_customer_app_data(
1828
+ self,
1829
+ customer_id_or_key: Any,
1830
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
1831
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
1832
+ type: Annotated[Optional[AppType], Field(description="Filter customer data by app type.")] = None,
1833
+ _request_timeout: Union[
1834
+ None,
1835
+ Annotated[StrictFloat, Field(gt=0)],
1836
+ Tuple[
1837
+ Annotated[StrictFloat, Field(gt=0)],
1838
+ Annotated[StrictFloat, Field(gt=0)]
1839
+ ]
1840
+ ] = None,
1841
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1842
+ _content_type: Optional[StrictStr] = None,
1843
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1844
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1845
+ ) -> CustomerAppDataPaginatedResponse:
1846
+ """List customer app data
1847
+
1848
+ List customers app data.
1849
+
1850
+ :param customer_id_or_key: (required)
1851
+ :type customer_id_or_key: ULIDOrExternalKey
1852
+ :param page: Page index. Default is 1.
1853
+ :type page: int
1854
+ :param page_size: The maximum number of items per page. Default is 100.
1855
+ :type page_size: int
1856
+ :param type: Filter customer data by app type.
1857
+ :type type: AppType
1858
+ :param _request_timeout: timeout setting for this request. If one
1859
+ number provided, it will be total request
1860
+ timeout. It can also be a pair (tuple) of
1861
+ (connection, read) timeouts.
1862
+ :type _request_timeout: int, tuple(int, int), optional
1863
+ :param _request_auth: set to override the auth_settings for an a single
1864
+ request; this effectively ignores the
1865
+ authentication in the spec for a single request.
1866
+ :type _request_auth: dict, optional
1867
+ :param _content_type: force content-type for the request.
1868
+ :type _content_type: str, Optional
1869
+ :param _headers: set to override the headers for a single
1870
+ request; this effectively ignores the headers
1871
+ in the spec for a single request.
1872
+ :type _headers: dict, optional
1873
+ :param _host_index: set to override the host_index for a single
1874
+ request; this effectively ignores the host_index
1875
+ in the spec for a single request.
1876
+ :type _host_index: int, optional
1877
+ :return: Returns the result object.
1878
+ """ # noqa: E501
1879
+
1880
+ _param = self._list_customer_app_data_serialize(
1881
+ customer_id_or_key=customer_id_or_key,
1882
+ page=page,
1883
+ page_size=page_size,
1884
+ type=type,
1885
+ _request_auth=_request_auth,
1886
+ _content_type=_content_type,
1887
+ _headers=_headers,
1888
+ _host_index=_host_index
1889
+ )
1890
+
1891
+ _response_types_map: Dict[str, Optional[str]] = {
1892
+ '200': "CustomerAppDataPaginatedResponse",
1893
+ '400': "UnexpectedProblemResponse",
1894
+ '401': "UnexpectedProblemResponse",
1895
+ '403': "UnexpectedProblemResponse",
1896
+ '404': "UnexpectedProblemResponse",
1897
+ '412': "UnexpectedProblemResponse",
1898
+ '500': "UnexpectedProblemResponse",
1899
+ '503': "UnexpectedProblemResponse",
1900
+ }
1901
+ response_data = self.api_client.call_api(
1902
+ *_param,
1903
+ _request_timeout=_request_timeout
1904
+ )
1905
+ response_data.read()
1906
+ return self.api_client.response_deserialize(
1907
+ response_data=response_data,
1908
+ response_types_map=_response_types_map,
1909
+ ).data
1910
+
1911
+
1912
+ @validate_call
1913
+ def list_customer_app_data_with_http_info(
1914
+ self,
1915
+ customer_id_or_key: Any,
1916
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
1917
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
1918
+ type: Annotated[Optional[AppType], Field(description="Filter customer data by app type.")] = None,
1919
+ _request_timeout: Union[
1920
+ None,
1921
+ Annotated[StrictFloat, Field(gt=0)],
1922
+ Tuple[
1923
+ Annotated[StrictFloat, Field(gt=0)],
1924
+ Annotated[StrictFloat, Field(gt=0)]
1925
+ ]
1926
+ ] = None,
1927
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1928
+ _content_type: Optional[StrictStr] = None,
1929
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1930
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1931
+ ) -> ApiResponse[CustomerAppDataPaginatedResponse]:
1932
+ """List customer app data
1933
+
1934
+ List customers app data.
1935
+
1936
+ :param customer_id_or_key: (required)
1937
+ :type customer_id_or_key: ULIDOrExternalKey
1938
+ :param page: Page index. Default is 1.
1939
+ :type page: int
1940
+ :param page_size: The maximum number of items per page. Default is 100.
1941
+ :type page_size: int
1942
+ :param type: Filter customer data by app type.
1943
+ :type type: AppType
1944
+ :param _request_timeout: timeout setting for this request. If one
1945
+ number provided, it will be total request
1946
+ timeout. It can also be a pair (tuple) of
1947
+ (connection, read) timeouts.
1948
+ :type _request_timeout: int, tuple(int, int), optional
1949
+ :param _request_auth: set to override the auth_settings for an a single
1950
+ request; this effectively ignores the
1951
+ authentication in the spec for a single request.
1952
+ :type _request_auth: dict, optional
1953
+ :param _content_type: force content-type for the request.
1954
+ :type _content_type: str, Optional
1955
+ :param _headers: set to override the headers for a single
1956
+ request; this effectively ignores the headers
1957
+ in the spec for a single request.
1958
+ :type _headers: dict, optional
1959
+ :param _host_index: set to override the host_index for a single
1960
+ request; this effectively ignores the host_index
1961
+ in the spec for a single request.
1962
+ :type _host_index: int, optional
1963
+ :return: Returns the result object.
1964
+ """ # noqa: E501
1965
+
1966
+ _param = self._list_customer_app_data_serialize(
1967
+ customer_id_or_key=customer_id_or_key,
1968
+ page=page,
1969
+ page_size=page_size,
1970
+ type=type,
1971
+ _request_auth=_request_auth,
1972
+ _content_type=_content_type,
1973
+ _headers=_headers,
1974
+ _host_index=_host_index
1975
+ )
1976
+
1977
+ _response_types_map: Dict[str, Optional[str]] = {
1978
+ '200': "CustomerAppDataPaginatedResponse",
1979
+ '400': "UnexpectedProblemResponse",
1980
+ '401': "UnexpectedProblemResponse",
1981
+ '403': "UnexpectedProblemResponse",
1982
+ '404': "UnexpectedProblemResponse",
1983
+ '412': "UnexpectedProblemResponse",
1984
+ '500': "UnexpectedProblemResponse",
1985
+ '503': "UnexpectedProblemResponse",
1986
+ }
1987
+ response_data = self.api_client.call_api(
1988
+ *_param,
1989
+ _request_timeout=_request_timeout
1990
+ )
1991
+ response_data.read()
1992
+ return self.api_client.response_deserialize(
1993
+ response_data=response_data,
1994
+ response_types_map=_response_types_map,
1995
+ )
1996
+
1997
+
1998
+ @validate_call
1999
+ def list_customer_app_data_without_preload_content(
2000
+ self,
2001
+ customer_id_or_key: Any,
2002
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2003
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2004
+ type: Annotated[Optional[AppType], Field(description="Filter customer data by app type.")] = None,
2005
+ _request_timeout: Union[
2006
+ None,
2007
+ Annotated[StrictFloat, Field(gt=0)],
2008
+ Tuple[
2009
+ Annotated[StrictFloat, Field(gt=0)],
2010
+ Annotated[StrictFloat, Field(gt=0)]
2011
+ ]
2012
+ ] = None,
2013
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2014
+ _content_type: Optional[StrictStr] = None,
2015
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2016
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2017
+ ) -> RESTResponseType:
2018
+ """List customer app data
2019
+
2020
+ List customers app data.
2021
+
2022
+ :param customer_id_or_key: (required)
2023
+ :type customer_id_or_key: ULIDOrExternalKey
2024
+ :param page: Page index. Default is 1.
2025
+ :type page: int
2026
+ :param page_size: The maximum number of items per page. Default is 100.
2027
+ :type page_size: int
2028
+ :param type: Filter customer data by app type.
2029
+ :type type: AppType
2030
+ :param _request_timeout: timeout setting for this request. If one
2031
+ number provided, it will be total request
2032
+ timeout. It can also be a pair (tuple) of
2033
+ (connection, read) timeouts.
2034
+ :type _request_timeout: int, tuple(int, int), optional
2035
+ :param _request_auth: set to override the auth_settings for an a single
2036
+ request; this effectively ignores the
2037
+ authentication in the spec for a single request.
2038
+ :type _request_auth: dict, optional
2039
+ :param _content_type: force content-type for the request.
2040
+ :type _content_type: str, Optional
2041
+ :param _headers: set to override the headers for a single
2042
+ request; this effectively ignores the headers
2043
+ in the spec for a single request.
2044
+ :type _headers: dict, optional
2045
+ :param _host_index: set to override the host_index for a single
2046
+ request; this effectively ignores the host_index
2047
+ in the spec for a single request.
2048
+ :type _host_index: int, optional
2049
+ :return: Returns the result object.
2050
+ """ # noqa: E501
2051
+
2052
+ _param = self._list_customer_app_data_serialize(
2053
+ customer_id_or_key=customer_id_or_key,
2054
+ page=page,
2055
+ page_size=page_size,
2056
+ type=type,
2057
+ _request_auth=_request_auth,
2058
+ _content_type=_content_type,
2059
+ _headers=_headers,
2060
+ _host_index=_host_index
2061
+ )
2062
+
2063
+ _response_types_map: Dict[str, Optional[str]] = {
2064
+ '200': "CustomerAppDataPaginatedResponse",
2065
+ '400': "UnexpectedProblemResponse",
2066
+ '401': "UnexpectedProblemResponse",
2067
+ '403': "UnexpectedProblemResponse",
2068
+ '404': "UnexpectedProblemResponse",
2069
+ '412': "UnexpectedProblemResponse",
2070
+ '500': "UnexpectedProblemResponse",
2071
+ '503': "UnexpectedProblemResponse",
2072
+ }
2073
+ response_data = self.api_client.call_api(
2074
+ *_param,
2075
+ _request_timeout=_request_timeout
2076
+ )
2077
+ return response_data.response
2078
+
2079
+
2080
+ def _list_customer_app_data_serialize(
2081
+ self,
2082
+ customer_id_or_key,
2083
+ page,
2084
+ page_size,
2085
+ type,
2086
+ _request_auth,
2087
+ _content_type,
2088
+ _headers,
2089
+ _host_index,
2090
+ ) -> RequestSerialized:
2091
+
2092
+ _host = None
2093
+
2094
+ _collection_formats: Dict[str, str] = {
2095
+ }
2096
+
2097
+ _path_params: Dict[str, str] = {}
2098
+ _query_params: List[Tuple[str, str]] = []
2099
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2100
+ _form_params: List[Tuple[str, str]] = []
2101
+ _files: Dict[
2102
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2103
+ ] = {}
2104
+ _body_params: Optional[bytes] = None
2105
+
2106
+ # process the path parameters
2107
+ if customer_id_or_key is not None:
2108
+ _path_params['customerIdOrKey'] = customer_id_or_key
2109
+ # process the query parameters
2110
+ if page is not None:
2111
+
2112
+ _query_params.append(('page', page))
2113
+
2114
+ if page_size is not None:
2115
+
2116
+ _query_params.append(('pageSize', page_size))
2117
+
2118
+ if type is not None:
2119
+
2120
+ _query_params.append(('type', type.value))
2121
+
2122
+ # process the header parameters
2123
+ # process the form parameters
2124
+ # process the body parameter
2125
+
2126
+
2127
+ # set the HTTP header `Accept`
2128
+ if 'Accept' not in _header_params:
2129
+ _header_params['Accept'] = self.api_client.select_header_accept(
2130
+ [
2131
+ 'application/json',
2132
+ 'application/problem+json'
2133
+ ]
2134
+ )
2135
+
2136
+
2137
+ # authentication setting
2138
+ _auth_settings: List[str] = [
2139
+ 'CloudTokenAuth'
2140
+ ]
2141
+
2142
+ return self.api_client.param_serialize(
2143
+ method='GET',
2144
+ resource_path='/api/v1/customers/{customerIdOrKey}/apps',
2145
+ path_params=_path_params,
2146
+ query_params=_query_params,
2147
+ header_params=_header_params,
2148
+ body=_body_params,
2149
+ post_params=_form_params,
2150
+ files=_files,
2151
+ auth_settings=_auth_settings,
2152
+ collection_formats=_collection_formats,
2153
+ _host=_host,
2154
+ _request_auth=_request_auth
2155
+ )
2156
+
2157
+
2158
+
2159
+
2160
+ @validate_call
2161
+ def list_customer_subscriptions(
2162
+ self,
2163
+ customer_id_or_key: Any,
2164
+ status: Optional[List[SubscriptionStatus]] = None,
2165
+ order: Annotated[Optional[SortOrder], Field(description="The order direction.")] = None,
2166
+ order_by: Annotated[Optional[CustomerSubscriptionOrderBy], Field(description="The order by field.")] = None,
2167
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2168
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2169
+ _request_timeout: Union[
2170
+ None,
2171
+ Annotated[StrictFloat, Field(gt=0)],
2172
+ Tuple[
2173
+ Annotated[StrictFloat, Field(gt=0)],
2174
+ Annotated[StrictFloat, Field(gt=0)]
2175
+ ]
2176
+ ] = None,
2177
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2178
+ _content_type: Optional[StrictStr] = None,
2179
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2180
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2181
+ ) -> SubscriptionPaginatedResponse:
2182
+ """List customer subscriptions
2183
+
2184
+ Lists all subscriptions for a customer.
2185
+
2186
+ :param customer_id_or_key: (required)
2187
+ :type customer_id_or_key: ULIDOrExternalKey
2188
+ :param status:
2189
+ :type status: List[SubscriptionStatus]
2190
+ :param order: The order direction.
2191
+ :type order: SortOrder
2192
+ :param order_by: The order by field.
2193
+ :type order_by: CustomerSubscriptionOrderBy
2194
+ :param page: Page index. Default is 1.
2195
+ :type page: int
2196
+ :param page_size: The maximum number of items per page. Default is 100.
2197
+ :type page_size: int
2198
+ :param _request_timeout: timeout setting for this request. If one
2199
+ number provided, it will be total request
2200
+ timeout. It can also be a pair (tuple) of
2201
+ (connection, read) timeouts.
2202
+ :type _request_timeout: int, tuple(int, int), optional
2203
+ :param _request_auth: set to override the auth_settings for an a single
2204
+ request; this effectively ignores the
2205
+ authentication in the spec for a single request.
2206
+ :type _request_auth: dict, optional
2207
+ :param _content_type: force content-type for the request.
2208
+ :type _content_type: str, Optional
2209
+ :param _headers: set to override the headers for a single
2210
+ request; this effectively ignores the headers
2211
+ in the spec for a single request.
2212
+ :type _headers: dict, optional
2213
+ :param _host_index: set to override the host_index for a single
2214
+ request; this effectively ignores the host_index
2215
+ in the spec for a single request.
2216
+ :type _host_index: int, optional
2217
+ :return: Returns the result object.
2218
+ """ # noqa: E501
2219
+
2220
+ _param = self._list_customer_subscriptions_serialize(
2221
+ customer_id_or_key=customer_id_or_key,
2222
+ status=status,
2223
+ order=order,
2224
+ order_by=order_by,
2225
+ page=page,
2226
+ page_size=page_size,
2227
+ _request_auth=_request_auth,
2228
+ _content_type=_content_type,
2229
+ _headers=_headers,
2230
+ _host_index=_host_index
2231
+ )
2232
+
2233
+ _response_types_map: Dict[str, Optional[str]] = {
2234
+ '200': "SubscriptionPaginatedResponse",
2235
+ '400': "UnexpectedProblemResponse",
2236
+ '401': "UnexpectedProblemResponse",
2237
+ '403': "UnexpectedProblemResponse",
2238
+ '404': "UnexpectedProblemResponse",
2239
+ '412': "UnexpectedProblemResponse",
2240
+ '500': "UnexpectedProblemResponse",
2241
+ '503': "UnexpectedProblemResponse",
2242
+ }
2243
+ response_data = self.api_client.call_api(
2244
+ *_param,
2245
+ _request_timeout=_request_timeout
2246
+ )
2247
+ response_data.read()
2248
+ return self.api_client.response_deserialize(
2249
+ response_data=response_data,
2250
+ response_types_map=_response_types_map,
2251
+ ).data
2252
+
2253
+
2254
+ @validate_call
2255
+ def list_customer_subscriptions_with_http_info(
2256
+ self,
2257
+ customer_id_or_key: Any,
2258
+ status: Optional[List[SubscriptionStatus]] = None,
2259
+ order: Annotated[Optional[SortOrder], Field(description="The order direction.")] = None,
2260
+ order_by: Annotated[Optional[CustomerSubscriptionOrderBy], Field(description="The order by field.")] = None,
2261
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2262
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2263
+ _request_timeout: Union[
2264
+ None,
2265
+ Annotated[StrictFloat, Field(gt=0)],
2266
+ Tuple[
2267
+ Annotated[StrictFloat, Field(gt=0)],
2268
+ Annotated[StrictFloat, Field(gt=0)]
2269
+ ]
2270
+ ] = None,
2271
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2272
+ _content_type: Optional[StrictStr] = None,
2273
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2274
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2275
+ ) -> ApiResponse[SubscriptionPaginatedResponse]:
2276
+ """List customer subscriptions
2277
+
2278
+ Lists all subscriptions for a customer.
2279
+
2280
+ :param customer_id_or_key: (required)
2281
+ :type customer_id_or_key: ULIDOrExternalKey
2282
+ :param status:
2283
+ :type status: List[SubscriptionStatus]
2284
+ :param order: The order direction.
2285
+ :type order: SortOrder
2286
+ :param order_by: The order by field.
2287
+ :type order_by: CustomerSubscriptionOrderBy
2288
+ :param page: Page index. Default is 1.
2289
+ :type page: int
2290
+ :param page_size: The maximum number of items per page. Default is 100.
2291
+ :type page_size: int
2292
+ :param _request_timeout: timeout setting for this request. If one
2293
+ number provided, it will be total request
2294
+ timeout. It can also be a pair (tuple) of
2295
+ (connection, read) timeouts.
2296
+ :type _request_timeout: int, tuple(int, int), optional
2297
+ :param _request_auth: set to override the auth_settings for an a single
2298
+ request; this effectively ignores the
2299
+ authentication in the spec for a single request.
2300
+ :type _request_auth: dict, optional
2301
+ :param _content_type: force content-type for the request.
2302
+ :type _content_type: str, Optional
2303
+ :param _headers: set to override the headers for a single
2304
+ request; this effectively ignores the headers
2305
+ in the spec for a single request.
2306
+ :type _headers: dict, optional
2307
+ :param _host_index: set to override the host_index for a single
2308
+ request; this effectively ignores the host_index
2309
+ in the spec for a single request.
2310
+ :type _host_index: int, optional
2311
+ :return: Returns the result object.
2312
+ """ # noqa: E501
2313
+
2314
+ _param = self._list_customer_subscriptions_serialize(
2315
+ customer_id_or_key=customer_id_or_key,
2316
+ status=status,
2317
+ order=order,
2318
+ order_by=order_by,
2319
+ page=page,
2320
+ page_size=page_size,
2321
+ _request_auth=_request_auth,
2322
+ _content_type=_content_type,
2323
+ _headers=_headers,
2324
+ _host_index=_host_index
2325
+ )
2326
+
2327
+ _response_types_map: Dict[str, Optional[str]] = {
2328
+ '200': "SubscriptionPaginatedResponse",
2329
+ '400': "UnexpectedProblemResponse",
2330
+ '401': "UnexpectedProblemResponse",
2331
+ '403': "UnexpectedProblemResponse",
2332
+ '404': "UnexpectedProblemResponse",
2333
+ '412': "UnexpectedProblemResponse",
2334
+ '500': "UnexpectedProblemResponse",
2335
+ '503': "UnexpectedProblemResponse",
2336
+ }
2337
+ response_data = self.api_client.call_api(
2338
+ *_param,
2339
+ _request_timeout=_request_timeout
2340
+ )
2341
+ response_data.read()
2342
+ return self.api_client.response_deserialize(
2343
+ response_data=response_data,
2344
+ response_types_map=_response_types_map,
2345
+ )
2346
+
2347
+
2348
+ @validate_call
2349
+ def list_customer_subscriptions_without_preload_content(
2350
+ self,
2351
+ customer_id_or_key: Any,
2352
+ status: Optional[List[SubscriptionStatus]] = None,
2353
+ order: Annotated[Optional[SortOrder], Field(description="The order direction.")] = None,
2354
+ order_by: Annotated[Optional[CustomerSubscriptionOrderBy], Field(description="The order by field.")] = None,
2355
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2356
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2357
+ _request_timeout: Union[
2358
+ None,
2359
+ Annotated[StrictFloat, Field(gt=0)],
2360
+ Tuple[
2361
+ Annotated[StrictFloat, Field(gt=0)],
2362
+ Annotated[StrictFloat, Field(gt=0)]
2363
+ ]
2364
+ ] = None,
2365
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2366
+ _content_type: Optional[StrictStr] = None,
2367
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2368
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2369
+ ) -> RESTResponseType:
2370
+ """List customer subscriptions
2371
+
2372
+ Lists all subscriptions for a customer.
2373
+
2374
+ :param customer_id_or_key: (required)
2375
+ :type customer_id_or_key: ULIDOrExternalKey
2376
+ :param status:
2377
+ :type status: List[SubscriptionStatus]
2378
+ :param order: The order direction.
2379
+ :type order: SortOrder
2380
+ :param order_by: The order by field.
2381
+ :type order_by: CustomerSubscriptionOrderBy
2382
+ :param page: Page index. Default is 1.
2383
+ :type page: int
2384
+ :param page_size: The maximum number of items per page. Default is 100.
2385
+ :type page_size: int
2386
+ :param _request_timeout: timeout setting for this request. If one
2387
+ number provided, it will be total request
2388
+ timeout. It can also be a pair (tuple) of
2389
+ (connection, read) timeouts.
2390
+ :type _request_timeout: int, tuple(int, int), optional
2391
+ :param _request_auth: set to override the auth_settings for an a single
2392
+ request; this effectively ignores the
2393
+ authentication in the spec for a single request.
2394
+ :type _request_auth: dict, optional
2395
+ :param _content_type: force content-type for the request.
2396
+ :type _content_type: str, Optional
2397
+ :param _headers: set to override the headers for a single
2398
+ request; this effectively ignores the headers
2399
+ in the spec for a single request.
2400
+ :type _headers: dict, optional
2401
+ :param _host_index: set to override the host_index for a single
2402
+ request; this effectively ignores the host_index
2403
+ in the spec for a single request.
2404
+ :type _host_index: int, optional
2405
+ :return: Returns the result object.
2406
+ """ # noqa: E501
2407
+
2408
+ _param = self._list_customer_subscriptions_serialize(
2409
+ customer_id_or_key=customer_id_or_key,
2410
+ status=status,
2411
+ order=order,
2412
+ order_by=order_by,
2413
+ page=page,
2414
+ page_size=page_size,
2415
+ _request_auth=_request_auth,
2416
+ _content_type=_content_type,
2417
+ _headers=_headers,
2418
+ _host_index=_host_index
2419
+ )
2420
+
2421
+ _response_types_map: Dict[str, Optional[str]] = {
2422
+ '200': "SubscriptionPaginatedResponse",
2423
+ '400': "UnexpectedProblemResponse",
2424
+ '401': "UnexpectedProblemResponse",
2425
+ '403': "UnexpectedProblemResponse",
2426
+ '404': "UnexpectedProblemResponse",
2427
+ '412': "UnexpectedProblemResponse",
2428
+ '500': "UnexpectedProblemResponse",
2429
+ '503': "UnexpectedProblemResponse",
2430
+ }
2431
+ response_data = self.api_client.call_api(
2432
+ *_param,
2433
+ _request_timeout=_request_timeout
2434
+ )
2435
+ return response_data.response
2436
+
2437
+
2438
+ def _list_customer_subscriptions_serialize(
2439
+ self,
2440
+ customer_id_or_key,
2441
+ status,
2442
+ order,
2443
+ order_by,
2444
+ page,
2445
+ page_size,
2446
+ _request_auth,
2447
+ _content_type,
2448
+ _headers,
2449
+ _host_index,
2450
+ ) -> RequestSerialized:
2451
+
2452
+ _host = None
2453
+
2454
+ _collection_formats: Dict[str, str] = {
2455
+ 'status': 'multi',
2456
+ }
2457
+
2458
+ _path_params: Dict[str, str] = {}
2459
+ _query_params: List[Tuple[str, str]] = []
2460
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2461
+ _form_params: List[Tuple[str, str]] = []
2462
+ _files: Dict[
2463
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2464
+ ] = {}
2465
+ _body_params: Optional[bytes] = None
2466
+
2467
+ # process the path parameters
2468
+ if customer_id_or_key is not None:
2469
+ _path_params['customerIdOrKey'] = customer_id_or_key
2470
+ # process the query parameters
2471
+ if status is not None:
2472
+
2473
+ _query_params.append(('status', status))
2474
+
2475
+ if order is not None:
2476
+
2477
+ _query_params.append(('order', order.value))
2478
+
2479
+ if order_by is not None:
2480
+
2481
+ _query_params.append(('orderBy', order_by.value))
2482
+
2483
+ if page is not None:
2484
+
2485
+ _query_params.append(('page', page))
2486
+
2487
+ if page_size is not None:
2488
+
2489
+ _query_params.append(('pageSize', page_size))
2490
+
2491
+ # process the header parameters
2492
+ # process the form parameters
2493
+ # process the body parameter
2494
+
2495
+
2496
+ # set the HTTP header `Accept`
2497
+ if 'Accept' not in _header_params:
2498
+ _header_params['Accept'] = self.api_client.select_header_accept(
2499
+ [
2500
+ 'application/json',
2501
+ 'application/problem+json'
2502
+ ]
2503
+ )
2504
+
2505
+
2506
+ # authentication setting
2507
+ _auth_settings: List[str] = [
2508
+ 'CloudTokenAuth'
2509
+ ]
2510
+
2511
+ return self.api_client.param_serialize(
2512
+ method='GET',
2513
+ resource_path='/api/v1/customers/{customerIdOrKey}/subscriptions',
2514
+ path_params=_path_params,
2515
+ query_params=_query_params,
2516
+ header_params=_header_params,
2517
+ body=_body_params,
2518
+ post_params=_form_params,
2519
+ files=_files,
2520
+ auth_settings=_auth_settings,
2521
+ collection_formats=_collection_formats,
2522
+ _host=_host,
2523
+ _request_auth=_request_auth
2524
+ )
2525
+
2526
+
2527
+
2528
+
2529
+ @validate_call
2530
+ def list_customers_get(
2531
+ self,
2532
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2533
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2534
+ order: Annotated[Optional[SortOrder], Field(description="The order direction.")] = None,
2535
+ order_by: Annotated[Optional[CustomerOrderBy], Field(description="The order by field.")] = None,
2536
+ include_deleted: Annotated[Optional[StrictBool], Field(description="Include deleted customers.")] = None,
2537
+ key: Annotated[Optional[StrictStr], Field(description="Filter customers by key. Case-insensitive partial match.")] = None,
2538
+ keys: Annotated[Optional[List[StrictStr]], Field(description="Filter customers by exact keys.")] = None,
2539
+ name: Annotated[Optional[StrictStr], Field(description="Filter customers by name. Case-insensitive partial match.")] = None,
2540
+ primary_email: Annotated[Optional[StrictStr], Field(description="Filter customers by primary email. Case-insensitive partial match.")] = None,
2541
+ subject: Annotated[Optional[StrictStr], Field(description="Filter customers by usage attribution subject. Case-insensitive partial match.")] = None,
2542
+ plan_key: Annotated[Optional[StrictStr], Field(description="Filter customers by the plan key of their susbcription.")] = None,
2543
+ expand: Annotated[Optional[List[CustomerExpand]], Field(description="What parts of the list output to expand in listings")] = None,
2544
+ _request_timeout: Union[
2545
+ None,
2546
+ Annotated[StrictFloat, Field(gt=0)],
2547
+ Tuple[
2548
+ Annotated[StrictFloat, Field(gt=0)],
2549
+ Annotated[StrictFloat, Field(gt=0)]
2550
+ ]
2551
+ ] = None,
2552
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2553
+ _content_type: Optional[StrictStr] = None,
2554
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2555
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2556
+ ) -> CustomerPaginatedResponse:
2557
+ """List customers
2558
+
2559
+ List customers.
2560
+
2561
+ :param page: Page index. Default is 1.
2562
+ :type page: int
2563
+ :param page_size: The maximum number of items per page. Default is 100.
2564
+ :type page_size: int
2565
+ :param order: The order direction.
2566
+ :type order: SortOrder
2567
+ :param order_by: The order by field.
2568
+ :type order_by: CustomerOrderBy
2569
+ :param include_deleted: Include deleted customers.
2570
+ :type include_deleted: bool
2571
+ :param key: Filter customers by key. Case-insensitive partial match.
2572
+ :type key: str
2573
+ :param keys: Filter customers by exact keys.
2574
+ :type keys: List[str]
2575
+ :param name: Filter customers by name. Case-insensitive partial match.
2576
+ :type name: str
2577
+ :param primary_email: Filter customers by primary email. Case-insensitive partial match.
2578
+ :type primary_email: str
2579
+ :param subject: Filter customers by usage attribution subject. Case-insensitive partial match.
2580
+ :type subject: str
2581
+ :param plan_key: Filter customers by the plan key of their susbcription.
2582
+ :type plan_key: str
2583
+ :param expand: What parts of the list output to expand in listings
2584
+ :type expand: List[CustomerExpand]
2585
+ :param _request_timeout: timeout setting for this request. If one
2586
+ number provided, it will be total request
2587
+ timeout. It can also be a pair (tuple) of
2588
+ (connection, read) timeouts.
2589
+ :type _request_timeout: int, tuple(int, int), optional
2590
+ :param _request_auth: set to override the auth_settings for an a single
2591
+ request; this effectively ignores the
2592
+ authentication in the spec for a single request.
2593
+ :type _request_auth: dict, optional
2594
+ :param _content_type: force content-type for the request.
2595
+ :type _content_type: str, Optional
2596
+ :param _headers: set to override the headers for a single
2597
+ request; this effectively ignores the headers
2598
+ in the spec for a single request.
2599
+ :type _headers: dict, optional
2600
+ :param _host_index: set to override the host_index for a single
2601
+ request; this effectively ignores the host_index
2602
+ in the spec for a single request.
2603
+ :type _host_index: int, optional
2604
+ :return: Returns the result object.
2605
+ """ # noqa: E501
2606
+
2607
+ _param = self._list_customers_get_serialize(
2608
+ page=page,
2609
+ page_size=page_size,
2610
+ order=order,
2611
+ order_by=order_by,
2612
+ include_deleted=include_deleted,
2613
+ key=key,
2614
+ keys=keys,
2615
+ name=name,
2616
+ primary_email=primary_email,
2617
+ subject=subject,
2618
+ plan_key=plan_key,
2619
+ expand=expand,
2620
+ _request_auth=_request_auth,
2621
+ _content_type=_content_type,
2622
+ _headers=_headers,
2623
+ _host_index=_host_index
2624
+ )
2625
+
2626
+ _response_types_map: Dict[str, Optional[str]] = {
2627
+ '200': "CustomerPaginatedResponse",
2628
+ '400': "UnexpectedProblemResponse",
2629
+ '401': "UnexpectedProblemResponse",
2630
+ '403': "UnexpectedProblemResponse",
2631
+ '412': "UnexpectedProblemResponse",
2632
+ '500': "UnexpectedProblemResponse",
2633
+ '503': "UnexpectedProblemResponse",
2634
+ }
2635
+ response_data = self.api_client.call_api(
2636
+ *_param,
2637
+ _request_timeout=_request_timeout
2638
+ )
2639
+ response_data.read()
2640
+ return self.api_client.response_deserialize(
2641
+ response_data=response_data,
2642
+ response_types_map=_response_types_map,
2643
+ ).data
2644
+
2645
+
2646
+ @validate_call
2647
+ def list_customers_get_with_http_info(
2648
+ self,
2649
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2650
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2651
+ order: Annotated[Optional[SortOrder], Field(description="The order direction.")] = None,
2652
+ order_by: Annotated[Optional[CustomerOrderBy], Field(description="The order by field.")] = None,
2653
+ include_deleted: Annotated[Optional[StrictBool], Field(description="Include deleted customers.")] = None,
2654
+ key: Annotated[Optional[StrictStr], Field(description="Filter customers by key. Case-insensitive partial match.")] = None,
2655
+ keys: Annotated[Optional[List[StrictStr]], Field(description="Filter customers by exact keys.")] = None,
2656
+ name: Annotated[Optional[StrictStr], Field(description="Filter customers by name. Case-insensitive partial match.")] = None,
2657
+ primary_email: Annotated[Optional[StrictStr], Field(description="Filter customers by primary email. Case-insensitive partial match.")] = None,
2658
+ subject: Annotated[Optional[StrictStr], Field(description="Filter customers by usage attribution subject. Case-insensitive partial match.")] = None,
2659
+ plan_key: Annotated[Optional[StrictStr], Field(description="Filter customers by the plan key of their susbcription.")] = None,
2660
+ expand: Annotated[Optional[List[CustomerExpand]], Field(description="What parts of the list output to expand in listings")] = None,
2661
+ _request_timeout: Union[
2662
+ None,
2663
+ Annotated[StrictFloat, Field(gt=0)],
2664
+ Tuple[
2665
+ Annotated[StrictFloat, Field(gt=0)],
2666
+ Annotated[StrictFloat, Field(gt=0)]
2667
+ ]
2668
+ ] = None,
2669
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2670
+ _content_type: Optional[StrictStr] = None,
2671
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2672
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2673
+ ) -> ApiResponse[CustomerPaginatedResponse]:
2674
+ """List customers
2675
+
2676
+ List customers.
2677
+
2678
+ :param page: Page index. Default is 1.
2679
+ :type page: int
2680
+ :param page_size: The maximum number of items per page. Default is 100.
2681
+ :type page_size: int
2682
+ :param order: The order direction.
2683
+ :type order: SortOrder
2684
+ :param order_by: The order by field.
2685
+ :type order_by: CustomerOrderBy
2686
+ :param include_deleted: Include deleted customers.
2687
+ :type include_deleted: bool
2688
+ :param key: Filter customers by key. Case-insensitive partial match.
2689
+ :type key: str
2690
+ :param keys: Filter customers by exact keys.
2691
+ :type keys: List[str]
2692
+ :param name: Filter customers by name. Case-insensitive partial match.
2693
+ :type name: str
2694
+ :param primary_email: Filter customers by primary email. Case-insensitive partial match.
2695
+ :type primary_email: str
2696
+ :param subject: Filter customers by usage attribution subject. Case-insensitive partial match.
2697
+ :type subject: str
2698
+ :param plan_key: Filter customers by the plan key of their susbcription.
2699
+ :type plan_key: str
2700
+ :param expand: What parts of the list output to expand in listings
2701
+ :type expand: List[CustomerExpand]
2702
+ :param _request_timeout: timeout setting for this request. If one
2703
+ number provided, it will be total request
2704
+ timeout. It can also be a pair (tuple) of
2705
+ (connection, read) timeouts.
2706
+ :type _request_timeout: int, tuple(int, int), optional
2707
+ :param _request_auth: set to override the auth_settings for an a single
2708
+ request; this effectively ignores the
2709
+ authentication in the spec for a single request.
2710
+ :type _request_auth: dict, optional
2711
+ :param _content_type: force content-type for the request.
2712
+ :type _content_type: str, Optional
2713
+ :param _headers: set to override the headers for a single
2714
+ request; this effectively ignores the headers
2715
+ in the spec for a single request.
2716
+ :type _headers: dict, optional
2717
+ :param _host_index: set to override the host_index for a single
2718
+ request; this effectively ignores the host_index
2719
+ in the spec for a single request.
2720
+ :type _host_index: int, optional
2721
+ :return: Returns the result object.
2722
+ """ # noqa: E501
2723
+
2724
+ _param = self._list_customers_get_serialize(
2725
+ page=page,
2726
+ page_size=page_size,
2727
+ order=order,
2728
+ order_by=order_by,
2729
+ include_deleted=include_deleted,
2730
+ key=key,
2731
+ keys=keys,
2732
+ name=name,
2733
+ primary_email=primary_email,
2734
+ subject=subject,
2735
+ plan_key=plan_key,
2736
+ expand=expand,
2737
+ _request_auth=_request_auth,
2738
+ _content_type=_content_type,
2739
+ _headers=_headers,
2740
+ _host_index=_host_index
2741
+ )
2742
+
2743
+ _response_types_map: Dict[str, Optional[str]] = {
2744
+ '200': "CustomerPaginatedResponse",
2745
+ '400': "UnexpectedProblemResponse",
2746
+ '401': "UnexpectedProblemResponse",
2747
+ '403': "UnexpectedProblemResponse",
2748
+ '412': "UnexpectedProblemResponse",
2749
+ '500': "UnexpectedProblemResponse",
2750
+ '503': "UnexpectedProblemResponse",
2751
+ }
2752
+ response_data = self.api_client.call_api(
2753
+ *_param,
2754
+ _request_timeout=_request_timeout
2755
+ )
2756
+ response_data.read()
2757
+ return self.api_client.response_deserialize(
2758
+ response_data=response_data,
2759
+ response_types_map=_response_types_map,
2760
+ )
2761
+
2762
+
2763
+ @validate_call
2764
+ def list_customers_get_without_preload_content(
2765
+ self,
2766
+ page: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Page index. Default is 1.")] = None,
2767
+ page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The maximum number of items per page. Default is 100.")] = None,
2768
+ order: Annotated[Optional[SortOrder], Field(description="The order direction.")] = None,
2769
+ order_by: Annotated[Optional[CustomerOrderBy], Field(description="The order by field.")] = None,
2770
+ include_deleted: Annotated[Optional[StrictBool], Field(description="Include deleted customers.")] = None,
2771
+ key: Annotated[Optional[StrictStr], Field(description="Filter customers by key. Case-insensitive partial match.")] = None,
2772
+ keys: Annotated[Optional[List[StrictStr]], Field(description="Filter customers by exact keys.")] = None,
2773
+ name: Annotated[Optional[StrictStr], Field(description="Filter customers by name. Case-insensitive partial match.")] = None,
2774
+ primary_email: Annotated[Optional[StrictStr], Field(description="Filter customers by primary email. Case-insensitive partial match.")] = None,
2775
+ subject: Annotated[Optional[StrictStr], Field(description="Filter customers by usage attribution subject. Case-insensitive partial match.")] = None,
2776
+ plan_key: Annotated[Optional[StrictStr], Field(description="Filter customers by the plan key of their susbcription.")] = None,
2777
+ expand: Annotated[Optional[List[CustomerExpand]], Field(description="What parts of the list output to expand in listings")] = None,
2778
+ _request_timeout: Union[
2779
+ None,
2780
+ Annotated[StrictFloat, Field(gt=0)],
2781
+ Tuple[
2782
+ Annotated[StrictFloat, Field(gt=0)],
2783
+ Annotated[StrictFloat, Field(gt=0)]
2784
+ ]
2785
+ ] = None,
2786
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
2787
+ _content_type: Optional[StrictStr] = None,
2788
+ _headers: Optional[Dict[StrictStr, Any]] = None,
2789
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
2790
+ ) -> RESTResponseType:
2791
+ """List customers
2792
+
2793
+ List customers.
2794
+
2795
+ :param page: Page index. Default is 1.
2796
+ :type page: int
2797
+ :param page_size: The maximum number of items per page. Default is 100.
2798
+ :type page_size: int
2799
+ :param order: The order direction.
2800
+ :type order: SortOrder
2801
+ :param order_by: The order by field.
2802
+ :type order_by: CustomerOrderBy
2803
+ :param include_deleted: Include deleted customers.
2804
+ :type include_deleted: bool
2805
+ :param key: Filter customers by key. Case-insensitive partial match.
2806
+ :type key: str
2807
+ :param keys: Filter customers by exact keys.
2808
+ :type keys: List[str]
2809
+ :param name: Filter customers by name. Case-insensitive partial match.
2810
+ :type name: str
2811
+ :param primary_email: Filter customers by primary email. Case-insensitive partial match.
2812
+ :type primary_email: str
2813
+ :param subject: Filter customers by usage attribution subject. Case-insensitive partial match.
2814
+ :type subject: str
2815
+ :param plan_key: Filter customers by the plan key of their susbcription.
2816
+ :type plan_key: str
2817
+ :param expand: What parts of the list output to expand in listings
2818
+ :type expand: List[CustomerExpand]
2819
+ :param _request_timeout: timeout setting for this request. If one
2820
+ number provided, it will be total request
2821
+ timeout. It can also be a pair (tuple) of
2822
+ (connection, read) timeouts.
2823
+ :type _request_timeout: int, tuple(int, int), optional
2824
+ :param _request_auth: set to override the auth_settings for an a single
2825
+ request; this effectively ignores the
2826
+ authentication in the spec for a single request.
2827
+ :type _request_auth: dict, optional
2828
+ :param _content_type: force content-type for the request.
2829
+ :type _content_type: str, Optional
2830
+ :param _headers: set to override the headers for a single
2831
+ request; this effectively ignores the headers
2832
+ in the spec for a single request.
2833
+ :type _headers: dict, optional
2834
+ :param _host_index: set to override the host_index for a single
2835
+ request; this effectively ignores the host_index
2836
+ in the spec for a single request.
2837
+ :type _host_index: int, optional
2838
+ :return: Returns the result object.
2839
+ """ # noqa: E501
2840
+
2841
+ _param = self._list_customers_get_serialize(
2842
+ page=page,
2843
+ page_size=page_size,
2844
+ order=order,
2845
+ order_by=order_by,
2846
+ include_deleted=include_deleted,
2847
+ key=key,
2848
+ keys=keys,
2849
+ name=name,
2850
+ primary_email=primary_email,
2851
+ subject=subject,
2852
+ plan_key=plan_key,
2853
+ expand=expand,
2854
+ _request_auth=_request_auth,
2855
+ _content_type=_content_type,
2856
+ _headers=_headers,
2857
+ _host_index=_host_index
2858
+ )
2859
+
2860
+ _response_types_map: Dict[str, Optional[str]] = {
2861
+ '200': "CustomerPaginatedResponse",
2862
+ '400': "UnexpectedProblemResponse",
2863
+ '401': "UnexpectedProblemResponse",
2864
+ '403': "UnexpectedProblemResponse",
2865
+ '412': "UnexpectedProblemResponse",
2866
+ '500': "UnexpectedProblemResponse",
2867
+ '503': "UnexpectedProblemResponse",
2868
+ }
2869
+ response_data = self.api_client.call_api(
2870
+ *_param,
2871
+ _request_timeout=_request_timeout
2872
+ )
2873
+ return response_data.response
2874
+
2875
+
2876
+ def _list_customers_get_serialize(
2877
+ self,
2878
+ page,
2879
+ page_size,
2880
+ order,
2881
+ order_by,
2882
+ include_deleted,
2883
+ key,
2884
+ keys,
2885
+ name,
2886
+ primary_email,
2887
+ subject,
2888
+ plan_key,
2889
+ expand,
2890
+ _request_auth,
2891
+ _content_type,
2892
+ _headers,
2893
+ _host_index,
2894
+ ) -> RequestSerialized:
2895
+
2896
+ _host = None
2897
+
2898
+ _collection_formats: Dict[str, str] = {
2899
+ 'keys': 'multi',
2900
+ 'expand': 'multi',
2901
+ }
2902
+
2903
+ _path_params: Dict[str, str] = {}
2904
+ _query_params: List[Tuple[str, str]] = []
2905
+ _header_params: Dict[str, Optional[str]] = _headers or {}
2906
+ _form_params: List[Tuple[str, str]] = []
2907
+ _files: Dict[
2908
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
2909
+ ] = {}
2910
+ _body_params: Optional[bytes] = None
2911
+
2912
+ # process the path parameters
2913
+ # process the query parameters
2914
+ if page is not None:
2915
+
2916
+ _query_params.append(('page', page))
2917
+
2918
+ if page_size is not None:
2919
+
2920
+ _query_params.append(('pageSize', page_size))
2921
+
2922
+ if order is not None:
2923
+
2924
+ _query_params.append(('order', order.value))
2925
+
2926
+ if order_by is not None:
2927
+
2928
+ _query_params.append(('orderBy', order_by.value))
2929
+
2930
+ if include_deleted is not None:
2931
+
2932
+ _query_params.append(('includeDeleted', include_deleted))
2933
+
2934
+ if key is not None:
2935
+
2936
+ _query_params.append(('key', key))
2937
+
2938
+ if keys is not None:
2939
+
2940
+ _query_params.append(('keys', keys))
2941
+
2942
+ if name is not None:
2943
+
2944
+ _query_params.append(('name', name))
2945
+
2946
+ if primary_email is not None:
2947
+
2948
+ _query_params.append(('primaryEmail', primary_email))
2949
+
2950
+ if subject is not None:
2951
+
2952
+ _query_params.append(('subject', subject))
2953
+
2954
+ if plan_key is not None:
2955
+
2956
+ _query_params.append(('planKey', plan_key))
2957
+
2958
+ if expand is not None:
2959
+
2960
+ _query_params.append(('expand', expand))
2961
+
2962
+ # process the header parameters
2963
+ # process the form parameters
2964
+ # process the body parameter
2965
+
2966
+
2967
+ # set the HTTP header `Accept`
2968
+ if 'Accept' not in _header_params:
2969
+ _header_params['Accept'] = self.api_client.select_header_accept(
2970
+ [
2971
+ 'application/json',
2972
+ 'application/problem+json'
2973
+ ]
2974
+ )
2975
+
2976
+
2977
+ # authentication setting
2978
+ _auth_settings: List[str] = [
2979
+ 'CloudTokenAuth'
2980
+ ]
2981
+
2982
+ return self.api_client.param_serialize(
2983
+ method='GET',
2984
+ resource_path='/api/v1/customers',
2985
+ path_params=_path_params,
2986
+ query_params=_query_params,
2987
+ header_params=_header_params,
2988
+ body=_body_params,
2989
+ post_params=_form_params,
2990
+ files=_files,
2991
+ auth_settings=_auth_settings,
2992
+ collection_formats=_collection_formats,
2993
+ _host=_host,
2994
+ _request_auth=_request_auth
2995
+ )
2996
+
2997
+
2998
+
2999
+
3000
+ @validate_call
3001
+ def update_customer(
3002
+ self,
3003
+ customer_id_or_key: Any,
3004
+ customer_replace_update: CustomerReplaceUpdate,
3005
+ _request_timeout: Union[
3006
+ None,
3007
+ Annotated[StrictFloat, Field(gt=0)],
3008
+ Tuple[
3009
+ Annotated[StrictFloat, Field(gt=0)],
3010
+ Annotated[StrictFloat, Field(gt=0)]
3011
+ ]
3012
+ ] = None,
3013
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3014
+ _content_type: Optional[StrictStr] = None,
3015
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3016
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3017
+ ) -> Customer:
3018
+ """Update customer
3019
+
3020
+ Update a customer by ID.
3021
+
3022
+ :param customer_id_or_key: (required)
3023
+ :type customer_id_or_key: ULIDOrExternalKey
3024
+ :param customer_replace_update: (required)
3025
+ :type customer_replace_update: CustomerReplaceUpdate
3026
+ :param _request_timeout: timeout setting for this request. If one
3027
+ number provided, it will be total request
3028
+ timeout. It can also be a pair (tuple) of
3029
+ (connection, read) timeouts.
3030
+ :type _request_timeout: int, tuple(int, int), optional
3031
+ :param _request_auth: set to override the auth_settings for an a single
3032
+ request; this effectively ignores the
3033
+ authentication in the spec for a single request.
3034
+ :type _request_auth: dict, optional
3035
+ :param _content_type: force content-type for the request.
3036
+ :type _content_type: str, Optional
3037
+ :param _headers: set to override the headers for a single
3038
+ request; this effectively ignores the headers
3039
+ in the spec for a single request.
3040
+ :type _headers: dict, optional
3041
+ :param _host_index: set to override the host_index for a single
3042
+ request; this effectively ignores the host_index
3043
+ in the spec for a single request.
3044
+ :type _host_index: int, optional
3045
+ :return: Returns the result object.
3046
+ """ # noqa: E501
3047
+
3048
+ _param = self._update_customer_serialize(
3049
+ customer_id_or_key=customer_id_or_key,
3050
+ customer_replace_update=customer_replace_update,
3051
+ _request_auth=_request_auth,
3052
+ _content_type=_content_type,
3053
+ _headers=_headers,
3054
+ _host_index=_host_index
3055
+ )
3056
+
3057
+ _response_types_map: Dict[str, Optional[str]] = {
3058
+ '200': "Customer",
3059
+ '400': "UnexpectedProblemResponse",
3060
+ '401': "UnexpectedProblemResponse",
3061
+ '403': "UnexpectedProblemResponse",
3062
+ '404': "UnexpectedProblemResponse",
3063
+ '412': "UnexpectedProblemResponse",
3064
+ '500': "UnexpectedProblemResponse",
3065
+ '503': "UnexpectedProblemResponse",
3066
+ }
3067
+ response_data = self.api_client.call_api(
3068
+ *_param,
3069
+ _request_timeout=_request_timeout
3070
+ )
3071
+ response_data.read()
3072
+ return self.api_client.response_deserialize(
3073
+ response_data=response_data,
3074
+ response_types_map=_response_types_map,
3075
+ ).data
3076
+
3077
+
3078
+ @validate_call
3079
+ def update_customer_with_http_info(
3080
+ self,
3081
+ customer_id_or_key: Any,
3082
+ customer_replace_update: CustomerReplaceUpdate,
3083
+ _request_timeout: Union[
3084
+ None,
3085
+ Annotated[StrictFloat, Field(gt=0)],
3086
+ Tuple[
3087
+ Annotated[StrictFloat, Field(gt=0)],
3088
+ Annotated[StrictFloat, Field(gt=0)]
3089
+ ]
3090
+ ] = None,
3091
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3092
+ _content_type: Optional[StrictStr] = None,
3093
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3094
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3095
+ ) -> ApiResponse[Customer]:
3096
+ """Update customer
3097
+
3098
+ Update a customer by ID.
3099
+
3100
+ :param customer_id_or_key: (required)
3101
+ :type customer_id_or_key: ULIDOrExternalKey
3102
+ :param customer_replace_update: (required)
3103
+ :type customer_replace_update: CustomerReplaceUpdate
3104
+ :param _request_timeout: timeout setting for this request. If one
3105
+ number provided, it will be total request
3106
+ timeout. It can also be a pair (tuple) of
3107
+ (connection, read) timeouts.
3108
+ :type _request_timeout: int, tuple(int, int), optional
3109
+ :param _request_auth: set to override the auth_settings for an a single
3110
+ request; this effectively ignores the
3111
+ authentication in the spec for a single request.
3112
+ :type _request_auth: dict, optional
3113
+ :param _content_type: force content-type for the request.
3114
+ :type _content_type: str, Optional
3115
+ :param _headers: set to override the headers for a single
3116
+ request; this effectively ignores the headers
3117
+ in the spec for a single request.
3118
+ :type _headers: dict, optional
3119
+ :param _host_index: set to override the host_index for a single
3120
+ request; this effectively ignores the host_index
3121
+ in the spec for a single request.
3122
+ :type _host_index: int, optional
3123
+ :return: Returns the result object.
3124
+ """ # noqa: E501
3125
+
3126
+ _param = self._update_customer_serialize(
3127
+ customer_id_or_key=customer_id_or_key,
3128
+ customer_replace_update=customer_replace_update,
3129
+ _request_auth=_request_auth,
3130
+ _content_type=_content_type,
3131
+ _headers=_headers,
3132
+ _host_index=_host_index
3133
+ )
3134
+
3135
+ _response_types_map: Dict[str, Optional[str]] = {
3136
+ '200': "Customer",
3137
+ '400': "UnexpectedProblemResponse",
3138
+ '401': "UnexpectedProblemResponse",
3139
+ '403': "UnexpectedProblemResponse",
3140
+ '404': "UnexpectedProblemResponse",
3141
+ '412': "UnexpectedProblemResponse",
3142
+ '500': "UnexpectedProblemResponse",
3143
+ '503': "UnexpectedProblemResponse",
3144
+ }
3145
+ response_data = self.api_client.call_api(
3146
+ *_param,
3147
+ _request_timeout=_request_timeout
3148
+ )
3149
+ response_data.read()
3150
+ return self.api_client.response_deserialize(
3151
+ response_data=response_data,
3152
+ response_types_map=_response_types_map,
3153
+ )
3154
+
3155
+
3156
+ @validate_call
3157
+ def update_customer_without_preload_content(
3158
+ self,
3159
+ customer_id_or_key: Any,
3160
+ customer_replace_update: CustomerReplaceUpdate,
3161
+ _request_timeout: Union[
3162
+ None,
3163
+ Annotated[StrictFloat, Field(gt=0)],
3164
+ Tuple[
3165
+ Annotated[StrictFloat, Field(gt=0)],
3166
+ Annotated[StrictFloat, Field(gt=0)]
3167
+ ]
3168
+ ] = None,
3169
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3170
+ _content_type: Optional[StrictStr] = None,
3171
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3172
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3173
+ ) -> RESTResponseType:
3174
+ """Update customer
3175
+
3176
+ Update a customer by ID.
3177
+
3178
+ :param customer_id_or_key: (required)
3179
+ :type customer_id_or_key: ULIDOrExternalKey
3180
+ :param customer_replace_update: (required)
3181
+ :type customer_replace_update: CustomerReplaceUpdate
3182
+ :param _request_timeout: timeout setting for this request. If one
3183
+ number provided, it will be total request
3184
+ timeout. It can also be a pair (tuple) of
3185
+ (connection, read) timeouts.
3186
+ :type _request_timeout: int, tuple(int, int), optional
3187
+ :param _request_auth: set to override the auth_settings for an a single
3188
+ request; this effectively ignores the
3189
+ authentication in the spec for a single request.
3190
+ :type _request_auth: dict, optional
3191
+ :param _content_type: force content-type for the request.
3192
+ :type _content_type: str, Optional
3193
+ :param _headers: set to override the headers for a single
3194
+ request; this effectively ignores the headers
3195
+ in the spec for a single request.
3196
+ :type _headers: dict, optional
3197
+ :param _host_index: set to override the host_index for a single
3198
+ request; this effectively ignores the host_index
3199
+ in the spec for a single request.
3200
+ :type _host_index: int, optional
3201
+ :return: Returns the result object.
3202
+ """ # noqa: E501
3203
+
3204
+ _param = self._update_customer_serialize(
3205
+ customer_id_or_key=customer_id_or_key,
3206
+ customer_replace_update=customer_replace_update,
3207
+ _request_auth=_request_auth,
3208
+ _content_type=_content_type,
3209
+ _headers=_headers,
3210
+ _host_index=_host_index
3211
+ )
3212
+
3213
+ _response_types_map: Dict[str, Optional[str]] = {
3214
+ '200': "Customer",
3215
+ '400': "UnexpectedProblemResponse",
3216
+ '401': "UnexpectedProblemResponse",
3217
+ '403': "UnexpectedProblemResponse",
3218
+ '404': "UnexpectedProblemResponse",
3219
+ '412': "UnexpectedProblemResponse",
3220
+ '500': "UnexpectedProblemResponse",
3221
+ '503': "UnexpectedProblemResponse",
3222
+ }
3223
+ response_data = self.api_client.call_api(
3224
+ *_param,
3225
+ _request_timeout=_request_timeout
3226
+ )
3227
+ return response_data.response
3228
+
3229
+
3230
+ def _update_customer_serialize(
3231
+ self,
3232
+ customer_id_or_key,
3233
+ customer_replace_update,
3234
+ _request_auth,
3235
+ _content_type,
3236
+ _headers,
3237
+ _host_index,
3238
+ ) -> RequestSerialized:
3239
+
3240
+ _host = None
3241
+
3242
+ _collection_formats: Dict[str, str] = {
3243
+ }
3244
+
3245
+ _path_params: Dict[str, str] = {}
3246
+ _query_params: List[Tuple[str, str]] = []
3247
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3248
+ _form_params: List[Tuple[str, str]] = []
3249
+ _files: Dict[
3250
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3251
+ ] = {}
3252
+ _body_params: Optional[bytes] = None
3253
+
3254
+ # process the path parameters
3255
+ if customer_id_or_key is not None:
3256
+ _path_params['customerIdOrKey'] = customer_id_or_key
3257
+ # process the query parameters
3258
+ # process the header parameters
3259
+ # process the form parameters
3260
+ # process the body parameter
3261
+ if customer_replace_update is not None:
3262
+ _body_params = customer_replace_update
3263
+
3264
+
3265
+ # set the HTTP header `Accept`
3266
+ if 'Accept' not in _header_params:
3267
+ _header_params['Accept'] = self.api_client.select_header_accept(
3268
+ [
3269
+ 'application/json',
3270
+ 'application/problem+json'
3271
+ ]
3272
+ )
3273
+
3274
+ # set the HTTP header `Content-Type`
3275
+ if _content_type:
3276
+ _header_params['Content-Type'] = _content_type
3277
+ else:
3278
+ _default_content_type = (
3279
+ self.api_client.select_header_content_type(
3280
+ [
3281
+ 'application/json'
3282
+ ]
3283
+ )
3284
+ )
3285
+ if _default_content_type is not None:
3286
+ _header_params['Content-Type'] = _default_content_type
3287
+
3288
+ # authentication setting
3289
+ _auth_settings: List[str] = [
3290
+ 'CloudTokenAuth'
3291
+ ]
3292
+
3293
+ return self.api_client.param_serialize(
3294
+ method='PUT',
3295
+ resource_path='/api/v1/customers/{customerIdOrKey}',
3296
+ path_params=_path_params,
3297
+ query_params=_query_params,
3298
+ header_params=_header_params,
3299
+ body=_body_params,
3300
+ post_params=_form_params,
3301
+ files=_files,
3302
+ auth_settings=_auth_settings,
3303
+ collection_formats=_collection_formats,
3304
+ _host=_host,
3305
+ _request_auth=_request_auth
3306
+ )
3307
+
3308
+
3309
+
3310
+
3311
+ @validate_call
3312
+ def upsert_customer_app_data(
3313
+ self,
3314
+ customer_id_or_key: Any,
3315
+ customer_app_data_create_or_update_item: List[CustomerAppDataCreateOrUpdateItem],
3316
+ _request_timeout: Union[
3317
+ None,
3318
+ Annotated[StrictFloat, Field(gt=0)],
3319
+ Tuple[
3320
+ Annotated[StrictFloat, Field(gt=0)],
3321
+ Annotated[StrictFloat, Field(gt=0)]
3322
+ ]
3323
+ ] = None,
3324
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3325
+ _content_type: Optional[StrictStr] = None,
3326
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3327
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3328
+ ) -> List[CustomerAppData]:
3329
+ """Upsert customer app data
3330
+
3331
+ Upsert customer app data.
3332
+
3333
+ :param customer_id_or_key: (required)
3334
+ :type customer_id_or_key: ULIDOrExternalKey
3335
+ :param customer_app_data_create_or_update_item: (required)
3336
+ :type customer_app_data_create_or_update_item: List[CustomerAppDataCreateOrUpdateItem]
3337
+ :param _request_timeout: timeout setting for this request. If one
3338
+ number provided, it will be total request
3339
+ timeout. It can also be a pair (tuple) of
3340
+ (connection, read) timeouts.
3341
+ :type _request_timeout: int, tuple(int, int), optional
3342
+ :param _request_auth: set to override the auth_settings for an a single
3343
+ request; this effectively ignores the
3344
+ authentication in the spec for a single request.
3345
+ :type _request_auth: dict, optional
3346
+ :param _content_type: force content-type for the request.
3347
+ :type _content_type: str, Optional
3348
+ :param _headers: set to override the headers for a single
3349
+ request; this effectively ignores the headers
3350
+ in the spec for a single request.
3351
+ :type _headers: dict, optional
3352
+ :param _host_index: set to override the host_index for a single
3353
+ request; this effectively ignores the host_index
3354
+ in the spec for a single request.
3355
+ :type _host_index: int, optional
3356
+ :return: Returns the result object.
3357
+ """ # noqa: E501
3358
+
3359
+ _param = self._upsert_customer_app_data_serialize(
3360
+ customer_id_or_key=customer_id_or_key,
3361
+ customer_app_data_create_or_update_item=customer_app_data_create_or_update_item,
3362
+ _request_auth=_request_auth,
3363
+ _content_type=_content_type,
3364
+ _headers=_headers,
3365
+ _host_index=_host_index
3366
+ )
3367
+
3368
+ _response_types_map: Dict[str, Optional[str]] = {
3369
+ '200': "List[CustomerAppData]",
3370
+ '400': "UnexpectedProblemResponse",
3371
+ '401': "UnexpectedProblemResponse",
3372
+ '403': "UnexpectedProblemResponse",
3373
+ '404': "UnexpectedProblemResponse",
3374
+ '412': "UnexpectedProblemResponse",
3375
+ '500': "UnexpectedProblemResponse",
3376
+ '503': "UnexpectedProblemResponse",
3377
+ }
3378
+ response_data = self.api_client.call_api(
3379
+ *_param,
3380
+ _request_timeout=_request_timeout
3381
+ )
3382
+ response_data.read()
3383
+ return self.api_client.response_deserialize(
3384
+ response_data=response_data,
3385
+ response_types_map=_response_types_map,
3386
+ ).data
3387
+
3388
+
3389
+ @validate_call
3390
+ def upsert_customer_app_data_with_http_info(
3391
+ self,
3392
+ customer_id_or_key: Any,
3393
+ customer_app_data_create_or_update_item: List[CustomerAppDataCreateOrUpdateItem],
3394
+ _request_timeout: Union[
3395
+ None,
3396
+ Annotated[StrictFloat, Field(gt=0)],
3397
+ Tuple[
3398
+ Annotated[StrictFloat, Field(gt=0)],
3399
+ Annotated[StrictFloat, Field(gt=0)]
3400
+ ]
3401
+ ] = None,
3402
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3403
+ _content_type: Optional[StrictStr] = None,
3404
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3405
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3406
+ ) -> ApiResponse[List[CustomerAppData]]:
3407
+ """Upsert customer app data
3408
+
3409
+ Upsert customer app data.
3410
+
3411
+ :param customer_id_or_key: (required)
3412
+ :type customer_id_or_key: ULIDOrExternalKey
3413
+ :param customer_app_data_create_or_update_item: (required)
3414
+ :type customer_app_data_create_or_update_item: List[CustomerAppDataCreateOrUpdateItem]
3415
+ :param _request_timeout: timeout setting for this request. If one
3416
+ number provided, it will be total request
3417
+ timeout. It can also be a pair (tuple) of
3418
+ (connection, read) timeouts.
3419
+ :type _request_timeout: int, tuple(int, int), optional
3420
+ :param _request_auth: set to override the auth_settings for an a single
3421
+ request; this effectively ignores the
3422
+ authentication in the spec for a single request.
3423
+ :type _request_auth: dict, optional
3424
+ :param _content_type: force content-type for the request.
3425
+ :type _content_type: str, Optional
3426
+ :param _headers: set to override the headers for a single
3427
+ request; this effectively ignores the headers
3428
+ in the spec for a single request.
3429
+ :type _headers: dict, optional
3430
+ :param _host_index: set to override the host_index for a single
3431
+ request; this effectively ignores the host_index
3432
+ in the spec for a single request.
3433
+ :type _host_index: int, optional
3434
+ :return: Returns the result object.
3435
+ """ # noqa: E501
3436
+
3437
+ _param = self._upsert_customer_app_data_serialize(
3438
+ customer_id_or_key=customer_id_or_key,
3439
+ customer_app_data_create_or_update_item=customer_app_data_create_or_update_item,
3440
+ _request_auth=_request_auth,
3441
+ _content_type=_content_type,
3442
+ _headers=_headers,
3443
+ _host_index=_host_index
3444
+ )
3445
+
3446
+ _response_types_map: Dict[str, Optional[str]] = {
3447
+ '200': "List[CustomerAppData]",
3448
+ '400': "UnexpectedProblemResponse",
3449
+ '401': "UnexpectedProblemResponse",
3450
+ '403': "UnexpectedProblemResponse",
3451
+ '404': "UnexpectedProblemResponse",
3452
+ '412': "UnexpectedProblemResponse",
3453
+ '500': "UnexpectedProblemResponse",
3454
+ '503': "UnexpectedProblemResponse",
3455
+ }
3456
+ response_data = self.api_client.call_api(
3457
+ *_param,
3458
+ _request_timeout=_request_timeout
3459
+ )
3460
+ response_data.read()
3461
+ return self.api_client.response_deserialize(
3462
+ response_data=response_data,
3463
+ response_types_map=_response_types_map,
3464
+ )
3465
+
3466
+
3467
+ @validate_call
3468
+ def upsert_customer_app_data_without_preload_content(
3469
+ self,
3470
+ customer_id_or_key: Any,
3471
+ customer_app_data_create_or_update_item: List[CustomerAppDataCreateOrUpdateItem],
3472
+ _request_timeout: Union[
3473
+ None,
3474
+ Annotated[StrictFloat, Field(gt=0)],
3475
+ Tuple[
3476
+ Annotated[StrictFloat, Field(gt=0)],
3477
+ Annotated[StrictFloat, Field(gt=0)]
3478
+ ]
3479
+ ] = None,
3480
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3481
+ _content_type: Optional[StrictStr] = None,
3482
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3483
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3484
+ ) -> RESTResponseType:
3485
+ """Upsert customer app data
3486
+
3487
+ Upsert customer app data.
3488
+
3489
+ :param customer_id_or_key: (required)
3490
+ :type customer_id_or_key: ULIDOrExternalKey
3491
+ :param customer_app_data_create_or_update_item: (required)
3492
+ :type customer_app_data_create_or_update_item: List[CustomerAppDataCreateOrUpdateItem]
3493
+ :param _request_timeout: timeout setting for this request. If one
3494
+ number provided, it will be total request
3495
+ timeout. It can also be a pair (tuple) of
3496
+ (connection, read) timeouts.
3497
+ :type _request_timeout: int, tuple(int, int), optional
3498
+ :param _request_auth: set to override the auth_settings for an a single
3499
+ request; this effectively ignores the
3500
+ authentication in the spec for a single request.
3501
+ :type _request_auth: dict, optional
3502
+ :param _content_type: force content-type for the request.
3503
+ :type _content_type: str, Optional
3504
+ :param _headers: set to override the headers for a single
3505
+ request; this effectively ignores the headers
3506
+ in the spec for a single request.
3507
+ :type _headers: dict, optional
3508
+ :param _host_index: set to override the host_index for a single
3509
+ request; this effectively ignores the host_index
3510
+ in the spec for a single request.
3511
+ :type _host_index: int, optional
3512
+ :return: Returns the result object.
3513
+ """ # noqa: E501
3514
+
3515
+ _param = self._upsert_customer_app_data_serialize(
3516
+ customer_id_or_key=customer_id_or_key,
3517
+ customer_app_data_create_or_update_item=customer_app_data_create_or_update_item,
3518
+ _request_auth=_request_auth,
3519
+ _content_type=_content_type,
3520
+ _headers=_headers,
3521
+ _host_index=_host_index
3522
+ )
3523
+
3524
+ _response_types_map: Dict[str, Optional[str]] = {
3525
+ '200': "List[CustomerAppData]",
3526
+ '400': "UnexpectedProblemResponse",
3527
+ '401': "UnexpectedProblemResponse",
3528
+ '403': "UnexpectedProblemResponse",
3529
+ '404': "UnexpectedProblemResponse",
3530
+ '412': "UnexpectedProblemResponse",
3531
+ '500': "UnexpectedProblemResponse",
3532
+ '503': "UnexpectedProblemResponse",
3533
+ }
3534
+ response_data = self.api_client.call_api(
3535
+ *_param,
3536
+ _request_timeout=_request_timeout
3537
+ )
3538
+ return response_data.response
3539
+
3540
+
3541
+ def _upsert_customer_app_data_serialize(
3542
+ self,
3543
+ customer_id_or_key,
3544
+ customer_app_data_create_or_update_item,
3545
+ _request_auth,
3546
+ _content_type,
3547
+ _headers,
3548
+ _host_index,
3549
+ ) -> RequestSerialized:
3550
+
3551
+ _host = None
3552
+
3553
+ _collection_formats: Dict[str, str] = {
3554
+ 'CustomerAppDataCreateOrUpdateItem': '',
3555
+ }
3556
+
3557
+ _path_params: Dict[str, str] = {}
3558
+ _query_params: List[Tuple[str, str]] = []
3559
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3560
+ _form_params: List[Tuple[str, str]] = []
3561
+ _files: Dict[
3562
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3563
+ ] = {}
3564
+ _body_params: Optional[bytes] = None
3565
+
3566
+ # process the path parameters
3567
+ if customer_id_or_key is not None:
3568
+ _path_params['customerIdOrKey'] = customer_id_or_key
3569
+ # process the query parameters
3570
+ # process the header parameters
3571
+ # process the form parameters
3572
+ # process the body parameter
3573
+ if customer_app_data_create_or_update_item is not None:
3574
+ _body_params = customer_app_data_create_or_update_item
3575
+
3576
+
3577
+ # set the HTTP header `Accept`
3578
+ if 'Accept' not in _header_params:
3579
+ _header_params['Accept'] = self.api_client.select_header_accept(
3580
+ [
3581
+ 'application/json',
3582
+ 'application/problem+json'
3583
+ ]
3584
+ )
3585
+
3586
+ # set the HTTP header `Content-Type`
3587
+ if _content_type:
3588
+ _header_params['Content-Type'] = _content_type
3589
+ else:
3590
+ _default_content_type = (
3591
+ self.api_client.select_header_content_type(
3592
+ [
3593
+ 'application/json'
3594
+ ]
3595
+ )
3596
+ )
3597
+ if _default_content_type is not None:
3598
+ _header_params['Content-Type'] = _default_content_type
3599
+
3600
+ # authentication setting
3601
+ _auth_settings: List[str] = [
3602
+ 'CloudTokenAuth'
3603
+ ]
3604
+
3605
+ return self.api_client.param_serialize(
3606
+ method='PUT',
3607
+ resource_path='/api/v1/customers/{customerIdOrKey}/apps',
3608
+ path_params=_path_params,
3609
+ query_params=_query_params,
3610
+ header_params=_header_params,
3611
+ body=_body_params,
3612
+ post_params=_form_params,
3613
+ files=_files,
3614
+ auth_settings=_auth_settings,
3615
+ collection_formats=_collection_formats,
3616
+ _host=_host,
3617
+ _request_auth=_request_auth
3618
+ )
3619
+
3620
+
3621
+
3622
+
3623
+ @validate_call
3624
+ def upsert_customer_stripe_app_data(
3625
+ self,
3626
+ customer_id_or_key: Any,
3627
+ stripe_customer_app_data_base: StripeCustomerAppDataBase,
3628
+ _request_timeout: Union[
3629
+ None,
3630
+ Annotated[StrictFloat, Field(gt=0)],
3631
+ Tuple[
3632
+ Annotated[StrictFloat, Field(gt=0)],
3633
+ Annotated[StrictFloat, Field(gt=0)]
3634
+ ]
3635
+ ] = None,
3636
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3637
+ _content_type: Optional[StrictStr] = None,
3638
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3639
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3640
+ ) -> StripeCustomerAppData:
3641
+ """Upsert customer stripe app data
3642
+
3643
+ Upsert stripe app data for a customer. Only updates data if the customer billing profile is linked to a stripe app.
3644
+
3645
+ :param customer_id_or_key: (required)
3646
+ :type customer_id_or_key: ULIDOrExternalKey
3647
+ :param stripe_customer_app_data_base: (required)
3648
+ :type stripe_customer_app_data_base: StripeCustomerAppDataBase
3649
+ :param _request_timeout: timeout setting for this request. If one
3650
+ number provided, it will be total request
3651
+ timeout. It can also be a pair (tuple) of
3652
+ (connection, read) timeouts.
3653
+ :type _request_timeout: int, tuple(int, int), optional
3654
+ :param _request_auth: set to override the auth_settings for an a single
3655
+ request; this effectively ignores the
3656
+ authentication in the spec for a single request.
3657
+ :type _request_auth: dict, optional
3658
+ :param _content_type: force content-type for the request.
3659
+ :type _content_type: str, Optional
3660
+ :param _headers: set to override the headers for a single
3661
+ request; this effectively ignores the headers
3662
+ in the spec for a single request.
3663
+ :type _headers: dict, optional
3664
+ :param _host_index: set to override the host_index for a single
3665
+ request; this effectively ignores the host_index
3666
+ in the spec for a single request.
3667
+ :type _host_index: int, optional
3668
+ :return: Returns the result object.
3669
+ """ # noqa: E501
3670
+
3671
+ _param = self._upsert_customer_stripe_app_data_serialize(
3672
+ customer_id_or_key=customer_id_or_key,
3673
+ stripe_customer_app_data_base=stripe_customer_app_data_base,
3674
+ _request_auth=_request_auth,
3675
+ _content_type=_content_type,
3676
+ _headers=_headers,
3677
+ _host_index=_host_index
3678
+ )
3679
+
3680
+ _response_types_map: Dict[str, Optional[str]] = {
3681
+ '200': "StripeCustomerAppData",
3682
+ '400': "UnexpectedProblemResponse",
3683
+ '401': "UnexpectedProblemResponse",
3684
+ '403': "UnexpectedProblemResponse",
3685
+ '404': "UnexpectedProblemResponse",
3686
+ '412': "UnexpectedProblemResponse",
3687
+ '500': "UnexpectedProblemResponse",
3688
+ '503': "UnexpectedProblemResponse",
3689
+ }
3690
+ response_data = self.api_client.call_api(
3691
+ *_param,
3692
+ _request_timeout=_request_timeout
3693
+ )
3694
+ response_data.read()
3695
+ return self.api_client.response_deserialize(
3696
+ response_data=response_data,
3697
+ response_types_map=_response_types_map,
3698
+ ).data
3699
+
3700
+
3701
+ @validate_call
3702
+ def upsert_customer_stripe_app_data_with_http_info(
3703
+ self,
3704
+ customer_id_or_key: Any,
3705
+ stripe_customer_app_data_base: StripeCustomerAppDataBase,
3706
+ _request_timeout: Union[
3707
+ None,
3708
+ Annotated[StrictFloat, Field(gt=0)],
3709
+ Tuple[
3710
+ Annotated[StrictFloat, Field(gt=0)],
3711
+ Annotated[StrictFloat, Field(gt=0)]
3712
+ ]
3713
+ ] = None,
3714
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3715
+ _content_type: Optional[StrictStr] = None,
3716
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3717
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3718
+ ) -> ApiResponse[StripeCustomerAppData]:
3719
+ """Upsert customer stripe app data
3720
+
3721
+ Upsert stripe app data for a customer. Only updates data if the customer billing profile is linked to a stripe app.
3722
+
3723
+ :param customer_id_or_key: (required)
3724
+ :type customer_id_or_key: ULIDOrExternalKey
3725
+ :param stripe_customer_app_data_base: (required)
3726
+ :type stripe_customer_app_data_base: StripeCustomerAppDataBase
3727
+ :param _request_timeout: timeout setting for this request. If one
3728
+ number provided, it will be total request
3729
+ timeout. It can also be a pair (tuple) of
3730
+ (connection, read) timeouts.
3731
+ :type _request_timeout: int, tuple(int, int), optional
3732
+ :param _request_auth: set to override the auth_settings for an a single
3733
+ request; this effectively ignores the
3734
+ authentication in the spec for a single request.
3735
+ :type _request_auth: dict, optional
3736
+ :param _content_type: force content-type for the request.
3737
+ :type _content_type: str, Optional
3738
+ :param _headers: set to override the headers for a single
3739
+ request; this effectively ignores the headers
3740
+ in the spec for a single request.
3741
+ :type _headers: dict, optional
3742
+ :param _host_index: set to override the host_index for a single
3743
+ request; this effectively ignores the host_index
3744
+ in the spec for a single request.
3745
+ :type _host_index: int, optional
3746
+ :return: Returns the result object.
3747
+ """ # noqa: E501
3748
+
3749
+ _param = self._upsert_customer_stripe_app_data_serialize(
3750
+ customer_id_or_key=customer_id_or_key,
3751
+ stripe_customer_app_data_base=stripe_customer_app_data_base,
3752
+ _request_auth=_request_auth,
3753
+ _content_type=_content_type,
3754
+ _headers=_headers,
3755
+ _host_index=_host_index
3756
+ )
3757
+
3758
+ _response_types_map: Dict[str, Optional[str]] = {
3759
+ '200': "StripeCustomerAppData",
3760
+ '400': "UnexpectedProblemResponse",
3761
+ '401': "UnexpectedProblemResponse",
3762
+ '403': "UnexpectedProblemResponse",
3763
+ '404': "UnexpectedProblemResponse",
3764
+ '412': "UnexpectedProblemResponse",
3765
+ '500': "UnexpectedProblemResponse",
3766
+ '503': "UnexpectedProblemResponse",
3767
+ }
3768
+ response_data = self.api_client.call_api(
3769
+ *_param,
3770
+ _request_timeout=_request_timeout
3771
+ )
3772
+ response_data.read()
3773
+ return self.api_client.response_deserialize(
3774
+ response_data=response_data,
3775
+ response_types_map=_response_types_map,
3776
+ )
3777
+
3778
+
3779
+ @validate_call
3780
+ def upsert_customer_stripe_app_data_without_preload_content(
3781
+ self,
3782
+ customer_id_or_key: Any,
3783
+ stripe_customer_app_data_base: StripeCustomerAppDataBase,
3784
+ _request_timeout: Union[
3785
+ None,
3786
+ Annotated[StrictFloat, Field(gt=0)],
3787
+ Tuple[
3788
+ Annotated[StrictFloat, Field(gt=0)],
3789
+ Annotated[StrictFloat, Field(gt=0)]
3790
+ ]
3791
+ ] = None,
3792
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
3793
+ _content_type: Optional[StrictStr] = None,
3794
+ _headers: Optional[Dict[StrictStr, Any]] = None,
3795
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
3796
+ ) -> RESTResponseType:
3797
+ """Upsert customer stripe app data
3798
+
3799
+ Upsert stripe app data for a customer. Only updates data if the customer billing profile is linked to a stripe app.
3800
+
3801
+ :param customer_id_or_key: (required)
3802
+ :type customer_id_or_key: ULIDOrExternalKey
3803
+ :param stripe_customer_app_data_base: (required)
3804
+ :type stripe_customer_app_data_base: StripeCustomerAppDataBase
3805
+ :param _request_timeout: timeout setting for this request. If one
3806
+ number provided, it will be total request
3807
+ timeout. It can also be a pair (tuple) of
3808
+ (connection, read) timeouts.
3809
+ :type _request_timeout: int, tuple(int, int), optional
3810
+ :param _request_auth: set to override the auth_settings for an a single
3811
+ request; this effectively ignores the
3812
+ authentication in the spec for a single request.
3813
+ :type _request_auth: dict, optional
3814
+ :param _content_type: force content-type for the request.
3815
+ :type _content_type: str, Optional
3816
+ :param _headers: set to override the headers for a single
3817
+ request; this effectively ignores the headers
3818
+ in the spec for a single request.
3819
+ :type _headers: dict, optional
3820
+ :param _host_index: set to override the host_index for a single
3821
+ request; this effectively ignores the host_index
3822
+ in the spec for a single request.
3823
+ :type _host_index: int, optional
3824
+ :return: Returns the result object.
3825
+ """ # noqa: E501
3826
+
3827
+ _param = self._upsert_customer_stripe_app_data_serialize(
3828
+ customer_id_or_key=customer_id_or_key,
3829
+ stripe_customer_app_data_base=stripe_customer_app_data_base,
3830
+ _request_auth=_request_auth,
3831
+ _content_type=_content_type,
3832
+ _headers=_headers,
3833
+ _host_index=_host_index
3834
+ )
3835
+
3836
+ _response_types_map: Dict[str, Optional[str]] = {
3837
+ '200': "StripeCustomerAppData",
3838
+ '400': "UnexpectedProblemResponse",
3839
+ '401': "UnexpectedProblemResponse",
3840
+ '403': "UnexpectedProblemResponse",
3841
+ '404': "UnexpectedProblemResponse",
3842
+ '412': "UnexpectedProblemResponse",
3843
+ '500': "UnexpectedProblemResponse",
3844
+ '503': "UnexpectedProblemResponse",
3845
+ }
3846
+ response_data = self.api_client.call_api(
3847
+ *_param,
3848
+ _request_timeout=_request_timeout
3849
+ )
3850
+ return response_data.response
3851
+
3852
+
3853
+ def _upsert_customer_stripe_app_data_serialize(
3854
+ self,
3855
+ customer_id_or_key,
3856
+ stripe_customer_app_data_base,
3857
+ _request_auth,
3858
+ _content_type,
3859
+ _headers,
3860
+ _host_index,
3861
+ ) -> RequestSerialized:
3862
+
3863
+ _host = None
3864
+
3865
+ _collection_formats: Dict[str, str] = {
3866
+ }
3867
+
3868
+ _path_params: Dict[str, str] = {}
3869
+ _query_params: List[Tuple[str, str]] = []
3870
+ _header_params: Dict[str, Optional[str]] = _headers or {}
3871
+ _form_params: List[Tuple[str, str]] = []
3872
+ _files: Dict[
3873
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
3874
+ ] = {}
3875
+ _body_params: Optional[bytes] = None
3876
+
3877
+ # process the path parameters
3878
+ if customer_id_or_key is not None:
3879
+ _path_params['customerIdOrKey'] = customer_id_or_key
3880
+ # process the query parameters
3881
+ # process the header parameters
3882
+ # process the form parameters
3883
+ # process the body parameter
3884
+ if stripe_customer_app_data_base is not None:
3885
+ _body_params = stripe_customer_app_data_base
3886
+
3887
+
3888
+ # set the HTTP header `Accept`
3889
+ if 'Accept' not in _header_params:
3890
+ _header_params['Accept'] = self.api_client.select_header_accept(
3891
+ [
3892
+ 'application/json',
3893
+ 'application/problem+json'
3894
+ ]
3895
+ )
3896
+
3897
+ # set the HTTP header `Content-Type`
3898
+ if _content_type:
3899
+ _header_params['Content-Type'] = _content_type
3900
+ else:
3901
+ _default_content_type = (
3902
+ self.api_client.select_header_content_type(
3903
+ [
3904
+ 'application/json'
3905
+ ]
3906
+ )
3907
+ )
3908
+ if _default_content_type is not None:
3909
+ _header_params['Content-Type'] = _default_content_type
3910
+
3911
+ # authentication setting
3912
+ _auth_settings: List[str] = [
3913
+ 'CloudTokenAuth'
3914
+ ]
3915
+
3916
+ return self.api_client.param_serialize(
3917
+ method='PUT',
3918
+ resource_path='/api/v1/customers/{customerIdOrKey}/stripe',
3919
+ path_params=_path_params,
3920
+ query_params=_query_params,
3921
+ header_params=_header_params,
3922
+ body=_body_params,
3923
+ post_params=_form_params,
3924
+ files=_files,
3925
+ auth_settings=_auth_settings,
3926
+ collection_formats=_collection_formats,
3927
+ _host=_host,
3928
+ _request_auth=_request_auth
3929
+ )
3930
+
3931
+