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