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.
- moolabs/__init__.py +1487 -0
- moolabs/_dx_attribution_context.py +213 -0
- moolabs/_dx_attribution_db_time.py +2126 -0
- moolabs/_dx_attribution_db_time_transport.py +173 -0
- moolabs/_dx_attribution_delta.py +142 -0
- moolabs/_dx_attribution_deposits.py +552 -0
- moolabs/_dx_attribution_instrument.py +416 -0
- moolabs/_dx_attribution_middleware.py +541 -0
- moolabs/_dx_attribution_propagate.py +509 -0
- moolabs/_dx_attribution_signal_transport.py +232 -0
- moolabs/_dx_attribution_signals.py +927 -0
- moolabs/_dx_buffer.py +429 -0
- moolabs/_dx_client.py +726 -0
- moolabs/_dx_exceptions.py +84 -0
- moolabs/_dx_namespaces.py +1780 -0
- moolabs/_dx_pagination.py +131 -0
- moolabs/_dx_routing.py +276 -0
- moolabs/_dx_urls.py +629 -0
- moolabs/_dx_webhooks.py +82 -0
- moolabs/api/__init__.py +121 -0
- moolabs/api/account_team_api.py +1444 -0
- moolabs/api/accounts_api.py +4950 -0
- moolabs/api/acute_analytics_api.py +5750 -0
- moolabs/api/acute_integrations_api.py +3449 -0
- moolabs/api/admin_api.py +3347 -0
- moolabs/api/alerts_api.py +1626 -0
- moolabs/api/allocation_rules_api.py +1720 -0
- moolabs/api/analytics_api.py +3204 -0
- moolabs/api/app_custom_invoicing_api.py +952 -0
- moolabs/api/app_stripe_api.py +958 -0
- moolabs/api/apps_api.py +3064 -0
- moolabs/api/arc_admin_api.py +8773 -0
- moolabs/api/arc_communications_api.py +1991 -0
- moolabs/api/arc_portal_api.py +1737 -0
- moolabs/api/arc_webhooks_api.py +2087 -0
- moolabs/api/attribution_allocation_api.py +2345 -0
- moolabs/api/attribution_api.py +1717 -0
- moolabs/api/attribution_customer_keys_api.py +600 -0
- moolabs/api/attribution_db_time_api.py +918 -0
- moolabs/api/attribution_opencost_api.py +1372 -0
- moolabs/api/attribution_readouts_api.py +393 -0
- moolabs/api/attribution_signals_api.py +315 -0
- moolabs/api/auto_topup_api.py +3095 -0
- moolabs/api/batch_api.py +6714 -0
- moolabs/api/billing_api.py +300 -0
- moolabs/api/bom_api.py +2769 -0
- moolabs/api/budgets_api.py +2112 -0
- moolabs/api/buyer_quotes_api.py +2007 -0
- moolabs/api/cases_api.py +5075 -0
- moolabs/api/cash_credits_api.py +1548 -0
- moolabs/api/chat_api.py +3101 -0
- moolabs/api/clause_packs_api.py +2785 -0
- moolabs/api/cloud_billing_api.py +1747 -0
- moolabs/api/contract_editor_api.py +3384 -0
- moolabs/api/cost_events_api.py +1732 -0
- moolabs/api/credit_memos_api.py +3478 -0
- moolabs/api/customers_api.py +3931 -0
- moolabs/api/dashboard_api.py +771 -0
- moolabs/api/debug_api.py +300 -0
- moolabs/api/default_api.py +526 -0
- moolabs/api/disputes_api.py +3586 -0
- moolabs/api/dunning_templates_api.py +8737 -0
- moolabs/api/email_provider_api.py +526 -0
- moolabs/api/entitlements_api.py +9846 -0
- moolabs/api/escalations_api.py +2541 -0
- moolabs/api/events_api.py +1125 -0
- moolabs/api/fx_rates_api.py +1452 -0
- moolabs/api/governance_api.py +4402 -0
- moolabs/api/grants_api.py +1370 -0
- moolabs/api/handoffs_api.py +2138 -0
- moolabs/api/health_api.py +281 -0
- moolabs/api/homepage_api.py +305 -0
- moolabs/api/integrations_api.py +3374 -0
- moolabs/api/internal_api.py +7145 -0
- moolabs/api/internal_credit_memos_api.py +914 -0
- moolabs/api/internal_grants_api.py +1000 -0
- moolabs/api/internal_period_settlements_api.py +657 -0
- moolabs/api/internal_plan_pricing_api.py +326 -0
- moolabs/api/internal_subscriptions_api.py +326 -0
- moolabs/api/ledger_api.py +1483 -0
- moolabs/api/lookup_information_api.py +587 -0
- moolabs/api/mapping_rules_api.py +1782 -0
- moolabs/api/mappings_api.py +632 -0
- moolabs/api/margin_simulation_api.py +595 -0
- moolabs/api/margins_api.py +2301 -0
- moolabs/api/meter_billing_api.py +7419 -0
- moolabs/api/meter_portal_api.py +1368 -0
- moolabs/api/meter_subscriptions_api.py +4358 -0
- moolabs/api/meters_api.py +3707 -0
- moolabs/api/monitoring_api.py +561 -0
- moolabs/api/moolabs_api.py +1182 -0
- moolabs/api/moometer_proxy_api.py +1357 -0
- moolabs/api/netsuite_sync_api.py +2180 -0
- moolabs/api/notes_api.py +1425 -0
- moolabs/api/notifications_api.py +4490 -0
- moolabs/api/ops_api.py +315 -0
- moolabs/api/outbox_api.py +653 -0
- moolabs/api/payments_api.py +2889 -0
- moolabs/api/performance_api.py +2471 -0
- moolabs/api/plan_pricing_api.py +3409 -0
- moolabs/api/plans_api.py +2197 -0
- moolabs/api/pools_api.py +2358 -0
- moolabs/api/portal_api.py +1103 -0
- moolabs/api/product_catalog_api.py +7644 -0
- moolabs/api/promises_api.py +2814 -0
- moolabs/api/quote_agents_api.py +2036 -0
- moolabs/api/quote_contract_webhooks_api.py +327 -0
- moolabs/api/quote_contracts_api.py +2551 -0
- moolabs/api/quote_sessions_api.py +881 -0
- moolabs/api/quotes_api.py +12880 -0
- moolabs/api/rate_cards_api.py +578 -0
- moolabs/api/rate_catalog_api.py +2120 -0
- moolabs/api/rate_schedules_api.py +1224 -0
- moolabs/api/rating_api.py +617 -0
- moolabs/api/reconstruction_api.py +1281 -0
- moolabs/api/remittances_api.py +1521 -0
- moolabs/api/reports_api.py +722 -0
- moolabs/api/rollover_api.py +313 -0
- moolabs/api/sdk_ingest_api.py +312 -0
- moolabs/api/snapshots_api.py +1218 -0
- moolabs/api/state_projection_api.py +961 -0
- moolabs/api/steering_api.py +1862 -0
- moolabs/api/subjects_api.py +1160 -0
- moolabs/api/subscription_overrides_api.py +579 -0
- moolabs/api/subscriptions_api.py +1200 -0
- moolabs/api/tasks_api.py +1509 -0
- moolabs/api/tenant_api.py +22395 -0
- moolabs/api/tenant_config_api.py +282 -0
- moolabs/api/topup_api.py +632 -0
- moolabs/api/unpriced_api.py +933 -0
- moolabs/api/usage_api.py +999 -0
- moolabs/api/variance_api.py +1327 -0
- moolabs/api/wallets_api.py +3787 -0
- moolabs/api/webhooks_api.py +281 -0
- moolabs/api/well_known_api.py +278 -0
- moolabs/api/word_addin_api.py +623 -0
- moolabs/api_client.py +797 -0
- moolabs/api_response.py +21 -0
- moolabs/configuration.py +620 -0
- moolabs/exceptions.py +199 -0
- moolabs/models/__init__.py +1286 -0
- moolabs/models/account_create.py +114 -0
- moolabs/models/account_filter_options_response.py +97 -0
- moolabs/models/account_invoice_list_response.py +95 -0
- moolabs/models/account_list_item_response.py +152 -0
- moolabs/models/account_list_item_response_subsidiaries_inner.py +152 -0
- moolabs/models/account_list_response.py +101 -0
- moolabs/models/account_overview_bucket_response.py +91 -0
- moolabs/models/account_overview_response.py +106 -0
- moolabs/models/account_response.py +132 -0
- moolabs/models/account_segment_row.py +91 -0
- moolabs/models/account_subsidiary_option.py +89 -0
- moolabs/models/account_summary.py +97 -0
- moolabs/models/account_team_member_in.py +97 -0
- moolabs/models/account_team_member_out.py +101 -0
- moolabs/models/account_team_member_patch.py +97 -0
- moolabs/models/account_team_role.py +39 -0
- moolabs/models/account_update.py +106 -0
- moolabs/models/action_kind.py +45 -0
- moolabs/models/acute_approve_request.py +87 -0
- moolabs/models/acute_demo_seed_lifecycle_request.py +103 -0
- moolabs/models/acute_http_validation_error.py +95 -0
- moolabs/models/acute_validation_error.py +99 -0
- moolabs/models/add_contract_participant_request.py +107 -0
- moolabs/models/addon.py +178 -0
- moolabs/models/addon1.py +115 -0
- moolabs/models/addon2.py +95 -0
- moolabs/models/addon_create.py +123 -0
- moolabs/models/addon_instance_type.py +37 -0
- moolabs/models/addon_order_by.py +40 -0
- moolabs/models/addon_paginated_response.py +101 -0
- moolabs/models/addon_replace_update.py +105 -0
- moolabs/models/addon_status.py +38 -0
- moolabs/models/address.py +110 -0
- moolabs/models/adjusted_total.py +152 -0
- moolabs/models/adjustment_amount.py +152 -0
- moolabs/models/aging_bucket_detail.py +93 -0
- moolabs/models/aging_report_response.py +106 -0
- moolabs/models/alb_bootstrap_response.py +89 -0
- moolabs/models/alb_connector_config.py +128 -0
- moolabs/models/alb_connector_health_response.py +112 -0
- moolabs/models/alb_connector_list_response.py +138 -0
- moolabs/models/alb_load_balancer_config.py +111 -0
- moolabs/models/alb_route_rule.py +107 -0
- moolabs/models/alb_source_config.py +123 -0
- moolabs/models/alb_source_health_response.py +93 -0
- moolabs/models/alb_status_patch_request.py +94 -0
- moolabs/models/alb_status_patch_response.py +94 -0
- moolabs/models/alb_target_group_config.py +103 -0
- moolabs/models/algorithm_breakdown_item.py +89 -0
- moolabs/models/algorithm_info.py +93 -0
- moolabs/models/alignment.py +87 -0
- moolabs/models/allocate_credits_request.py +95 -0
- moolabs/models/allocation_coverage_response.py +157 -0
- moolabs/models/allocation_fact_page_response.py +97 -0
- moolabs/models/allocation_fact_response.py +146 -0
- moolabs/models/allocation_key.py +91 -0
- moolabs/models/allocation_rule_create.py +114 -0
- moolabs/models/allocation_rule_response.py +113 -0
- moolabs/models/allocation_rule_update.py +111 -0
- moolabs/models/allocation_run_create_request.py +100 -0
- moolabs/models/allocation_run_create_response.py +142 -0
- moolabs/models/allocation_run_open_cost_snapshot_response.py +120 -0
- moolabs/models/allocation_run_readout_response.py +110 -0
- moolabs/models/allocation_run_response.py +133 -0
- moolabs/models/allocations_list_response.py +97 -0
- moolabs/models/amount.py +152 -0
- moolabs/models/amount1.py +152 -0
- moolabs/models/api_key_item.py +103 -0
- moolabs/models/app.py +164 -0
- moolabs/models/app_api_v1_auto_topup_router_trigger_response.py +108 -0
- moolabs/models/app_api_v1_fx_rates_router_fx_rate_response.py +104 -0
- moolabs/models/app_api_v1_integrations_netsuite_sync_router_trigger_response.py +89 -0
- moolabs/models/app_api_v1_internal_subscription_sync_schemas_subscription_sync_request.py +123 -0
- moolabs/models/app_api_v1_portal_router_create_portal_token_request.py +92 -0
- moolabs/models/app_api_v1_quotes_schemas_quote_settings_response.py +91 -0
- moolabs/models/app_api_v1_quotes_schemas_update_quote_settings_request.py +89 -0
- moolabs/models/app_api_v1_subscriptions_router_subscription_sync_request.py +125 -0
- moolabs/models/app_api_v1_tenant_access_router_create_portal_token_request.py +101 -0
- moolabs/models/app_api_v1_tenant_fx_rates_router_fx_rate_response.py +93 -0
- moolabs/models/app_api_v1_tenant_quote_settings_router_quote_settings_response.py +89 -0
- moolabs/models/app_api_v1_tenant_quote_settings_router_update_quote_settings_request.py +87 -0
- moolabs/models/app_capability.py +102 -0
- moolabs/models/app_capability_type.py +40 -0
- moolabs/models/app_paginated_response.py +101 -0
- moolabs/models/app_reference.py +95 -0
- moolabs/models/app_replace_update.py +164 -0
- moolabs/models/app_status.py +37 -0
- moolabs/models/app_type.py +38 -0
- moolabs/models/apply_credit_request.py +92 -0
- moolabs/models/approval_action_request.py +88 -0
- moolabs/models/approval_action_response.py +95 -0
- moolabs/models/approval_policy_response.py +91 -0
- moolabs/models/approve_request.py +88 -0
- moolabs/models/approve_response.py +91 -0
- moolabs/models/approver_in.py +95 -0
- moolabs/models/arc_demo_seed_lifecycle_request.py +103 -0
- moolabs/models/arc_dunning_permission_grant_request.py +96 -0
- moolabs/models/arc_dunning_permission_revoke_request.py +90 -0
- moolabs/models/arc_dunning_template_admin_grant_request.py +90 -0
- moolabs/models/arc_dunning_template_admin_grant_response.py +115 -0
- moolabs/models/arc_dunning_template_admin_revoke_request.py +88 -0
- moolabs/models/arc_dunning_template_admin_user_dto.py +107 -0
- moolabs/models/arc_dunning_template_admin_user_grant_dto.py +105 -0
- moolabs/models/arc_dunning_template_admin_users_response.py +110 -0
- moolabs/models/arc_http_validation_error.py +95 -0
- moolabs/models/arc_transaction_request.py +110 -0
- moolabs/models/arc_validation_error.py +99 -0
- moolabs/models/ask_customer_request.py +97 -0
- moolabs/models/ask_customer_response.py +91 -0
- moolabs/models/ask_moo_redline_request.py +98 -0
- moolabs/models/attribution_allocation_error_detail.py +94 -0
- moolabs/models/attribution_allocation_error_response.py +91 -0
- moolabs/models/attribution_completeness_response.py +97 -0
- moolabs/models/attribution_signal_conflict_detail.py +94 -0
- moolabs/models/attribution_signal_conflict_response.py +91 -0
- moolabs/models/attribution_signal_delta.py +98 -0
- moolabs/models/attribution_signal_request.py +123 -0
- moolabs/models/attribution_signal_response.py +96 -0
- moolabs/models/audit_request.py +91 -0
- moolabs/models/auto_topup_activity_item.py +104 -0
- moolabs/models/auto_topup_activity_response.py +97 -0
- moolabs/models/auto_topup_rule_response.py +114 -0
- moolabs/models/availability.py +43 -0
- moolabs/models/backfill_candidate.py +97 -0
- moolabs/models/backfill_malformed_disputes_request.py +87 -0
- moolabs/models/backfill_malformed_disputes_response.py +101 -0
- moolabs/models/balance_history_window.py +99 -0
- moolabs/models/basis.py +37 -0
- moolabs/models/batch_ingest_request.py +96 -0
- moolabs/models/batch_wallet_state_request.py +105 -0
- moolabs/models/batch_wallet_state_request_item.py +91 -0
- moolabs/models/batch_wallet_state_response.py +97 -0
- moolabs/models/batch_wallets_by_subjects_request.py +88 -0
- moolabs/models/billing_customer_profile.py +109 -0
- moolabs/models/billing_discount_percentage.py +100 -0
- moolabs/models/billing_discount_reason.py +164 -0
- moolabs/models/billing_discount_usage.py +107 -0
- moolabs/models/billing_discounts.py +97 -0
- moolabs/models/billing_import_request.py +105 -0
- moolabs/models/billing_import_response.py +104 -0
- moolabs/models/billing_invoice_customer_extended_details.py +116 -0
- moolabs/models/billing_party.py +110 -0
- moolabs/models/billing_party_replace_update.py +106 -0
- moolabs/models/billing_party_tax_identity.py +88 -0
- moolabs/models/billing_profile.py +140 -0
- moolabs/models/billing_profile_app_references.py +107 -0
- moolabs/models/billing_profile_apps.py +107 -0
- moolabs/models/billing_profile_apps_create.py +113 -0
- moolabs/models/billing_profile_apps_or_reference.py +148 -0
- moolabs/models/billing_profile_create.py +112 -0
- moolabs/models/billing_profile_customer_override.py +116 -0
- moolabs/models/billing_profile_customer_override_create.py +98 -0
- moolabs/models/billing_profile_customer_override_expand.py +37 -0
- moolabs/models/billing_profile_customer_override_order_by.py +40 -0
- moolabs/models/billing_profile_customer_override_with_details.py +113 -0
- moolabs/models/billing_profile_customer_override_with_details_paginated_response.py +101 -0
- moolabs/models/billing_profile_expand.py +36 -0
- moolabs/models/billing_profile_order_by.py +39 -0
- moolabs/models/billing_profile_paginated_response.py +101 -0
- moolabs/models/billing_profile_replace_update_with_workflow.py +106 -0
- moolabs/models/billing_tenant_settings_out.py +89 -0
- moolabs/models/billing_tenant_settings_update.py +88 -0
- moolabs/models/billing_workflow.py +109 -0
- moolabs/models/billing_workflow_collection_alignment.py +150 -0
- moolabs/models/billing_workflow_collection_alignment_anchored.py +100 -0
- moolabs/models/billing_workflow_collection_alignment_subscription.py +94 -0
- moolabs/models/billing_workflow_collection_settings.py +93 -0
- moolabs/models/billing_workflow_create.py +109 -0
- moolabs/models/billing_workflow_invoicing_settings.py +99 -0
- moolabs/models/billing_workflow_payment_settings.py +88 -0
- moolabs/models/billing_workflow_tax_settings.py +89 -0
- moolabs/models/bom_component_in.py +105 -0
- moolabs/models/bom_component_out.py +109 -0
- moolabs/models/bom_create_request.py +107 -0
- moolabs/models/bom_out.py +127 -0
- moolabs/models/bom_update_request.py +103 -0
- moolabs/models/bom_variance_out.py +115 -0
- moolabs/models/breakdown_response.py +124 -0
- moolabs/models/breakdown_row.py +121 -0
- moolabs/models/breakdown_row_kind.py +39 -0
- moolabs/models/budget_alert_response.py +107 -0
- moolabs/models/budget_amount.py +152 -0
- moolabs/models/budget_amount1.py +152 -0
- moolabs/models/budget_create.py +110 -0
- moolabs/models/budget_pace_status.py +38 -0
- moolabs/models/budget_response.py +113 -0
- moolabs/models/budget_status_item.py +105 -0
- moolabs/models/budget_update.py +107 -0
- moolabs/models/budget_with_utilization.py +119 -0
- moolabs/models/bulk_action_request.py +92 -0
- moolabs/models/bulk_replay_request.py +92 -0
- moolabs/models/buyer_accept_request.py +95 -0
- moolabs/models/buyer_otp_request_response.py +91 -0
- moolabs/models/buyer_otp_verify_request.py +95 -0
- moolabs/models/buyer_otp_verify_response.py +89 -0
- moolabs/models/buyer_quote_line_item.py +103 -0
- moolabs/models/buyer_quote_pricing.py +93 -0
- moolabs/models/buyer_quote_projection.py +133 -0
- moolabs/models/buyer_reject_request.py +88 -0
- moolabs/models/buyer_request_changes_request.py +94 -0
- moolabs/models/buyer_request_changes_response.py +93 -0
- moolabs/models/buyer_requested_changes.py +90 -0
- moolabs/models/cancel_subscription_request.py +91 -0
- moolabs/models/card_type.py +37 -0
- moolabs/models/case_create.py +112 -0
- moolabs/models/case_escalate_request.py +90 -0
- moolabs/models/case_invoice_create.py +127 -0
- moolabs/models/case_invoice_response.py +150 -0
- moolabs/models/case_list_item_response.py +171 -0
- moolabs/models/case_list_response.py +101 -0
- moolabs/models/case_pause_request.py +91 -0
- moolabs/models/case_response.py +169 -0
- moolabs/models/case_update.py +102 -0
- moolabs/models/case_write_off_request.py +90 -0
- moolabs/models/cash_app_config_update_request.py +96 -0
- moolabs/models/cei_response.py +102 -0
- moolabs/models/change_item.py +101 -0
- moolabs/models/channel_policy_schema.py +112 -0
- moolabs/models/channel_preference_create.py +99 -0
- moolabs/models/channel_preference_response.py +106 -0
- moolabs/models/channel_preference_update.py +95 -0
- moolabs/models/channel_preferences_response.py +95 -0
- moolabs/models/chat_feedback_in.py +91 -0
- moolabs/models/chat_message_in.py +89 -0
- moolabs/models/chat_request.py +101 -0
- moolabs/models/check_trigger_request.py +88 -0
- moolabs/models/checkout_session_custom_text_after_submit_params.py +109 -0
- moolabs/models/checkout_session_custom_text_after_submit_params_after_submit.py +88 -0
- moolabs/models/checkout_session_custom_text_after_submit_params_shipping_address.py +88 -0
- moolabs/models/checkout_session_custom_text_after_submit_params_submit.py +88 -0
- moolabs/models/checkout_session_custom_text_after_submit_params_terms_of_service_acceptance.py +88 -0
- moolabs/models/checkout_session_ui_mode.py +37 -0
- moolabs/models/clause_citations.py +91 -0
- moolabs/models/clause_family.py +129 -0
- moolabs/models/clause_finding.py +110 -0
- moolabs/models/clause_pack.py +118 -0
- moolabs/models/clause_position.py +91 -0
- moolabs/models/client_app_start_response.py +87 -0
- moolabs/models/cloud_cost_row_input.py +105 -0
- moolabs/models/cloud_provider.py +38 -0
- moolabs/models/cloud_provider_data_through.py +116 -0
- moolabs/models/cloud_provider_quality_axis.py +107 -0
- moolabs/models/cloud_temporal_coverage_summary.py +114 -0
- moolabs/models/collection_method.py +37 -0
- moolabs/models/commercial_basis.py +39 -0
- moolabs/models/commercial_overrides.py +113 -0
- moolabs/models/commercial_overrides_input.py +115 -0
- moolabs/models/commercial_overrides_payload.py +113 -0
- moolabs/models/communication_create.py +110 -0
- moolabs/models/communication_list_response.py +101 -0
- moolabs/models/communication_response.py +138 -0
- moolabs/models/comparison_mode.py +37 -0
- moolabs/models/completeness_response.py +105 -0
- moolabs/models/component_coverage_response.py +123 -0
- moolabs/models/compute_variance_request.py +96 -0
- moolabs/models/compute_variance_response.py +105 -0
- moolabs/models/config_upload_gap_out.py +89 -0
- moolabs/models/config_upload_response.py +109 -0
- moolabs/models/config_upload_summary_out.py +95 -0
- moolabs/models/connector_config_response.py +93 -0
- moolabs/models/connector_health_response.py +102 -0
- moolabs/models/connector_item.py +105 -0
- moolabs/models/contact_create.py +100 -0
- moolabs/models/contact_list_response.py +101 -0
- moolabs/models/contact_response.py +134 -0
- moolabs/models/contact_update.py +102 -0
- moolabs/models/contract_document_response.py +104 -0
- moolabs/models/contract_event_response.py +108 -0
- moolabs/models/contract_inbound_message_response.py +106 -0
- moolabs/models/contract_participant_response.py +131 -0
- moolabs/models/contract_segment_response.py +95 -0
- moolabs/models/contract_thread_response.py +115 -0
- moolabs/models/contract_thread_snapshot_response.py +121 -0
- moolabs/models/contract_upload_detail_response.py +103 -0
- moolabs/models/contract_version_response.py +128 -0
- moolabs/models/contributor_item.py +123 -0
- moolabs/models/contributor_kind.py +38 -0
- moolabs/models/contributor_query_request.py +146 -0
- moolabs/models/contributor_response.py +174 -0
- moolabs/models/cost.py +152 -0
- moolabs/models/cost_adjustment_create.py +131 -0
- moolabs/models/cost_adjustment_response.py +102 -0
- moolabs/models/cost_driver_rule_create_request.py +158 -0
- moolabs/models/cost_driver_rule_response.py +126 -0
- moolabs/models/cost_driver_rule_update_request.py +100 -0
- moolabs/models/cost_event_detail_response.py +132 -0
- moolabs/models/cost_event_ingest.py +177 -0
- moolabs/models/cost_event_response.py +122 -0
- moolabs/models/cost_event_summary_item.py +103 -0
- moolabs/models/cost_event_summary_request.py +88 -0
- moolabs/models/cost_event_summary_response.py +95 -0
- moolabs/models/cost_explorer_response.py +155 -0
- moolabs/models/cost_scope.py +37 -0
- moolabs/models/coverage_snapshot_response.py +114 -0
- moolabs/models/cpu_core_hours.py +152 -0
- moolabs/models/cpu_cost_weight.py +152 -0
- moolabs/models/create_allocation_run_api422_response.py +147 -0
- moolabs/models/create_api_key_request.py +89 -0
- moolabs/models/create_api_key_response.py +105 -0
- moolabs/models/create_auto_topup_rule_request.py +106 -0
- moolabs/models/create_checkout_session_tax_id_collection.py +90 -0
- moolabs/models/create_checkout_session_tax_id_collection_required.py +37 -0
- moolabs/models/create_contract_thread_request.py +87 -0
- moolabs/models/create_credit_request.py +97 -0
- moolabs/models/create_fx_rate_request.py +103 -0
- moolabs/models/create_grant_request.py +136 -0
- moolabs/models/create_mapping_request.py +91 -0
- moolabs/models/create_matrix_price_row_request.py +91 -0
- moolabs/models/create_matrix_price_row_response.py +89 -0
- moolabs/models/create_portal_token_response.py +91 -0
- moolabs/models/create_quote_redline_request.py +103 -0
- moolabs/models/create_quote_request.py +119 -0
- moolabs/models/create_quote_template_request.py +102 -0
- moolabs/models/create_rate_card_request.py +105 -0
- moolabs/models/create_reconstruction_run_request.py +101 -0
- moolabs/models/create_session_response.py +97 -0
- moolabs/models/create_snapshot_request.py +98 -0
- moolabs/models/create_stripe_checkout_session_billing_address_collection.py +37 -0
- moolabs/models/create_stripe_checkout_session_consent_collection.py +97 -0
- moolabs/models/create_stripe_checkout_session_consent_collection_payment_method_reuse_agreement.py +88 -0
- moolabs/models/create_stripe_checkout_session_consent_collection_payment_method_reuse_agreement_position.py +37 -0
- moolabs/models/create_stripe_checkout_session_consent_collection_promotions.py +37 -0
- moolabs/models/create_stripe_checkout_session_consent_collection_terms_of_service.py +37 -0
- moolabs/models/create_stripe_checkout_session_customer_update.py +92 -0
- moolabs/models/create_stripe_checkout_session_customer_update_behavior.py +37 -0
- moolabs/models/create_stripe_checkout_session_redirect_on_completion.py +38 -0
- moolabs/models/create_stripe_checkout_session_request.py +112 -0
- moolabs/models/create_stripe_checkout_session_request_customer.py +163 -0
- moolabs/models/create_stripe_checkout_session_request_options.py +147 -0
- moolabs/models/create_stripe_checkout_session_result.py +139 -0
- moolabs/models/create_stripe_customer_portal_session_params.py +91 -0
- moolabs/models/create_threshold_request.py +99 -0
- moolabs/models/create_value_recognition_request.py +100 -0
- moolabs/models/create_wallet_request.py +106 -0
- moolabs/models/credit_config.py +119 -0
- moolabs/models/credit_config_payload.py +135 -0
- moolabs/models/credit_cost_ratio_item.py +93 -0
- moolabs/models/credit_cost_ratio_response.py +101 -0
- moolabs/models/credit_memo_apply_request.py +90 -0
- moolabs/models/credit_memo_create.py +104 -0
- moolabs/models/credit_memo_create_internal.py +114 -0
- moolabs/models/credit_memo_create_public.py +108 -0
- moolabs/models/credit_memo_item.py +102 -0
- moolabs/models/credit_memo_line_in.py +90 -0
- moolabs/models/credit_memo_list_response.py +101 -0
- moolabs/models/credit_memo_out.py +138 -0
- moolabs/models/credit_memo_response.py +124 -0
- moolabs/models/credit_memo_update.py +94 -0
- moolabs/models/credit_note_original_invoice_ref.py +114 -0
- moolabs/models/credit_override.py +87 -0
- moolabs/models/credit_override_input.py +101 -0
- moolabs/models/credit_override_payload.py +100 -0
- moolabs/models/crm_quote_context_request.py +94 -0
- moolabs/models/crm_quote_context_response.py +101 -0
- moolabs/models/crm_quote_draft_request.py +98 -0
- moolabs/models/crm_quote_draft_response.py +107 -0
- moolabs/models/crm_quote_record_card_response.py +97 -0
- moolabs/models/crm_surface_response.py +97 -0
- moolabs/models/currency.py +101 -0
- moolabs/models/current.py +152 -0
- moolabs/models/custom_invoicing_app.py +142 -0
- moolabs/models/custom_invoicing_app_replace_update.py +105 -0
- moolabs/models/custom_invoicing_customer_app_data.py +117 -0
- moolabs/models/custom_invoicing_draft_synchronized_request.py +91 -0
- moolabs/models/custom_invoicing_finalized_invoicing_request.py +91 -0
- moolabs/models/custom_invoicing_finalized_payment_request.py +87 -0
- moolabs/models/custom_invoicing_finalized_request.py +97 -0
- moolabs/models/custom_invoicing_line_discount_external_id_mapping.py +97 -0
- moolabs/models/custom_invoicing_line_external_id_mapping.py +97 -0
- moolabs/models/custom_invoicing_payment_trigger.py +41 -0
- moolabs/models/custom_invoicing_sync_result.py +110 -0
- moolabs/models/custom_invoicing_tax_config.py +87 -0
- moolabs/models/custom_invoicing_update_payment_status_request.py +92 -0
- moolabs/models/custom_plan_input.py +136 -0
- moolabs/models/custom_subscription_change.py +119 -0
- moolabs/models/custom_subscription_create.py +153 -0
- moolabs/models/customer.py +172 -0
- moolabs/models/customer_access.py +102 -0
- moolabs/models/customer_app_data.py +164 -0
- moolabs/models/customer_app_data_create_or_update_item.py +164 -0
- moolabs/models/customer_app_data_paginated_response.py +101 -0
- moolabs/models/customer_cost_item.py +95 -0
- moolabs/models/customer_create.py +120 -0
- moolabs/models/customer_expand.py +36 -0
- moolabs/models/customer_id.py +95 -0
- moolabs/models/customer_item.py +114 -0
- moolabs/models/customer_key.py +87 -0
- moolabs/models/customer_key_page_response.py +101 -0
- moolabs/models/customer_key_put_request.py +103 -0
- moolabs/models/customer_key_response.py +94 -0
- moolabs/models/customer_margin_item.py +99 -0
- moolabs/models/customer_margin_response.py +101 -0
- moolabs/models/customer_order_by.py +38 -0
- moolabs/models/customer_paginated_response.py +101 -0
- moolabs/models/customer_replace_update.py +120 -0
- moolabs/models/customer_subscription_order_by.py +37 -0
- moolabs/models/customer_upsert_request.py +102 -0
- moolabs/models/customer_usage_attribution.py +88 -0
- moolabs/models/danger_request.py +89 -0
- moolabs/models/dashboard_meta.py +172 -0
- moolabs/models/dashboard_overview_response.py +115 -0
- moolabs/models/data_through.py +115 -0
- moolabs/models/db_time_coverage_response.py +154 -0
- moolabs/models/db_time_evidence_batch_readback_response.py +135 -0
- moolabs/models/db_time_evidence_batch_request.py +147 -0
- moolabs/models/db_time_evidence_batch_response.py +100 -0
- moolabs/models/db_time_evidence_conflict_detail.py +94 -0
- moolabs/models/db_time_evidence_conflict_response.py +91 -0
- moolabs/models/db_time_evidence_not_found_detail.py +94 -0
- moolabs/models/db_time_evidence_not_found_response.py +91 -0
- moolabs/models/db_time_observation_request.py +131 -0
- moolabs/models/db_time_readout_quality_response.py +103 -0
- moolabs/models/deal_context.py +97 -0
- moolabs/models/deal_context_rule.py +105 -0
- moolabs/models/decision_item.py +131 -0
- moolabs/models/decision_kind.py +46 -0
- moolabs/models/decision_overview_response.py +172 -0
- moolabs/models/decision_queue_response.py +115 -0
- moolabs/models/decision_reason_code.py +53 -0
- moolabs/models/delta.py +152 -0
- moolabs/models/delta_pct.py +152 -0
- moolabs/models/demo_seed_acute_history_baseline_request.py +106 -0
- moolabs/models/demo_seed_acute_tenant_registration_request.py +114 -0
- moolabs/models/demo_seed_agent_report_baseline_request.py +106 -0
- moolabs/models/demo_seed_arc_invoice_ref.py +107 -0
- moolabs/models/demo_seed_arc_portfolio_baseline_request.py +121 -0
- moolabs/models/demo_seed_catalog_baseline_request.py +108 -0
- moolabs/models/demo_seed_customer_portfolio_baseline_request.py +103 -0
- moolabs/models/demo_seed_integration_crm_baseline_request.py +106 -0
- moolabs/models/demo_seed_integration_finance_baseline_request.py +106 -0
- moolabs/models/demo_seed_integration_netsuite_baseline_request.py +106 -0
- moolabs/models/demo_seed_integration_webhook_baseline_request.py +106 -0
- moolabs/models/demo_seed_invoice_payment_baseline_request.py +106 -0
- moolabs/models/demo_seed_isolation_canary_baseline_request.py +106 -0
- moolabs/models/demo_seed_lifecycle_request.py +103 -0
- moolabs/models/demo_seed_quote_contract_baseline_request.py +106 -0
- moolabs/models/demo_seed_security_credentials_baseline_request.py +106 -0
- moolabs/models/demo_seed_settings_baseline_request.py +106 -0
- moolabs/models/demo_seed_subscription_baseline_request.py +106 -0
- moolabs/models/demo_seed_tenant_config_baseline_request.py +119 -0
- moolabs/models/demo_seed_usage_baseline_request.py +106 -0
- moolabs/models/derive_request.py +94 -0
- moolabs/models/dimension.py +39 -0
- moolabs/models/dimension_coverage_response.py +102 -0
- moolabs/models/disclosure_policy_response.py +93 -0
- moolabs/models/disclosure_policy_update_request.py +102 -0
- moolabs/models/discount_percentage.py +87 -0
- moolabs/models/discount_reason_maximum_spend.py +94 -0
- moolabs/models/discount_reason_ratecard_percentage.py +109 -0
- moolabs/models/discount_reason_ratecard_usage.py +116 -0
- moolabs/models/discount_usage.py +95 -0
- moolabs/models/discounts.py +97 -0
- moolabs/models/dismiss_refinement_request.py +87 -0
- moolabs/models/dispute_approval_request.py +88 -0
- moolabs/models/dispute_list_response.py +101 -0
- moolabs/models/dispute_resolve_request.py +92 -0
- moolabs/models/dispute_response.py +134 -0
- moolabs/models/dispute_summary_response.py +104 -0
- moolabs/models/dispute_update_request.py +102 -0
- moolabs/models/dns_record.py +119 -0
- moolabs/models/domain_response.py +95 -0
- moolabs/models/domain_update.py +87 -0
- moolabs/models/draft_lock_request.py +88 -0
- moolabs/models/draft_lock_response.py +97 -0
- moolabs/models/draft_save_request.py +114 -0
- moolabs/models/draft_unlock_request.py +90 -0
- moolabs/models/driver_item.py +122 -0
- moolabs/models/dry_run_request.py +89 -0
- moolabs/models/dry_run_response.py +97 -0
- moolabs/models/dso_response.py +100 -0
- moolabs/models/dynamic_price_with_commitments.py +131 -0
- moolabs/models/economics_summary.py +114 -0
- moolabs/models/edit_subscription_add_item.py +102 -0
- moolabs/models/edit_subscription_add_phase.py +100 -0
- moolabs/models/edit_subscription_remove_item.py +98 -0
- moolabs/models/edit_subscription_remove_phase.py +99 -0
- moolabs/models/edit_subscription_stretch_phase.py +98 -0
- moolabs/models/edit_subscription_unschedule_edit.py +94 -0
- moolabs/models/effective_permission_grant_dto.py +105 -0
- moolabs/models/effective_permissions_response.py +129 -0
- moolabs/models/email_config_out.py +188 -0
- moolabs/models/email_config_upsert.py +111 -0
- moolabs/models/email_context.py +44 -0
- moolabs/models/email_message_status.py +42 -0
- moolabs/models/email_provider.py +37 -0
- moolabs/models/email_provider_identity.py +157 -0
- moolabs/models/email_provider_identity_list.py +108 -0
- moolabs/models/email_provider_operator_upsert.py +131 -0
- moolabs/models/email_provider_route.py +128 -0
- moolabs/models/email_provider_route_list.py +108 -0
- moolabs/models/enable_tier3_response.py +93 -0
- moolabs/models/endpoints_response.py +89 -0
- moolabs/models/entitlement.py +164 -0
- moolabs/models/entitlement_boolean.py +168 -0
- moolabs/models/entitlement_boolean_create_inputs.py +127 -0
- moolabs/models/entitlement_boolean_v2.py +170 -0
- moolabs/models/entitlement_create_inputs.py +164 -0
- moolabs/models/entitlement_grant.py +148 -0
- moolabs/models/entitlement_grant_create_input.py +111 -0
- moolabs/models/entitlement_grant_create_input_v2.py +113 -0
- moolabs/models/entitlement_grant_v2.py +148 -0
- moolabs/models/entitlement_metered.py +190 -0
- moolabs/models/entitlement_metered_create_inputs.py +143 -0
- moolabs/models/entitlement_metered_v2.py +196 -0
- moolabs/models/entitlement_metered_v2_create_inputs.py +157 -0
- moolabs/models/entitlement_order_by.py +37 -0
- moolabs/models/entitlement_override.py +89 -0
- moolabs/models/entitlement_override_input.py +95 -0
- moolabs/models/entitlement_override_payload.py +93 -0
- moolabs/models/entitlement_paginated_response.py +101 -0
- moolabs/models/entitlement_payload.py +103 -0
- moolabs/models/entitlement_static.py +170 -0
- moolabs/models/entitlement_static_create_inputs.py +129 -0
- moolabs/models/entitlement_static_v2.py +172 -0
- moolabs/models/entitlement_type.py +38 -0
- moolabs/models/entitlement_v2.py +164 -0
- moolabs/models/entitlement_v2_create_inputs.py +164 -0
- moolabs/models/entitlement_v2_paginated_response.py +101 -0
- moolabs/models/entitlement_value.py +109 -0
- moolabs/models/error_extension.py +110 -0
- moolabs/models/escalate_request.py +90 -0
- moolabs/models/escalate_response.py +91 -0
- moolabs/models/escalation_action_request.py +90 -0
- moolabs/models/escalation_action_response.py +91 -0
- moolabs/models/escalation_create.py +97 -0
- moolabs/models/escalation_dismiss_request.py +90 -0
- moolabs/models/escalation_list_response.py +101 -0
- moolabs/models/escalation_resolve_request.py +87 -0
- moolabs/models/escalation_response.py +112 -0
- moolabs/models/escalation_update.py +93 -0
- moolabs/models/event.py +115 -0
- moolabs/models/event_delivery_attempt_response.py +101 -0
- moolabs/models/evidence_create_request.py +96 -0
- moolabs/models/evidence_kind.py +39 -0
- moolabs/models/evidence_list_response.py +97 -0
- moolabs/models/evidence_response.py +106 -0
- moolabs/models/evidence_review_request.py +90 -0
- moolabs/models/evidence_window.py +37 -0
- moolabs/models/exchange_rate.py +152 -0
- moolabs/models/expiration_duration.py +40 -0
- moolabs/models/expiration_period.py +91 -0
- moolabs/models/explorer_alias_hint.py +104 -0
- moolabs/models/explorer_alias_hint1.py +110 -0
- moolabs/models/explorer_alias_kind.py +39 -0
- moolabs/models/explorer_breakdown_page.py +166 -0
- moolabs/models/explorer_breakdown_row.py +200 -0
- moolabs/models/explorer_cloud_provider_quality_axis.py +107 -0
- moolabs/models/explorer_cloud_temporal_coverage_summary.py +115 -0
- moolabs/models/explorer_contributor_kind.py +40 -0
- moolabs/models/explorer_contributor_query_request.py +190 -0
- moolabs/models/explorer_contributor_response.py +201 -0
- moolabs/models/explorer_contributor_row.py +177 -0
- moolabs/models/explorer_cost_event_status.py +39 -0
- moolabs/models/explorer_dimension.py +40 -0
- moolabs/models/explorer_effective_sort.py +107 -0
- moolabs/models/explorer_effective_sort_field.py +41 -0
- moolabs/models/explorer_evidence_kind.py +41 -0
- moolabs/models/explorer_evidence_role.py +37 -0
- moolabs/models/explorer_excluded_event_count.py +104 -0
- moolabs/models/explorer_excluded_event_reason.py +38 -0
- moolabs/models/explorer_exposure_summary.py +124 -0
- moolabs/models/explorer_measure_source.py +40 -0
- moolabs/models/explorer_meta.py +196 -0
- moolabs/models/explorer_quality_axis.py +117 -0
- moolabs/models/explorer_quality_caveat_code.py +45 -0
- moolabs/models/explorer_quality_summary.py +151 -0
- moolabs/models/explorer_query_request.py +184 -0
- moolabs/models/explorer_request_detail_event.py +134 -0
- moolabs/models/explorer_request_detail_line.py +133 -0
- moolabs/models/explorer_request_detail_query_request.py +201 -0
- moolabs/models/explorer_request_detail_response.py +205 -0
- moolabs/models/explorer_request_detail_result_cap.py +125 -0
- moolabs/models/explorer_request_distribution.py +109 -0
- moolabs/models/explorer_request_query_request.py +190 -0
- moolabs/models/explorer_search.py +111 -0
- moolabs/models/explorer_selection_result.py +107 -0
- moolabs/models/explorer_selection_row.py +185 -0
- moolabs/models/explorer_selection_status.py +39 -0
- moolabs/models/explorer_sort.py +104 -0
- moolabs/models/explorer_sort1.py +116 -0
- moolabs/models/explorer_sort_fallback_reason.py +39 -0
- moolabs/models/explorer_sort_field.py +40 -0
- moolabs/models/explorer_source_scope.py +38 -0
- moolabs/models/explorer_summary.py +134 -0
- moolabs/models/explorer_trend_point.py +124 -0
- moolabs/models/explorer_usage_history_evidence.py +110 -0
- moolabs/models/explorer_usage_history_source.py +38 -0
- moolabs/models/feature.py +156 -0
- moolabs/models/feature_contributor_customer.py +91 -0
- moolabs/models/feature_contributor_model.py +93 -0
- moolabs/models/feature_contributor_request.py +91 -0
- moolabs/models/feature_contributors_response.py +121 -0
- moolabs/models/feature_cost_item.py +97 -0
- moolabs/models/feature_create_inputs.py +128 -0
- moolabs/models/feature_flag_item.py +97 -0
- moolabs/models/feature_flag_update.py +87 -0
- moolabs/models/feature_margin_item.py +101 -0
- moolabs/models/feature_margin_response.py +101 -0
- moolabs/models/feature_meta.py +97 -0
- moolabs/models/feature_order_by.py +40 -0
- moolabs/models/feature_override_request.py +93 -0
- moolabs/models/feature_paginated_response.py +101 -0
- moolabs/models/feature_pool.py +99 -0
- moolabs/models/feature_pool_payload.py +107 -0
- moolabs/models/feature_price_request.py +93 -0
- moolabs/models/feature_pricing_input.py +120 -0
- moolabs/models/filter_id_exact.py +88 -0
- moolabs/models/filter_string.py +129 -0
- moolabs/models/filter_time.py +114 -0
- moolabs/models/finance_summary.py +143 -0
- moolabs/models/first_pass_redline_request.py +88 -0
- moolabs/models/first_pass_redline_response.py +89 -0
- moolabs/models/flag_disputed_request.py +92 -0
- moolabs/models/flag_disputed_response.py +97 -0
- moolabs/models/flat_price.py +104 -0
- moolabs/models/flat_price_with_payment_term.py +107 -0
- moolabs/models/flatamount.py +152 -0
- moolabs/models/freshness_axis.py +121 -0
- moolabs/models/freshness_source.py +40 -0
- moolabs/models/fx_rate_to_reporting.py +153 -0
- moolabs/models/fx_rates_list_response.py +97 -0
- moolabs/models/gate_status_response.py +105 -0
- moolabs/models/get_fx_rate_request.py +92 -0
- moolabs/models/get_matrix_price_rows_response.py +107 -0
- moolabs/models/google_chat_quote_response.py +89 -0
- moolabs/models/grant_activation_request.py +122 -0
- moolabs/models/grant_burn_down_history_segment.py +125 -0
- moolabs/models/grant_order_by.py +38 -0
- moolabs/models/grant_paginated_response.py +101 -0
- moolabs/models/grant_plan_change_request.py +126 -0
- moolabs/models/grant_renewal_request.py +122 -0
- moolabs/models/grant_response.py +128 -0
- moolabs/models/grant_source_type.py +40 -0
- moolabs/models/grant_usage_record.py +97 -0
- moolabs/models/grant_v2_paginated_response.py +101 -0
- moolabs/models/grants_list_response.py +99 -0
- moolabs/models/handoff_create_request.py +92 -0
- moolabs/models/helicone_config_request.py +92 -0
- moolabs/models/homepage_response.py +107 -0
- moolabs/models/hosted_checkout_settlement_ptp_response.py +100 -0
- moolabs/models/hosted_checkout_settlement_request.py +109 -0
- moolabs/models/hosted_checkout_settlement_response.py +97 -0
- moolabs/models/http_validation_error.py +95 -0
- moolabs/models/hub_spot_connect_request.py +91 -0
- moolabs/models/id_resource.py +97 -0
- moolabs/models/identity_scope.py +39 -0
- moolabs/models/identity_scope_coverage_response.py +96 -0
- moolabs/models/import_batch_detail_response.py +105 -0
- moolabs/models/import_batch_detail_row.py +111 -0
- moolabs/models/import_batch_request.py +112 -0
- moolabs/models/import_batch_response.py +101 -0
- moolabs/models/import_batch_summary.py +111 -0
- moolabs/models/import_dispute_item.py +122 -0
- moolabs/models/import_disputes_request.py +96 -0
- moolabs/models/import_invoice_item.py +133 -0
- moolabs/models/import_invoices_request.py +96 -0
- moolabs/models/import_promise_item.py +155 -0
- moolabs/models/import_promises_request.py +96 -0
- moolabs/models/inbound_email_attachment.py +91 -0
- moolabs/models/inbound_email_payload.py +103 -0
- moolabs/models/inbound_email_process_response.py +97 -0
- moolabs/models/ingest_events_body.py +150 -0
- moolabs/models/ingest_health.py +97 -0
- moolabs/models/ingested_event.py +111 -0
- moolabs/models/ingested_event_cursor_paginated_response.py +98 -0
- moolabs/models/initialamount.py +152 -0
- moolabs/models/insight_card.py +111 -0
- moolabs/models/install_method.py +38 -0
- moolabs/models/integration_update.py +89 -0
- moolabs/models/invalidate_portal_token_request.py +89 -0
- moolabs/models/invalidate_portal_tokens_request.py +89 -0
- moolabs/models/invoice.py +249 -0
- moolabs/models/invoice_allocation_out.py +103 -0
- moolabs/models/invoice_app_external_ids.py +97 -0
- moolabs/models/invoice_available_action_details.py +89 -0
- moolabs/models/invoice_available_actions.py +132 -0
- moolabs/models/invoice_detailed_line.py +244 -0
- moolabs/models/invoice_detailed_line_cost_category.py +37 -0
- moolabs/models/invoice_detailed_line_rate_card.py +116 -0
- moolabs/models/invoice_document_ref_type.py +36 -0
- moolabs/models/invoice_expand.py +38 -0
- moolabs/models/invoice_generic_document_ref.py +98 -0
- moolabs/models/invoice_item.py +112 -0
- moolabs/models/invoice_line.py +296 -0
- moolabs/models/invoice_line_amount_discount.py +141 -0
- moolabs/models/invoice_line_app_external_ids.py +93 -0
- moolabs/models/invoice_line_discounts.py +105 -0
- moolabs/models/invoice_line_managed_by.py +38 -0
- moolabs/models/invoice_line_out.py +99 -0
- moolabs/models/invoice_line_replace_update.py +143 -0
- moolabs/models/invoice_line_status.py +38 -0
- moolabs/models/invoice_line_subscription_reference.py +115 -0
- moolabs/models/invoice_line_tax_behavior.py +37 -0
- moolabs/models/invoice_line_tax_item.py +117 -0
- moolabs/models/invoice_line_usage_discount.py +155 -0
- moolabs/models/invoice_order_by.py +41 -0
- moolabs/models/invoice_paginated_response.py +101 -0
- moolabs/models/invoice_payment_terms.py +91 -0
- moolabs/models/invoice_pending_line_create.py +131 -0
- moolabs/models/invoice_pending_line_create_input.py +105 -0
- moolabs/models/invoice_pending_line_create_response.py +107 -0
- moolabs/models/invoice_pending_lines_action_filters_input.py +88 -0
- moolabs/models/invoice_pending_lines_action_input.py +106 -0
- moolabs/models/invoice_reference.py +101 -0
- moolabs/models/invoice_replace_update.py +117 -0
- moolabs/models/invoice_simulation_input.py +107 -0
- moolabs/models/invoice_simulation_line.py +164 -0
- moolabs/models/invoice_status.py +44 -0
- moolabs/models/invoice_status_details.py +103 -0
- moolabs/models/invoice_totals.py +163 -0
- moolabs/models/invoice_type.py +37 -0
- moolabs/models/invoice_upsert_request.py +112 -0
- moolabs/models/invoice_usage_based_rate_card.py +116 -0
- moolabs/models/invoice_workflow_invoicing_settings_replace_update.py +97 -0
- moolabs/models/invoice_workflow_replace_update.py +91 -0
- moolabs/models/invoice_workflow_settings.py +111 -0
- moolabs/models/invoice_workflow_settings_replace_update.py +97 -0
- moolabs/models/issue_after_reset.py +90 -0
- moolabs/models/jurisdiction_profile_response.py +102 -0
- moolabs/models/jurisdiction_resolution_request.py +92 -0
- moolabs/models/kill_switch_request.py +87 -0
- moolabs/models/langfuse_config_request.py +92 -0
- moolabs/models/lesson_action_request.py +89 -0
- moolabs/models/level_in.py +91 -0
- moolabs/models/lifecycle_event_request.py +97 -0
- moolabs/models/line_item_create.py +118 -0
- moolabs/models/line_total.py +153 -0
- moolabs/models/link_net_suite_account_request.py +89 -0
- moolabs/models/list_auto_topup_rules_response.py +97 -0
- moolabs/models/list_connectors200_response_inner.py +148 -0
- moolabs/models/list_entitlements_result.py +151 -0
- moolabs/models/list_events_v2_filter_param.py +123 -0
- moolabs/models/list_features_result.py +151 -0
- moolabs/models/list_grants_get200_response.py +151 -0
- moolabs/models/mapping_response.py +97 -0
- moolabs/models/mapping_rule_create.py +105 -0
- moolabs/models/mapping_rule_response.py +118 -0
- moolabs/models/mapping_rule_update.py +103 -0
- moolabs/models/margin_snapshot_response.py +131 -0
- moolabs/models/marketplace_app_api_key_install_request.py +91 -0
- moolabs/models/marketplace_install_request_payload.py +89 -0
- moolabs/models/marketplace_install_response.py +94 -0
- moolabs/models/marketplace_listing.py +105 -0
- moolabs/models/marketplace_listing_paginated_response.py +101 -0
- moolabs/models/matrix_price_row.py +91 -0
- moolabs/models/measure.py +146 -0
- moolabs/models/measure_kind.py +41 -0
- moolabs/models/measure_usage_from.py +151 -0
- moolabs/models/measure_usage_from_preset.py +37 -0
- moolabs/models/merge_remittances_request.py +89 -0
- moolabs/models/meter.py +176 -0
- moolabs/models/meter_aggregation.py +42 -0
- moolabs/models/meter_create.py +113 -0
- moolabs/models/meter_mapping_item.py +95 -0
- moolabs/models/meter_order_by.py +40 -0
- moolabs/models/meter_query_request.py +121 -0
- moolabs/models/meter_query_result.py +103 -0
- moolabs/models/meter_query_row.py +98 -0
- moolabs/models/meter_test_event_request.py +87 -0
- moolabs/models/meter_test_event_response.py +93 -0
- moolabs/models/meter_update.py +94 -0
- moolabs/models/meter_usage_summary_item.py +103 -0
- moolabs/models/meter_usage_summary_response.py +95 -0
- moolabs/models/meter_validation_error.py +101 -0
- moolabs/models/migrate_subscription_request.py +105 -0
- moolabs/models/model_cost_item.py +95 -0
- moolabs/models/net_suite_connect_request.py +103 -0
- moolabs/models/net_suite_cutover_guard_request.py +87 -0
- moolabs/models/net_suite_m2_m_finalize_request.py +87 -0
- moolabs/models/net_suite_m2_m_setup_request.py +101 -0
- moolabs/models/net_suite_managed_portal_backfill_cancel_request.py +87 -0
- moolabs/models/net_suite_managed_portal_backfill_request.py +89 -0
- moolabs/models/net_suite_managed_portal_backfill_run_request.py +90 -0
- moolabs/models/net_suite_managed_portal_mapping_delete_request.py +91 -0
- moolabs/models/net_suite_managed_portal_mapping_request.py +97 -0
- moolabs/models/net_suite_managed_portal_protection_ack_request.py +89 -0
- moolabs/models/next_action_type.py +41 -0
- moolabs/models/note_create.py +94 -0
- moolabs/models/note_list_response.py +101 -0
- moolabs/models/note_response.py +104 -0
- moolabs/models/notification_channel_meta.py +100 -0
- moolabs/models/notification_channel_order_by.py +39 -0
- moolabs/models/notification_channel_paginated_response.py +101 -0
- moolabs/models/notification_channel_type.py +36 -0
- moolabs/models/notification_channel_webhook.py +145 -0
- moolabs/models/notification_channel_webhook_create_request.py +117 -0
- moolabs/models/notification_event.py +137 -0
- moolabs/models/notification_event_balance_threshold_payload.py +121 -0
- moolabs/models/notification_event_balance_threshold_payload_data.py +133 -0
- moolabs/models/notification_event_delivery_attempt.py +103 -0
- moolabs/models/notification_event_delivery_status.py +125 -0
- moolabs/models/notification_event_delivery_status_state.py +40 -0
- moolabs/models/notification_event_entitlement_value_payload_base.py +125 -0
- moolabs/models/notification_event_invoice_created_payload.py +121 -0
- moolabs/models/notification_event_invoice_updated_payload.py +121 -0
- moolabs/models/notification_event_order_by.py +37 -0
- moolabs/models/notification_event_paginated_response.py +101 -0
- moolabs/models/notification_event_payload.py +178 -0
- moolabs/models/notification_event_resend_request.py +88 -0
- moolabs/models/notification_event_reset_payload.py +121 -0
- moolabs/models/notification_event_type.py +39 -0
- moolabs/models/notification_rule.py +178 -0
- moolabs/models/notification_rule_balance_threshold.py +159 -0
- moolabs/models/notification_rule_balance_threshold_create_request.py +115 -0
- moolabs/models/notification_rule_balance_threshold_value.py +90 -0
- moolabs/models/notification_rule_balance_threshold_value_type.py +40 -0
- moolabs/models/notification_rule_create_request.py +178 -0
- moolabs/models/notification_rule_entitlement_reset.py +149 -0
- moolabs/models/notification_rule_entitlement_reset_create_request.py +105 -0
- moolabs/models/notification_rule_invoice_created.py +139 -0
- moolabs/models/notification_rule_invoice_created_create_request.py +103 -0
- moolabs/models/notification_rule_invoice_updated.py +139 -0
- moolabs/models/notification_rule_invoice_updated_create_request.py +103 -0
- moolabs/models/notification_rule_order_by.py +39 -0
- moolabs/models/notification_rule_paginated_response.py +101 -0
- moolabs/models/notify_channel.py +89 -0
- moolabs/models/o_auth2_authorization_code_grant_error_type.py +42 -0
- moolabs/models/observation_out.py +103 -0
- moolabs/models/observed_total_cost.py +153 -0
- moolabs/models/open_cost_cluster_binding.py +115 -0
- moolabs/models/open_cost_dedicated_namespace.py +104 -0
- moolabs/models/open_cost_installation_create_request.py +122 -0
- moolabs/models/open_cost_installation_create_response.py +116 -0
- moolabs/models/open_cost_installation_response.py +114 -0
- moolabs/models/open_cost_snapshot_request.py +139 -0
- moolabs/models/open_cost_snapshot_response.py +125 -0
- moolabs/models/open_cost_trust_policy.py +145 -0
- moolabs/models/open_cost_wire_row.py +140 -0
- moolabs/models/open_from_scope_request.py +98 -0
- moolabs/models/operations_summary.py +120 -0
- moolabs/models/opt_out_request.py +90 -0
- moolabs/models/opt_out_response.py +93 -0
- moolabs/models/org_role.py +152 -0
- moolabs/models/original_total.py +152 -0
- moolabs/models/otlp_ingest_response.py +91 -0
- moolabs/models/overall_freshness.py +116 -0
- moolabs/models/overdraft_settings.py +93 -0
- moolabs/models/overdraft_settings_payload.py +93 -0
- moolabs/models/override_first_ingress_request.py +94 -0
- moolabs/models/override_request.py +90 -0
- moolabs/models/override_response.py +91 -0
- moolabs/models/overview_response.py +109 -0
- moolabs/models/pack_provenance.py +101 -0
- moolabs/models/package_price_with_commitments.py +137 -0
- moolabs/models/paginated_credit_memos.py +97 -0
- moolabs/models/paginated_customers.py +99 -0
- moolabs/models/paginated_invoices.py +97 -0
- moolabs/models/paginated_payments.py +97 -0
- moolabs/models/paginated_sync_runs.py +97 -0
- moolabs/models/patch_quote_agent_policy_request.py +98 -0
- moolabs/models/patch_rows_request.py +95 -0
- moolabs/models/patch_session_request.py +107 -0
- moolabs/models/payment_allocation_response.py +104 -0
- moolabs/models/payment_create.py +109 -0
- moolabs/models/payment_due_date.py +124 -0
- moolabs/models/payment_failed_request.py +101 -0
- moolabs/models/payment_failed_response.py +93 -0
- moolabs/models/payment_instructions_response.py +95 -0
- moolabs/models/payment_instructions_update_request.py +90 -0
- moolabs/models/payment_item.py +104 -0
- moolabs/models/payment_link_request.py +105 -0
- moolabs/models/payment_link_response.py +89 -0
- moolabs/models/payment_list_response.py +101 -0
- moolabs/models/payment_match_request.py +90 -0
- moolabs/models/payment_response.py +136 -0
- moolabs/models/payment_reversal_request.py +90 -0
- moolabs/models/payment_succeeded_request.py +103 -0
- moolabs/models/payment_succeeded_response.py +97 -0
- moolabs/models/payment_term_due_date.py +113 -0
- moolabs/models/payment_term_instant.py +102 -0
- moolabs/models/payment_terms.py +148 -0
- moolabs/models/pending_provider_confirmation_reconcile_request.py +88 -0
- moolabs/models/pending_sns_confirmation_out.py +102 -0
- moolabs/models/period.py +90 -0
- moolabs/models/period_settlement_out.py +143 -0
- moolabs/models/period_window.py +103 -0
- moolabs/models/persona.py +39 -0
- moolabs/models/plan.py +191 -0
- moolabs/models/plan_addon.py +126 -0
- moolabs/models/plan_addon_create.py +101 -0
- moolabs/models/plan_addon_order_by.py +40 -0
- moolabs/models/plan_addon_paginated_response.py +101 -0
- moolabs/models/plan_addon_replace_update.py +91 -0
- moolabs/models/plan_amend_request.py +103 -0
- moolabs/models/plan_cost_item.py +97 -0
- moolabs/models/plan_create.py +140 -0
- moolabs/models/plan_create_request.py +103 -0
- moolabs/models/plan_order_by.py +40 -0
- moolabs/models/plan_paginated_response.py +101 -0
- moolabs/models/plan_phase.py +113 -0
- moolabs/models/plan_pricing_input.py +103 -0
- moolabs/models/plan_pricing_sync_request.py +105 -0
- moolabs/models/plan_pricing_view.py +107 -0
- moolabs/models/plan_ref_payload.py +91 -0
- moolabs/models/plan_reference.py +106 -0
- moolabs/models/plan_reference_input.py +97 -0
- moolabs/models/plan_replace_update.py +122 -0
- moolabs/models/plan_status.py +39 -0
- moolabs/models/plan_subscription_change.py +153 -0
- moolabs/models/plan_subscription_create.py +167 -0
- moolabs/models/policy_update_request.py +94 -0
- moolabs/models/pool_notification_config_request.py +87 -0
- moolabs/models/pooloverrides_value.py +152 -0
- moolabs/models/portal_case_response.py +108 -0
- moolabs/models/portal_channel_preference_request.py +100 -0
- moolabs/models/portal_dispute_request.py +94 -0
- moolabs/models/portal_dispute_response.py +102 -0
- moolabs/models/portal_invoice_response.py +124 -0
- moolabs/models/portal_payment_intent_response.py +91 -0
- moolabs/models/portal_payment_request.py +102 -0
- moolabs/models/portal_preferences_request.py +113 -0
- moolabs/models/portal_preferences_response.py +87 -0
- moolabs/models/portal_promise_to_pay_response.py +106 -0
- moolabs/models/portal_ptp_request.py +95 -0
- moolabs/models/portal_token.py +121 -0
- moolabs/models/portal_token_item.py +97 -0
- moolabs/models/preview_resolution_request.py +89 -0
- moolabs/models/preview_resolution_response.py +101 -0
- moolabs/models/preview_template_request.py +102 -0
- moolabs/models/preview_template_response.py +95 -0
- moolabs/models/preview_trace_entry.py +97 -0
- moolabs/models/previous.py +152 -0
- moolabs/models/price_payment_term.py +37 -0
- moolabs/models/price_session_response.py +109 -0
- moolabs/models/price_tier.py +110 -0
- moolabs/models/price_tier_payload.py +103 -0
- moolabs/models/pricing_override_input.py +100 -0
- moolabs/models/pricing_result.py +100 -0
- moolabs/models/pricing_snapshot_response.py +109 -0
- moolabs/models/pricing_tier_input.py +90 -0
- moolabs/models/priority.py +38 -0
- moolabs/models/pro_rating_config.py +90 -0
- moolabs/models/pro_rating_mode.py +36 -0
- moolabs/models/process_value_recognition_request.py +94 -0
- moolabs/models/progress.py +94 -0
- moolabs/models/projection_link_in.py +91 -0
- moolabs/models/projection_links_request.py +98 -0
- moolabs/models/projection_links_response.py +89 -0
- moolabs/models/promise_response.py +112 -0
- moolabs/models/promote_response.py +89 -0
- moolabs/models/provider_billing_reference.py +146 -0
- moolabs/models/provider_billing_reference_kind.py +37 -0
- moolabs/models/provider_blocking_reason.py +115 -0
- moolabs/models/provider_confirmation_repair_request.py +99 -0
- moolabs/models/provider_connection_status.py +42 -0
- moolabs/models/provider_identity_details.py +110 -0
- moolabs/models/provider_identity_purpose.py +38 -0
- moolabs/models/provider_kind.py +37 -0
- moolabs/models/provider_readiness_response.py +97 -0
- moolabs/models/provider_readiness_summary.py +123 -0
- moolabs/models/provider_route_status.py +39 -0
- moolabs/models/provider_safe_test_send_request.py +107 -0
- moolabs/models/provider_safe_test_send_response.py +109 -0
- moolabs/models/provider_summary.py +89 -0
- moolabs/models/provider_warning.py +115 -0
- moolabs/models/ptp_approval_request.py +88 -0
- moolabs/models/ptp_create_request.py +103 -0
- moolabs/models/ptp_fulfill_request.py +90 -0
- moolabs/models/ptp_payment_link_response.py +89 -0
- moolabs/models/ptp_summary_response.py +104 -0
- moolabs/models/publish_plan_request.py +93 -0
- moolabs/models/publish_plan_result.py +93 -0
- moolabs/models/publish_template_request.py +96 -0
- moolabs/models/put_account_segment_request.py +89 -0
- moolabs/models/put_sku_eligibility_request.py +89 -0
- moolabs/models/put_tenant_segments_request.py +89 -0
- moolabs/models/quality_axis.py +116 -0
- moolabs/models/quality_caveat_code.py +40 -0
- moolabs/models/quality_status.py +40 -0
- moolabs/models/quality_summary.py +135 -0
- moolabs/models/quantity.py +153 -0
- moolabs/models/quick_action.py +99 -0
- moolabs/models/quick_books_connect_request.py +93 -0
- moolabs/models/quick_redline_response.py +123 -0
- moolabs/models/quote_agent_evaluation_response.py +106 -0
- moolabs/models/quote_agent_policy_response.py +112 -0
- moolabs/models/quote_agent_provenance_run_response.py +114 -0
- moolabs/models/quote_agent_run_response.py +122 -0
- moolabs/models/quote_approval_decision_request.py +88 -0
- moolabs/models/quote_approval_response.py +107 -0
- moolabs/models/quote_line_item_input.py +144 -0
- moolabs/models/quote_list_response.py +101 -0
- moolabs/models/quote_metrics_response.py +105 -0
- moolabs/models/quote_redline_decision_request.py +88 -0
- moolabs/models/quote_redline_response.py +125 -0
- moolabs/models/quote_response.py +125 -0
- moolabs/models/quote_template_list_response.py +95 -0
- moolabs/models/quote_template_response.py +109 -0
- moolabs/models/quote_version_response.py +129 -0
- moolabs/models/ram_cost_weight.py +152 -0
- moolabs/models/ram_gib_hours.py +152 -0
- moolabs/models/rate_bulk_import_request.py +97 -0
- moolabs/models/rate_bulk_import_response.py +91 -0
- moolabs/models/rate_card.py +150 -0
- moolabs/models/rate_card_boolean_entitlement.py +96 -0
- moolabs/models/rate_card_cost_list_response.py +95 -0
- moolabs/models/rate_card_cost_row.py +103 -0
- moolabs/models/rate_card_discount.py +87 -0
- moolabs/models/rate_card_discount_input.py +103 -0
- moolabs/models/rate_card_discount_payload.py +87 -0
- moolabs/models/rate_card_entitlement.py +164 -0
- moolabs/models/rate_card_flat_fee.py +148 -0
- moolabs/models/rate_card_metered_entitlement.py +107 -0
- moolabs/models/rate_card_payload.py +103 -0
- moolabs/models/rate_card_response.py +106 -0
- moolabs/models/rate_card_static_entitlement.py +98 -0
- moolabs/models/rate_card_usage_based.py +148 -0
- moolabs/models/rate_card_usage_based_price.py +192 -0
- moolabs/models/rate_catalog_create.py +117 -0
- moolabs/models/rate_catalog_response.py +118 -0
- moolabs/models/rate_catalog_update.py +107 -0
- moolabs/models/rate_generation_list_view.py +97 -0
- moolabs/models/rate_generation_view.py +98 -0
- moolabs/models/rate_per_unit.py +153 -0
- moolabs/models/rate_per_unit1.py +153 -0
- moolabs/models/rate_schedule_list_response.py +95 -0
- moolabs/models/rate_schedule_preview_response.py +105 -0
- moolabs/models/rate_schedule_version_out.py +101 -0
- moolabs/models/ratify_family_request.py +91 -0
- moolabs/models/ratify_refinement_request.py +93 -0
- moolabs/models/re_scope_request.py +89 -0
- moolabs/models/readiness_summary.py +89 -0
- moolabs/models/readout_page_response.py +119 -0
- moolabs/models/readout_row_response.py +104 -0
- moolabs/models/readout_snapshot_response.py +116 -0
- moolabs/models/reallocate_request.py +90 -0
- moolabs/models/reallocate_response.py +97 -0
- moolabs/models/reattempt_request.py +88 -0
- moolabs/models/reattempt_response.py +89 -0
- moolabs/models/recall_request.py +87 -0
- moolabs/models/reconcile_request.py +89 -0
- moolabs/models/reconcile_response.py +95 -0
- moolabs/models/reconciliation_basis.py +99 -0
- moolabs/models/reconciliation_basis_out.py +95 -0
- moolabs/models/reconstruction_run_response.py +95 -0
- moolabs/models/record_usage_request.py +115 -0
- moolabs/models/recurring_period.py +96 -0
- moolabs/models/recurring_period_create_input.py +94 -0
- moolabs/models/recurring_period_interval.py +151 -0
- moolabs/models/recurring_period_interval_enum.py +39 -0
- moolabs/models/recurring_period_v2.py +94 -0
- moolabs/models/recurringamount.py +152 -0
- moolabs/models/redline_summary.py +89 -0
- moolabs/models/refund_credit_request.py +90 -0
- moolabs/models/reject_rate_generation_request.py +87 -0
- moolabs/models/remittance_create_request.py +103 -0
- moolabs/models/remittance_list_response.py +101 -0
- moolabs/models/remittance_response.py +120 -0
- moolabs/models/remove_contract_participant_response.py +131 -0
- moolabs/models/remove_phase_shifting.py +37 -0
- moolabs/models/replace_levels_request.py +95 -0
- moolabs/models/replay_dead_letter_request.py +89 -0
- moolabs/models/report_create_request.py +105 -0
- moolabs/models/report_create_response.py +139 -0
- moolabs/models/reporting_line_total.py +153 -0
- moolabs/models/reporting_total_cost.py +153 -0
- moolabs/models/request_cost_distribution.py +127 -0
- moolabs/models/request_evidence_response.py +197 -0
- moolabs/models/request_evidence_row.py +154 -0
- moolabs/models/request_pricing_state.py +40 -0
- moolabs/models/reschedule_request.py +88 -0
- moolabs/models/resend_identity_details.py +104 -0
- moolabs/models/reset_entitlement_usage_input.py +92 -0
- moolabs/models/resolve_unapplied_request.py +87 -0
- moolabs/models/resource_map_create_request.py +103 -0
- moolabs/models/resource_map_response.py +113 -0
- moolabs/models/retry_unpriced_request.py +91 -0
- moolabs/models/retry_unpriced_response.py +91 -0
- moolabs/models/revenue_recognition_request.py +89 -0
- moolabs/models/reversed_settlement_ref.py +93 -0
- moolabs/models/review_quarantined_request.py +95 -0
- moolabs/models/review_quarantined_response.py +95 -0
- moolabs/models/revoke_api_key_request.py +87 -0
- moolabs/models/revoke_portal_token_request.py +87 -0
- moolabs/models/rollover_mode.py +38 -0
- moolabs/models/rollover_request.py +95 -0
- moolabs/models/rollover_response.py +98 -0
- moolabs/models/rollovercapamount.py +152 -0
- moolabs/models/rolloverpercent.py +152 -0
- moolabs/models/rotate_key_request.py +88 -0
- moolabs/models/rotate_key_response.py +92 -0
- moolabs/models/route_update_request.py +110 -0
- moolabs/models/salesforce_connect_request.py +93 -0
- moolabs/models/sample_rate.py +153 -0
- moolabs/models/sandbox_app.py +138 -0
- moolabs/models/sandbox_app_replace_update.py +101 -0
- moolabs/models/sandbox_customer_app_data.py +115 -0
- moolabs/models/save_redline_edit_request.py +95 -0
- moolabs/models/scenario_compare_response.py +97 -0
- moolabs/models/scenario_item.py +117 -0
- moolabs/models/scenario_request.py +96 -0
- moolabs/models/scope_type.py +38 -0
- moolabs/models/sdk_batch_ingest_request.py +96 -0
- moolabs/models/sdk_batch_ingest_response.py +91 -0
- moolabs/models/sdk_event.py +111 -0
- moolabs/models/sdk_span.py +106 -0
- moolabs/models/segment_out.py +95 -0
- moolabs/models/sender_response.py +93 -0
- moolabs/models/sender_update.py +93 -0
- moolabs/models/ses_identity_details.py +127 -0
- moolabs/models/ses_provider_scope_status.py +89 -0
- moolabs/models/set_rate_card_cost_request.py +89 -0
- moolabs/models/severity.py +38 -0
- moolabs/models/shadow_mode_request.py +87 -0
- moolabs/models/shadow_run_list_item.py +101 -0
- moolabs/models/shadow_run_metrics.py +114 -0
- moolabs/models/shadow_run_request.py +92 -0
- moolabs/models/shadow_run_summary.py +95 -0
- moolabs/models/simulate_margin_request.py +100 -0
- moolabs/models/simulate_margin_response.py +115 -0
- moolabs/models/simulate_out.py +103 -0
- moolabs/models/sku_eligibility_list_response.py +95 -0
- moolabs/models/sku_eligibility_row.py +91 -0
- moolabs/models/slack_quote_command_response.py +93 -0
- moolabs/models/snapshot_compute_request.py +104 -0
- moolabs/models/snapshot_compute_response.py +99 -0
- moolabs/models/snapshot_response.py +104 -0
- moolabs/models/sns_confirmation_command_out.py +98 -0
- moolabs/models/sns_confirmation_confirmed_out.py +94 -0
- moolabs/models/sns_confirmation_confirmed_request.py +101 -0
- moolabs/models/sns_confirmation_list_out.py +95 -0
- moolabs/models/sort_direction.py +37 -0
- moolabs/models/sort_order.py +37 -0
- moolabs/models/spend_summary.py +114 -0
- moolabs/models/stage_schema.py +117 -0
- moolabs/models/strategy_create_request.py +130 -0
- moolabs/models/strategy_preview_request.py +87 -0
- moolabs/models/strategy_update_request.py +133 -0
- moolabs/models/stripe_api_key_input.py +87 -0
- moolabs/models/stripe_app.py +150 -0
- moolabs/models/stripe_app_replace_update.py +103 -0
- moolabs/models/stripe_checkout_session_mode.py +36 -0
- moolabs/models/stripe_customer_app_data.py +119 -0
- moolabs/models/stripe_customer_app_data_base.py +89 -0
- moolabs/models/stripe_customer_app_data_create_or_update_item.py +111 -0
- moolabs/models/stripe_customer_portal_session.py +102 -0
- moolabs/models/stripe_tax_config.py +95 -0
- moolabs/models/stripe_webhook_event.py +99 -0
- moolabs/models/stripe_webhook_event_data.py +92 -0
- moolabs/models/stripe_webhook_response.py +118 -0
- moolabs/models/subject.py +122 -0
- moolabs/models/subject_upsert.py +98 -0
- moolabs/models/subscription.py +201 -0
- moolabs/models/subscription_activate_request.py +101 -0
- moolabs/models/subscription_addon.py +167 -0
- moolabs/models/subscription_addon_create.py +106 -0
- moolabs/models/subscription_addon_rate_card.py +94 -0
- moolabs/models/subscription_addon_timeline_segment.py +95 -0
- moolabs/models/subscription_addon_update.py +100 -0
- moolabs/models/subscription_alignment.py +93 -0
- moolabs/models/subscription_bad_request_error_response.py +102 -0
- moolabs/models/subscription_change.py +147 -0
- moolabs/models/subscription_change_response_body.py +97 -0
- moolabs/models/subscription_conflict_error_response.py +102 -0
- moolabs/models/subscription_create.py +147 -0
- moolabs/models/subscription_edit.py +102 -0
- moolabs/models/subscription_edit_operation.py +206 -0
- moolabs/models/subscription_error_extensions.py +95 -0
- moolabs/models/subscription_expanded.py +211 -0
- moolabs/models/subscription_item.py +167 -0
- moolabs/models/subscription_item_included.py +97 -0
- moolabs/models/subscription_item_price_override.py +111 -0
- moolabs/models/subscription_item_price_override_type.py +37 -0
- moolabs/models/subscription_paginated_response.py +101 -0
- moolabs/models/subscription_phase_create.py +109 -0
- moolabs/models/subscription_phase_expanded.py +163 -0
- moolabs/models/subscription_ramp_phase.py +91 -0
- moolabs/models/subscription_status.py +39 -0
- moolabs/models/subscription_timing.py +151 -0
- moolabs/models/subscription_timing_enum.py +37 -0
- moolabs/models/sync_config_request.py +109 -0
- moolabs/models/sync_config_response.py +111 -0
- moolabs/models/sync_invoices_request.py +87 -0
- moolabs/models/sync_run_item.py +102 -0
- moolabs/models/synthetic_request_evidence_row.py +118 -0
- moolabs/models/task_complete_request.py +92 -0
- moolabs/models/task_list_response.py +101 -0
- moolabs/models/task_response.py +130 -0
- moolabs/models/task_update.py +93 -0
- moolabs/models/tax_behavior.py +37 -0
- moolabs/models/tax_config.py +100 -0
- moolabs/models/template_archive_request.py +88 -0
- moolabs/models/template_card_action_request.py +99 -0
- moolabs/models/template_item.py +97 -0
- moolabs/models/template_key_create_request.py +92 -0
- moolabs/models/template_key_list_response.py +116 -0
- moolabs/models/template_key_response.py +126 -0
- moolabs/models/template_meta_response.py +93 -0
- moolabs/models/template_preview_request.py +87 -0
- moolabs/models/template_preview_response.py +101 -0
- moolabs/models/template_test_send_request.py +87 -0
- moolabs/models/template_test_send_response.py +93 -0
- moolabs/models/template_update.py +91 -0
- moolabs/models/template_version_list_response.py +95 -0
- moolabs/models/template_version_response.py +143 -0
- moolabs/models/tenant_config_response.py +95 -0
- moolabs/models/tenant_escalation_config_out.py +97 -0
- moolabs/models/tenant_escalation_config_patch.py +92 -0
- moolabs/models/tenant_provision_request.py +89 -0
- moolabs/models/tenant_segment_entry.py +89 -0
- moolabs/models/tenant_segments_response.py +97 -0
- moolabs/models/tenant_unit_economics.py +97 -0
- moolabs/models/territory_in.py +89 -0
- moolabs/models/test_send_request.py +104 -0
- moolabs/models/test_send_response.py +93 -0
- moolabs/models/tiered_price_mode.py +37 -0
- moolabs/models/tiered_price_with_commitments.py +132 -0
- moolabs/models/tiered_pricing_payload.py +97 -0
- moolabs/models/timestamp_window.py +103 -0
- moolabs/models/top_consumer.py +93 -0
- moolabs/models/topup_defaults_request.py +93 -0
- moolabs/models/total_cost.py +153 -0
- moolabs/models/traces_response.py +95 -0
- moolabs/models/trend_data_point.py +91 -0
- moolabs/models/trend_point.py +116 -0
- moolabs/models/trigger_request.py +87 -0
- moolabs/models/ulidor_external_key.py +153 -0
- moolabs/models/unapplied_cash_response.py +106 -0
- moolabs/models/unavailable_reason.py +66 -0
- moolabs/models/unexpected_problem_response.py +111 -0
- moolabs/models/unified_price_row_input.py +99 -0
- moolabs/models/unified_price_row_out.py +109 -0
- moolabs/models/unit_cost.py +153 -0
- moolabs/models/unit_economics.py +97 -0
- moolabs/models/unit_price.py +104 -0
- moolabs/models/unit_price_with_commitments.py +128 -0
- moolabs/models/unitamount.py +152 -0
- moolabs/models/update_approval_policy_request.py +87 -0
- moolabs/models/update_auto_topup_rule_request.py +102 -0
- moolabs/models/update_credit_pool_request.py +98 -0
- moolabs/models/update_quote_template_request.py +102 -0
- moolabs/models/update_threshold_request.py +97 -0
- moolabs/models/update_wallet_settings_request.py +95 -0
- moolabs/models/update_wallet_thresholds_request.py +92 -0
- moolabs/models/upsert_fx_rate_request.py +92 -0
- moolabs/models/upsert_provider_identity_request.py +115 -0
- moolabs/models/upto.py +152 -0
- moolabs/models/usage_summary_window_size.py +37 -0
- moolabs/models/validate_template_request.py +116 -0
- moolabs/models/validate_template_response.py +89 -0
- moolabs/models/validation_error.py +99 -0
- moolabs/models/validation_error_loc_inner.py +152 -0
- moolabs/models/validation_issue.py +135 -0
- moolabs/models/validation_issue_severity.py +37 -0
- moolabs/models/validation_response.py +105 -0
- moolabs/models/value_recognition_response.py +93 -0
- moolabs/models/variance_decomposition_out.py +117 -0
- moolabs/models/variance_summary_response.py +101 -0
- moolabs/models/verification_status.py +39 -0
- moolabs/models/void_grant_request.py +88 -0
- moolabs/models/void_invoice_action_create.py +93 -0
- moolabs/models/void_invoice_action_create_item.py +93 -0
- moolabs/models/void_invoice_action_input.py +103 -0
- moolabs/models/void_invoice_action_line_override.py +101 -0
- moolabs/models/void_invoice_line_action_create.py +150 -0
- moolabs/models/void_invoice_line_action_create_item.py +150 -0
- moolabs/models/void_invoice_line_discard_action.py +94 -0
- moolabs/models/void_invoice_line_pending_action_create.py +97 -0
- moolabs/models/void_invoice_line_pending_action_create_item.py +97 -0
- moolabs/models/volume_summary.py +114 -0
- moolabs/models/wallet_owner_type.py +43 -0
- moolabs/models/wallet_policy.py +38 -0
- moolabs/models/wallet_response.py +112 -0
- moolabs/models/wallet_state_response.py +105 -0
- moolabs/models/warning_item.py +93 -0
- moolabs/models/webhook_response.py +95 -0
- moolabs/models/webhook_update.py +95 -0
- moolabs/models/window_size.py +39 -0
- moolabs/models/windowed_balance_history.py +105 -0
- moolabs/models/xero_connect_request.py +91 -0
- moolabs/py.typed +0 -0
- moolabs/rest.py +257 -0
- moolabs-0.3.0.dist-info/METADATA +31 -0
- moolabs-0.3.0.dist-info/RECORD +1417 -0
- moolabs-0.3.0.dist-info/WHEEL +5 -0
- moolabs-0.3.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,2087 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Moolabs API
|
|
5
|
+
|
|
6
|
+
Unified Moolabs SDK. Capability-based public surface stitched from internal service specs: bff, meter, arc, acute. Customers see capability namespaces (usage, billing, collections, etc.); the SDK routes per-operation internally.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 0.3.0
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
import warnings
|
|
15
|
+
from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
|
|
16
|
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
17
|
+
from typing_extensions import Annotated
|
|
18
|
+
|
|
19
|
+
from pydantic import StrictStr
|
|
20
|
+
from typing import Any, Optional
|
|
21
|
+
|
|
22
|
+
from moolabs.api_client import ApiClient, RequestSerialized
|
|
23
|
+
from moolabs.api_response import ApiResponse
|
|
24
|
+
from moolabs.rest import RESTResponseType
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ArcWebhooksApi:
|
|
28
|
+
"""NOTE: This class is auto generated by OpenAPI Generator
|
|
29
|
+
Ref: https://openapi-generator.tech
|
|
30
|
+
|
|
31
|
+
Do not edit the class manually.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def __init__(self, api_client=None) -> None:
|
|
35
|
+
if api_client is None:
|
|
36
|
+
api_client = ApiClient.get_default()
|
|
37
|
+
self.api_client = api_client
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
@validate_call
|
|
41
|
+
def moometer_webhook(
|
|
42
|
+
self,
|
|
43
|
+
x_moo_meter_signature: Optional[StrictStr] = None,
|
|
44
|
+
_request_timeout: Union[
|
|
45
|
+
None,
|
|
46
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
47
|
+
Tuple[
|
|
48
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
49
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
50
|
+
]
|
|
51
|
+
] = None,
|
|
52
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
53
|
+
_content_type: Optional[StrictStr] = None,
|
|
54
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
55
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
56
|
+
) -> object:
|
|
57
|
+
"""Moometer Webhook
|
|
58
|
+
|
|
59
|
+
Handle MooMeter invoice lifecycle webhooks.
|
|
60
|
+
|
|
61
|
+
:param x_moo_meter_signature:
|
|
62
|
+
:type x_moo_meter_signature: str
|
|
63
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
64
|
+
number provided, it will be total request
|
|
65
|
+
timeout. It can also be a pair (tuple) of
|
|
66
|
+
(connection, read) timeouts.
|
|
67
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
68
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
69
|
+
request; this effectively ignores the
|
|
70
|
+
authentication in the spec for a single request.
|
|
71
|
+
:type _request_auth: dict, optional
|
|
72
|
+
:param _content_type: force content-type for the request.
|
|
73
|
+
:type _content_type: str, Optional
|
|
74
|
+
:param _headers: set to override the headers for a single
|
|
75
|
+
request; this effectively ignores the headers
|
|
76
|
+
in the spec for a single request.
|
|
77
|
+
:type _headers: dict, optional
|
|
78
|
+
:param _host_index: set to override the host_index for a single
|
|
79
|
+
request; this effectively ignores the host_index
|
|
80
|
+
in the spec for a single request.
|
|
81
|
+
:type _host_index: int, optional
|
|
82
|
+
:return: Returns the result object.
|
|
83
|
+
""" # noqa: E501
|
|
84
|
+
|
|
85
|
+
_param = self._moometer_webhook_serialize(
|
|
86
|
+
x_moo_meter_signature=x_moo_meter_signature,
|
|
87
|
+
_request_auth=_request_auth,
|
|
88
|
+
_content_type=_content_type,
|
|
89
|
+
_headers=_headers,
|
|
90
|
+
_host_index=_host_index
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
94
|
+
'200': "object",
|
|
95
|
+
'422': "ArcHTTPValidationError",
|
|
96
|
+
}
|
|
97
|
+
response_data = self.api_client.call_api(
|
|
98
|
+
*_param,
|
|
99
|
+
_request_timeout=_request_timeout
|
|
100
|
+
)
|
|
101
|
+
response_data.read()
|
|
102
|
+
return self.api_client.response_deserialize(
|
|
103
|
+
response_data=response_data,
|
|
104
|
+
response_types_map=_response_types_map,
|
|
105
|
+
).data
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@validate_call
|
|
109
|
+
def moometer_webhook_with_http_info(
|
|
110
|
+
self,
|
|
111
|
+
x_moo_meter_signature: Optional[StrictStr] = None,
|
|
112
|
+
_request_timeout: Union[
|
|
113
|
+
None,
|
|
114
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
115
|
+
Tuple[
|
|
116
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
117
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
118
|
+
]
|
|
119
|
+
] = None,
|
|
120
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
121
|
+
_content_type: Optional[StrictStr] = None,
|
|
122
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
123
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
124
|
+
) -> ApiResponse[object]:
|
|
125
|
+
"""Moometer Webhook
|
|
126
|
+
|
|
127
|
+
Handle MooMeter invoice lifecycle webhooks.
|
|
128
|
+
|
|
129
|
+
:param x_moo_meter_signature:
|
|
130
|
+
:type x_moo_meter_signature: str
|
|
131
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
132
|
+
number provided, it will be total request
|
|
133
|
+
timeout. It can also be a pair (tuple) of
|
|
134
|
+
(connection, read) timeouts.
|
|
135
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
136
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
137
|
+
request; this effectively ignores the
|
|
138
|
+
authentication in the spec for a single request.
|
|
139
|
+
:type _request_auth: dict, optional
|
|
140
|
+
:param _content_type: force content-type for the request.
|
|
141
|
+
:type _content_type: str, Optional
|
|
142
|
+
:param _headers: set to override the headers for a single
|
|
143
|
+
request; this effectively ignores the headers
|
|
144
|
+
in the spec for a single request.
|
|
145
|
+
:type _headers: dict, optional
|
|
146
|
+
:param _host_index: set to override the host_index for a single
|
|
147
|
+
request; this effectively ignores the host_index
|
|
148
|
+
in the spec for a single request.
|
|
149
|
+
:type _host_index: int, optional
|
|
150
|
+
:return: Returns the result object.
|
|
151
|
+
""" # noqa: E501
|
|
152
|
+
|
|
153
|
+
_param = self._moometer_webhook_serialize(
|
|
154
|
+
x_moo_meter_signature=x_moo_meter_signature,
|
|
155
|
+
_request_auth=_request_auth,
|
|
156
|
+
_content_type=_content_type,
|
|
157
|
+
_headers=_headers,
|
|
158
|
+
_host_index=_host_index
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
162
|
+
'200': "object",
|
|
163
|
+
'422': "ArcHTTPValidationError",
|
|
164
|
+
}
|
|
165
|
+
response_data = self.api_client.call_api(
|
|
166
|
+
*_param,
|
|
167
|
+
_request_timeout=_request_timeout
|
|
168
|
+
)
|
|
169
|
+
response_data.read()
|
|
170
|
+
return self.api_client.response_deserialize(
|
|
171
|
+
response_data=response_data,
|
|
172
|
+
response_types_map=_response_types_map,
|
|
173
|
+
)
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
@validate_call
|
|
177
|
+
def moometer_webhook_without_preload_content(
|
|
178
|
+
self,
|
|
179
|
+
x_moo_meter_signature: Optional[StrictStr] = None,
|
|
180
|
+
_request_timeout: Union[
|
|
181
|
+
None,
|
|
182
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
183
|
+
Tuple[
|
|
184
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
185
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
186
|
+
]
|
|
187
|
+
] = None,
|
|
188
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
189
|
+
_content_type: Optional[StrictStr] = None,
|
|
190
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
191
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
192
|
+
) -> RESTResponseType:
|
|
193
|
+
"""Moometer Webhook
|
|
194
|
+
|
|
195
|
+
Handle MooMeter invoice lifecycle webhooks.
|
|
196
|
+
|
|
197
|
+
:param x_moo_meter_signature:
|
|
198
|
+
:type x_moo_meter_signature: str
|
|
199
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
200
|
+
number provided, it will be total request
|
|
201
|
+
timeout. It can also be a pair (tuple) of
|
|
202
|
+
(connection, read) timeouts.
|
|
203
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
204
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
205
|
+
request; this effectively ignores the
|
|
206
|
+
authentication in the spec for a single request.
|
|
207
|
+
:type _request_auth: dict, optional
|
|
208
|
+
:param _content_type: force content-type for the request.
|
|
209
|
+
:type _content_type: str, Optional
|
|
210
|
+
:param _headers: set to override the headers for a single
|
|
211
|
+
request; this effectively ignores the headers
|
|
212
|
+
in the spec for a single request.
|
|
213
|
+
:type _headers: dict, optional
|
|
214
|
+
:param _host_index: set to override the host_index for a single
|
|
215
|
+
request; this effectively ignores the host_index
|
|
216
|
+
in the spec for a single request.
|
|
217
|
+
:type _host_index: int, optional
|
|
218
|
+
:return: Returns the result object.
|
|
219
|
+
""" # noqa: E501
|
|
220
|
+
|
|
221
|
+
_param = self._moometer_webhook_serialize(
|
|
222
|
+
x_moo_meter_signature=x_moo_meter_signature,
|
|
223
|
+
_request_auth=_request_auth,
|
|
224
|
+
_content_type=_content_type,
|
|
225
|
+
_headers=_headers,
|
|
226
|
+
_host_index=_host_index
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
230
|
+
'200': "object",
|
|
231
|
+
'422': "ArcHTTPValidationError",
|
|
232
|
+
}
|
|
233
|
+
response_data = self.api_client.call_api(
|
|
234
|
+
*_param,
|
|
235
|
+
_request_timeout=_request_timeout
|
|
236
|
+
)
|
|
237
|
+
return response_data.response
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def _moometer_webhook_serialize(
|
|
241
|
+
self,
|
|
242
|
+
x_moo_meter_signature,
|
|
243
|
+
_request_auth,
|
|
244
|
+
_content_type,
|
|
245
|
+
_headers,
|
|
246
|
+
_host_index,
|
|
247
|
+
) -> RequestSerialized:
|
|
248
|
+
|
|
249
|
+
_host = None
|
|
250
|
+
|
|
251
|
+
_collection_formats: Dict[str, str] = {
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
_path_params: Dict[str, str] = {}
|
|
255
|
+
_query_params: List[Tuple[str, str]] = []
|
|
256
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
257
|
+
_form_params: List[Tuple[str, str]] = []
|
|
258
|
+
_files: Dict[
|
|
259
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
260
|
+
] = {}
|
|
261
|
+
_body_params: Optional[bytes] = None
|
|
262
|
+
|
|
263
|
+
# process the path parameters
|
|
264
|
+
# process the query parameters
|
|
265
|
+
# process the header parameters
|
|
266
|
+
if x_moo_meter_signature is not None:
|
|
267
|
+
_header_params['X-MooMeter-Signature'] = x_moo_meter_signature
|
|
268
|
+
# process the form parameters
|
|
269
|
+
# process the body parameter
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
# set the HTTP header `Accept`
|
|
273
|
+
if 'Accept' not in _header_params:
|
|
274
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
275
|
+
[
|
|
276
|
+
'application/json'
|
|
277
|
+
]
|
|
278
|
+
)
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
# authentication setting
|
|
282
|
+
_auth_settings: List[str] = [
|
|
283
|
+
]
|
|
284
|
+
|
|
285
|
+
return self.api_client.param_serialize(
|
|
286
|
+
method='POST',
|
|
287
|
+
resource_path='/v1/arc/webhooks/moometer',
|
|
288
|
+
path_params=_path_params,
|
|
289
|
+
query_params=_query_params,
|
|
290
|
+
header_params=_header_params,
|
|
291
|
+
body=_body_params,
|
|
292
|
+
post_params=_form_params,
|
|
293
|
+
files=_files,
|
|
294
|
+
auth_settings=_auth_settings,
|
|
295
|
+
collection_formats=_collection_formats,
|
|
296
|
+
_host=_host,
|
|
297
|
+
_request_auth=_request_auth
|
|
298
|
+
)
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
@validate_call
|
|
304
|
+
def resend_delivery_webhook(
|
|
305
|
+
self,
|
|
306
|
+
x_resend_signature: Optional[StrictStr] = None,
|
|
307
|
+
_request_timeout: Union[
|
|
308
|
+
None,
|
|
309
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
310
|
+
Tuple[
|
|
311
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
312
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
313
|
+
]
|
|
314
|
+
] = None,
|
|
315
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
316
|
+
_content_type: Optional[StrictStr] = None,
|
|
317
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
318
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
319
|
+
) -> object:
|
|
320
|
+
"""Resend Delivery Webhook
|
|
321
|
+
|
|
322
|
+
Handle Resend delivery status webhooks (delivered, bounced, opened, clicked).
|
|
323
|
+
|
|
324
|
+
:param x_resend_signature:
|
|
325
|
+
:type x_resend_signature: str
|
|
326
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
327
|
+
number provided, it will be total request
|
|
328
|
+
timeout. It can also be a pair (tuple) of
|
|
329
|
+
(connection, read) timeouts.
|
|
330
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
331
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
332
|
+
request; this effectively ignores the
|
|
333
|
+
authentication in the spec for a single request.
|
|
334
|
+
:type _request_auth: dict, optional
|
|
335
|
+
:param _content_type: force content-type for the request.
|
|
336
|
+
:type _content_type: str, Optional
|
|
337
|
+
:param _headers: set to override the headers for a single
|
|
338
|
+
request; this effectively ignores the headers
|
|
339
|
+
in the spec for a single request.
|
|
340
|
+
:type _headers: dict, optional
|
|
341
|
+
:param _host_index: set to override the host_index for a single
|
|
342
|
+
request; this effectively ignores the host_index
|
|
343
|
+
in the spec for a single request.
|
|
344
|
+
:type _host_index: int, optional
|
|
345
|
+
:return: Returns the result object.
|
|
346
|
+
""" # noqa: E501
|
|
347
|
+
|
|
348
|
+
_param = self._resend_delivery_webhook_serialize(
|
|
349
|
+
x_resend_signature=x_resend_signature,
|
|
350
|
+
_request_auth=_request_auth,
|
|
351
|
+
_content_type=_content_type,
|
|
352
|
+
_headers=_headers,
|
|
353
|
+
_host_index=_host_index
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
357
|
+
'200': "object",
|
|
358
|
+
'422': "ArcHTTPValidationError",
|
|
359
|
+
}
|
|
360
|
+
response_data = self.api_client.call_api(
|
|
361
|
+
*_param,
|
|
362
|
+
_request_timeout=_request_timeout
|
|
363
|
+
)
|
|
364
|
+
response_data.read()
|
|
365
|
+
return self.api_client.response_deserialize(
|
|
366
|
+
response_data=response_data,
|
|
367
|
+
response_types_map=_response_types_map,
|
|
368
|
+
).data
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
@validate_call
|
|
372
|
+
def resend_delivery_webhook_with_http_info(
|
|
373
|
+
self,
|
|
374
|
+
x_resend_signature: Optional[StrictStr] = None,
|
|
375
|
+
_request_timeout: Union[
|
|
376
|
+
None,
|
|
377
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
378
|
+
Tuple[
|
|
379
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
380
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
381
|
+
]
|
|
382
|
+
] = None,
|
|
383
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
384
|
+
_content_type: Optional[StrictStr] = None,
|
|
385
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
386
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
387
|
+
) -> ApiResponse[object]:
|
|
388
|
+
"""Resend Delivery Webhook
|
|
389
|
+
|
|
390
|
+
Handle Resend delivery status webhooks (delivered, bounced, opened, clicked).
|
|
391
|
+
|
|
392
|
+
:param x_resend_signature:
|
|
393
|
+
:type x_resend_signature: str
|
|
394
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
395
|
+
number provided, it will be total request
|
|
396
|
+
timeout. It can also be a pair (tuple) of
|
|
397
|
+
(connection, read) timeouts.
|
|
398
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
399
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
400
|
+
request; this effectively ignores the
|
|
401
|
+
authentication in the spec for a single request.
|
|
402
|
+
:type _request_auth: dict, optional
|
|
403
|
+
:param _content_type: force content-type for the request.
|
|
404
|
+
:type _content_type: str, Optional
|
|
405
|
+
:param _headers: set to override the headers for a single
|
|
406
|
+
request; this effectively ignores the headers
|
|
407
|
+
in the spec for a single request.
|
|
408
|
+
:type _headers: dict, optional
|
|
409
|
+
:param _host_index: set to override the host_index for a single
|
|
410
|
+
request; this effectively ignores the host_index
|
|
411
|
+
in the spec for a single request.
|
|
412
|
+
:type _host_index: int, optional
|
|
413
|
+
:return: Returns the result object.
|
|
414
|
+
""" # noqa: E501
|
|
415
|
+
|
|
416
|
+
_param = self._resend_delivery_webhook_serialize(
|
|
417
|
+
x_resend_signature=x_resend_signature,
|
|
418
|
+
_request_auth=_request_auth,
|
|
419
|
+
_content_type=_content_type,
|
|
420
|
+
_headers=_headers,
|
|
421
|
+
_host_index=_host_index
|
|
422
|
+
)
|
|
423
|
+
|
|
424
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
425
|
+
'200': "object",
|
|
426
|
+
'422': "ArcHTTPValidationError",
|
|
427
|
+
}
|
|
428
|
+
response_data = self.api_client.call_api(
|
|
429
|
+
*_param,
|
|
430
|
+
_request_timeout=_request_timeout
|
|
431
|
+
)
|
|
432
|
+
response_data.read()
|
|
433
|
+
return self.api_client.response_deserialize(
|
|
434
|
+
response_data=response_data,
|
|
435
|
+
response_types_map=_response_types_map,
|
|
436
|
+
)
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
@validate_call
|
|
440
|
+
def resend_delivery_webhook_without_preload_content(
|
|
441
|
+
self,
|
|
442
|
+
x_resend_signature: Optional[StrictStr] = None,
|
|
443
|
+
_request_timeout: Union[
|
|
444
|
+
None,
|
|
445
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
446
|
+
Tuple[
|
|
447
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
448
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
449
|
+
]
|
|
450
|
+
] = None,
|
|
451
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
452
|
+
_content_type: Optional[StrictStr] = None,
|
|
453
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
454
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
455
|
+
) -> RESTResponseType:
|
|
456
|
+
"""Resend Delivery Webhook
|
|
457
|
+
|
|
458
|
+
Handle Resend delivery status webhooks (delivered, bounced, opened, clicked).
|
|
459
|
+
|
|
460
|
+
:param x_resend_signature:
|
|
461
|
+
:type x_resend_signature: str
|
|
462
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
463
|
+
number provided, it will be total request
|
|
464
|
+
timeout. It can also be a pair (tuple) of
|
|
465
|
+
(connection, read) timeouts.
|
|
466
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
467
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
468
|
+
request; this effectively ignores the
|
|
469
|
+
authentication in the spec for a single request.
|
|
470
|
+
:type _request_auth: dict, optional
|
|
471
|
+
:param _content_type: force content-type for the request.
|
|
472
|
+
:type _content_type: str, Optional
|
|
473
|
+
:param _headers: set to override the headers for a single
|
|
474
|
+
request; this effectively ignores the headers
|
|
475
|
+
in the spec for a single request.
|
|
476
|
+
:type _headers: dict, optional
|
|
477
|
+
:param _host_index: set to override the host_index for a single
|
|
478
|
+
request; this effectively ignores the host_index
|
|
479
|
+
in the spec for a single request.
|
|
480
|
+
:type _host_index: int, optional
|
|
481
|
+
:return: Returns the result object.
|
|
482
|
+
""" # noqa: E501
|
|
483
|
+
|
|
484
|
+
_param = self._resend_delivery_webhook_serialize(
|
|
485
|
+
x_resend_signature=x_resend_signature,
|
|
486
|
+
_request_auth=_request_auth,
|
|
487
|
+
_content_type=_content_type,
|
|
488
|
+
_headers=_headers,
|
|
489
|
+
_host_index=_host_index
|
|
490
|
+
)
|
|
491
|
+
|
|
492
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
493
|
+
'200': "object",
|
|
494
|
+
'422': "ArcHTTPValidationError",
|
|
495
|
+
}
|
|
496
|
+
response_data = self.api_client.call_api(
|
|
497
|
+
*_param,
|
|
498
|
+
_request_timeout=_request_timeout
|
|
499
|
+
)
|
|
500
|
+
return response_data.response
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
def _resend_delivery_webhook_serialize(
|
|
504
|
+
self,
|
|
505
|
+
x_resend_signature,
|
|
506
|
+
_request_auth,
|
|
507
|
+
_content_type,
|
|
508
|
+
_headers,
|
|
509
|
+
_host_index,
|
|
510
|
+
) -> RequestSerialized:
|
|
511
|
+
|
|
512
|
+
_host = None
|
|
513
|
+
|
|
514
|
+
_collection_formats: Dict[str, str] = {
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
_path_params: Dict[str, str] = {}
|
|
518
|
+
_query_params: List[Tuple[str, str]] = []
|
|
519
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
520
|
+
_form_params: List[Tuple[str, str]] = []
|
|
521
|
+
_files: Dict[
|
|
522
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
523
|
+
] = {}
|
|
524
|
+
_body_params: Optional[bytes] = None
|
|
525
|
+
|
|
526
|
+
# process the path parameters
|
|
527
|
+
# process the query parameters
|
|
528
|
+
# process the header parameters
|
|
529
|
+
if x_resend_signature is not None:
|
|
530
|
+
_header_params['X-Resend-Signature'] = x_resend_signature
|
|
531
|
+
# process the form parameters
|
|
532
|
+
# process the body parameter
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
# set the HTTP header `Accept`
|
|
536
|
+
if 'Accept' not in _header_params:
|
|
537
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
538
|
+
[
|
|
539
|
+
'application/json'
|
|
540
|
+
]
|
|
541
|
+
)
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
# authentication setting
|
|
545
|
+
_auth_settings: List[str] = [
|
|
546
|
+
]
|
|
547
|
+
|
|
548
|
+
return self.api_client.param_serialize(
|
|
549
|
+
method='POST',
|
|
550
|
+
resource_path='/v1/arc/webhooks/resend',
|
|
551
|
+
path_params=_path_params,
|
|
552
|
+
query_params=_query_params,
|
|
553
|
+
header_params=_header_params,
|
|
554
|
+
body=_body_params,
|
|
555
|
+
post_params=_form_params,
|
|
556
|
+
files=_files,
|
|
557
|
+
auth_settings=_auth_settings,
|
|
558
|
+
collection_formats=_collection_formats,
|
|
559
|
+
_host=_host,
|
|
560
|
+
_request_auth=_request_auth
|
|
561
|
+
)
|
|
562
|
+
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
@validate_call
|
|
567
|
+
def resend_inbound_webhook(
|
|
568
|
+
self,
|
|
569
|
+
_request_timeout: Union[
|
|
570
|
+
None,
|
|
571
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
572
|
+
Tuple[
|
|
573
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
574
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
575
|
+
]
|
|
576
|
+
] = None,
|
|
577
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
578
|
+
_content_type: Optional[StrictStr] = None,
|
|
579
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
580
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
581
|
+
) -> object:
|
|
582
|
+
"""Resend Inbound Webhook
|
|
583
|
+
|
|
584
|
+
Receive a customer email reply routed to a tenant inbound address. Resend sends a JSON payload describing the received email. We look up the target tenant via the recipient's plus-address tag (``billing+t-<tenant_uuid>@...``), verify the Svix signature headers using the tenant's ``inbound_secret``, persist an ``ArcCommunication(direction=INBOUND, status=RECEIVED)``, and hand off to the classifier agent. Resend webhooks are delivered through Svix and signed with the canonical Svix scheme (``svix-id`` / ``svix-timestamp`` / ``svix-signature`` headers, ``HMAC-SHA256({id}.{ts}.{body}, secret)`` base64-encoded with a ``v1,`` version tag). We forward the full header set to the verifier rather than picking individual headers so the Svix SDK can do its own header-name normalization (some proxies lower-case, some don't; some use ``webhook-*`` instead of ``svix-*``). The earlier implementation only read a single ``X-Resend-Signature`` header that Resend never sends, so every inbound email returned 401 and stayed parked in Resend's retry queue indefinitely. The classifier never mutates customer-facing state — it queues an ``ArcTask`` for a human review (see ``app/agents/inbound_classifier.py``).
|
|
585
|
+
|
|
586
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
587
|
+
number provided, it will be total request
|
|
588
|
+
timeout. It can also be a pair (tuple) of
|
|
589
|
+
(connection, read) timeouts.
|
|
590
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
591
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
592
|
+
request; this effectively ignores the
|
|
593
|
+
authentication in the spec for a single request.
|
|
594
|
+
:type _request_auth: dict, optional
|
|
595
|
+
:param _content_type: force content-type for the request.
|
|
596
|
+
:type _content_type: str, Optional
|
|
597
|
+
:param _headers: set to override the headers for a single
|
|
598
|
+
request; this effectively ignores the headers
|
|
599
|
+
in the spec for a single request.
|
|
600
|
+
:type _headers: dict, optional
|
|
601
|
+
:param _host_index: set to override the host_index for a single
|
|
602
|
+
request; this effectively ignores the host_index
|
|
603
|
+
in the spec for a single request.
|
|
604
|
+
:type _host_index: int, optional
|
|
605
|
+
:return: Returns the result object.
|
|
606
|
+
""" # noqa: E501
|
|
607
|
+
|
|
608
|
+
_param = self._resend_inbound_webhook_serialize(
|
|
609
|
+
_request_auth=_request_auth,
|
|
610
|
+
_content_type=_content_type,
|
|
611
|
+
_headers=_headers,
|
|
612
|
+
_host_index=_host_index
|
|
613
|
+
)
|
|
614
|
+
|
|
615
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
616
|
+
'200': "object",
|
|
617
|
+
}
|
|
618
|
+
response_data = self.api_client.call_api(
|
|
619
|
+
*_param,
|
|
620
|
+
_request_timeout=_request_timeout
|
|
621
|
+
)
|
|
622
|
+
response_data.read()
|
|
623
|
+
return self.api_client.response_deserialize(
|
|
624
|
+
response_data=response_data,
|
|
625
|
+
response_types_map=_response_types_map,
|
|
626
|
+
).data
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
@validate_call
|
|
630
|
+
def resend_inbound_webhook_with_http_info(
|
|
631
|
+
self,
|
|
632
|
+
_request_timeout: Union[
|
|
633
|
+
None,
|
|
634
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
635
|
+
Tuple[
|
|
636
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
637
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
638
|
+
]
|
|
639
|
+
] = None,
|
|
640
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
641
|
+
_content_type: Optional[StrictStr] = None,
|
|
642
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
643
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
644
|
+
) -> ApiResponse[object]:
|
|
645
|
+
"""Resend Inbound Webhook
|
|
646
|
+
|
|
647
|
+
Receive a customer email reply routed to a tenant inbound address. Resend sends a JSON payload describing the received email. We look up the target tenant via the recipient's plus-address tag (``billing+t-<tenant_uuid>@...``), verify the Svix signature headers using the tenant's ``inbound_secret``, persist an ``ArcCommunication(direction=INBOUND, status=RECEIVED)``, and hand off to the classifier agent. Resend webhooks are delivered through Svix and signed with the canonical Svix scheme (``svix-id`` / ``svix-timestamp`` / ``svix-signature`` headers, ``HMAC-SHA256({id}.{ts}.{body}, secret)`` base64-encoded with a ``v1,`` version tag). We forward the full header set to the verifier rather than picking individual headers so the Svix SDK can do its own header-name normalization (some proxies lower-case, some don't; some use ``webhook-*`` instead of ``svix-*``). The earlier implementation only read a single ``X-Resend-Signature`` header that Resend never sends, so every inbound email returned 401 and stayed parked in Resend's retry queue indefinitely. The classifier never mutates customer-facing state — it queues an ``ArcTask`` for a human review (see ``app/agents/inbound_classifier.py``).
|
|
648
|
+
|
|
649
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
650
|
+
number provided, it will be total request
|
|
651
|
+
timeout. It can also be a pair (tuple) of
|
|
652
|
+
(connection, read) timeouts.
|
|
653
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
654
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
655
|
+
request; this effectively ignores the
|
|
656
|
+
authentication in the spec for a single request.
|
|
657
|
+
:type _request_auth: dict, optional
|
|
658
|
+
:param _content_type: force content-type for the request.
|
|
659
|
+
:type _content_type: str, Optional
|
|
660
|
+
:param _headers: set to override the headers for a single
|
|
661
|
+
request; this effectively ignores the headers
|
|
662
|
+
in the spec for a single request.
|
|
663
|
+
:type _headers: dict, optional
|
|
664
|
+
:param _host_index: set to override the host_index for a single
|
|
665
|
+
request; this effectively ignores the host_index
|
|
666
|
+
in the spec for a single request.
|
|
667
|
+
:type _host_index: int, optional
|
|
668
|
+
:return: Returns the result object.
|
|
669
|
+
""" # noqa: E501
|
|
670
|
+
|
|
671
|
+
_param = self._resend_inbound_webhook_serialize(
|
|
672
|
+
_request_auth=_request_auth,
|
|
673
|
+
_content_type=_content_type,
|
|
674
|
+
_headers=_headers,
|
|
675
|
+
_host_index=_host_index
|
|
676
|
+
)
|
|
677
|
+
|
|
678
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
679
|
+
'200': "object",
|
|
680
|
+
}
|
|
681
|
+
response_data = self.api_client.call_api(
|
|
682
|
+
*_param,
|
|
683
|
+
_request_timeout=_request_timeout
|
|
684
|
+
)
|
|
685
|
+
response_data.read()
|
|
686
|
+
return self.api_client.response_deserialize(
|
|
687
|
+
response_data=response_data,
|
|
688
|
+
response_types_map=_response_types_map,
|
|
689
|
+
)
|
|
690
|
+
|
|
691
|
+
|
|
692
|
+
@validate_call
|
|
693
|
+
def resend_inbound_webhook_without_preload_content(
|
|
694
|
+
self,
|
|
695
|
+
_request_timeout: Union[
|
|
696
|
+
None,
|
|
697
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
698
|
+
Tuple[
|
|
699
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
700
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
701
|
+
]
|
|
702
|
+
] = None,
|
|
703
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
704
|
+
_content_type: Optional[StrictStr] = None,
|
|
705
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
706
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
707
|
+
) -> RESTResponseType:
|
|
708
|
+
"""Resend Inbound Webhook
|
|
709
|
+
|
|
710
|
+
Receive a customer email reply routed to a tenant inbound address. Resend sends a JSON payload describing the received email. We look up the target tenant via the recipient's plus-address tag (``billing+t-<tenant_uuid>@...``), verify the Svix signature headers using the tenant's ``inbound_secret``, persist an ``ArcCommunication(direction=INBOUND, status=RECEIVED)``, and hand off to the classifier agent. Resend webhooks are delivered through Svix and signed with the canonical Svix scheme (``svix-id`` / ``svix-timestamp`` / ``svix-signature`` headers, ``HMAC-SHA256({id}.{ts}.{body}, secret)`` base64-encoded with a ``v1,`` version tag). We forward the full header set to the verifier rather than picking individual headers so the Svix SDK can do its own header-name normalization (some proxies lower-case, some don't; some use ``webhook-*`` instead of ``svix-*``). The earlier implementation only read a single ``X-Resend-Signature`` header that Resend never sends, so every inbound email returned 401 and stayed parked in Resend's retry queue indefinitely. The classifier never mutates customer-facing state — it queues an ``ArcTask`` for a human review (see ``app/agents/inbound_classifier.py``).
|
|
711
|
+
|
|
712
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
713
|
+
number provided, it will be total request
|
|
714
|
+
timeout. It can also be a pair (tuple) of
|
|
715
|
+
(connection, read) timeouts.
|
|
716
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
717
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
718
|
+
request; this effectively ignores the
|
|
719
|
+
authentication in the spec for a single request.
|
|
720
|
+
:type _request_auth: dict, optional
|
|
721
|
+
:param _content_type: force content-type for the request.
|
|
722
|
+
:type _content_type: str, Optional
|
|
723
|
+
:param _headers: set to override the headers for a single
|
|
724
|
+
request; this effectively ignores the headers
|
|
725
|
+
in the spec for a single request.
|
|
726
|
+
:type _headers: dict, optional
|
|
727
|
+
:param _host_index: set to override the host_index for a single
|
|
728
|
+
request; this effectively ignores the host_index
|
|
729
|
+
in the spec for a single request.
|
|
730
|
+
:type _host_index: int, optional
|
|
731
|
+
:return: Returns the result object.
|
|
732
|
+
""" # noqa: E501
|
|
733
|
+
|
|
734
|
+
_param = self._resend_inbound_webhook_serialize(
|
|
735
|
+
_request_auth=_request_auth,
|
|
736
|
+
_content_type=_content_type,
|
|
737
|
+
_headers=_headers,
|
|
738
|
+
_host_index=_host_index
|
|
739
|
+
)
|
|
740
|
+
|
|
741
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
742
|
+
'200': "object",
|
|
743
|
+
}
|
|
744
|
+
response_data = self.api_client.call_api(
|
|
745
|
+
*_param,
|
|
746
|
+
_request_timeout=_request_timeout
|
|
747
|
+
)
|
|
748
|
+
return response_data.response
|
|
749
|
+
|
|
750
|
+
|
|
751
|
+
def _resend_inbound_webhook_serialize(
|
|
752
|
+
self,
|
|
753
|
+
_request_auth,
|
|
754
|
+
_content_type,
|
|
755
|
+
_headers,
|
|
756
|
+
_host_index,
|
|
757
|
+
) -> RequestSerialized:
|
|
758
|
+
|
|
759
|
+
_host = None
|
|
760
|
+
|
|
761
|
+
_collection_formats: Dict[str, str] = {
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
_path_params: Dict[str, str] = {}
|
|
765
|
+
_query_params: List[Tuple[str, str]] = []
|
|
766
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
767
|
+
_form_params: List[Tuple[str, str]] = []
|
|
768
|
+
_files: Dict[
|
|
769
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
770
|
+
] = {}
|
|
771
|
+
_body_params: Optional[bytes] = None
|
|
772
|
+
|
|
773
|
+
# process the path parameters
|
|
774
|
+
# process the query parameters
|
|
775
|
+
# process the header parameters
|
|
776
|
+
# process the form parameters
|
|
777
|
+
# process the body parameter
|
|
778
|
+
|
|
779
|
+
|
|
780
|
+
# set the HTTP header `Accept`
|
|
781
|
+
if 'Accept' not in _header_params:
|
|
782
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
783
|
+
[
|
|
784
|
+
'application/json'
|
|
785
|
+
]
|
|
786
|
+
)
|
|
787
|
+
|
|
788
|
+
|
|
789
|
+
# authentication setting
|
|
790
|
+
_auth_settings: List[str] = [
|
|
791
|
+
]
|
|
792
|
+
|
|
793
|
+
return self.api_client.param_serialize(
|
|
794
|
+
method='POST',
|
|
795
|
+
resource_path='/v1/arc/webhooks/inbound/resend',
|
|
796
|
+
path_params=_path_params,
|
|
797
|
+
query_params=_query_params,
|
|
798
|
+
header_params=_header_params,
|
|
799
|
+
body=_body_params,
|
|
800
|
+
post_params=_form_params,
|
|
801
|
+
files=_files,
|
|
802
|
+
auth_settings=_auth_settings,
|
|
803
|
+
collection_formats=_collection_formats,
|
|
804
|
+
_host=_host,
|
|
805
|
+
_request_auth=_request_auth
|
|
806
|
+
)
|
|
807
|
+
|
|
808
|
+
|
|
809
|
+
|
|
810
|
+
|
|
811
|
+
@validate_call
|
|
812
|
+
def sendgrid_webhook(
|
|
813
|
+
self,
|
|
814
|
+
x_twilio_email_event_webhook_signature: Optional[StrictStr] = None,
|
|
815
|
+
_request_timeout: Union[
|
|
816
|
+
None,
|
|
817
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
818
|
+
Tuple[
|
|
819
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
820
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
821
|
+
]
|
|
822
|
+
] = None,
|
|
823
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
824
|
+
_content_type: Optional[StrictStr] = None,
|
|
825
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
826
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
827
|
+
) -> object:
|
|
828
|
+
"""Sendgrid Webhook
|
|
829
|
+
|
|
830
|
+
Handle SendGrid delivery status webhooks.
|
|
831
|
+
|
|
832
|
+
:param x_twilio_email_event_webhook_signature:
|
|
833
|
+
:type x_twilio_email_event_webhook_signature: str
|
|
834
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
835
|
+
number provided, it will be total request
|
|
836
|
+
timeout. It can also be a pair (tuple) of
|
|
837
|
+
(connection, read) timeouts.
|
|
838
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
839
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
840
|
+
request; this effectively ignores the
|
|
841
|
+
authentication in the spec for a single request.
|
|
842
|
+
:type _request_auth: dict, optional
|
|
843
|
+
:param _content_type: force content-type for the request.
|
|
844
|
+
:type _content_type: str, Optional
|
|
845
|
+
:param _headers: set to override the headers for a single
|
|
846
|
+
request; this effectively ignores the headers
|
|
847
|
+
in the spec for a single request.
|
|
848
|
+
:type _headers: dict, optional
|
|
849
|
+
:param _host_index: set to override the host_index for a single
|
|
850
|
+
request; this effectively ignores the host_index
|
|
851
|
+
in the spec for a single request.
|
|
852
|
+
:type _host_index: int, optional
|
|
853
|
+
:return: Returns the result object.
|
|
854
|
+
""" # noqa: E501
|
|
855
|
+
|
|
856
|
+
_param = self._sendgrid_webhook_serialize(
|
|
857
|
+
x_twilio_email_event_webhook_signature=x_twilio_email_event_webhook_signature,
|
|
858
|
+
_request_auth=_request_auth,
|
|
859
|
+
_content_type=_content_type,
|
|
860
|
+
_headers=_headers,
|
|
861
|
+
_host_index=_host_index
|
|
862
|
+
)
|
|
863
|
+
|
|
864
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
865
|
+
'200': "object",
|
|
866
|
+
'422': "ArcHTTPValidationError",
|
|
867
|
+
}
|
|
868
|
+
response_data = self.api_client.call_api(
|
|
869
|
+
*_param,
|
|
870
|
+
_request_timeout=_request_timeout
|
|
871
|
+
)
|
|
872
|
+
response_data.read()
|
|
873
|
+
return self.api_client.response_deserialize(
|
|
874
|
+
response_data=response_data,
|
|
875
|
+
response_types_map=_response_types_map,
|
|
876
|
+
).data
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
@validate_call
|
|
880
|
+
def sendgrid_webhook_with_http_info(
|
|
881
|
+
self,
|
|
882
|
+
x_twilio_email_event_webhook_signature: Optional[StrictStr] = None,
|
|
883
|
+
_request_timeout: Union[
|
|
884
|
+
None,
|
|
885
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
886
|
+
Tuple[
|
|
887
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
888
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
889
|
+
]
|
|
890
|
+
] = None,
|
|
891
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
892
|
+
_content_type: Optional[StrictStr] = None,
|
|
893
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
894
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
895
|
+
) -> ApiResponse[object]:
|
|
896
|
+
"""Sendgrid Webhook
|
|
897
|
+
|
|
898
|
+
Handle SendGrid delivery status webhooks.
|
|
899
|
+
|
|
900
|
+
:param x_twilio_email_event_webhook_signature:
|
|
901
|
+
:type x_twilio_email_event_webhook_signature: str
|
|
902
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
903
|
+
number provided, it will be total request
|
|
904
|
+
timeout. It can also be a pair (tuple) of
|
|
905
|
+
(connection, read) timeouts.
|
|
906
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
907
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
908
|
+
request; this effectively ignores the
|
|
909
|
+
authentication in the spec for a single request.
|
|
910
|
+
:type _request_auth: dict, optional
|
|
911
|
+
:param _content_type: force content-type for the request.
|
|
912
|
+
:type _content_type: str, Optional
|
|
913
|
+
:param _headers: set to override the headers for a single
|
|
914
|
+
request; this effectively ignores the headers
|
|
915
|
+
in the spec for a single request.
|
|
916
|
+
:type _headers: dict, optional
|
|
917
|
+
:param _host_index: set to override the host_index for a single
|
|
918
|
+
request; this effectively ignores the host_index
|
|
919
|
+
in the spec for a single request.
|
|
920
|
+
:type _host_index: int, optional
|
|
921
|
+
:return: Returns the result object.
|
|
922
|
+
""" # noqa: E501
|
|
923
|
+
|
|
924
|
+
_param = self._sendgrid_webhook_serialize(
|
|
925
|
+
x_twilio_email_event_webhook_signature=x_twilio_email_event_webhook_signature,
|
|
926
|
+
_request_auth=_request_auth,
|
|
927
|
+
_content_type=_content_type,
|
|
928
|
+
_headers=_headers,
|
|
929
|
+
_host_index=_host_index
|
|
930
|
+
)
|
|
931
|
+
|
|
932
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
933
|
+
'200': "object",
|
|
934
|
+
'422': "ArcHTTPValidationError",
|
|
935
|
+
}
|
|
936
|
+
response_data = self.api_client.call_api(
|
|
937
|
+
*_param,
|
|
938
|
+
_request_timeout=_request_timeout
|
|
939
|
+
)
|
|
940
|
+
response_data.read()
|
|
941
|
+
return self.api_client.response_deserialize(
|
|
942
|
+
response_data=response_data,
|
|
943
|
+
response_types_map=_response_types_map,
|
|
944
|
+
)
|
|
945
|
+
|
|
946
|
+
|
|
947
|
+
@validate_call
|
|
948
|
+
def sendgrid_webhook_without_preload_content(
|
|
949
|
+
self,
|
|
950
|
+
x_twilio_email_event_webhook_signature: Optional[StrictStr] = None,
|
|
951
|
+
_request_timeout: Union[
|
|
952
|
+
None,
|
|
953
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
954
|
+
Tuple[
|
|
955
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
956
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
957
|
+
]
|
|
958
|
+
] = None,
|
|
959
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
960
|
+
_content_type: Optional[StrictStr] = None,
|
|
961
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
962
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
963
|
+
) -> RESTResponseType:
|
|
964
|
+
"""Sendgrid Webhook
|
|
965
|
+
|
|
966
|
+
Handle SendGrid delivery status webhooks.
|
|
967
|
+
|
|
968
|
+
:param x_twilio_email_event_webhook_signature:
|
|
969
|
+
:type x_twilio_email_event_webhook_signature: str
|
|
970
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
971
|
+
number provided, it will be total request
|
|
972
|
+
timeout. It can also be a pair (tuple) of
|
|
973
|
+
(connection, read) timeouts.
|
|
974
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
975
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
976
|
+
request; this effectively ignores the
|
|
977
|
+
authentication in the spec for a single request.
|
|
978
|
+
:type _request_auth: dict, optional
|
|
979
|
+
:param _content_type: force content-type for the request.
|
|
980
|
+
:type _content_type: str, Optional
|
|
981
|
+
:param _headers: set to override the headers for a single
|
|
982
|
+
request; this effectively ignores the headers
|
|
983
|
+
in the spec for a single request.
|
|
984
|
+
:type _headers: dict, optional
|
|
985
|
+
:param _host_index: set to override the host_index for a single
|
|
986
|
+
request; this effectively ignores the host_index
|
|
987
|
+
in the spec for a single request.
|
|
988
|
+
:type _host_index: int, optional
|
|
989
|
+
:return: Returns the result object.
|
|
990
|
+
""" # noqa: E501
|
|
991
|
+
|
|
992
|
+
_param = self._sendgrid_webhook_serialize(
|
|
993
|
+
x_twilio_email_event_webhook_signature=x_twilio_email_event_webhook_signature,
|
|
994
|
+
_request_auth=_request_auth,
|
|
995
|
+
_content_type=_content_type,
|
|
996
|
+
_headers=_headers,
|
|
997
|
+
_host_index=_host_index
|
|
998
|
+
)
|
|
999
|
+
|
|
1000
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1001
|
+
'200': "object",
|
|
1002
|
+
'422': "ArcHTTPValidationError",
|
|
1003
|
+
}
|
|
1004
|
+
response_data = self.api_client.call_api(
|
|
1005
|
+
*_param,
|
|
1006
|
+
_request_timeout=_request_timeout
|
|
1007
|
+
)
|
|
1008
|
+
return response_data.response
|
|
1009
|
+
|
|
1010
|
+
|
|
1011
|
+
def _sendgrid_webhook_serialize(
|
|
1012
|
+
self,
|
|
1013
|
+
x_twilio_email_event_webhook_signature,
|
|
1014
|
+
_request_auth,
|
|
1015
|
+
_content_type,
|
|
1016
|
+
_headers,
|
|
1017
|
+
_host_index,
|
|
1018
|
+
) -> RequestSerialized:
|
|
1019
|
+
|
|
1020
|
+
_host = None
|
|
1021
|
+
|
|
1022
|
+
_collection_formats: Dict[str, str] = {
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
_path_params: Dict[str, str] = {}
|
|
1026
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1027
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1028
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1029
|
+
_files: Dict[
|
|
1030
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
1031
|
+
] = {}
|
|
1032
|
+
_body_params: Optional[bytes] = None
|
|
1033
|
+
|
|
1034
|
+
# process the path parameters
|
|
1035
|
+
# process the query parameters
|
|
1036
|
+
# process the header parameters
|
|
1037
|
+
if x_twilio_email_event_webhook_signature is not None:
|
|
1038
|
+
_header_params['x-twilio-email-event-webhook-signature'] = x_twilio_email_event_webhook_signature
|
|
1039
|
+
# process the form parameters
|
|
1040
|
+
# process the body parameter
|
|
1041
|
+
|
|
1042
|
+
|
|
1043
|
+
# set the HTTP header `Accept`
|
|
1044
|
+
if 'Accept' not in _header_params:
|
|
1045
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1046
|
+
[
|
|
1047
|
+
'application/json'
|
|
1048
|
+
]
|
|
1049
|
+
)
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
# authentication setting
|
|
1053
|
+
_auth_settings: List[str] = [
|
|
1054
|
+
]
|
|
1055
|
+
|
|
1056
|
+
return self.api_client.param_serialize(
|
|
1057
|
+
method='POST',
|
|
1058
|
+
resource_path='/v1/arc/webhooks/sendgrid',
|
|
1059
|
+
path_params=_path_params,
|
|
1060
|
+
query_params=_query_params,
|
|
1061
|
+
header_params=_header_params,
|
|
1062
|
+
body=_body_params,
|
|
1063
|
+
post_params=_form_params,
|
|
1064
|
+
files=_files,
|
|
1065
|
+
auth_settings=_auth_settings,
|
|
1066
|
+
collection_formats=_collection_formats,
|
|
1067
|
+
_host=_host,
|
|
1068
|
+
_request_auth=_request_auth
|
|
1069
|
+
)
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
@validate_call
|
|
1075
|
+
def ses_delivery_webhook(
|
|
1076
|
+
self,
|
|
1077
|
+
_request_timeout: Union[
|
|
1078
|
+
None,
|
|
1079
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1080
|
+
Tuple[
|
|
1081
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1082
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1083
|
+
]
|
|
1084
|
+
] = None,
|
|
1085
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1086
|
+
_content_type: Optional[StrictStr] = None,
|
|
1087
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1088
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1089
|
+
) -> object:
|
|
1090
|
+
"""AWS SES Delivery Webhook
|
|
1091
|
+
|
|
1092
|
+
Handle AWS SES delivery events delivered through SNS.
|
|
1093
|
+
|
|
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._ses_delivery_webhook_serialize(
|
|
1117
|
+
_request_auth=_request_auth,
|
|
1118
|
+
_content_type=_content_type,
|
|
1119
|
+
_headers=_headers,
|
|
1120
|
+
_host_index=_host_index
|
|
1121
|
+
)
|
|
1122
|
+
|
|
1123
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1124
|
+
'200': "object",
|
|
1125
|
+
}
|
|
1126
|
+
response_data = self.api_client.call_api(
|
|
1127
|
+
*_param,
|
|
1128
|
+
_request_timeout=_request_timeout
|
|
1129
|
+
)
|
|
1130
|
+
response_data.read()
|
|
1131
|
+
return self.api_client.response_deserialize(
|
|
1132
|
+
response_data=response_data,
|
|
1133
|
+
response_types_map=_response_types_map,
|
|
1134
|
+
).data
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
@validate_call
|
|
1138
|
+
def ses_delivery_webhook_with_http_info(
|
|
1139
|
+
self,
|
|
1140
|
+
_request_timeout: Union[
|
|
1141
|
+
None,
|
|
1142
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1143
|
+
Tuple[
|
|
1144
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1145
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1146
|
+
]
|
|
1147
|
+
] = None,
|
|
1148
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1149
|
+
_content_type: Optional[StrictStr] = None,
|
|
1150
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1151
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1152
|
+
) -> ApiResponse[object]:
|
|
1153
|
+
"""AWS SES Delivery Webhook
|
|
1154
|
+
|
|
1155
|
+
Handle AWS SES delivery events delivered through SNS.
|
|
1156
|
+
|
|
1157
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1158
|
+
number provided, it will be total request
|
|
1159
|
+
timeout. It can also be a pair (tuple) of
|
|
1160
|
+
(connection, read) timeouts.
|
|
1161
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1162
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1163
|
+
request; this effectively ignores the
|
|
1164
|
+
authentication in the spec for a single request.
|
|
1165
|
+
:type _request_auth: dict, optional
|
|
1166
|
+
:param _content_type: force content-type for the request.
|
|
1167
|
+
:type _content_type: str, Optional
|
|
1168
|
+
:param _headers: set to override the headers for a single
|
|
1169
|
+
request; this effectively ignores the headers
|
|
1170
|
+
in the spec for a single request.
|
|
1171
|
+
:type _headers: dict, optional
|
|
1172
|
+
:param _host_index: set to override the host_index for a single
|
|
1173
|
+
request; this effectively ignores the host_index
|
|
1174
|
+
in the spec for a single request.
|
|
1175
|
+
:type _host_index: int, optional
|
|
1176
|
+
:return: Returns the result object.
|
|
1177
|
+
""" # noqa: E501
|
|
1178
|
+
|
|
1179
|
+
_param = self._ses_delivery_webhook_serialize(
|
|
1180
|
+
_request_auth=_request_auth,
|
|
1181
|
+
_content_type=_content_type,
|
|
1182
|
+
_headers=_headers,
|
|
1183
|
+
_host_index=_host_index
|
|
1184
|
+
)
|
|
1185
|
+
|
|
1186
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1187
|
+
'200': "object",
|
|
1188
|
+
}
|
|
1189
|
+
response_data = self.api_client.call_api(
|
|
1190
|
+
*_param,
|
|
1191
|
+
_request_timeout=_request_timeout
|
|
1192
|
+
)
|
|
1193
|
+
response_data.read()
|
|
1194
|
+
return self.api_client.response_deserialize(
|
|
1195
|
+
response_data=response_data,
|
|
1196
|
+
response_types_map=_response_types_map,
|
|
1197
|
+
)
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
@validate_call
|
|
1201
|
+
def ses_delivery_webhook_without_preload_content(
|
|
1202
|
+
self,
|
|
1203
|
+
_request_timeout: Union[
|
|
1204
|
+
None,
|
|
1205
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1206
|
+
Tuple[
|
|
1207
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1208
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1209
|
+
]
|
|
1210
|
+
] = None,
|
|
1211
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1212
|
+
_content_type: Optional[StrictStr] = None,
|
|
1213
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1214
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1215
|
+
) -> RESTResponseType:
|
|
1216
|
+
"""AWS SES Delivery Webhook
|
|
1217
|
+
|
|
1218
|
+
Handle AWS SES delivery events delivered through SNS.
|
|
1219
|
+
|
|
1220
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1221
|
+
number provided, it will be total request
|
|
1222
|
+
timeout. It can also be a pair (tuple) of
|
|
1223
|
+
(connection, read) timeouts.
|
|
1224
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1225
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1226
|
+
request; this effectively ignores the
|
|
1227
|
+
authentication in the spec for a single request.
|
|
1228
|
+
:type _request_auth: dict, optional
|
|
1229
|
+
:param _content_type: force content-type for the request.
|
|
1230
|
+
:type _content_type: str, Optional
|
|
1231
|
+
:param _headers: set to override the headers for a single
|
|
1232
|
+
request; this effectively ignores the headers
|
|
1233
|
+
in the spec for a single request.
|
|
1234
|
+
:type _headers: dict, optional
|
|
1235
|
+
:param _host_index: set to override the host_index for a single
|
|
1236
|
+
request; this effectively ignores the host_index
|
|
1237
|
+
in the spec for a single request.
|
|
1238
|
+
:type _host_index: int, optional
|
|
1239
|
+
:return: Returns the result object.
|
|
1240
|
+
""" # noqa: E501
|
|
1241
|
+
|
|
1242
|
+
_param = self._ses_delivery_webhook_serialize(
|
|
1243
|
+
_request_auth=_request_auth,
|
|
1244
|
+
_content_type=_content_type,
|
|
1245
|
+
_headers=_headers,
|
|
1246
|
+
_host_index=_host_index
|
|
1247
|
+
)
|
|
1248
|
+
|
|
1249
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1250
|
+
'200': "object",
|
|
1251
|
+
}
|
|
1252
|
+
response_data = self.api_client.call_api(
|
|
1253
|
+
*_param,
|
|
1254
|
+
_request_timeout=_request_timeout
|
|
1255
|
+
)
|
|
1256
|
+
return response_data.response
|
|
1257
|
+
|
|
1258
|
+
|
|
1259
|
+
def _ses_delivery_webhook_serialize(
|
|
1260
|
+
self,
|
|
1261
|
+
_request_auth,
|
|
1262
|
+
_content_type,
|
|
1263
|
+
_headers,
|
|
1264
|
+
_host_index,
|
|
1265
|
+
) -> RequestSerialized:
|
|
1266
|
+
|
|
1267
|
+
_host = None
|
|
1268
|
+
|
|
1269
|
+
_collection_formats: Dict[str, str] = {
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
_path_params: Dict[str, str] = {}
|
|
1273
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1274
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1275
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1276
|
+
_files: Dict[
|
|
1277
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
1278
|
+
] = {}
|
|
1279
|
+
_body_params: Optional[bytes] = None
|
|
1280
|
+
|
|
1281
|
+
# process the path parameters
|
|
1282
|
+
# process the query parameters
|
|
1283
|
+
# process the header parameters
|
|
1284
|
+
# process the form parameters
|
|
1285
|
+
# process the body parameter
|
|
1286
|
+
|
|
1287
|
+
|
|
1288
|
+
# set the HTTP header `Accept`
|
|
1289
|
+
if 'Accept' not in _header_params:
|
|
1290
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1291
|
+
[
|
|
1292
|
+
'application/json'
|
|
1293
|
+
]
|
|
1294
|
+
)
|
|
1295
|
+
|
|
1296
|
+
|
|
1297
|
+
# authentication setting
|
|
1298
|
+
_auth_settings: List[str] = [
|
|
1299
|
+
]
|
|
1300
|
+
|
|
1301
|
+
return self.api_client.param_serialize(
|
|
1302
|
+
method='POST',
|
|
1303
|
+
resource_path='/v1/arc/webhooks/ses',
|
|
1304
|
+
path_params=_path_params,
|
|
1305
|
+
query_params=_query_params,
|
|
1306
|
+
header_params=_header_params,
|
|
1307
|
+
body=_body_params,
|
|
1308
|
+
post_params=_form_params,
|
|
1309
|
+
files=_files,
|
|
1310
|
+
auth_settings=_auth_settings,
|
|
1311
|
+
collection_formats=_collection_formats,
|
|
1312
|
+
_host=_host,
|
|
1313
|
+
_request_auth=_request_auth
|
|
1314
|
+
)
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
|
|
1318
|
+
|
|
1319
|
+
@validate_call
|
|
1320
|
+
def ses_inbound_webhook(
|
|
1321
|
+
self,
|
|
1322
|
+
_request_timeout: Union[
|
|
1323
|
+
None,
|
|
1324
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1325
|
+
Tuple[
|
|
1326
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1327
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1328
|
+
]
|
|
1329
|
+
] = None,
|
|
1330
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1331
|
+
_content_type: Optional[StrictStr] = None,
|
|
1332
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1333
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1334
|
+
) -> object:
|
|
1335
|
+
"""AWS SES Inbound Reply Webhook
|
|
1336
|
+
|
|
1337
|
+
Handle AWS SES inbound receipt events delivered through SNS.
|
|
1338
|
+
|
|
1339
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1340
|
+
number provided, it will be total request
|
|
1341
|
+
timeout. It can also be a pair (tuple) of
|
|
1342
|
+
(connection, read) timeouts.
|
|
1343
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1344
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1345
|
+
request; this effectively ignores the
|
|
1346
|
+
authentication in the spec for a single request.
|
|
1347
|
+
:type _request_auth: dict, optional
|
|
1348
|
+
:param _content_type: force content-type for the request.
|
|
1349
|
+
:type _content_type: str, Optional
|
|
1350
|
+
:param _headers: set to override the headers for a single
|
|
1351
|
+
request; this effectively ignores the headers
|
|
1352
|
+
in the spec for a single request.
|
|
1353
|
+
:type _headers: dict, optional
|
|
1354
|
+
:param _host_index: set to override the host_index for a single
|
|
1355
|
+
request; this effectively ignores the host_index
|
|
1356
|
+
in the spec for a single request.
|
|
1357
|
+
:type _host_index: int, optional
|
|
1358
|
+
:return: Returns the result object.
|
|
1359
|
+
""" # noqa: E501
|
|
1360
|
+
|
|
1361
|
+
_param = self._ses_inbound_webhook_serialize(
|
|
1362
|
+
_request_auth=_request_auth,
|
|
1363
|
+
_content_type=_content_type,
|
|
1364
|
+
_headers=_headers,
|
|
1365
|
+
_host_index=_host_index
|
|
1366
|
+
)
|
|
1367
|
+
|
|
1368
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1369
|
+
'200': "object",
|
|
1370
|
+
}
|
|
1371
|
+
response_data = self.api_client.call_api(
|
|
1372
|
+
*_param,
|
|
1373
|
+
_request_timeout=_request_timeout
|
|
1374
|
+
)
|
|
1375
|
+
response_data.read()
|
|
1376
|
+
return self.api_client.response_deserialize(
|
|
1377
|
+
response_data=response_data,
|
|
1378
|
+
response_types_map=_response_types_map,
|
|
1379
|
+
).data
|
|
1380
|
+
|
|
1381
|
+
|
|
1382
|
+
@validate_call
|
|
1383
|
+
def ses_inbound_webhook_with_http_info(
|
|
1384
|
+
self,
|
|
1385
|
+
_request_timeout: Union[
|
|
1386
|
+
None,
|
|
1387
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1388
|
+
Tuple[
|
|
1389
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1390
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1391
|
+
]
|
|
1392
|
+
] = None,
|
|
1393
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1394
|
+
_content_type: Optional[StrictStr] = None,
|
|
1395
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1396
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1397
|
+
) -> ApiResponse[object]:
|
|
1398
|
+
"""AWS SES Inbound Reply Webhook
|
|
1399
|
+
|
|
1400
|
+
Handle AWS SES inbound receipt events delivered through SNS.
|
|
1401
|
+
|
|
1402
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1403
|
+
number provided, it will be total request
|
|
1404
|
+
timeout. It can also be a pair (tuple) of
|
|
1405
|
+
(connection, read) timeouts.
|
|
1406
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1407
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1408
|
+
request; this effectively ignores the
|
|
1409
|
+
authentication in the spec for a single request.
|
|
1410
|
+
:type _request_auth: dict, optional
|
|
1411
|
+
:param _content_type: force content-type for the request.
|
|
1412
|
+
:type _content_type: str, Optional
|
|
1413
|
+
:param _headers: set to override the headers for a single
|
|
1414
|
+
request; this effectively ignores the headers
|
|
1415
|
+
in the spec for a single request.
|
|
1416
|
+
:type _headers: dict, optional
|
|
1417
|
+
:param _host_index: set to override the host_index for a single
|
|
1418
|
+
request; this effectively ignores the host_index
|
|
1419
|
+
in the spec for a single request.
|
|
1420
|
+
:type _host_index: int, optional
|
|
1421
|
+
:return: Returns the result object.
|
|
1422
|
+
""" # noqa: E501
|
|
1423
|
+
|
|
1424
|
+
_param = self._ses_inbound_webhook_serialize(
|
|
1425
|
+
_request_auth=_request_auth,
|
|
1426
|
+
_content_type=_content_type,
|
|
1427
|
+
_headers=_headers,
|
|
1428
|
+
_host_index=_host_index
|
|
1429
|
+
)
|
|
1430
|
+
|
|
1431
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1432
|
+
'200': "object",
|
|
1433
|
+
}
|
|
1434
|
+
response_data = self.api_client.call_api(
|
|
1435
|
+
*_param,
|
|
1436
|
+
_request_timeout=_request_timeout
|
|
1437
|
+
)
|
|
1438
|
+
response_data.read()
|
|
1439
|
+
return self.api_client.response_deserialize(
|
|
1440
|
+
response_data=response_data,
|
|
1441
|
+
response_types_map=_response_types_map,
|
|
1442
|
+
)
|
|
1443
|
+
|
|
1444
|
+
|
|
1445
|
+
@validate_call
|
|
1446
|
+
def ses_inbound_webhook_without_preload_content(
|
|
1447
|
+
self,
|
|
1448
|
+
_request_timeout: Union[
|
|
1449
|
+
None,
|
|
1450
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1451
|
+
Tuple[
|
|
1452
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1453
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1454
|
+
]
|
|
1455
|
+
] = None,
|
|
1456
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1457
|
+
_content_type: Optional[StrictStr] = None,
|
|
1458
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1459
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1460
|
+
) -> RESTResponseType:
|
|
1461
|
+
"""AWS SES Inbound Reply Webhook
|
|
1462
|
+
|
|
1463
|
+
Handle AWS SES inbound receipt events delivered through SNS.
|
|
1464
|
+
|
|
1465
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1466
|
+
number provided, it will be total request
|
|
1467
|
+
timeout. It can also be a pair (tuple) of
|
|
1468
|
+
(connection, read) timeouts.
|
|
1469
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1470
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1471
|
+
request; this effectively ignores the
|
|
1472
|
+
authentication in the spec for a single request.
|
|
1473
|
+
:type _request_auth: dict, optional
|
|
1474
|
+
:param _content_type: force content-type for the request.
|
|
1475
|
+
:type _content_type: str, Optional
|
|
1476
|
+
:param _headers: set to override the headers for a single
|
|
1477
|
+
request; this effectively ignores the headers
|
|
1478
|
+
in the spec for a single request.
|
|
1479
|
+
:type _headers: dict, optional
|
|
1480
|
+
:param _host_index: set to override the host_index for a single
|
|
1481
|
+
request; this effectively ignores the host_index
|
|
1482
|
+
in the spec for a single request.
|
|
1483
|
+
:type _host_index: int, optional
|
|
1484
|
+
:return: Returns the result object.
|
|
1485
|
+
""" # noqa: E501
|
|
1486
|
+
|
|
1487
|
+
_param = self._ses_inbound_webhook_serialize(
|
|
1488
|
+
_request_auth=_request_auth,
|
|
1489
|
+
_content_type=_content_type,
|
|
1490
|
+
_headers=_headers,
|
|
1491
|
+
_host_index=_host_index
|
|
1492
|
+
)
|
|
1493
|
+
|
|
1494
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1495
|
+
'200': "object",
|
|
1496
|
+
}
|
|
1497
|
+
response_data = self.api_client.call_api(
|
|
1498
|
+
*_param,
|
|
1499
|
+
_request_timeout=_request_timeout
|
|
1500
|
+
)
|
|
1501
|
+
return response_data.response
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
def _ses_inbound_webhook_serialize(
|
|
1505
|
+
self,
|
|
1506
|
+
_request_auth,
|
|
1507
|
+
_content_type,
|
|
1508
|
+
_headers,
|
|
1509
|
+
_host_index,
|
|
1510
|
+
) -> RequestSerialized:
|
|
1511
|
+
|
|
1512
|
+
_host = None
|
|
1513
|
+
|
|
1514
|
+
_collection_formats: Dict[str, str] = {
|
|
1515
|
+
}
|
|
1516
|
+
|
|
1517
|
+
_path_params: Dict[str, str] = {}
|
|
1518
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1519
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1520
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1521
|
+
_files: Dict[
|
|
1522
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
1523
|
+
] = {}
|
|
1524
|
+
_body_params: Optional[bytes] = None
|
|
1525
|
+
|
|
1526
|
+
# process the path parameters
|
|
1527
|
+
# process the query parameters
|
|
1528
|
+
# process the header parameters
|
|
1529
|
+
# process the form parameters
|
|
1530
|
+
# process the body parameter
|
|
1531
|
+
|
|
1532
|
+
|
|
1533
|
+
# set the HTTP header `Accept`
|
|
1534
|
+
if 'Accept' not in _header_params:
|
|
1535
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1536
|
+
[
|
|
1537
|
+
'application/json'
|
|
1538
|
+
]
|
|
1539
|
+
)
|
|
1540
|
+
|
|
1541
|
+
|
|
1542
|
+
# authentication setting
|
|
1543
|
+
_auth_settings: List[str] = [
|
|
1544
|
+
]
|
|
1545
|
+
|
|
1546
|
+
return self.api_client.param_serialize(
|
|
1547
|
+
method='POST',
|
|
1548
|
+
resource_path='/v1/arc/webhooks/inbound/ses',
|
|
1549
|
+
path_params=_path_params,
|
|
1550
|
+
query_params=_query_params,
|
|
1551
|
+
header_params=_header_params,
|
|
1552
|
+
body=_body_params,
|
|
1553
|
+
post_params=_form_params,
|
|
1554
|
+
files=_files,
|
|
1555
|
+
auth_settings=_auth_settings,
|
|
1556
|
+
collection_formats=_collection_formats,
|
|
1557
|
+
_host=_host,
|
|
1558
|
+
_request_auth=_request_auth
|
|
1559
|
+
)
|
|
1560
|
+
|
|
1561
|
+
|
|
1562
|
+
|
|
1563
|
+
|
|
1564
|
+
@validate_call
|
|
1565
|
+
def stripe_webhook_post(
|
|
1566
|
+
self,
|
|
1567
|
+
stripe_signature: Optional[StrictStr] = None,
|
|
1568
|
+
_request_timeout: Union[
|
|
1569
|
+
None,
|
|
1570
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1571
|
+
Tuple[
|
|
1572
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1573
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1574
|
+
]
|
|
1575
|
+
] = None,
|
|
1576
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1577
|
+
_content_type: Optional[StrictStr] = None,
|
|
1578
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1579
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1580
|
+
) -> object:
|
|
1581
|
+
"""Stripe Webhook
|
|
1582
|
+
|
|
1583
|
+
Handle Stripe payment webhooks. T9: Signature verified first.
|
|
1584
|
+
|
|
1585
|
+
:param stripe_signature:
|
|
1586
|
+
:type stripe_signature: str
|
|
1587
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1588
|
+
number provided, it will be total request
|
|
1589
|
+
timeout. It can also be a pair (tuple) of
|
|
1590
|
+
(connection, read) timeouts.
|
|
1591
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1592
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1593
|
+
request; this effectively ignores the
|
|
1594
|
+
authentication in the spec for a single request.
|
|
1595
|
+
:type _request_auth: dict, optional
|
|
1596
|
+
:param _content_type: force content-type for the request.
|
|
1597
|
+
:type _content_type: str, Optional
|
|
1598
|
+
:param _headers: set to override the headers for a single
|
|
1599
|
+
request; this effectively ignores the headers
|
|
1600
|
+
in the spec for a single request.
|
|
1601
|
+
:type _headers: dict, optional
|
|
1602
|
+
:param _host_index: set to override the host_index for a single
|
|
1603
|
+
request; this effectively ignores the host_index
|
|
1604
|
+
in the spec for a single request.
|
|
1605
|
+
:type _host_index: int, optional
|
|
1606
|
+
:return: Returns the result object.
|
|
1607
|
+
""" # noqa: E501
|
|
1608
|
+
|
|
1609
|
+
_param = self._stripe_webhook_post_serialize(
|
|
1610
|
+
stripe_signature=stripe_signature,
|
|
1611
|
+
_request_auth=_request_auth,
|
|
1612
|
+
_content_type=_content_type,
|
|
1613
|
+
_headers=_headers,
|
|
1614
|
+
_host_index=_host_index
|
|
1615
|
+
)
|
|
1616
|
+
|
|
1617
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1618
|
+
'200': "object",
|
|
1619
|
+
'422': "ArcHTTPValidationError",
|
|
1620
|
+
}
|
|
1621
|
+
response_data = self.api_client.call_api(
|
|
1622
|
+
*_param,
|
|
1623
|
+
_request_timeout=_request_timeout
|
|
1624
|
+
)
|
|
1625
|
+
response_data.read()
|
|
1626
|
+
return self.api_client.response_deserialize(
|
|
1627
|
+
response_data=response_data,
|
|
1628
|
+
response_types_map=_response_types_map,
|
|
1629
|
+
).data
|
|
1630
|
+
|
|
1631
|
+
|
|
1632
|
+
@validate_call
|
|
1633
|
+
def stripe_webhook_post_with_http_info(
|
|
1634
|
+
self,
|
|
1635
|
+
stripe_signature: Optional[StrictStr] = None,
|
|
1636
|
+
_request_timeout: Union[
|
|
1637
|
+
None,
|
|
1638
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1639
|
+
Tuple[
|
|
1640
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1641
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1642
|
+
]
|
|
1643
|
+
] = None,
|
|
1644
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1645
|
+
_content_type: Optional[StrictStr] = None,
|
|
1646
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1647
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1648
|
+
) -> ApiResponse[object]:
|
|
1649
|
+
"""Stripe Webhook
|
|
1650
|
+
|
|
1651
|
+
Handle Stripe payment webhooks. T9: Signature verified first.
|
|
1652
|
+
|
|
1653
|
+
:param stripe_signature:
|
|
1654
|
+
:type stripe_signature: str
|
|
1655
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1656
|
+
number provided, it will be total request
|
|
1657
|
+
timeout. It can also be a pair (tuple) of
|
|
1658
|
+
(connection, read) timeouts.
|
|
1659
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1660
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1661
|
+
request; this effectively ignores the
|
|
1662
|
+
authentication in the spec for a single request.
|
|
1663
|
+
:type _request_auth: dict, optional
|
|
1664
|
+
:param _content_type: force content-type for the request.
|
|
1665
|
+
:type _content_type: str, Optional
|
|
1666
|
+
:param _headers: set to override the headers for a single
|
|
1667
|
+
request; this effectively ignores the headers
|
|
1668
|
+
in the spec for a single request.
|
|
1669
|
+
:type _headers: dict, optional
|
|
1670
|
+
:param _host_index: set to override the host_index for a single
|
|
1671
|
+
request; this effectively ignores the host_index
|
|
1672
|
+
in the spec for a single request.
|
|
1673
|
+
:type _host_index: int, optional
|
|
1674
|
+
:return: Returns the result object.
|
|
1675
|
+
""" # noqa: E501
|
|
1676
|
+
|
|
1677
|
+
_param = self._stripe_webhook_post_serialize(
|
|
1678
|
+
stripe_signature=stripe_signature,
|
|
1679
|
+
_request_auth=_request_auth,
|
|
1680
|
+
_content_type=_content_type,
|
|
1681
|
+
_headers=_headers,
|
|
1682
|
+
_host_index=_host_index
|
|
1683
|
+
)
|
|
1684
|
+
|
|
1685
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1686
|
+
'200': "object",
|
|
1687
|
+
'422': "ArcHTTPValidationError",
|
|
1688
|
+
}
|
|
1689
|
+
response_data = self.api_client.call_api(
|
|
1690
|
+
*_param,
|
|
1691
|
+
_request_timeout=_request_timeout
|
|
1692
|
+
)
|
|
1693
|
+
response_data.read()
|
|
1694
|
+
return self.api_client.response_deserialize(
|
|
1695
|
+
response_data=response_data,
|
|
1696
|
+
response_types_map=_response_types_map,
|
|
1697
|
+
)
|
|
1698
|
+
|
|
1699
|
+
|
|
1700
|
+
@validate_call
|
|
1701
|
+
def stripe_webhook_post_without_preload_content(
|
|
1702
|
+
self,
|
|
1703
|
+
stripe_signature: Optional[StrictStr] = None,
|
|
1704
|
+
_request_timeout: Union[
|
|
1705
|
+
None,
|
|
1706
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1707
|
+
Tuple[
|
|
1708
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1709
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1710
|
+
]
|
|
1711
|
+
] = None,
|
|
1712
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1713
|
+
_content_type: Optional[StrictStr] = None,
|
|
1714
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1715
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1716
|
+
) -> RESTResponseType:
|
|
1717
|
+
"""Stripe Webhook
|
|
1718
|
+
|
|
1719
|
+
Handle Stripe payment webhooks. T9: Signature verified first.
|
|
1720
|
+
|
|
1721
|
+
:param stripe_signature:
|
|
1722
|
+
:type stripe_signature: str
|
|
1723
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1724
|
+
number provided, it will be total request
|
|
1725
|
+
timeout. It can also be a pair (tuple) of
|
|
1726
|
+
(connection, read) timeouts.
|
|
1727
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1728
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1729
|
+
request; this effectively ignores the
|
|
1730
|
+
authentication in the spec for a single request.
|
|
1731
|
+
:type _request_auth: dict, optional
|
|
1732
|
+
:param _content_type: force content-type for the request.
|
|
1733
|
+
:type _content_type: str, Optional
|
|
1734
|
+
:param _headers: set to override the headers for a single
|
|
1735
|
+
request; this effectively ignores the headers
|
|
1736
|
+
in the spec for a single request.
|
|
1737
|
+
:type _headers: dict, optional
|
|
1738
|
+
:param _host_index: set to override the host_index for a single
|
|
1739
|
+
request; this effectively ignores the host_index
|
|
1740
|
+
in the spec for a single request.
|
|
1741
|
+
:type _host_index: int, optional
|
|
1742
|
+
:return: Returns the result object.
|
|
1743
|
+
""" # noqa: E501
|
|
1744
|
+
|
|
1745
|
+
_param = self._stripe_webhook_post_serialize(
|
|
1746
|
+
stripe_signature=stripe_signature,
|
|
1747
|
+
_request_auth=_request_auth,
|
|
1748
|
+
_content_type=_content_type,
|
|
1749
|
+
_headers=_headers,
|
|
1750
|
+
_host_index=_host_index
|
|
1751
|
+
)
|
|
1752
|
+
|
|
1753
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1754
|
+
'200': "object",
|
|
1755
|
+
'422': "ArcHTTPValidationError",
|
|
1756
|
+
}
|
|
1757
|
+
response_data = self.api_client.call_api(
|
|
1758
|
+
*_param,
|
|
1759
|
+
_request_timeout=_request_timeout
|
|
1760
|
+
)
|
|
1761
|
+
return response_data.response
|
|
1762
|
+
|
|
1763
|
+
|
|
1764
|
+
def _stripe_webhook_post_serialize(
|
|
1765
|
+
self,
|
|
1766
|
+
stripe_signature,
|
|
1767
|
+
_request_auth,
|
|
1768
|
+
_content_type,
|
|
1769
|
+
_headers,
|
|
1770
|
+
_host_index,
|
|
1771
|
+
) -> RequestSerialized:
|
|
1772
|
+
|
|
1773
|
+
_host = None
|
|
1774
|
+
|
|
1775
|
+
_collection_formats: Dict[str, str] = {
|
|
1776
|
+
}
|
|
1777
|
+
|
|
1778
|
+
_path_params: Dict[str, str] = {}
|
|
1779
|
+
_query_params: List[Tuple[str, str]] = []
|
|
1780
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
1781
|
+
_form_params: List[Tuple[str, str]] = []
|
|
1782
|
+
_files: Dict[
|
|
1783
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
1784
|
+
] = {}
|
|
1785
|
+
_body_params: Optional[bytes] = None
|
|
1786
|
+
|
|
1787
|
+
# process the path parameters
|
|
1788
|
+
# process the query parameters
|
|
1789
|
+
# process the header parameters
|
|
1790
|
+
if stripe_signature is not None:
|
|
1791
|
+
_header_params['Stripe-Signature'] = stripe_signature
|
|
1792
|
+
# process the form parameters
|
|
1793
|
+
# process the body parameter
|
|
1794
|
+
|
|
1795
|
+
|
|
1796
|
+
# set the HTTP header `Accept`
|
|
1797
|
+
if 'Accept' not in _header_params:
|
|
1798
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
1799
|
+
[
|
|
1800
|
+
'application/json'
|
|
1801
|
+
]
|
|
1802
|
+
)
|
|
1803
|
+
|
|
1804
|
+
|
|
1805
|
+
# authentication setting
|
|
1806
|
+
_auth_settings: List[str] = [
|
|
1807
|
+
]
|
|
1808
|
+
|
|
1809
|
+
return self.api_client.param_serialize(
|
|
1810
|
+
method='POST',
|
|
1811
|
+
resource_path='/v1/arc/webhooks/stripe',
|
|
1812
|
+
path_params=_path_params,
|
|
1813
|
+
query_params=_query_params,
|
|
1814
|
+
header_params=_header_params,
|
|
1815
|
+
body=_body_params,
|
|
1816
|
+
post_params=_form_params,
|
|
1817
|
+
files=_files,
|
|
1818
|
+
auth_settings=_auth_settings,
|
|
1819
|
+
collection_formats=_collection_formats,
|
|
1820
|
+
_host=_host,
|
|
1821
|
+
_request_auth=_request_auth
|
|
1822
|
+
)
|
|
1823
|
+
|
|
1824
|
+
|
|
1825
|
+
|
|
1826
|
+
|
|
1827
|
+
@validate_call
|
|
1828
|
+
def twilio_webhook(
|
|
1829
|
+
self,
|
|
1830
|
+
x_twilio_signature: Optional[StrictStr] = None,
|
|
1831
|
+
_request_timeout: Union[
|
|
1832
|
+
None,
|
|
1833
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1834
|
+
Tuple[
|
|
1835
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1836
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1837
|
+
]
|
|
1838
|
+
] = None,
|
|
1839
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1840
|
+
_content_type: Optional[StrictStr] = None,
|
|
1841
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1842
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1843
|
+
) -> object:
|
|
1844
|
+
"""Twilio Webhook
|
|
1845
|
+
|
|
1846
|
+
Handle Twilio SMS status webhooks.
|
|
1847
|
+
|
|
1848
|
+
:param x_twilio_signature:
|
|
1849
|
+
:type x_twilio_signature: str
|
|
1850
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1851
|
+
number provided, it will be total request
|
|
1852
|
+
timeout. It can also be a pair (tuple) of
|
|
1853
|
+
(connection, read) timeouts.
|
|
1854
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1855
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1856
|
+
request; this effectively ignores the
|
|
1857
|
+
authentication in the spec for a single request.
|
|
1858
|
+
:type _request_auth: dict, optional
|
|
1859
|
+
:param _content_type: force content-type for the request.
|
|
1860
|
+
:type _content_type: str, Optional
|
|
1861
|
+
:param _headers: set to override the headers for a single
|
|
1862
|
+
request; this effectively ignores the headers
|
|
1863
|
+
in the spec for a single request.
|
|
1864
|
+
:type _headers: dict, optional
|
|
1865
|
+
:param _host_index: set to override the host_index for a single
|
|
1866
|
+
request; this effectively ignores the host_index
|
|
1867
|
+
in the spec for a single request.
|
|
1868
|
+
:type _host_index: int, optional
|
|
1869
|
+
:return: Returns the result object.
|
|
1870
|
+
""" # noqa: E501
|
|
1871
|
+
|
|
1872
|
+
_param = self._twilio_webhook_serialize(
|
|
1873
|
+
x_twilio_signature=x_twilio_signature,
|
|
1874
|
+
_request_auth=_request_auth,
|
|
1875
|
+
_content_type=_content_type,
|
|
1876
|
+
_headers=_headers,
|
|
1877
|
+
_host_index=_host_index
|
|
1878
|
+
)
|
|
1879
|
+
|
|
1880
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1881
|
+
'200': "object",
|
|
1882
|
+
'422': "ArcHTTPValidationError",
|
|
1883
|
+
}
|
|
1884
|
+
response_data = self.api_client.call_api(
|
|
1885
|
+
*_param,
|
|
1886
|
+
_request_timeout=_request_timeout
|
|
1887
|
+
)
|
|
1888
|
+
response_data.read()
|
|
1889
|
+
return self.api_client.response_deserialize(
|
|
1890
|
+
response_data=response_data,
|
|
1891
|
+
response_types_map=_response_types_map,
|
|
1892
|
+
).data
|
|
1893
|
+
|
|
1894
|
+
|
|
1895
|
+
@validate_call
|
|
1896
|
+
def twilio_webhook_with_http_info(
|
|
1897
|
+
self,
|
|
1898
|
+
x_twilio_signature: Optional[StrictStr] = None,
|
|
1899
|
+
_request_timeout: Union[
|
|
1900
|
+
None,
|
|
1901
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1902
|
+
Tuple[
|
|
1903
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1904
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1905
|
+
]
|
|
1906
|
+
] = None,
|
|
1907
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1908
|
+
_content_type: Optional[StrictStr] = None,
|
|
1909
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1910
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1911
|
+
) -> ApiResponse[object]:
|
|
1912
|
+
"""Twilio Webhook
|
|
1913
|
+
|
|
1914
|
+
Handle Twilio SMS status webhooks.
|
|
1915
|
+
|
|
1916
|
+
:param x_twilio_signature:
|
|
1917
|
+
:type x_twilio_signature: str
|
|
1918
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1919
|
+
number provided, it will be total request
|
|
1920
|
+
timeout. It can also be a pair (tuple) of
|
|
1921
|
+
(connection, read) timeouts.
|
|
1922
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1923
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1924
|
+
request; this effectively ignores the
|
|
1925
|
+
authentication in the spec for a single request.
|
|
1926
|
+
:type _request_auth: dict, optional
|
|
1927
|
+
:param _content_type: force content-type for the request.
|
|
1928
|
+
:type _content_type: str, Optional
|
|
1929
|
+
:param _headers: set to override the headers for a single
|
|
1930
|
+
request; this effectively ignores the headers
|
|
1931
|
+
in the spec for a single request.
|
|
1932
|
+
:type _headers: dict, optional
|
|
1933
|
+
:param _host_index: set to override the host_index for a single
|
|
1934
|
+
request; this effectively ignores the host_index
|
|
1935
|
+
in the spec for a single request.
|
|
1936
|
+
:type _host_index: int, optional
|
|
1937
|
+
:return: Returns the result object.
|
|
1938
|
+
""" # noqa: E501
|
|
1939
|
+
|
|
1940
|
+
_param = self._twilio_webhook_serialize(
|
|
1941
|
+
x_twilio_signature=x_twilio_signature,
|
|
1942
|
+
_request_auth=_request_auth,
|
|
1943
|
+
_content_type=_content_type,
|
|
1944
|
+
_headers=_headers,
|
|
1945
|
+
_host_index=_host_index
|
|
1946
|
+
)
|
|
1947
|
+
|
|
1948
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1949
|
+
'200': "object",
|
|
1950
|
+
'422': "ArcHTTPValidationError",
|
|
1951
|
+
}
|
|
1952
|
+
response_data = self.api_client.call_api(
|
|
1953
|
+
*_param,
|
|
1954
|
+
_request_timeout=_request_timeout
|
|
1955
|
+
)
|
|
1956
|
+
response_data.read()
|
|
1957
|
+
return self.api_client.response_deserialize(
|
|
1958
|
+
response_data=response_data,
|
|
1959
|
+
response_types_map=_response_types_map,
|
|
1960
|
+
)
|
|
1961
|
+
|
|
1962
|
+
|
|
1963
|
+
@validate_call
|
|
1964
|
+
def twilio_webhook_without_preload_content(
|
|
1965
|
+
self,
|
|
1966
|
+
x_twilio_signature: Optional[StrictStr] = None,
|
|
1967
|
+
_request_timeout: Union[
|
|
1968
|
+
None,
|
|
1969
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1970
|
+
Tuple[
|
|
1971
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1972
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1973
|
+
]
|
|
1974
|
+
] = None,
|
|
1975
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1976
|
+
_content_type: Optional[StrictStr] = None,
|
|
1977
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1978
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1979
|
+
) -> RESTResponseType:
|
|
1980
|
+
"""Twilio Webhook
|
|
1981
|
+
|
|
1982
|
+
Handle Twilio SMS status webhooks.
|
|
1983
|
+
|
|
1984
|
+
:param x_twilio_signature:
|
|
1985
|
+
:type x_twilio_signature: str
|
|
1986
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1987
|
+
number provided, it will be total request
|
|
1988
|
+
timeout. It can also be a pair (tuple) of
|
|
1989
|
+
(connection, read) timeouts.
|
|
1990
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1991
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1992
|
+
request; this effectively ignores the
|
|
1993
|
+
authentication in the spec for a single request.
|
|
1994
|
+
:type _request_auth: dict, optional
|
|
1995
|
+
:param _content_type: force content-type for the request.
|
|
1996
|
+
:type _content_type: str, Optional
|
|
1997
|
+
:param _headers: set to override the headers for a single
|
|
1998
|
+
request; this effectively ignores the headers
|
|
1999
|
+
in the spec for a single request.
|
|
2000
|
+
:type _headers: dict, optional
|
|
2001
|
+
:param _host_index: set to override the host_index for a single
|
|
2002
|
+
request; this effectively ignores the host_index
|
|
2003
|
+
in the spec for a single request.
|
|
2004
|
+
:type _host_index: int, optional
|
|
2005
|
+
:return: Returns the result object.
|
|
2006
|
+
""" # noqa: E501
|
|
2007
|
+
|
|
2008
|
+
_param = self._twilio_webhook_serialize(
|
|
2009
|
+
x_twilio_signature=x_twilio_signature,
|
|
2010
|
+
_request_auth=_request_auth,
|
|
2011
|
+
_content_type=_content_type,
|
|
2012
|
+
_headers=_headers,
|
|
2013
|
+
_host_index=_host_index
|
|
2014
|
+
)
|
|
2015
|
+
|
|
2016
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
2017
|
+
'200': "object",
|
|
2018
|
+
'422': "ArcHTTPValidationError",
|
|
2019
|
+
}
|
|
2020
|
+
response_data = self.api_client.call_api(
|
|
2021
|
+
*_param,
|
|
2022
|
+
_request_timeout=_request_timeout
|
|
2023
|
+
)
|
|
2024
|
+
return response_data.response
|
|
2025
|
+
|
|
2026
|
+
|
|
2027
|
+
def _twilio_webhook_serialize(
|
|
2028
|
+
self,
|
|
2029
|
+
x_twilio_signature,
|
|
2030
|
+
_request_auth,
|
|
2031
|
+
_content_type,
|
|
2032
|
+
_headers,
|
|
2033
|
+
_host_index,
|
|
2034
|
+
) -> RequestSerialized:
|
|
2035
|
+
|
|
2036
|
+
_host = None
|
|
2037
|
+
|
|
2038
|
+
_collection_formats: Dict[str, str] = {
|
|
2039
|
+
}
|
|
2040
|
+
|
|
2041
|
+
_path_params: Dict[str, str] = {}
|
|
2042
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2043
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2044
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2045
|
+
_files: Dict[
|
|
2046
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
2047
|
+
] = {}
|
|
2048
|
+
_body_params: Optional[bytes] = None
|
|
2049
|
+
|
|
2050
|
+
# process the path parameters
|
|
2051
|
+
# process the query parameters
|
|
2052
|
+
# process the header parameters
|
|
2053
|
+
if x_twilio_signature is not None:
|
|
2054
|
+
_header_params['X-Twilio-Signature'] = x_twilio_signature
|
|
2055
|
+
# process the form parameters
|
|
2056
|
+
# process the body parameter
|
|
2057
|
+
|
|
2058
|
+
|
|
2059
|
+
# set the HTTP header `Accept`
|
|
2060
|
+
if 'Accept' not in _header_params:
|
|
2061
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
2062
|
+
[
|
|
2063
|
+
'application/json'
|
|
2064
|
+
]
|
|
2065
|
+
)
|
|
2066
|
+
|
|
2067
|
+
|
|
2068
|
+
# authentication setting
|
|
2069
|
+
_auth_settings: List[str] = [
|
|
2070
|
+
]
|
|
2071
|
+
|
|
2072
|
+
return self.api_client.param_serialize(
|
|
2073
|
+
method='POST',
|
|
2074
|
+
resource_path='/v1/arc/webhooks/twilio',
|
|
2075
|
+
path_params=_path_params,
|
|
2076
|
+
query_params=_query_params,
|
|
2077
|
+
header_params=_header_params,
|
|
2078
|
+
body=_body_params,
|
|
2079
|
+
post_params=_form_params,
|
|
2080
|
+
files=_files,
|
|
2081
|
+
auth_settings=_auth_settings,
|
|
2082
|
+
collection_formats=_collection_formats,
|
|
2083
|
+
_host=_host,
|
|
2084
|
+
_request_auth=_request_auth
|
|
2085
|
+
)
|
|
2086
|
+
|
|
2087
|
+
|