brevo-python 4.0.1__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.
- brevo/__init__.py +2253 -0
- brevo/account/__init__.py +79 -0
- brevo/account/client.py +317 -0
- brevo/account/raw_client.py +341 -0
- brevo/account/types/__init__.py +77 -0
- brevo/account/types/get_account_activity_response.py +24 -0
- brevo/account/types/get_account_activity_response_logs_item.py +45 -0
- brevo/account/types/get_account_response.py +85 -0
- brevo/account/types/get_account_response_address.py +43 -0
- brevo/account/types/get_account_response_date_time_preferences.py +38 -0
- brevo/account/types/get_account_response_marketing_automation.py +29 -0
- brevo/account/types/get_account_response_plan_item.py +53 -0
- brevo/account/types/get_account_response_plan_item_type.py +5 -0
- brevo/account/types/get_account_response_plan_verticals_item.py +63 -0
- brevo/account/types/get_account_response_plan_verticals_item_plan_category.py +5 -0
- brevo/account/types/get_account_response_plan_verticals_item_status.py +5 -0
- brevo/account/types/get_account_response_plan_verticals_item_users.py +35 -0
- brevo/account/types/get_account_response_relay.py +34 -0
- brevo/account/types/get_account_response_relay_data.py +40 -0
- brevo/balance/__init__.py +139 -0
- brevo/balance/client.py +2589 -0
- brevo/balance/raw_client.py +4538 -0
- brevo/balance/types/__init__.py +169 -0
- brevo/balance/types/create_balance_limit_request_constraint_type.py +5 -0
- brevo/balance/types/create_balance_limit_request_duration_unit.py +5 -0
- brevo/balance/types/create_balance_limit_request_transaction_type.py +5 -0
- brevo/balance/types/create_balance_order_response.py +96 -0
- brevo/balance/types/get_balance_definition_list_request_sort.py +5 -0
- brevo/balance/types/get_balance_definition_list_request_sort_field.py +5 -0
- brevo/balance/types/get_balance_definition_list_request_version.py +5 -0
- brevo/balance/types/get_balance_definition_list_response.py +24 -0
- brevo/balance/types/get_balance_definition_request_version.py +5 -0
- brevo/balance/types/get_balance_limit_request_version.py +5 -0
- brevo/balance/types/get_contact_balances_response.py +30 -0
- brevo/balance/types/get_contact_balances_response_balances_item.py +33 -0
- brevo/balance/types/get_loyalty_balance_programs_pid_transaction_history_request_sort.py +5 -0
- brevo/balance/types/get_loyalty_balance_programs_pid_transaction_history_request_sort_field.py +7 -0
- brevo/balance/types/get_loyalty_balance_programs_pid_transaction_history_response.py +57 -0
- brevo/balance/types/get_loyalty_balance_programs_pid_transaction_history_response_transaction_history_item.py +77 -0
- brevo/balance/types/get_subscription_balances_response.py +21 -0
- brevo/balance/types/get_subscription_balances_response_balance_item.py +30 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_balance_definitions_request_balance_availability_duration_modifier.py +7 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_balance_definitions_request_balance_availability_duration_unit.py +7 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_balance_definitions_request_balance_option_amount_overtaking_strategy.py +7 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_balance_definitions_request_balance_option_credit_rounding.py +7 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_balance_definitions_request_balance_option_debit_rounding.py +7 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_balance_definitions_request_unit.py +26 -0
- brevo/balance/types/post_loyalty_balance_programs_pid_subscriptions_cid_balances_response.py +66 -0
- brevo/balance/types/update_balance_definition_request_balance_availability_duration_modifier.py +7 -0
- brevo/balance/types/update_balance_definition_request_balance_availability_duration_unit.py +7 -0
- brevo/balance/types/update_balance_definition_request_balance_option_amount_overtaking_strategy.py +7 -0
- brevo/balance/types/update_balance_definition_request_balance_option_credit_rounding.py +7 -0
- brevo/balance/types/update_balance_definition_request_balance_option_debit_rounding.py +7 -0
- brevo/balance/types/update_balance_definition_request_unit.py +26 -0
- brevo/balance/types/update_balance_limit_request_constraint_type.py +5 -0
- brevo/balance/types/update_balance_limit_request_duration_unit.py +5 -0
- brevo/balance/types/update_balance_limit_request_transaction_type.py +5 -0
- brevo/client.py +773 -0
- brevo/companies/__init__.py +61 -0
- brevo/companies/client.py +994 -0
- brevo/companies/raw_client.py +1285 -0
- brevo/companies/types/__init__.py +59 -0
- brevo/companies/types/get_companies_request_sort.py +5 -0
- brevo/companies/types/get_companies_response.py +28 -0
- brevo/companies/types/get_crm_attributes_companies_response_item.py +40 -0
- brevo/companies/types/post_companies_import_response.py +26 -0
- brevo/companies/types/post_companies_response.py +27 -0
- brevo/companies/types/post_crm_attributes_request_attribute_type.py +7 -0
- brevo/companies/types/post_crm_attributes_request_object_type.py +5 -0
- brevo/companies/types/post_crm_attributes_response.py +23 -0
- brevo/contacts/__init__.py +289 -0
- brevo/contacts/client.py +3298 -0
- brevo/contacts/raw_client.py +4614 -0
- brevo/contacts/types/__init__.py +309 -0
- brevo/contacts/types/add_contact_to_list_request_body.py +11 -0
- brevo/contacts/types/add_contact_to_list_request_body_emails.py +23 -0
- brevo/contacts/types/add_contact_to_list_request_body_ext_ids.py +29 -0
- brevo/contacts/types/add_contact_to_list_request_body_ids.py +23 -0
- brevo/contacts/types/create_attribute_request_attribute_category.py +7 -0
- brevo/contacts/types/create_attribute_request_enumeration_item.py +28 -0
- brevo/contacts/types/create_attribute_request_type.py +7 -0
- brevo/contacts/types/create_contact_request_attributes_value.py +5 -0
- brevo/contacts/types/create_contact_response.py +23 -0
- brevo/contacts/types/create_doi_contact_request_attributes_value.py +5 -0
- brevo/contacts/types/create_folder_response.py +23 -0
- brevo/contacts/types/create_list_response.py +23 -0
- brevo/contacts/types/delete_attribute_request_attribute_category.py +7 -0
- brevo/contacts/types/delete_contact_request_identifier.py +5 -0
- brevo/contacts/types/delete_contact_request_identifier_type.py +7 -0
- brevo/contacts/types/get_attributes_response.py +24 -0
- brevo/contacts/types/get_attributes_response_attributes_item.py +57 -0
- brevo/contacts/types/get_attributes_response_attributes_item_category.py +7 -0
- brevo/contacts/types/get_attributes_response_attributes_item_enumeration_item.py +28 -0
- brevo/contacts/types/get_attributes_response_attributes_item_type.py +7 -0
- brevo/contacts/types/get_contact_info_request_identifier.py +5 -0
- brevo/contacts/types/get_contact_info_request_identifier_type.py +7 -0
- brevo/contacts/types/get_contact_info_response.py +80 -0
- brevo/contacts/types/get_contact_info_response_attributes.py +22 -0
- brevo/contacts/types/get_contact_info_response_statistics.py +86 -0
- brevo/contacts/types/get_contact_info_response_statistics_clicked_item.py +33 -0
- brevo/contacts/types/get_contact_info_response_statistics_clicked_item_links_item.py +40 -0
- brevo/contacts/types/get_contact_info_response_statistics_complaints_item.py +31 -0
- brevo/contacts/types/get_contact_info_response_statistics_delivered_item.py +31 -0
- brevo/contacts/types/get_contact_info_response_statistics_hard_bounces_item.py +31 -0
- brevo/contacts/types/get_contact_info_response_statistics_messages_sent_item.py +31 -0
- brevo/contacts/types/get_contact_info_response_statistics_opened_item.py +40 -0
- brevo/contacts/types/get_contact_info_response_statistics_soft_bounces_item.py +31 -0
- brevo/contacts/types/get_contact_info_response_statistics_transac_attributes_item.py +18 -0
- brevo/contacts/types/get_contact_info_response_statistics_unsubscriptions.py +43 -0
- brevo/contacts/types/get_contact_info_response_statistics_unsubscriptions_admin_unsubscription_item.py +30 -0
- brevo/contacts/types/get_contact_info_response_statistics_unsubscriptions_user_unsubscription_item.py +35 -0
- brevo/contacts/types/get_contact_stats_request_identifier.py +5 -0
- brevo/contacts/types/get_contact_stats_response.py +59 -0
- brevo/contacts/types/get_contact_stats_response_clicked_item.py +28 -0
- brevo/contacts/types/get_contact_stats_response_clicked_item_links_item.py +40 -0
- brevo/contacts/types/get_contact_stats_response_complaints_item.py +31 -0
- brevo/contacts/types/get_contact_stats_response_delivered_item.py +31 -0
- brevo/contacts/types/get_contact_stats_response_hard_bounces_item.py +31 -0
- brevo/contacts/types/get_contact_stats_response_messages_sent_item.py +31 -0
- brevo/contacts/types/get_contact_stats_response_opened_item.py +40 -0
- brevo/contacts/types/get_contact_stats_response_soft_bounces_item.py +31 -0
- brevo/contacts/types/get_contact_stats_response_transac_attributes_item.py +31 -0
- brevo/contacts/types/get_contact_stats_response_unsubscriptions.py +39 -0
- brevo/contacts/types/get_contact_stats_response_unsubscriptions_admin_unsubscription_item.py +30 -0
- brevo/contacts/types/get_contact_stats_response_unsubscriptions_user_unsubscription_item.py +35 -0
- brevo/contacts/types/get_contacts_from_list_request_sort.py +5 -0
- brevo/contacts/types/get_contacts_request_sort.py +5 -0
- brevo/contacts/types/get_folder_lists_request_sort.py +5 -0
- brevo/contacts/types/get_folder_lists_response.py +26 -0
- brevo/contacts/types/get_folders_request_sort.py +5 -0
- brevo/contacts/types/get_folders_response.py +26 -0
- brevo/contacts/types/get_list_response.py +68 -0
- brevo/contacts/types/get_list_response_campaign_stats_item.py +26 -0
- brevo/contacts/types/get_lists_request_sort.py +5 -0
- brevo/contacts/types/get_lists_response.py +29 -0
- brevo/contacts/types/get_lists_response_lists_item.py +49 -0
- brevo/contacts/types/get_segments_request_sort.py +5 -0
- brevo/contacts/types/get_segments_response.py +29 -0
- brevo/contacts/types/get_segments_response_segments_item.py +41 -0
- brevo/contacts/types/import_contacts_request_json_body_item.py +25 -0
- brevo/contacts/types/import_contacts_request_new_list.py +41 -0
- brevo/contacts/types/import_contacts_response.py +26 -0
- brevo/contacts/types/remove_contact_from_list_request_body.py +15 -0
- brevo/contacts/types/remove_contact_from_list_request_body_all.py +29 -0
- brevo/contacts/types/remove_contact_from_list_request_body_emails.py +23 -0
- brevo/contacts/types/remove_contact_from_list_request_body_ext_ids.py +29 -0
- brevo/contacts/types/remove_contact_from_list_request_body_ids.py +23 -0
- brevo/contacts/types/request_contact_export_request_custom_contact_filter.py +90 -0
- brevo/contacts/types/request_contact_export_request_custom_contact_filter_action_for_contacts.py +7 -0
- brevo/contacts/types/request_contact_export_request_custom_contact_filter_action_for_email_campaigns.py +8 -0
- brevo/contacts/types/request_contact_export_request_custom_contact_filter_action_for_sms_campaigns.py +7 -0
- brevo/contacts/types/request_contact_export_response.py +26 -0
- brevo/contacts/types/update_attribute_request_attribute_category.py +7 -0
- brevo/contacts/types/update_attribute_request_enumeration_item.py +28 -0
- brevo/contacts/types/update_batch_contacts_request_contacts_item.py +80 -0
- brevo/contacts/types/update_contact_request_attributes_value.py +5 -0
- brevo/contacts/types/update_contact_request_identifier.py +5 -0
- brevo/contacts/types/update_contact_request_identifier_type.py +7 -0
- brevo/conversations/__init__.py +34 -0
- brevo/conversations/client.py +912 -0
- brevo/conversations/raw_client.py +1328 -0
- brevo/conversations/types/__init__.py +36 -0
- brevo/conversations/types/put_conversations_visitor_group_response.py +31 -0
- brevo/core/__init__.py +125 -0
- brevo/core/api_error.py +23 -0
- brevo/core/client_wrapper.py +100 -0
- brevo/core/datetime_utils.py +28 -0
- brevo/core/file.py +67 -0
- brevo/core/force_multipart.py +18 -0
- brevo/core/http_client.py +776 -0
- brevo/core/http_response.py +59 -0
- brevo/core/http_sse/__init__.py +42 -0
- brevo/core/http_sse/_api.py +112 -0
- brevo/core/http_sse/_decoders.py +61 -0
- brevo/core/http_sse/_exceptions.py +7 -0
- brevo/core/http_sse/_models.py +17 -0
- brevo/core/jsonable_encoder.py +108 -0
- brevo/core/logging.py +107 -0
- brevo/core/pydantic_utilities.py +577 -0
- brevo/core/query_encoder.py +58 -0
- brevo/core/remove_none_from_dict.py +11 -0
- brevo/core/request_options.py +35 -0
- brevo/core/serialization.py +276 -0
- brevo/core/unchecked_base_model.py +376 -0
- brevo/coupons/__init__.py +49 -0
- brevo/coupons/client.py +550 -0
- brevo/coupons/raw_client.py +839 -0
- brevo/coupons/types/__init__.py +47 -0
- brevo/coupons/types/create_coupon_collection_response.py +23 -0
- brevo/coupons/types/get_coupon_collections_request_sort.py +5 -0
- brevo/coupons/types/get_coupon_collections_request_sort_by.py +7 -0
- brevo/coupons/types/update_coupon_collection_response.py +35 -0
- brevo/custom_objects/__init__.py +139 -0
- brevo/custom_objects/client.py +437 -0
- brevo/custom_objects/raw_client.py +711 -0
- brevo/custom_objects/types/__init__.py +177 -0
- brevo/custom_objects/types/batch_delete_object_records_request_identifiers.py +10 -0
- brevo/custom_objects/types/batch_delete_object_records_request_identifiers_ext_ids.py +23 -0
- brevo/custom_objects/types/batch_delete_object_records_request_identifiers_ids.py +23 -0
- brevo/custom_objects/types/batch_delete_object_records_response.py +27 -0
- brevo/custom_objects/types/getrecords_request_association.py +5 -0
- brevo/custom_objects/types/getrecords_request_sort.py +5 -0
- brevo/custom_objects/types/getrecords_response.py +26 -0
- brevo/custom_objects/types/getrecords_response_records_item.py +51 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item.py +10 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_one.py +28 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_one_records_item.py +15 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_one_records_item_one.py +28 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_one_records_item_one_identifiers.py +27 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_one_records_item_zero.py +28 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_one_records_item_zero_identifiers.py +27 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_zero.py +28 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_zero_records_item.py +15 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_zero_records_item_one.py +28 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_zero_records_item_one_identifiers.py +27 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_zero_records_item_zero.py +28 -0
- brevo/custom_objects/types/getrecords_response_records_item_associations_item_zero_records_item_zero_identifiers.py +27 -0
- brevo/custom_objects/types/getrecords_response_records_item_identifiers.py +32 -0
- brevo/custom_objects/types/upsertrecords_request_records_item.py +31 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item.py +12 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_one.py +28 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_one_records_item.py +15 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_one_records_item_one.py +20 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_one_records_item_zero.py +28 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_one_records_item_zero_identifiers.py +32 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_zero.py +28 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_zero_records_item.py +23 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_associations_item_zero_records_item_identifiers.py +28 -0
- brevo/custom_objects/types/upsertrecords_request_records_item_identifiers.py +32 -0
- brevo/custom_objects/types/upsertrecords_response.py +29 -0
- brevo/deals/__init__.py +52 -0
- brevo/deals/client.py +1013 -0
- brevo/deals/raw_client.py +1326 -0
- brevo/deals/types/__init__.py +50 -0
- brevo/deals/types/get_crm_attributes_deals_response_item.py +40 -0
- brevo/deals/types/get_crm_deals_request_sort.py +5 -0
- brevo/deals/types/get_crm_deals_response.py +28 -0
- brevo/deals/types/post_crm_deals_import_response.py +26 -0
- brevo/deals/types/post_crm_deals_response.py +27 -0
- brevo/domains/__init__.py +79 -0
- brevo/domains/client.py +506 -0
- brevo/domains/raw_client.py +698 -0
- brevo/domains/types/__init__.py +83 -0
- brevo/domains/types/authenticate_domain_response.py +28 -0
- brevo/domains/types/create_domain_response.py +44 -0
- brevo/domains/types/create_domain_response_dns_records.py +40 -0
- brevo/domains/types/create_domain_response_dns_records_brevo_code.py +42 -0
- brevo/domains/types/create_domain_response_dns_records_dkim_record.py +42 -0
- brevo/domains/types/create_domain_response_dns_records_dmarc_record.py +42 -0
- brevo/domains/types/get_domain_configuration_response.py +41 -0
- brevo/domains/types/get_domain_configuration_response_dns_records.py +44 -0
- brevo/domains/types/get_domain_configuration_response_dns_records_brevo_code.py +42 -0
- brevo/domains/types/get_domain_configuration_response_dns_records_dkim_record.py +42 -0
- brevo/domains/types/get_domain_configuration_response_dns_records_dmarc_record.py +42 -0
- brevo/domains/types/get_domains_response.py +39 -0
- brevo/domains/types/get_domains_response_domains_item.py +56 -0
- brevo/domains/types/get_domains_response_domains_item_creator.py +41 -0
- brevo/ecommerce/__init__.py +112 -0
- brevo/ecommerce/client.py +2176 -0
- brevo/ecommerce/raw_client.py +2895 -0
- brevo/ecommerce/types/__init__.py +124 -0
- brevo/ecommerce/types/create_batch_order_response.py +28 -0
- brevo/ecommerce/types/create_product_alert_request_contact_identifiers.py +33 -0
- brevo/ecommerce/types/create_update_batch_category_request_categories_item.py +48 -0
- brevo/ecommerce/types/create_update_batch_category_response.py +31 -0
- brevo/ecommerce/types/create_update_batch_products_request_products_item.py +89 -0
- brevo/ecommerce/types/create_update_batch_products_request_products_item_meta_info_value.py +5 -0
- brevo/ecommerce/types/create_update_batch_products_response.py +31 -0
- brevo/ecommerce/types/create_update_category_response.py +23 -0
- brevo/ecommerce/types/create_update_product_request_meta_info_value.py +5 -0
- brevo/ecommerce/types/create_update_product_response.py +23 -0
- brevo/ecommerce/types/get_categories_request_sort.py +5 -0
- brevo/ecommerce/types/get_categories_response.py +25 -0
- brevo/ecommerce/types/get_ecommerce_attribution_metrics_conversion_source_conversion_source_id_request_conversion_source.py +7 -0
- brevo/ecommerce/types/get_ecommerce_attribution_metrics_conversion_source_conversion_source_id_response.py +40 -0
- brevo/ecommerce/types/get_ecommerce_attribution_metrics_conversion_source_conversion_source_id_response_conversion_source.py +7 -0
- brevo/ecommerce/types/get_ecommerce_attribution_metrics_response.py +30 -0
- brevo/ecommerce/types/get_ecommerce_attribution_metrics_response_totals.py +32 -0
- brevo/ecommerce/types/get_ecommerce_attribution_products_conversion_source_conversion_source_id_request_conversion_source.py +7 -0
- brevo/ecommerce/types/get_ecommerce_attribution_products_conversion_source_conversion_source_id_response.py +28 -0
- brevo/ecommerce/types/get_ecommerce_attribution_products_conversion_source_conversion_source_id_response_products_item.py +33 -0
- brevo/ecommerce/types/get_ecommerce_config_display_currency_response.py +23 -0
- brevo/ecommerce/types/get_orders_request_sort.py +5 -0
- brevo/ecommerce/types/get_products_request_sort.py +5 -0
- brevo/ecommerce/types/get_products_response.py +26 -0
- brevo/ecommerce/types/set_config_display_currency_response.py +23 -0
- brevo/email_campaigns/__init__.py +139 -0
- brevo/email_campaigns/client.py +1864 -0
- brevo/email_campaigns/raw_client.py +2472 -0
- brevo/email_campaigns/types/__init__.py +141 -0
- brevo/email_campaigns/types/create_email_campaign_request_email_expiration_date.py +33 -0
- brevo/email_campaigns/types/create_email_campaign_request_email_expiration_date_unit.py +5 -0
- brevo/email_campaigns/types/create_email_campaign_request_recipients.py +52 -0
- brevo/email_campaigns/types/create_email_campaign_request_sender.py +37 -0
- brevo/email_campaigns/types/create_email_campaign_request_winner_criteria.py +5 -0
- brevo/email_campaigns/types/create_email_campaign_response.py +23 -0
- brevo/email_campaigns/types/email_export_recipients_request_recipients_type.py +10 -0
- brevo/email_campaigns/types/email_export_recipients_response.py +26 -0
- brevo/email_campaigns/types/get_ab_test_campaign_result_response.py +64 -0
- brevo/email_campaigns/types/get_ab_test_campaign_result_response_clicked_links.py +28 -0
- brevo/email_campaigns/types/get_ab_test_campaign_result_response_statistics.py +32 -0
- brevo/email_campaigns/types/get_ab_test_campaign_result_response_winning_criteria.py +5 -0
- brevo/email_campaigns/types/get_ab_test_campaign_result_response_winning_version.py +7 -0
- brevo/email_campaigns/types/get_email_campaign_request_statistics.py +7 -0
- brevo/email_campaigns/types/get_email_campaign_response.py +234 -0
- brevo/email_campaigns/types/get_email_campaign_response_sender.py +33 -0
- brevo/email_campaigns/types/get_email_campaign_response_status.py +7 -0
- brevo/email_campaigns/types/get_email_campaign_response_type.py +5 -0
- brevo/email_campaigns/types/get_email_campaigns_request_sort.py +5 -0
- brevo/email_campaigns/types/get_email_campaigns_request_statistics.py +7 -0
- brevo/email_campaigns/types/get_email_campaigns_request_status.py +7 -0
- brevo/email_campaigns/types/get_email_campaigns_request_type.py +5 -0
- brevo/email_campaigns/types/get_email_campaigns_response.py +25 -0
- brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item.py +234 -0
- brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_sender.py +33 -0
- brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_status.py +7 -0
- brevo/email_campaigns/types/get_email_campaigns_response_campaigns_item_type.py +5 -0
- brevo/email_campaigns/types/get_shared_template_url_response.py +29 -0
- brevo/email_campaigns/types/update_email_campaign_request_email_expiration_date.py +33 -0
- brevo/email_campaigns/types/update_email_campaign_request_email_expiration_date_unit.py +5 -0
- brevo/email_campaigns/types/update_email_campaign_request_recipients.py +53 -0
- brevo/email_campaigns/types/update_email_campaign_request_sender.py +37 -0
- brevo/email_campaigns/types/update_email_campaign_request_winner_criteria.py +5 -0
- brevo/email_campaigns/types/upload_image_to_gallery_response.py +23 -0
- brevo/environment.py +7 -0
- brevo/errors/__init__.py +80 -0
- brevo/errors/bad_request_error.py +10 -0
- brevo/errors/conflict_error.py +11 -0
- brevo/errors/expectation_failed_error.py +11 -0
- brevo/errors/failed_dependency_error.py +10 -0
- brevo/errors/forbidden_error.py +10 -0
- brevo/errors/internal_server_error.py +10 -0
- brevo/errors/method_not_allowed_error.py +11 -0
- brevo/errors/not_found_error.py +10 -0
- brevo/errors/payment_required_error.py +11 -0
- brevo/errors/precondition_failed_error.py +11 -0
- brevo/errors/too_early_error.py +11 -0
- brevo/errors/too_many_requests_error.py +11 -0
- brevo/errors/unauthorized_error.py +10 -0
- brevo/errors/unprocessable_entity_error.py +11 -0
- brevo/errors/unsupported_media_type_error.py +11 -0
- brevo/event/__init__.py +52 -0
- brevo/event/client.py +184 -0
- brevo/event/raw_client.py +230 -0
- brevo/event/types/__init__.py +50 -0
- brevo/event/types/create_event_request_contact_properties_value.py +5 -0
- brevo/event/types/create_event_request_event_properties_value.py +5 -0
- brevo/event/types/create_event_request_identifiers.py +52 -0
- brevo/event/types/create_event_request_object.py +33 -0
- brevo/event/types/create_event_request_object_identifiers.py +32 -0
- brevo/external_feeds/__init__.py +79 -0
- brevo/external_feeds/client.py +915 -0
- brevo/external_feeds/raw_client.py +1087 -0
- brevo/external_feeds/types/__init__.py +77 -0
- brevo/external_feeds/types/create_external_feed_request_auth_type.py +5 -0
- brevo/external_feeds/types/create_external_feed_request_headers_item.py +28 -0
- brevo/external_feeds/types/create_external_feed_response.py +23 -0
- brevo/external_feeds/types/get_all_external_feeds_request_auth_type.py +5 -0
- brevo/external_feeds/types/get_all_external_feeds_request_sort.py +5 -0
- brevo/external_feeds/types/get_all_external_feeds_response.py +29 -0
- brevo/external_feeds/types/get_all_external_feeds_response_feeds_item.py +96 -0
- brevo/external_feeds/types/get_all_external_feeds_response_feeds_item_auth_type.py +5 -0
- brevo/external_feeds/types/get_all_external_feeds_response_feeds_item_headers_item.py +28 -0
- brevo/external_feeds/types/get_external_feed_by_uuid_response.py +105 -0
- brevo/external_feeds/types/get_external_feed_by_uuid_response_auth_type.py +5 -0
- brevo/external_feeds/types/get_external_feed_by_uuid_response_headers_item.py +28 -0
- brevo/external_feeds/types/update_external_feed_request_auth_type.py +5 -0
- brevo/external_feeds/types/update_external_feed_request_headers_item.py +28 -0
- brevo/files/__init__.py +38 -0
- brevo/files/client.py +479 -0
- brevo/files/raw_client.py +675 -0
- brevo/files/types/__init__.py +40 -0
- brevo/files/types/get_crm_files_id_response.py +30 -0
- brevo/files/types/get_crm_files_request_entity.py +5 -0
- brevo/files/types/get_crm_files_request_sort.py +5 -0
- brevo/inbound_parsing/__init__.py +58 -0
- brevo/inbound_parsing/client.py +323 -0
- brevo/inbound_parsing/raw_client.py +420 -0
- brevo/inbound_parsing/types/__init__.py +60 -0
- brevo/inbound_parsing/types/get_inbound_email_events_by_uuid_response.py +72 -0
- brevo/inbound_parsing/types/get_inbound_email_events_by_uuid_response_attachments_item.py +40 -0
- brevo/inbound_parsing/types/get_inbound_email_events_by_uuid_response_logs_item.py +30 -0
- brevo/inbound_parsing/types/get_inbound_email_events_by_uuid_response_logs_item_type.py +7 -0
- brevo/inbound_parsing/types/get_inbound_email_events_request_sort.py +5 -0
- brevo/inbound_parsing/types/get_inbound_email_events_response.py +21 -0
- brevo/inbound_parsing/types/get_inbound_email_events_response_events_item.py +42 -0
- brevo/master_account/__init__.py +202 -0
- brevo/master_account/client.py +2757 -0
- brevo/master_account/raw_client.py +3351 -0
- brevo/master_account/types/__init__.py +244 -0
- brevo/master_account/types/get_corporate_group_id_response.py +31 -0
- brevo/master_account/types/get_corporate_group_id_response_group.py +35 -0
- brevo/master_account/types/get_corporate_group_id_response_sub_accounts_item.py +35 -0
- brevo/master_account/types/get_corporate_group_id_response_users_item.py +36 -0
- brevo/master_account/types/get_corporate_invited_users_list_response.py +24 -0
- brevo/master_account/types/get_corporate_invited_users_list_response_users_item.py +50 -0
- brevo/master_account/types/get_corporate_invited_users_list_response_users_item_feature_access.py +69 -0
- brevo/master_account/types/get_corporate_invited_users_list_response_users_item_groups.py +32 -0
- brevo/master_account/types/get_corporate_ip_response_item.py +22 -0
- brevo/master_account/types/get_corporate_master_account_response.py +57 -0
- brevo/master_account/types/get_corporate_master_account_response_billing_info.py +48 -0
- brevo/master_account/types/get_corporate_master_account_response_billing_info_address.py +50 -0
- brevo/master_account/types/get_corporate_master_account_response_billing_info_name.py +35 -0
- brevo/master_account/types/get_corporate_master_account_response_plan_info.py +63 -0
- brevo/master_account/types/get_corporate_master_account_response_plan_info_features_item.py +62 -0
- brevo/master_account/types/get_corporate_master_account_response_plan_info_plan_period.py +5 -0
- brevo/master_account/types/get_corporate_sub_account_id_response.py +48 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_groups_item.py +28 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info.py +42 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_credits.py +65 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_credits_emails.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_credits_external_feeds.py +33 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_credits_sms.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_credits_whatsapp.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_credits_wp_subscribers.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_features.py +58 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_features_inbox.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_features_landing_page.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_features_sales_users.py +33 -0
- brevo/master_account/types/get_corporate_sub_account_id_response_plan_info_features_users.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_response.py +32 -0
- brevo/master_account/types/get_corporate_sub_account_response_sub_accounts_item.py +48 -0
- brevo/master_account/types/get_corporate_sub_account_response_sub_accounts_item_groups_item.py +28 -0
- brevo/master_account/types/get_corporate_user_permission_response.py +40 -0
- brevo/master_account/types/get_corporate_user_permission_response_feature_access.py +62 -0
- brevo/master_account/types/get_corporate_user_permission_response_groups_item.py +32 -0
- brevo/master_account/types/get_sub_account_groups_response_item.py +30 -0
- brevo/master_account/types/invite_admin_user_request_privileges_item.py +38 -0
- brevo/master_account/types/invite_admin_user_request_privileges_item_feature.py +18 -0
- brevo/master_account/types/invite_admin_user_request_privileges_item_permissions_item.py +7 -0
- brevo/master_account/types/invite_admin_user_response.py +20 -0
- brevo/master_account/types/post_corporate_group_response.py +20 -0
- brevo/master_account/types/post_corporate_sub_account_key_response.py +28 -0
- brevo/master_account/types/post_corporate_sub_account_request_language.py +5 -0
- brevo/master_account/types/post_corporate_sub_account_response.py +23 -0
- brevo/master_account/types/post_corporate_sub_account_sso_token_request_target.py +17 -0
- brevo/master_account/types/put_corporate_sub_account_id_plan_request_credits.py +59 -0
- brevo/master_account/types/put_corporate_sub_account_id_plan_request_features.py +44 -0
- brevo/master_account/types/put_corporate_sub_accounts_plan_request_credits.py +59 -0
- brevo/master_account/types/put_corporate_sub_accounts_plan_request_features.py +39 -0
- brevo/master_account/types/put_corporate_user_email_permissions_request_privileges_item.py +42 -0
- brevo/master_account/types/put_corporate_user_email_permissions_request_privileges_item_feature.py +18 -0
- brevo/master_account/types/put_corporate_user_email_permissions_request_privileges_item_permissions_item.py +10 -0
- brevo/master_account/types/put_corporate_user_invitation_action_email_request_action.py +5 -0
- brevo/master_account/types/put_corporate_user_invitation_action_email_response.py +23 -0
- brevo/notes/__init__.py +38 -0
- brevo/notes/client.py +548 -0
- brevo/notes/raw_client.py +766 -0
- brevo/notes/types/__init__.py +40 -0
- brevo/notes/types/get_crm_notes_request_entity.py +5 -0
- brevo/notes/types/get_crm_notes_request_sort.py +5 -0
- brevo/notes/types/post_crm_notes_response.py +27 -0
- brevo/payments/__init__.py +38 -0
- brevo/payments/client.py +315 -0
- brevo/payments/raw_client.py +532 -0
- brevo/payments/types/__init__.py +40 -0
- brevo/payments/types/create_payment_request_response.py +28 -0
- brevo/payments/types/get_payment_request_response.py +47 -0
- brevo/payments/types/get_payment_request_response_status.py +5 -0
- brevo/process/__init__.py +79 -0
- brevo/process/client.py +304 -0
- brevo/process/raw_client.py +372 -0
- brevo/process/types/__init__.py +77 -0
- brevo/process/types/get_process_response.py +62 -0
- brevo/process/types/get_process_response_info.py +36 -0
- brevo/process/types/get_process_response_info_export.py +32 -0
- brevo/process/types/get_process_response_info_import.py +57 -0
- brevo/process/types/get_process_response_name.py +16 -0
- brevo/process/types/get_process_response_status.py +7 -0
- brevo/process/types/get_processes_request_sort.py +5 -0
- brevo/process/types/get_processes_response.py +29 -0
- brevo/process/types/get_processes_response_processes_item.py +62 -0
- brevo/process/types/get_processes_response_processes_item_info.py +36 -0
- brevo/process/types/get_processes_response_processes_item_info_export.py +32 -0
- brevo/process/types/get_processes_response_processes_item_info_import.py +57 -0
- brevo/process/types/get_processes_response_processes_item_name.py +16 -0
- brevo/process/types/get_processes_response_processes_item_status.py +7 -0
- brevo/program/__init__.py +67 -0
- brevo/program/client.py +1128 -0
- brevo/program/raw_client.py +2526 -0
- brevo/program/types/__init__.py +67 -0
- brevo/program/types/get_lp_list_request_sort_field.py +5 -0
- brevo/program/types/get_lp_list_response.py +24 -0
- brevo/program/types/get_parameter_subscription_info_response.py +44 -0
- brevo/program/types/get_parameter_subscription_info_response_balance.py +41 -0
- brevo/program/types/get_parameter_subscription_info_response_balance_balances_item.py +30 -0
- brevo/program/types/get_parameter_subscription_info_response_members_item.py +36 -0
- brevo/program/types/get_parameter_subscription_info_response_reward_item.py +66 -0
- brevo/program/types/get_parameter_subscription_info_response_tier_item.py +56 -0
- brevo/program/types/subscribe_member_to_a_subscription_response.py +46 -0
- brevo/program/types/subscribe_to_loyalty_program_response.py +56 -0
- brevo/py.typed +0 -0
- brevo/reward/__init__.py +115 -0
- brevo/reward/client.py +1285 -0
- brevo/reward/raw_client.py +2564 -0
- brevo/reward/types/__init__.py +139 -0
- brevo/reward/types/create_reward_response.py +64 -0
- brevo/reward/types/create_voucher_response.py +76 -0
- brevo/reward/types/get_code_count_response.py +23 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_offers_request_version.py +5 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_offers_response.py +34 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_offers_response_items_item.py +67 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_request_version.py +5 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response.py +269 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_expiration_modifier.py +7 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_generator.py +52 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_limits_item.py +68 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_products_item.py +40 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_reward_configs.py +33 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_rule.py +101 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_rule_event.py +28 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_rule_results_item.py +43 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_rewards_rid_response_rule_results_item_parameters_item.py +37 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_vouchers_request_sort.py +5 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_vouchers_request_sort_field.py +5 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_vouchers_response.py +49 -0
- brevo/reward/types/get_loyalty_offer_programs_pid_vouchers_response_contact_rewards_item.py +70 -0
- brevo/reward/types/redeem_voucher_request_order.py +85 -0
- brevo/reward/types/redeem_voucher_request_order_billing.py +55 -0
- brevo/reward/types/redeem_voucher_request_order_identifiers.py +28 -0
- brevo/reward/types/redeem_voucher_request_order_products_item.py +46 -0
- brevo/reward/types/validate_reward_response.py +23 -0
- brevo/senders/__init__.py +67 -0
- brevo/senders/client.py +808 -0
- brevo/senders/raw_client.py +1089 -0
- brevo/senders/types/__init__.py +65 -0
- brevo/senders/types/create_sender_request_ips_item.py +36 -0
- brevo/senders/types/create_sender_response.py +42 -0
- brevo/senders/types/get_ips_from_sender_response.py +25 -0
- brevo/senders/types/get_ips_from_sender_response_ips_item.py +38 -0
- brevo/senders/types/get_ips_response.py +25 -0
- brevo/senders/types/get_ips_response_ips_item.py +38 -0
- brevo/senders/types/get_senders_response.py +24 -0
- brevo/senders/types/get_senders_response_senders_item.py +46 -0
- brevo/senders/types/get_senders_response_senders_item_ips_item.py +33 -0
- brevo/senders/types/update_sender_request_ips_item.py +36 -0
- brevo/sms_campaigns/__init__.py +73 -0
- brevo/sms_campaigns/client.py +1078 -0
- brevo/sms_campaigns/raw_client.py +1501 -0
- brevo/sms_campaigns/types/__init__.py +71 -0
- brevo/sms_campaigns/types/create_sms_campaign_request_recipients.py +33 -0
- brevo/sms_campaigns/types/create_sms_campaign_response.py +23 -0
- brevo/sms_campaigns/types/get_sms_campaign_response.py +74 -0
- brevo/sms_campaigns/types/get_sms_campaign_response_status.py +7 -0
- brevo/sms_campaigns/types/get_sms_campaigns_request_sort.py +5 -0
- brevo/sms_campaigns/types/get_sms_campaigns_request_status.py +7 -0
- brevo/sms_campaigns/types/get_sms_campaigns_response.py +25 -0
- brevo/sms_campaigns/types/get_sms_campaigns_response_campaigns_item.py +74 -0
- brevo/sms_campaigns/types/get_sms_campaigns_response_campaigns_item_status.py +7 -0
- brevo/sms_campaigns/types/request_sms_recipient_export_request_recipients_type.py +7 -0
- brevo/sms_campaigns/types/request_sms_recipient_export_response.py +26 -0
- brevo/sms_campaigns/types/update_sms_campaign_request_recipients.py +33 -0
- brevo/sms_templates/__init__.py +49 -0
- brevo/sms_templates/client.py +133 -0
- brevo/sms_templates/raw_client.py +151 -0
- brevo/sms_templates/types/__init__.py +47 -0
- brevo/sms_templates/types/get_sms_templates_request_sort.py +5 -0
- brevo/sms_templates/types/get_sms_templates_response.py +26 -0
- brevo/sms_templates/types/get_sms_templates_response_templates_item.py +86 -0
- brevo/sms_templates/types/get_sms_templates_response_templates_item_compliance.py +37 -0
- brevo/tasks/__init__.py +55 -0
- brevo/tasks/client.py +814 -0
- brevo/tasks/raw_client.py +992 -0
- brevo/tasks/types/__init__.py +53 -0
- brevo/tasks/types/get_crm_tasks_request_filter_date.py +5 -0
- brevo/tasks/types/get_crm_tasks_request_filter_status.py +5 -0
- brevo/tasks/types/get_crm_tasks_request_sort.py +5 -0
- brevo/tasks/types/get_crm_tasks_response.py +28 -0
- brevo/tasks/types/get_crm_tasktypes_response.py +32 -0
- brevo/tasks/types/post_crm_tasks_response.py +27 -0
- brevo/tier/__init__.py +79 -0
- brevo/tier/client.py +1144 -0
- brevo/tier/raw_client.py +2360 -0
- brevo/tier/types/__init__.py +79 -0
- brevo/tier/types/add_subscription_to_tier_response.py +53 -0
- brevo/tier/types/create_tier_for_tier_group_request_access_conditions_item.py +31 -0
- brevo/tier/types/create_tier_for_tier_group_request_tier_rewards_item.py +26 -0
- brevo/tier/types/create_tier_group_request_downgrade_strategy.py +7 -0
- brevo/tier/types/create_tier_group_request_upgrade_strategy.py +7 -0
- brevo/tier/types/get_list_of_tier_groups_request_version.py +5 -0
- brevo/tier/types/get_list_of_tier_groups_response.py +21 -0
- brevo/tier/types/get_loyalty_program_tier_request_version.py +5 -0
- brevo/tier/types/get_loyalty_program_tier_response.py +21 -0
- brevo/tier/types/get_tier_group_request_version.py +5 -0
- brevo/tier/types/update_tier_group_request_downgrade_strategy.py +7 -0
- brevo/tier/types/update_tier_group_request_upgrade_strategy.py +7 -0
- brevo/tier/types/update_tier_request_access_conditions_item.py +31 -0
- brevo/tier/types/update_tier_request_tier_rewards_item.py +26 -0
- brevo/transactional_emails/__init__.py +175 -0
- brevo/transactional_emails/client.py +2544 -0
- brevo/transactional_emails/raw_client.py +3240 -0
- brevo/transactional_emails/types/__init__.py +189 -0
- brevo/transactional_emails/types/create_smtp_template_request_sender.py +37 -0
- brevo/transactional_emails/types/create_smtp_template_response.py +23 -0
- brevo/transactional_emails/types/get_aggregated_smtp_report_response.py +85 -0
- brevo/transactional_emails/types/get_blocked_domains_response.py +23 -0
- brevo/transactional_emails/types/get_email_event_report_request_event.py +23 -0
- brevo/transactional_emails/types/get_email_event_report_request_sort.py +5 -0
- brevo/transactional_emails/types/get_email_event_report_response.py +21 -0
- brevo/transactional_emails/types/get_email_event_report_response_events_item.py +79 -0
- brevo/transactional_emails/types/get_email_event_report_response_events_item_event.py +23 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_request_sort.py +5 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_request_status.py +5 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_response.py +10 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_response_batches.py +25 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_response_batches_batches_item.py +39 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_response_batches_batches_item_status.py +7 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_response_created_at.py +37 -0
- brevo/transactional_emails/types/get_scheduled_email_by_id_response_created_at_status.py +7 -0
- brevo/transactional_emails/types/get_smtp_report_request_sort.py +5 -0
- brevo/transactional_emails/types/get_smtp_report_response.py +21 -0
- brevo/transactional_emails/types/get_smtp_report_response_reports_item.py +86 -0
- brevo/transactional_emails/types/get_smtp_templates_request_sort.py +5 -0
- brevo/transactional_emails/types/get_smtp_templates_response.py +26 -0
- brevo/transactional_emails/types/get_transac_blocked_contacts_request_sort.py +5 -0
- brevo/transactional_emails/types/get_transac_blocked_contacts_response.py +25 -0
- brevo/transactional_emails/types/get_transac_blocked_contacts_response_contacts_item.py +44 -0
- brevo/transactional_emails/types/get_transac_blocked_contacts_response_contacts_item_reason.py +35 -0
- brevo/transactional_emails/types/get_transac_blocked_contacts_response_contacts_item_reason_code.py +15 -0
- brevo/transactional_emails/types/get_transac_email_content_response.py +57 -0
- brevo/transactional_emails/types/get_transac_email_content_response_events_item.py +28 -0
- brevo/transactional_emails/types/get_transac_emails_list_request_sort.py +5 -0
- brevo/transactional_emails/types/get_transac_emails_list_response.py +34 -0
- brevo/transactional_emails/types/get_transac_emails_list_response_transactional_emails_item.py +61 -0
- brevo/transactional_emails/types/post_preview_smtp_email_templates_response.py +49 -0
- brevo/transactional_emails/types/send_transac_email_request_attachment_item.py +33 -0
- brevo/transactional_emails/types/send_transac_email_request_bcc_item.py +28 -0
- brevo/transactional_emails/types/send_transac_email_request_cc_item.py +28 -0
- brevo/transactional_emails/types/send_transac_email_request_message_versions_item.py +73 -0
- brevo/transactional_emails/types/send_transac_email_request_message_versions_item_bcc_item.py +28 -0
- brevo/transactional_emails/types/send_transac_email_request_message_versions_item_cc_item.py +28 -0
- brevo/transactional_emails/types/send_transac_email_request_message_versions_item_reply_to.py +32 -0
- brevo/transactional_emails/types/send_transac_email_request_message_versions_item_to_item.py +28 -0
- brevo/transactional_emails/types/send_transac_email_request_reply_to.py +32 -0
- brevo/transactional_emails/types/send_transac_email_request_sender.py +37 -0
- brevo/transactional_emails/types/send_transac_email_request_to_item.py +28 -0
- brevo/transactional_emails/types/send_transac_email_response.py +29 -0
- brevo/transactional_emails/types/update_smtp_template_request_sender.py +37 -0
- brevo/transactional_sms/__init__.py +70 -0
- brevo/transactional_sms/client.py +726 -0
- brevo/transactional_sms/raw_client.py +913 -0
- brevo/transactional_sms/types/__init__.py +68 -0
- brevo/transactional_sms/types/get_sms_events_request_event.py +20 -0
- brevo/transactional_sms/types/get_sms_events_request_sort.py +5 -0
- brevo/transactional_sms/types/get_sms_events_response.py +21 -0
- brevo/transactional_sms/types/get_sms_events_response_events_item.py +52 -0
- brevo/transactional_sms/types/get_sms_events_response_events_item_event.py +20 -0
- brevo/transactional_sms/types/get_transac_aggregated_sms_report_response.py +75 -0
- brevo/transactional_sms/types/get_transac_sms_report_request_sort.py +5 -0
- brevo/transactional_sms/types/get_transac_sms_report_response.py +21 -0
- brevo/transactional_sms/types/get_transac_sms_report_response_reports_item.py +76 -0
- brevo/transactional_sms/types/send_async_transactional_sms_response.py +22 -0
- brevo/transactional_sms/types/send_transac_sms_response.py +38 -0
- brevo/transactional_whats_app/__init__.py +64 -0
- brevo/transactional_whats_app/client.py +283 -0
- brevo/transactional_whats_app/raw_client.py +326 -0
- brevo/transactional_whats_app/types/__init__.py +62 -0
- brevo/transactional_whats_app/types/get_whatsapp_event_report_request_event.py +7 -0
- brevo/transactional_whats_app/types/get_whatsapp_event_report_request_sort.py +5 -0
- brevo/transactional_whats_app/types/get_whatsapp_event_report_response.py +21 -0
- brevo/transactional_whats_app/types/get_whatsapp_event_report_response_events_item.py +65 -0
- brevo/transactional_whats_app/types/get_whatsapp_event_report_response_events_item_event.py +7 -0
- brevo/transactional_whats_app/types/send_whatsapp_message_request.py +8 -0
- brevo/transactional_whats_app/types/send_whatsapp_message_request_params.py +41 -0
- brevo/transactional_whats_app/types/send_whatsapp_message_request_text.py +35 -0
- brevo/transactional_whats_app/types/send_whatsapp_message_response.py +26 -0
- brevo/types/__init__.py +373 -0
- brevo/types/ab_test_version_clicks.py +7 -0
- brevo/types/ab_test_version_clicks_item.py +35 -0
- brevo/types/ab_test_version_stats.py +35 -0
- brevo/types/bad_request_error_body.py +29 -0
- brevo/types/bad_request_error_body_code.py +45 -0
- brevo/types/balance_definition.py +139 -0
- brevo/types/balance_definition_balance_availability_duration_modifier.py +7 -0
- brevo/types/balance_limit.py +78 -0
- brevo/types/cart.py +38 -0
- brevo/types/company.py +45 -0
- brevo/types/configuration.py +30 -0
- brevo/types/contact_error_model.py +34 -0
- brevo/types/contact_error_model_code.py +16 -0
- brevo/types/conversations_message.py +187 -0
- brevo/types/conversations_message_attachments_item.py +50 -0
- brevo/types/conversations_message_bcc_item.py +21 -0
- brevo/types/conversations_message_cc_item.py +21 -0
- brevo/types/conversations_message_file.py +46 -0
- brevo/types/conversations_message_file_image_info.py +39 -0
- brevo/types/conversations_message_forwarded_to_source_status.py +29 -0
- brevo/types/conversations_message_from.py +25 -0
- brevo/types/conversations_message_reply_to.py +25 -0
- brevo/types/conversations_message_to_item.py +21 -0
- brevo/types/conversations_message_type.py +5 -0
- brevo/types/conversion_source_metrics.py +35 -0
- brevo/types/conversion_source_metrics_conversion_source.py +7 -0
- brevo/types/create_update_folder.py +23 -0
- brevo/types/deal.py +45 -0
- brevo/types/error_model.py +28 -0
- brevo/types/file_data.py +60 -0
- brevo/types/forbidden_error_body.py +29 -0
- brevo/types/forbidden_error_body_code.py +45 -0
- brevo/types/get_campaign_recipients.py +25 -0
- brevo/types/get_campaign_stats.py +130 -0
- brevo/types/get_category_details.py +54 -0
- brevo/types/get_contact_details.py +75 -0
- brevo/types/get_contact_details_attributes.py +22 -0
- brevo/types/get_contacts.py +25 -0
- brevo/types/get_coupon_collection.py +75 -0
- brevo/types/get_device_browser_stats.py +44 -0
- brevo/types/get_extended_campaign_overview.py +230 -0
- brevo/types/get_extended_campaign_overview_sender.py +33 -0
- brevo/types/get_extended_campaign_overview_status.py +7 -0
- brevo/types/get_extended_campaign_overview_type.py +5 -0
- brevo/types/get_extended_campaign_stats.py +63 -0
- brevo/types/get_extended_campaign_stats_links_stats.py +22 -0
- brevo/types/get_extended_campaign_stats_stats_by_device.py +39 -0
- brevo/types/get_folder.py +46 -0
- brevo/types/get_list.py +46 -0
- brevo/types/get_product_details.py +115 -0
- brevo/types/get_sms_campaign_overview.py +69 -0
- brevo/types/get_sms_campaign_overview_status.py +7 -0
- brevo/types/get_sms_campaign_stats.py +55 -0
- brevo/types/get_smtp_template_overview.py +93 -0
- brevo/types/get_smtp_template_overview_sender.py +33 -0
- brevo/types/get_sso_token.py +23 -0
- brevo/types/get_webhook.py +74 -0
- brevo/types/get_webhook_channel.py +5 -0
- brevo/types/get_webhook_type.py +5 -0
- brevo/types/inviteuser.py +31 -0
- brevo/types/inviteuser_privileges_item.py +34 -0
- brevo/types/inviteuser_privileges_item_feature.py +24 -0
- brevo/types/inviteuser_privileges_item_permissions_item.py +39 -0
- brevo/types/loyalty_program.py +82 -0
- brevo/types/loyalty_program_state.py +5 -0
- brevo/types/node_response.py +63 -0
- brevo/types/not_found_error_body.py +29 -0
- brevo/types/not_found_error_body_code.py +45 -0
- brevo/types/note.py +61 -0
- brevo/types/note_data.py +44 -0
- brevo/types/notification.py +32 -0
- brevo/types/order.py +85 -0
- brevo/types/order_billing.py +66 -0
- brevo/types/order_identifiers.py +42 -0
- brevo/types/order_meta_info_value.py +5 -0
- brevo/types/order_products_item.py +43 -0
- brevo/types/pipeline.py +38 -0
- brevo/types/pipeline_stages_item.py +32 -0
- brevo/types/pipelines.py +7 -0
- brevo/types/post_contact_info.py +21 -0
- brevo/types/post_contact_info_contacts.py +37 -0
- brevo/types/post_contact_info_contacts_failure.py +5 -0
- brevo/types/post_contact_info_contacts_success.py +5 -0
- brevo/types/post_send_failed.py +46 -0
- brevo/types/redeem.py +92 -0
- brevo/types/rule_condition_response.py +52 -0
- brevo/types/send_report.py +30 -0
- brevo/types/send_report_email.py +32 -0
- brevo/types/send_report_language.py +5 -0
- brevo/types/send_test_email.py +29 -0
- brevo/types/send_transac_sms.py +66 -0
- brevo/types/send_transac_sms_tag.py +28 -0
- brevo/types/send_transac_sms_tag_field.py +5 -0
- brevo/types/send_transac_sms_type.py +5 -0
- brevo/types/task.py +55 -0
- brevo/types/task_reminder.py +39 -0
- brevo/types/task_reminder_types_item.py +5 -0
- brevo/types/task_reminder_unit.py +5 -0
- brevo/types/tier.py +63 -0
- brevo/types/tier_access_conditions_item.py +38 -0
- brevo/types/tier_group.py +70 -0
- brevo/types/tier_group_downgrade_strategy.py +7 -0
- brevo/types/tier_group_upgrade_strategy.py +7 -0
- brevo/types/tier_tier_rewards_item.py +33 -0
- brevo/types/transaction.py +110 -0
- brevo/types/unauthorized_error_body.py +29 -0
- brevo/types/unauthorized_error_body_code.py +45 -0
- brevo/types/update_campaign_status.py +28 -0
- brevo/types/update_campaign_status_status.py +8 -0
- brevo/types/value_response.py +67 -0
- brevo/types/variables_items.py +22 -0
- brevo/types/whatsapp_camp_stats.py +26 -0
- brevo/user/__init__.py +67 -0
- brevo/user/client.py +806 -0
- brevo/user/raw_client.py +977 -0
- brevo/user/types/__init__.py +67 -0
- brevo/user/types/edit_user_permission_response.py +33 -0
- brevo/user/types/get_invited_users_list_response.py +24 -0
- brevo/user/types/get_invited_users_list_response_users_item.py +39 -0
- brevo/user/types/get_invited_users_list_response_users_item_feature_access.py +37 -0
- brevo/user/types/get_user_permission_response.py +38 -0
- brevo/user/types/get_user_permission_response_privileges_item.py +21 -0
- brevo/user/types/inviteuser_response.py +28 -0
- brevo/user/types/put_revoke_user_permission_response.py +28 -0
- brevo/user/types/putresendcancelinvitation_request_action.py +5 -0
- brevo/user/types/putresendcancelinvitation_response.py +28 -0
- brevo/version.py +3 -0
- brevo/webhooks/__init__.py +82 -0
- brevo/webhooks/client.py +982 -0
- brevo/webhooks/raw_client.py +1211 -0
- brevo/webhooks/types/__init__.py +80 -0
- brevo/webhooks/types/create_webhook_request_auth.py +32 -0
- brevo/webhooks/types/create_webhook_request_channel.py +5 -0
- brevo/webhooks/types/create_webhook_request_events_item.py +26 -0
- brevo/webhooks/types/create_webhook_request_headers_item.py +28 -0
- brevo/webhooks/types/create_webhook_request_type.py +5 -0
- brevo/webhooks/types/create_webhook_response.py +23 -0
- brevo/webhooks/types/export_webhooks_history_request_event.py +26 -0
- brevo/webhooks/types/export_webhooks_history_request_type.py +5 -0
- brevo/webhooks/types/export_webhooks_history_response.py +26 -0
- brevo/webhooks/types/get_webhooks_request_sort.py +5 -0
- brevo/webhooks/types/get_webhooks_request_type.py +5 -0
- brevo/webhooks/types/get_webhooks_response.py +21 -0
- brevo/webhooks/types/update_webhook_request_auth.py +32 -0
- brevo/webhooks/types/update_webhook_request_events_item.py +26 -0
- brevo/webhooks/types/update_webhook_request_headers_item.py +28 -0
- brevo/whats_app_campaigns/__init__.py +106 -0
- brevo/whats_app_campaigns/client.py +1064 -0
- brevo/whats_app_campaigns/raw_client.py +1311 -0
- brevo/whats_app_campaigns/types/__init__.py +110 -0
- brevo/whats_app_campaigns/types/create_whats_app_campaign_request_recipients.py +41 -0
- brevo/whats_app_campaigns/types/create_whats_app_campaign_response.py +23 -0
- brevo/whats_app_campaigns/types/create_whats_app_template_request_category.py +5 -0
- brevo/whats_app_campaigns/types/create_whats_app_template_request_source.py +5 -0
- brevo/whats_app_campaigns/types/create_whats_app_template_response.py +23 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaign_response.py +69 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaign_response_campaign_status.py +7 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaign_response_template.py +61 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaign_response_template_components_item.py +21 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaigns_request_sort.py +5 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaigns_response.py +25 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaigns_response_campaigns_item.py +84 -0
- brevo/whats_app_campaigns/types/get_whats_app_campaigns_response_campaigns_item_campaign_status.py +7 -0
- brevo/whats_app_campaigns/types/get_whats_app_config_response.py +63 -0
- brevo/whats_app_campaigns/types/get_whats_app_config_response_phone_number_name_status.py +7 -0
- brevo/whats_app_campaigns/types/get_whats_app_config_response_phone_number_quality.py +5 -0
- brevo/whats_app_campaigns/types/get_whats_app_config_response_whatsapp_business_account_status.py +7 -0
- brevo/whats_app_campaigns/types/get_whats_app_templates_request_sort.py +5 -0
- brevo/whats_app_campaigns/types/get_whats_app_templates_request_source.py +5 -0
- brevo/whats_app_campaigns/types/get_whats_app_templates_response.py +26 -0
- brevo/whats_app_campaigns/types/get_whats_app_templates_response_templates_item.py +65 -0
- brevo/whats_app_campaigns/types/update_whats_app_campaign_request_campaign_status.py +5 -0
- brevo/whats_app_campaigns/types/update_whats_app_campaign_request_recipients.py +41 -0
- brevo_python-4.0.1.dist-info/METADATA +1072 -0
- brevo_python-4.0.1.dist-info/RECORD +843 -0
- brevo_python-4.0.1.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,1211 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from json.decoder import JSONDecodeError
|
|
5
|
+
|
|
6
|
+
from ..core.api_error import ApiError
|
|
7
|
+
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from ..core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from ..core.jsonable_encoder import jsonable_encoder
|
|
10
|
+
from ..core.request_options import RequestOptions
|
|
11
|
+
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
12
|
+
from ..core.unchecked_base_model import construct_type
|
|
13
|
+
from ..errors.bad_request_error import BadRequestError
|
|
14
|
+
from ..errors.not_found_error import NotFoundError
|
|
15
|
+
from ..types.get_webhook import GetWebhook
|
|
16
|
+
from .types.create_webhook_request_auth import CreateWebhookRequestAuth
|
|
17
|
+
from .types.create_webhook_request_channel import CreateWebhookRequestChannel
|
|
18
|
+
from .types.create_webhook_request_events_item import CreateWebhookRequestEventsItem
|
|
19
|
+
from .types.create_webhook_request_headers_item import CreateWebhookRequestHeadersItem
|
|
20
|
+
from .types.create_webhook_request_type import CreateWebhookRequestType
|
|
21
|
+
from .types.create_webhook_response import CreateWebhookResponse
|
|
22
|
+
from .types.export_webhooks_history_request_event import ExportWebhooksHistoryRequestEvent
|
|
23
|
+
from .types.export_webhooks_history_request_type import ExportWebhooksHistoryRequestType
|
|
24
|
+
from .types.export_webhooks_history_response import ExportWebhooksHistoryResponse
|
|
25
|
+
from .types.get_webhooks_request_sort import GetWebhooksRequestSort
|
|
26
|
+
from .types.get_webhooks_request_type import GetWebhooksRequestType
|
|
27
|
+
from .types.get_webhooks_response import GetWebhooksResponse
|
|
28
|
+
from .types.update_webhook_request_auth import UpdateWebhookRequestAuth
|
|
29
|
+
from .types.update_webhook_request_events_item import UpdateWebhookRequestEventsItem
|
|
30
|
+
from .types.update_webhook_request_headers_item import UpdateWebhookRequestHeadersItem
|
|
31
|
+
|
|
32
|
+
# this is used as the default value for optional parameters
|
|
33
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class RawWebhooksClient:
|
|
37
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
38
|
+
self._client_wrapper = client_wrapper
|
|
39
|
+
|
|
40
|
+
def get_webhooks(
|
|
41
|
+
self,
|
|
42
|
+
*,
|
|
43
|
+
type: typing.Optional[GetWebhooksRequestType] = None,
|
|
44
|
+
sort: typing.Optional[GetWebhooksRequestSort] = None,
|
|
45
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
46
|
+
) -> HttpResponse[GetWebhooksResponse]:
|
|
47
|
+
"""
|
|
48
|
+
Retrieves all webhooks from your Brevo account with filtering and sorting options.
|
|
49
|
+
|
|
50
|
+
Use this to:
|
|
51
|
+
- Monitor webhook configurations and event handling
|
|
52
|
+
- List webhooks by type (transactional, marketing, inbound)
|
|
53
|
+
- Review webhook endpoints and authentication
|
|
54
|
+
- Track webhook creation and modification history
|
|
55
|
+
- Audit webhook event subscriptions
|
|
56
|
+
|
|
57
|
+
Key information returned:
|
|
58
|
+
- Complete webhook details and configuration
|
|
59
|
+
- Event types and channel subscriptions
|
|
60
|
+
- Authentication and security settings
|
|
61
|
+
- Webhook URLs and custom headers
|
|
62
|
+
- Creation and modification timestamps
|
|
63
|
+
|
|
64
|
+
Parameters
|
|
65
|
+
----------
|
|
66
|
+
type : typing.Optional[GetWebhooksRequestType]
|
|
67
|
+
Filter on webhook type
|
|
68
|
+
|
|
69
|
+
sort : typing.Optional[GetWebhooksRequestSort]
|
|
70
|
+
Sort the results in the ascending/descending order of webhook creation
|
|
71
|
+
|
|
72
|
+
request_options : typing.Optional[RequestOptions]
|
|
73
|
+
Request-specific configuration.
|
|
74
|
+
|
|
75
|
+
Returns
|
|
76
|
+
-------
|
|
77
|
+
HttpResponse[GetWebhooksResponse]
|
|
78
|
+
Webhooks informations
|
|
79
|
+
"""
|
|
80
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
81
|
+
"webhooks",
|
|
82
|
+
method="GET",
|
|
83
|
+
params={
|
|
84
|
+
"type": type,
|
|
85
|
+
"sort": sort,
|
|
86
|
+
},
|
|
87
|
+
request_options=request_options,
|
|
88
|
+
)
|
|
89
|
+
try:
|
|
90
|
+
if 200 <= _response.status_code < 300:
|
|
91
|
+
_data = typing.cast(
|
|
92
|
+
GetWebhooksResponse,
|
|
93
|
+
construct_type(
|
|
94
|
+
type_=GetWebhooksResponse, # type: ignore
|
|
95
|
+
object_=_response.json(),
|
|
96
|
+
),
|
|
97
|
+
)
|
|
98
|
+
return HttpResponse(response=_response, data=_data)
|
|
99
|
+
if _response.status_code == 400:
|
|
100
|
+
raise BadRequestError(
|
|
101
|
+
headers=dict(_response.headers),
|
|
102
|
+
body=typing.cast(
|
|
103
|
+
typing.Any,
|
|
104
|
+
construct_type(
|
|
105
|
+
type_=typing.Any, # type: ignore
|
|
106
|
+
object_=_response.json(),
|
|
107
|
+
),
|
|
108
|
+
),
|
|
109
|
+
)
|
|
110
|
+
_response_json = _response.json()
|
|
111
|
+
except JSONDecodeError:
|
|
112
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
113
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
114
|
+
|
|
115
|
+
def create_webhook(
|
|
116
|
+
self,
|
|
117
|
+
*,
|
|
118
|
+
events: typing.Sequence[CreateWebhookRequestEventsItem],
|
|
119
|
+
url: str,
|
|
120
|
+
auth: typing.Optional[CreateWebhookRequestAuth] = OMIT,
|
|
121
|
+
batched: typing.Optional[bool] = OMIT,
|
|
122
|
+
channel: typing.Optional[CreateWebhookRequestChannel] = OMIT,
|
|
123
|
+
description: typing.Optional[str] = OMIT,
|
|
124
|
+
domain: typing.Optional[str] = OMIT,
|
|
125
|
+
headers: typing.Optional[typing.Sequence[CreateWebhookRequestHeadersItem]] = OMIT,
|
|
126
|
+
type: typing.Optional[CreateWebhookRequestType] = OMIT,
|
|
127
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
128
|
+
) -> HttpResponse[CreateWebhookResponse]:
|
|
129
|
+
"""
|
|
130
|
+
Creates a new webhook to receive real-time notifications for specified events.
|
|
131
|
+
|
|
132
|
+
Use this to:
|
|
133
|
+
- Set up event notifications for transactional or marketing emails
|
|
134
|
+
- Configure webhook endpoints for campaign tracking
|
|
135
|
+
- Enable real-time monitoring of email delivery status
|
|
136
|
+
- Subscribe to contact list changes and updates
|
|
137
|
+
- Implement custom event handling and automation
|
|
138
|
+
|
|
139
|
+
Key information returned:
|
|
140
|
+
- Created webhook ID and configuration
|
|
141
|
+
- Success confirmation and setup details
|
|
142
|
+
|
|
143
|
+
Parameters
|
|
144
|
+
----------
|
|
145
|
+
events : typing.Sequence[CreateWebhookRequestEventsItem]
|
|
146
|
+
- Events triggering the webhook. Possible values for
|
|
147
|
+
**Transactional** type webhook: #### `sent` OR `request`,
|
|
148
|
+
`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
|
|
149
|
+
`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
|
|
150
|
+
`unsubscribed` - Possible values for **Marketing** type webhook:
|
|
151
|
+
#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
|
|
152
|
+
`unsubscribed`, `listAddition` & `delivered` - Possible values
|
|
153
|
+
for **Inbound** type webhook: #### `inboundEmailProcessed` -
|
|
154
|
+
Possible values for type **Transactional** and channel **SMS**
|
|
155
|
+
####
|
|
156
|
+
`accepted`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
|
|
157
|
+
`subscribe`,`sent`,`blacklisted`,`skip` - Possible values for
|
|
158
|
+
type **Marketing** channel **SMS** ####
|
|
159
|
+
`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
|
|
160
|
+
`subscribe`,`skip`
|
|
161
|
+
|
|
162
|
+
url : str
|
|
163
|
+
URL of the webhook
|
|
164
|
+
|
|
165
|
+
auth : typing.Optional[CreateWebhookRequestAuth]
|
|
166
|
+
Add authentication on webhook url
|
|
167
|
+
|
|
168
|
+
batched : typing.Optional[bool]
|
|
169
|
+
To send batched webhooks
|
|
170
|
+
|
|
171
|
+
channel : typing.Optional[CreateWebhookRequestChannel]
|
|
172
|
+
channel of webhook
|
|
173
|
+
|
|
174
|
+
description : typing.Optional[str]
|
|
175
|
+
Description of the webhook
|
|
176
|
+
|
|
177
|
+
domain : typing.Optional[str]
|
|
178
|
+
Inbound domain of webhook, required in case of event type
|
|
179
|
+
`inbound`
|
|
180
|
+
|
|
181
|
+
headers : typing.Optional[typing.Sequence[CreateWebhookRequestHeadersItem]]
|
|
182
|
+
Custom headers to be send with webhooks
|
|
183
|
+
|
|
184
|
+
type : typing.Optional[CreateWebhookRequestType]
|
|
185
|
+
Type of the webhook
|
|
186
|
+
|
|
187
|
+
request_options : typing.Optional[RequestOptions]
|
|
188
|
+
Request-specific configuration.
|
|
189
|
+
|
|
190
|
+
Returns
|
|
191
|
+
-------
|
|
192
|
+
HttpResponse[CreateWebhookResponse]
|
|
193
|
+
successfully created
|
|
194
|
+
"""
|
|
195
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
196
|
+
"webhooks",
|
|
197
|
+
method="POST",
|
|
198
|
+
json={
|
|
199
|
+
"auth": convert_and_respect_annotation_metadata(
|
|
200
|
+
object_=auth, annotation=CreateWebhookRequestAuth, direction="write"
|
|
201
|
+
),
|
|
202
|
+
"batched": batched,
|
|
203
|
+
"channel": channel,
|
|
204
|
+
"description": description,
|
|
205
|
+
"domain": domain,
|
|
206
|
+
"events": events,
|
|
207
|
+
"headers": convert_and_respect_annotation_metadata(
|
|
208
|
+
object_=headers, annotation=typing.Sequence[CreateWebhookRequestHeadersItem], direction="write"
|
|
209
|
+
),
|
|
210
|
+
"type": type,
|
|
211
|
+
"url": url,
|
|
212
|
+
},
|
|
213
|
+
headers={
|
|
214
|
+
"content-type": "application/json",
|
|
215
|
+
},
|
|
216
|
+
request_options=request_options,
|
|
217
|
+
omit=OMIT,
|
|
218
|
+
)
|
|
219
|
+
try:
|
|
220
|
+
if 200 <= _response.status_code < 300:
|
|
221
|
+
_data = typing.cast(
|
|
222
|
+
CreateWebhookResponse,
|
|
223
|
+
construct_type(
|
|
224
|
+
type_=CreateWebhookResponse, # type: ignore
|
|
225
|
+
object_=_response.json(),
|
|
226
|
+
),
|
|
227
|
+
)
|
|
228
|
+
return HttpResponse(response=_response, data=_data)
|
|
229
|
+
if _response.status_code == 400:
|
|
230
|
+
raise BadRequestError(
|
|
231
|
+
headers=dict(_response.headers),
|
|
232
|
+
body=typing.cast(
|
|
233
|
+
typing.Any,
|
|
234
|
+
construct_type(
|
|
235
|
+
type_=typing.Any, # type: ignore
|
|
236
|
+
object_=_response.json(),
|
|
237
|
+
),
|
|
238
|
+
),
|
|
239
|
+
)
|
|
240
|
+
_response_json = _response.json()
|
|
241
|
+
except JSONDecodeError:
|
|
242
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
243
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
244
|
+
|
|
245
|
+
def export_webhooks_history(
|
|
246
|
+
self,
|
|
247
|
+
*,
|
|
248
|
+
event: ExportWebhooksHistoryRequestEvent,
|
|
249
|
+
notify_url: str,
|
|
250
|
+
type: ExportWebhooksHistoryRequestType,
|
|
251
|
+
days: typing.Optional[int] = OMIT,
|
|
252
|
+
email: typing.Optional[str] = OMIT,
|
|
253
|
+
end_date: typing.Optional[str] = OMIT,
|
|
254
|
+
message_id: typing.Optional[int] = OMIT,
|
|
255
|
+
sort: typing.Optional[str] = OMIT,
|
|
256
|
+
start_date: typing.Optional[str] = OMIT,
|
|
257
|
+
webhook_id: typing.Optional[int] = OMIT,
|
|
258
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
259
|
+
) -> HttpResponse[ExportWebhooksHistoryResponse]:
|
|
260
|
+
"""
|
|
261
|
+
<Note title="This feature is available for Professional and Enterprise plans">
|
|
262
|
+
To have it activated please send us a request and we will activate it for your account.
|
|
263
|
+
</Note>
|
|
264
|
+
|
|
265
|
+
Exports webhook event history to CSV format for analysis and reporting.
|
|
266
|
+
|
|
267
|
+
Use this to:
|
|
268
|
+
- Generate comprehensive webhook event reports
|
|
269
|
+
- Analyze webhook delivery patterns and success rates
|
|
270
|
+
- Export event data for external analysis tools
|
|
271
|
+
- Create historical reports for compliance and auditing
|
|
272
|
+
- Track webhook performance and reliability metrics
|
|
273
|
+
|
|
274
|
+
Key information returned:
|
|
275
|
+
- Process ID for tracking export completion
|
|
276
|
+
- CSV file will be delivered to specified webhook URL
|
|
277
|
+
|
|
278
|
+
Parameters
|
|
279
|
+
----------
|
|
280
|
+
event : ExportWebhooksHistoryRequestEvent
|
|
281
|
+
Filter the history for a specific event type
|
|
282
|
+
|
|
283
|
+
notify_url : str
|
|
284
|
+
Webhook URL to receive CSV file link
|
|
285
|
+
|
|
286
|
+
type : ExportWebhooksHistoryRequestType
|
|
287
|
+
Filter the history based on webhook type
|
|
288
|
+
|
|
289
|
+
days : typing.Optional[int]
|
|
290
|
+
Number of days in the past including today (positive
|
|
291
|
+
integer). _Not compatible with 'startDate' and 'endDate'_
|
|
292
|
+
|
|
293
|
+
email : typing.Optional[str]
|
|
294
|
+
Filter the history for a specific email
|
|
295
|
+
|
|
296
|
+
end_date : typing.Optional[str]
|
|
297
|
+
Mandatory if startDate is used. Ending date of the report
|
|
298
|
+
(YYYY-MM-DD). Must be greater than equal to startDate
|
|
299
|
+
|
|
300
|
+
message_id : typing.Optional[int]
|
|
301
|
+
Filter the history for a specific message id. Applicable
|
|
302
|
+
only for transactional webhooks.
|
|
303
|
+
|
|
304
|
+
sort : typing.Optional[str]
|
|
305
|
+
Sorting order of records (asc or desc)
|
|
306
|
+
|
|
307
|
+
start_date : typing.Optional[str]
|
|
308
|
+
Mandatory if endDate is used. Starting date of the history
|
|
309
|
+
(YYYY-MM-DD). Must be lower than equal to endDate
|
|
310
|
+
|
|
311
|
+
webhook_id : typing.Optional[int]
|
|
312
|
+
Filter the history for a specific webhook id
|
|
313
|
+
|
|
314
|
+
request_options : typing.Optional[RequestOptions]
|
|
315
|
+
Request-specific configuration.
|
|
316
|
+
|
|
317
|
+
Returns
|
|
318
|
+
-------
|
|
319
|
+
HttpResponse[ExportWebhooksHistoryResponse]
|
|
320
|
+
process id created
|
|
321
|
+
"""
|
|
322
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
323
|
+
"webhooks/export",
|
|
324
|
+
method="POST",
|
|
325
|
+
json={
|
|
326
|
+
"days": days,
|
|
327
|
+
"email": email,
|
|
328
|
+
"endDate": end_date,
|
|
329
|
+
"event": event,
|
|
330
|
+
"messageId": message_id,
|
|
331
|
+
"notifyURL": notify_url,
|
|
332
|
+
"sort": sort,
|
|
333
|
+
"startDate": start_date,
|
|
334
|
+
"type": type,
|
|
335
|
+
"webhookId": webhook_id,
|
|
336
|
+
},
|
|
337
|
+
headers={
|
|
338
|
+
"content-type": "application/json",
|
|
339
|
+
},
|
|
340
|
+
request_options=request_options,
|
|
341
|
+
omit=OMIT,
|
|
342
|
+
)
|
|
343
|
+
try:
|
|
344
|
+
if 200 <= _response.status_code < 300:
|
|
345
|
+
_data = typing.cast(
|
|
346
|
+
ExportWebhooksHistoryResponse,
|
|
347
|
+
construct_type(
|
|
348
|
+
type_=ExportWebhooksHistoryResponse, # type: ignore
|
|
349
|
+
object_=_response.json(),
|
|
350
|
+
),
|
|
351
|
+
)
|
|
352
|
+
return HttpResponse(response=_response, data=_data)
|
|
353
|
+
if _response.status_code == 400:
|
|
354
|
+
raise BadRequestError(
|
|
355
|
+
headers=dict(_response.headers),
|
|
356
|
+
body=typing.cast(
|
|
357
|
+
typing.Any,
|
|
358
|
+
construct_type(
|
|
359
|
+
type_=typing.Any, # type: ignore
|
|
360
|
+
object_=_response.json(),
|
|
361
|
+
),
|
|
362
|
+
),
|
|
363
|
+
)
|
|
364
|
+
_response_json = _response.json()
|
|
365
|
+
except JSONDecodeError:
|
|
366
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
367
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
368
|
+
|
|
369
|
+
def get_webhook(
|
|
370
|
+
self, webhook_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
371
|
+
) -> HttpResponse[GetWebhook]:
|
|
372
|
+
"""
|
|
373
|
+
Retrieves detailed information about a specific webhook configuration.
|
|
374
|
+
|
|
375
|
+
Use this to:
|
|
376
|
+
- Get complete webhook configuration and settings
|
|
377
|
+
- Check webhook event subscriptions and triggers
|
|
378
|
+
- Review authentication and security settings
|
|
379
|
+
- Verify webhook URL and custom headers
|
|
380
|
+
- Access webhook creation and modification history
|
|
381
|
+
|
|
382
|
+
Key information returned:
|
|
383
|
+
- Complete webhook details and configuration
|
|
384
|
+
- Event types and channel subscriptions
|
|
385
|
+
- Authentication credentials and methods
|
|
386
|
+
- Custom headers and request settings
|
|
387
|
+
- Webhook status and activity information
|
|
388
|
+
|
|
389
|
+
Parameters
|
|
390
|
+
----------
|
|
391
|
+
webhook_id : int
|
|
392
|
+
Id of the webhook
|
|
393
|
+
|
|
394
|
+
request_options : typing.Optional[RequestOptions]
|
|
395
|
+
Request-specific configuration.
|
|
396
|
+
|
|
397
|
+
Returns
|
|
398
|
+
-------
|
|
399
|
+
HttpResponse[GetWebhook]
|
|
400
|
+
Webhook informations
|
|
401
|
+
"""
|
|
402
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
403
|
+
f"webhooks/{jsonable_encoder(webhook_id)}",
|
|
404
|
+
method="GET",
|
|
405
|
+
request_options=request_options,
|
|
406
|
+
)
|
|
407
|
+
try:
|
|
408
|
+
if 200 <= _response.status_code < 300:
|
|
409
|
+
_data = typing.cast(
|
|
410
|
+
GetWebhook,
|
|
411
|
+
construct_type(
|
|
412
|
+
type_=GetWebhook, # type: ignore
|
|
413
|
+
object_=_response.json(),
|
|
414
|
+
),
|
|
415
|
+
)
|
|
416
|
+
return HttpResponse(response=_response, data=_data)
|
|
417
|
+
if _response.status_code == 400:
|
|
418
|
+
raise BadRequestError(
|
|
419
|
+
headers=dict(_response.headers),
|
|
420
|
+
body=typing.cast(
|
|
421
|
+
typing.Any,
|
|
422
|
+
construct_type(
|
|
423
|
+
type_=typing.Any, # type: ignore
|
|
424
|
+
object_=_response.json(),
|
|
425
|
+
),
|
|
426
|
+
),
|
|
427
|
+
)
|
|
428
|
+
if _response.status_code == 404:
|
|
429
|
+
raise NotFoundError(
|
|
430
|
+
headers=dict(_response.headers),
|
|
431
|
+
body=typing.cast(
|
|
432
|
+
typing.Any,
|
|
433
|
+
construct_type(
|
|
434
|
+
type_=typing.Any, # type: ignore
|
|
435
|
+
object_=_response.json(),
|
|
436
|
+
),
|
|
437
|
+
),
|
|
438
|
+
)
|
|
439
|
+
_response_json = _response.json()
|
|
440
|
+
except JSONDecodeError:
|
|
441
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
442
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
443
|
+
|
|
444
|
+
def update_webhook(
|
|
445
|
+
self,
|
|
446
|
+
webhook_id: int,
|
|
447
|
+
*,
|
|
448
|
+
auth: typing.Optional[UpdateWebhookRequestAuth] = OMIT,
|
|
449
|
+
batched: typing.Optional[bool] = OMIT,
|
|
450
|
+
description: typing.Optional[str] = OMIT,
|
|
451
|
+
domain: typing.Optional[str] = OMIT,
|
|
452
|
+
events: typing.Optional[typing.Sequence[UpdateWebhookRequestEventsItem]] = OMIT,
|
|
453
|
+
headers: typing.Optional[typing.Sequence[UpdateWebhookRequestHeadersItem]] = OMIT,
|
|
454
|
+
url: typing.Optional[str] = OMIT,
|
|
455
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
456
|
+
) -> HttpResponse[None]:
|
|
457
|
+
"""
|
|
458
|
+
Updates an existing webhook configuration and event subscriptions.
|
|
459
|
+
|
|
460
|
+
Use this to:
|
|
461
|
+
- Modify webhook event subscriptions and triggers
|
|
462
|
+
- Update webhook URL and endpoint configuration
|
|
463
|
+
- Change authentication settings and credentials
|
|
464
|
+
- Adjust custom headers and request parameters
|
|
465
|
+
- Enable or disable specific webhook events
|
|
466
|
+
|
|
467
|
+
Key information returned:
|
|
468
|
+
- Success confirmation of webhook updates
|
|
469
|
+
|
|
470
|
+
Parameters
|
|
471
|
+
----------
|
|
472
|
+
webhook_id : int
|
|
473
|
+
Id of the webhook
|
|
474
|
+
|
|
475
|
+
auth : typing.Optional[UpdateWebhookRequestAuth]
|
|
476
|
+
Add authentication on webhook url
|
|
477
|
+
|
|
478
|
+
batched : typing.Optional[bool]
|
|
479
|
+
To send batched webhooks
|
|
480
|
+
|
|
481
|
+
description : typing.Optional[str]
|
|
482
|
+
Description of the webhook
|
|
483
|
+
|
|
484
|
+
domain : typing.Optional[str]
|
|
485
|
+
Inbound domain of webhook, used in case of event type `inbound`
|
|
486
|
+
|
|
487
|
+
events : typing.Optional[typing.Sequence[UpdateWebhookRequestEventsItem]]
|
|
488
|
+
- Events triggering the webhook. Possible values for
|
|
489
|
+
**Transactional** type webhook: #### `sent` OR `request`,
|
|
490
|
+
`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
|
|
491
|
+
`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
|
|
492
|
+
`unsubscribed` - Possible values for **Marketing** type webhook:
|
|
493
|
+
#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
|
|
494
|
+
`unsubscribed`, `listAddition` & `delivered` - Possible values
|
|
495
|
+
for **Inbound** type webhook: #### `inboundEmailProcessed`
|
|
496
|
+
|
|
497
|
+
headers : typing.Optional[typing.Sequence[UpdateWebhookRequestHeadersItem]]
|
|
498
|
+
Custom headers to be send with webhooks
|
|
499
|
+
|
|
500
|
+
url : typing.Optional[str]
|
|
501
|
+
URL of the webhook
|
|
502
|
+
|
|
503
|
+
request_options : typing.Optional[RequestOptions]
|
|
504
|
+
Request-specific configuration.
|
|
505
|
+
|
|
506
|
+
Returns
|
|
507
|
+
-------
|
|
508
|
+
HttpResponse[None]
|
|
509
|
+
"""
|
|
510
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
511
|
+
f"webhooks/{jsonable_encoder(webhook_id)}",
|
|
512
|
+
method="PUT",
|
|
513
|
+
json={
|
|
514
|
+
"auth": convert_and_respect_annotation_metadata(
|
|
515
|
+
object_=auth, annotation=UpdateWebhookRequestAuth, direction="write"
|
|
516
|
+
),
|
|
517
|
+
"batched": batched,
|
|
518
|
+
"description": description,
|
|
519
|
+
"domain": domain,
|
|
520
|
+
"events": events,
|
|
521
|
+
"headers": convert_and_respect_annotation_metadata(
|
|
522
|
+
object_=headers, annotation=typing.Sequence[UpdateWebhookRequestHeadersItem], direction="write"
|
|
523
|
+
),
|
|
524
|
+
"url": url,
|
|
525
|
+
},
|
|
526
|
+
headers={
|
|
527
|
+
"content-type": "application/json",
|
|
528
|
+
},
|
|
529
|
+
request_options=request_options,
|
|
530
|
+
omit=OMIT,
|
|
531
|
+
)
|
|
532
|
+
try:
|
|
533
|
+
if 200 <= _response.status_code < 300:
|
|
534
|
+
return HttpResponse(response=_response, data=None)
|
|
535
|
+
if _response.status_code == 400:
|
|
536
|
+
raise BadRequestError(
|
|
537
|
+
headers=dict(_response.headers),
|
|
538
|
+
body=typing.cast(
|
|
539
|
+
typing.Any,
|
|
540
|
+
construct_type(
|
|
541
|
+
type_=typing.Any, # type: ignore
|
|
542
|
+
object_=_response.json(),
|
|
543
|
+
),
|
|
544
|
+
),
|
|
545
|
+
)
|
|
546
|
+
if _response.status_code == 404:
|
|
547
|
+
raise NotFoundError(
|
|
548
|
+
headers=dict(_response.headers),
|
|
549
|
+
body=typing.cast(
|
|
550
|
+
typing.Any,
|
|
551
|
+
construct_type(
|
|
552
|
+
type_=typing.Any, # type: ignore
|
|
553
|
+
object_=_response.json(),
|
|
554
|
+
),
|
|
555
|
+
),
|
|
556
|
+
)
|
|
557
|
+
_response_json = _response.json()
|
|
558
|
+
except JSONDecodeError:
|
|
559
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
560
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
561
|
+
|
|
562
|
+
def delete_webhook(
|
|
563
|
+
self, webhook_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
564
|
+
) -> HttpResponse[None]:
|
|
565
|
+
"""
|
|
566
|
+
Permanently deletes a webhook and stops all event notifications.
|
|
567
|
+
|
|
568
|
+
Use this to:
|
|
569
|
+
- Remove unused or obsolete webhook configurations
|
|
570
|
+
- Clean up webhook endpoints and subscriptions
|
|
571
|
+
- Stop event notifications to specific URLs
|
|
572
|
+
- Maintain organized webhook management
|
|
573
|
+
|
|
574
|
+
Key information returned:
|
|
575
|
+
- Success confirmation of webhook deletion
|
|
576
|
+
|
|
577
|
+
Parameters
|
|
578
|
+
----------
|
|
579
|
+
webhook_id : int
|
|
580
|
+
Id of the webhook
|
|
581
|
+
|
|
582
|
+
request_options : typing.Optional[RequestOptions]
|
|
583
|
+
Request-specific configuration.
|
|
584
|
+
|
|
585
|
+
Returns
|
|
586
|
+
-------
|
|
587
|
+
HttpResponse[None]
|
|
588
|
+
"""
|
|
589
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
590
|
+
f"webhooks/{jsonable_encoder(webhook_id)}",
|
|
591
|
+
method="DELETE",
|
|
592
|
+
request_options=request_options,
|
|
593
|
+
)
|
|
594
|
+
try:
|
|
595
|
+
if 200 <= _response.status_code < 300:
|
|
596
|
+
return HttpResponse(response=_response, data=None)
|
|
597
|
+
if _response.status_code == 400:
|
|
598
|
+
raise BadRequestError(
|
|
599
|
+
headers=dict(_response.headers),
|
|
600
|
+
body=typing.cast(
|
|
601
|
+
typing.Any,
|
|
602
|
+
construct_type(
|
|
603
|
+
type_=typing.Any, # type: ignore
|
|
604
|
+
object_=_response.json(),
|
|
605
|
+
),
|
|
606
|
+
),
|
|
607
|
+
)
|
|
608
|
+
if _response.status_code == 404:
|
|
609
|
+
raise NotFoundError(
|
|
610
|
+
headers=dict(_response.headers),
|
|
611
|
+
body=typing.cast(
|
|
612
|
+
typing.Any,
|
|
613
|
+
construct_type(
|
|
614
|
+
type_=typing.Any, # type: ignore
|
|
615
|
+
object_=_response.json(),
|
|
616
|
+
),
|
|
617
|
+
),
|
|
618
|
+
)
|
|
619
|
+
_response_json = _response.json()
|
|
620
|
+
except JSONDecodeError:
|
|
621
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
622
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
class AsyncRawWebhooksClient:
|
|
626
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
627
|
+
self._client_wrapper = client_wrapper
|
|
628
|
+
|
|
629
|
+
async def get_webhooks(
|
|
630
|
+
self,
|
|
631
|
+
*,
|
|
632
|
+
type: typing.Optional[GetWebhooksRequestType] = None,
|
|
633
|
+
sort: typing.Optional[GetWebhooksRequestSort] = None,
|
|
634
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
635
|
+
) -> AsyncHttpResponse[GetWebhooksResponse]:
|
|
636
|
+
"""
|
|
637
|
+
Retrieves all webhooks from your Brevo account with filtering and sorting options.
|
|
638
|
+
|
|
639
|
+
Use this to:
|
|
640
|
+
- Monitor webhook configurations and event handling
|
|
641
|
+
- List webhooks by type (transactional, marketing, inbound)
|
|
642
|
+
- Review webhook endpoints and authentication
|
|
643
|
+
- Track webhook creation and modification history
|
|
644
|
+
- Audit webhook event subscriptions
|
|
645
|
+
|
|
646
|
+
Key information returned:
|
|
647
|
+
- Complete webhook details and configuration
|
|
648
|
+
- Event types and channel subscriptions
|
|
649
|
+
- Authentication and security settings
|
|
650
|
+
- Webhook URLs and custom headers
|
|
651
|
+
- Creation and modification timestamps
|
|
652
|
+
|
|
653
|
+
Parameters
|
|
654
|
+
----------
|
|
655
|
+
type : typing.Optional[GetWebhooksRequestType]
|
|
656
|
+
Filter on webhook type
|
|
657
|
+
|
|
658
|
+
sort : typing.Optional[GetWebhooksRequestSort]
|
|
659
|
+
Sort the results in the ascending/descending order of webhook creation
|
|
660
|
+
|
|
661
|
+
request_options : typing.Optional[RequestOptions]
|
|
662
|
+
Request-specific configuration.
|
|
663
|
+
|
|
664
|
+
Returns
|
|
665
|
+
-------
|
|
666
|
+
AsyncHttpResponse[GetWebhooksResponse]
|
|
667
|
+
Webhooks informations
|
|
668
|
+
"""
|
|
669
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
670
|
+
"webhooks",
|
|
671
|
+
method="GET",
|
|
672
|
+
params={
|
|
673
|
+
"type": type,
|
|
674
|
+
"sort": sort,
|
|
675
|
+
},
|
|
676
|
+
request_options=request_options,
|
|
677
|
+
)
|
|
678
|
+
try:
|
|
679
|
+
if 200 <= _response.status_code < 300:
|
|
680
|
+
_data = typing.cast(
|
|
681
|
+
GetWebhooksResponse,
|
|
682
|
+
construct_type(
|
|
683
|
+
type_=GetWebhooksResponse, # type: ignore
|
|
684
|
+
object_=_response.json(),
|
|
685
|
+
),
|
|
686
|
+
)
|
|
687
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
688
|
+
if _response.status_code == 400:
|
|
689
|
+
raise BadRequestError(
|
|
690
|
+
headers=dict(_response.headers),
|
|
691
|
+
body=typing.cast(
|
|
692
|
+
typing.Any,
|
|
693
|
+
construct_type(
|
|
694
|
+
type_=typing.Any, # type: ignore
|
|
695
|
+
object_=_response.json(),
|
|
696
|
+
),
|
|
697
|
+
),
|
|
698
|
+
)
|
|
699
|
+
_response_json = _response.json()
|
|
700
|
+
except JSONDecodeError:
|
|
701
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
702
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
703
|
+
|
|
704
|
+
async def create_webhook(
|
|
705
|
+
self,
|
|
706
|
+
*,
|
|
707
|
+
events: typing.Sequence[CreateWebhookRequestEventsItem],
|
|
708
|
+
url: str,
|
|
709
|
+
auth: typing.Optional[CreateWebhookRequestAuth] = OMIT,
|
|
710
|
+
batched: typing.Optional[bool] = OMIT,
|
|
711
|
+
channel: typing.Optional[CreateWebhookRequestChannel] = OMIT,
|
|
712
|
+
description: typing.Optional[str] = OMIT,
|
|
713
|
+
domain: typing.Optional[str] = OMIT,
|
|
714
|
+
headers: typing.Optional[typing.Sequence[CreateWebhookRequestHeadersItem]] = OMIT,
|
|
715
|
+
type: typing.Optional[CreateWebhookRequestType] = OMIT,
|
|
716
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
717
|
+
) -> AsyncHttpResponse[CreateWebhookResponse]:
|
|
718
|
+
"""
|
|
719
|
+
Creates a new webhook to receive real-time notifications for specified events.
|
|
720
|
+
|
|
721
|
+
Use this to:
|
|
722
|
+
- Set up event notifications for transactional or marketing emails
|
|
723
|
+
- Configure webhook endpoints for campaign tracking
|
|
724
|
+
- Enable real-time monitoring of email delivery status
|
|
725
|
+
- Subscribe to contact list changes and updates
|
|
726
|
+
- Implement custom event handling and automation
|
|
727
|
+
|
|
728
|
+
Key information returned:
|
|
729
|
+
- Created webhook ID and configuration
|
|
730
|
+
- Success confirmation and setup details
|
|
731
|
+
|
|
732
|
+
Parameters
|
|
733
|
+
----------
|
|
734
|
+
events : typing.Sequence[CreateWebhookRequestEventsItem]
|
|
735
|
+
- Events triggering the webhook. Possible values for
|
|
736
|
+
**Transactional** type webhook: #### `sent` OR `request`,
|
|
737
|
+
`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
|
|
738
|
+
`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
|
|
739
|
+
`unsubscribed` - Possible values for **Marketing** type webhook:
|
|
740
|
+
#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
|
|
741
|
+
`unsubscribed`, `listAddition` & `delivered` - Possible values
|
|
742
|
+
for **Inbound** type webhook: #### `inboundEmailProcessed` -
|
|
743
|
+
Possible values for type **Transactional** and channel **SMS**
|
|
744
|
+
####
|
|
745
|
+
`accepted`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
|
|
746
|
+
`subscribe`,`sent`,`blacklisted`,`skip` - Possible values for
|
|
747
|
+
type **Marketing** channel **SMS** ####
|
|
748
|
+
`sent`,`delivered`,`softBounce`,`hardBounce`,`unsubscribe`,`reply`,
|
|
749
|
+
`subscribe`,`skip`
|
|
750
|
+
|
|
751
|
+
url : str
|
|
752
|
+
URL of the webhook
|
|
753
|
+
|
|
754
|
+
auth : typing.Optional[CreateWebhookRequestAuth]
|
|
755
|
+
Add authentication on webhook url
|
|
756
|
+
|
|
757
|
+
batched : typing.Optional[bool]
|
|
758
|
+
To send batched webhooks
|
|
759
|
+
|
|
760
|
+
channel : typing.Optional[CreateWebhookRequestChannel]
|
|
761
|
+
channel of webhook
|
|
762
|
+
|
|
763
|
+
description : typing.Optional[str]
|
|
764
|
+
Description of the webhook
|
|
765
|
+
|
|
766
|
+
domain : typing.Optional[str]
|
|
767
|
+
Inbound domain of webhook, required in case of event type
|
|
768
|
+
`inbound`
|
|
769
|
+
|
|
770
|
+
headers : typing.Optional[typing.Sequence[CreateWebhookRequestHeadersItem]]
|
|
771
|
+
Custom headers to be send with webhooks
|
|
772
|
+
|
|
773
|
+
type : typing.Optional[CreateWebhookRequestType]
|
|
774
|
+
Type of the webhook
|
|
775
|
+
|
|
776
|
+
request_options : typing.Optional[RequestOptions]
|
|
777
|
+
Request-specific configuration.
|
|
778
|
+
|
|
779
|
+
Returns
|
|
780
|
+
-------
|
|
781
|
+
AsyncHttpResponse[CreateWebhookResponse]
|
|
782
|
+
successfully created
|
|
783
|
+
"""
|
|
784
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
785
|
+
"webhooks",
|
|
786
|
+
method="POST",
|
|
787
|
+
json={
|
|
788
|
+
"auth": convert_and_respect_annotation_metadata(
|
|
789
|
+
object_=auth, annotation=CreateWebhookRequestAuth, direction="write"
|
|
790
|
+
),
|
|
791
|
+
"batched": batched,
|
|
792
|
+
"channel": channel,
|
|
793
|
+
"description": description,
|
|
794
|
+
"domain": domain,
|
|
795
|
+
"events": events,
|
|
796
|
+
"headers": convert_and_respect_annotation_metadata(
|
|
797
|
+
object_=headers, annotation=typing.Sequence[CreateWebhookRequestHeadersItem], direction="write"
|
|
798
|
+
),
|
|
799
|
+
"type": type,
|
|
800
|
+
"url": url,
|
|
801
|
+
},
|
|
802
|
+
headers={
|
|
803
|
+
"content-type": "application/json",
|
|
804
|
+
},
|
|
805
|
+
request_options=request_options,
|
|
806
|
+
omit=OMIT,
|
|
807
|
+
)
|
|
808
|
+
try:
|
|
809
|
+
if 200 <= _response.status_code < 300:
|
|
810
|
+
_data = typing.cast(
|
|
811
|
+
CreateWebhookResponse,
|
|
812
|
+
construct_type(
|
|
813
|
+
type_=CreateWebhookResponse, # type: ignore
|
|
814
|
+
object_=_response.json(),
|
|
815
|
+
),
|
|
816
|
+
)
|
|
817
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
818
|
+
if _response.status_code == 400:
|
|
819
|
+
raise BadRequestError(
|
|
820
|
+
headers=dict(_response.headers),
|
|
821
|
+
body=typing.cast(
|
|
822
|
+
typing.Any,
|
|
823
|
+
construct_type(
|
|
824
|
+
type_=typing.Any, # type: ignore
|
|
825
|
+
object_=_response.json(),
|
|
826
|
+
),
|
|
827
|
+
),
|
|
828
|
+
)
|
|
829
|
+
_response_json = _response.json()
|
|
830
|
+
except JSONDecodeError:
|
|
831
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
832
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
833
|
+
|
|
834
|
+
async def export_webhooks_history(
|
|
835
|
+
self,
|
|
836
|
+
*,
|
|
837
|
+
event: ExportWebhooksHistoryRequestEvent,
|
|
838
|
+
notify_url: str,
|
|
839
|
+
type: ExportWebhooksHistoryRequestType,
|
|
840
|
+
days: typing.Optional[int] = OMIT,
|
|
841
|
+
email: typing.Optional[str] = OMIT,
|
|
842
|
+
end_date: typing.Optional[str] = OMIT,
|
|
843
|
+
message_id: typing.Optional[int] = OMIT,
|
|
844
|
+
sort: typing.Optional[str] = OMIT,
|
|
845
|
+
start_date: typing.Optional[str] = OMIT,
|
|
846
|
+
webhook_id: typing.Optional[int] = OMIT,
|
|
847
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
848
|
+
) -> AsyncHttpResponse[ExportWebhooksHistoryResponse]:
|
|
849
|
+
"""
|
|
850
|
+
<Note title="This feature is available for Professional and Enterprise plans">
|
|
851
|
+
To have it activated please send us a request and we will activate it for your account.
|
|
852
|
+
</Note>
|
|
853
|
+
|
|
854
|
+
Exports webhook event history to CSV format for analysis and reporting.
|
|
855
|
+
|
|
856
|
+
Use this to:
|
|
857
|
+
- Generate comprehensive webhook event reports
|
|
858
|
+
- Analyze webhook delivery patterns and success rates
|
|
859
|
+
- Export event data for external analysis tools
|
|
860
|
+
- Create historical reports for compliance and auditing
|
|
861
|
+
- Track webhook performance and reliability metrics
|
|
862
|
+
|
|
863
|
+
Key information returned:
|
|
864
|
+
- Process ID for tracking export completion
|
|
865
|
+
- CSV file will be delivered to specified webhook URL
|
|
866
|
+
|
|
867
|
+
Parameters
|
|
868
|
+
----------
|
|
869
|
+
event : ExportWebhooksHistoryRequestEvent
|
|
870
|
+
Filter the history for a specific event type
|
|
871
|
+
|
|
872
|
+
notify_url : str
|
|
873
|
+
Webhook URL to receive CSV file link
|
|
874
|
+
|
|
875
|
+
type : ExportWebhooksHistoryRequestType
|
|
876
|
+
Filter the history based on webhook type
|
|
877
|
+
|
|
878
|
+
days : typing.Optional[int]
|
|
879
|
+
Number of days in the past including today (positive
|
|
880
|
+
integer). _Not compatible with 'startDate' and 'endDate'_
|
|
881
|
+
|
|
882
|
+
email : typing.Optional[str]
|
|
883
|
+
Filter the history for a specific email
|
|
884
|
+
|
|
885
|
+
end_date : typing.Optional[str]
|
|
886
|
+
Mandatory if startDate is used. Ending date of the report
|
|
887
|
+
(YYYY-MM-DD). Must be greater than equal to startDate
|
|
888
|
+
|
|
889
|
+
message_id : typing.Optional[int]
|
|
890
|
+
Filter the history for a specific message id. Applicable
|
|
891
|
+
only for transactional webhooks.
|
|
892
|
+
|
|
893
|
+
sort : typing.Optional[str]
|
|
894
|
+
Sorting order of records (asc or desc)
|
|
895
|
+
|
|
896
|
+
start_date : typing.Optional[str]
|
|
897
|
+
Mandatory if endDate is used. Starting date of the history
|
|
898
|
+
(YYYY-MM-DD). Must be lower than equal to endDate
|
|
899
|
+
|
|
900
|
+
webhook_id : typing.Optional[int]
|
|
901
|
+
Filter the history for a specific webhook id
|
|
902
|
+
|
|
903
|
+
request_options : typing.Optional[RequestOptions]
|
|
904
|
+
Request-specific configuration.
|
|
905
|
+
|
|
906
|
+
Returns
|
|
907
|
+
-------
|
|
908
|
+
AsyncHttpResponse[ExportWebhooksHistoryResponse]
|
|
909
|
+
process id created
|
|
910
|
+
"""
|
|
911
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
912
|
+
"webhooks/export",
|
|
913
|
+
method="POST",
|
|
914
|
+
json={
|
|
915
|
+
"days": days,
|
|
916
|
+
"email": email,
|
|
917
|
+
"endDate": end_date,
|
|
918
|
+
"event": event,
|
|
919
|
+
"messageId": message_id,
|
|
920
|
+
"notifyURL": notify_url,
|
|
921
|
+
"sort": sort,
|
|
922
|
+
"startDate": start_date,
|
|
923
|
+
"type": type,
|
|
924
|
+
"webhookId": webhook_id,
|
|
925
|
+
},
|
|
926
|
+
headers={
|
|
927
|
+
"content-type": "application/json",
|
|
928
|
+
},
|
|
929
|
+
request_options=request_options,
|
|
930
|
+
omit=OMIT,
|
|
931
|
+
)
|
|
932
|
+
try:
|
|
933
|
+
if 200 <= _response.status_code < 300:
|
|
934
|
+
_data = typing.cast(
|
|
935
|
+
ExportWebhooksHistoryResponse,
|
|
936
|
+
construct_type(
|
|
937
|
+
type_=ExportWebhooksHistoryResponse, # type: ignore
|
|
938
|
+
object_=_response.json(),
|
|
939
|
+
),
|
|
940
|
+
)
|
|
941
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
942
|
+
if _response.status_code == 400:
|
|
943
|
+
raise BadRequestError(
|
|
944
|
+
headers=dict(_response.headers),
|
|
945
|
+
body=typing.cast(
|
|
946
|
+
typing.Any,
|
|
947
|
+
construct_type(
|
|
948
|
+
type_=typing.Any, # type: ignore
|
|
949
|
+
object_=_response.json(),
|
|
950
|
+
),
|
|
951
|
+
),
|
|
952
|
+
)
|
|
953
|
+
_response_json = _response.json()
|
|
954
|
+
except JSONDecodeError:
|
|
955
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
956
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
957
|
+
|
|
958
|
+
async def get_webhook(
|
|
959
|
+
self, webhook_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
960
|
+
) -> AsyncHttpResponse[GetWebhook]:
|
|
961
|
+
"""
|
|
962
|
+
Retrieves detailed information about a specific webhook configuration.
|
|
963
|
+
|
|
964
|
+
Use this to:
|
|
965
|
+
- Get complete webhook configuration and settings
|
|
966
|
+
- Check webhook event subscriptions and triggers
|
|
967
|
+
- Review authentication and security settings
|
|
968
|
+
- Verify webhook URL and custom headers
|
|
969
|
+
- Access webhook creation and modification history
|
|
970
|
+
|
|
971
|
+
Key information returned:
|
|
972
|
+
- Complete webhook details and configuration
|
|
973
|
+
- Event types and channel subscriptions
|
|
974
|
+
- Authentication credentials and methods
|
|
975
|
+
- Custom headers and request settings
|
|
976
|
+
- Webhook status and activity information
|
|
977
|
+
|
|
978
|
+
Parameters
|
|
979
|
+
----------
|
|
980
|
+
webhook_id : int
|
|
981
|
+
Id of the webhook
|
|
982
|
+
|
|
983
|
+
request_options : typing.Optional[RequestOptions]
|
|
984
|
+
Request-specific configuration.
|
|
985
|
+
|
|
986
|
+
Returns
|
|
987
|
+
-------
|
|
988
|
+
AsyncHttpResponse[GetWebhook]
|
|
989
|
+
Webhook informations
|
|
990
|
+
"""
|
|
991
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
992
|
+
f"webhooks/{jsonable_encoder(webhook_id)}",
|
|
993
|
+
method="GET",
|
|
994
|
+
request_options=request_options,
|
|
995
|
+
)
|
|
996
|
+
try:
|
|
997
|
+
if 200 <= _response.status_code < 300:
|
|
998
|
+
_data = typing.cast(
|
|
999
|
+
GetWebhook,
|
|
1000
|
+
construct_type(
|
|
1001
|
+
type_=GetWebhook, # type: ignore
|
|
1002
|
+
object_=_response.json(),
|
|
1003
|
+
),
|
|
1004
|
+
)
|
|
1005
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1006
|
+
if _response.status_code == 400:
|
|
1007
|
+
raise BadRequestError(
|
|
1008
|
+
headers=dict(_response.headers),
|
|
1009
|
+
body=typing.cast(
|
|
1010
|
+
typing.Any,
|
|
1011
|
+
construct_type(
|
|
1012
|
+
type_=typing.Any, # type: ignore
|
|
1013
|
+
object_=_response.json(),
|
|
1014
|
+
),
|
|
1015
|
+
),
|
|
1016
|
+
)
|
|
1017
|
+
if _response.status_code == 404:
|
|
1018
|
+
raise NotFoundError(
|
|
1019
|
+
headers=dict(_response.headers),
|
|
1020
|
+
body=typing.cast(
|
|
1021
|
+
typing.Any,
|
|
1022
|
+
construct_type(
|
|
1023
|
+
type_=typing.Any, # type: ignore
|
|
1024
|
+
object_=_response.json(),
|
|
1025
|
+
),
|
|
1026
|
+
),
|
|
1027
|
+
)
|
|
1028
|
+
_response_json = _response.json()
|
|
1029
|
+
except JSONDecodeError:
|
|
1030
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1031
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1032
|
+
|
|
1033
|
+
async def update_webhook(
|
|
1034
|
+
self,
|
|
1035
|
+
webhook_id: int,
|
|
1036
|
+
*,
|
|
1037
|
+
auth: typing.Optional[UpdateWebhookRequestAuth] = OMIT,
|
|
1038
|
+
batched: typing.Optional[bool] = OMIT,
|
|
1039
|
+
description: typing.Optional[str] = OMIT,
|
|
1040
|
+
domain: typing.Optional[str] = OMIT,
|
|
1041
|
+
events: typing.Optional[typing.Sequence[UpdateWebhookRequestEventsItem]] = OMIT,
|
|
1042
|
+
headers: typing.Optional[typing.Sequence[UpdateWebhookRequestHeadersItem]] = OMIT,
|
|
1043
|
+
url: typing.Optional[str] = OMIT,
|
|
1044
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1045
|
+
) -> AsyncHttpResponse[None]:
|
|
1046
|
+
"""
|
|
1047
|
+
Updates an existing webhook configuration and event subscriptions.
|
|
1048
|
+
|
|
1049
|
+
Use this to:
|
|
1050
|
+
- Modify webhook event subscriptions and triggers
|
|
1051
|
+
- Update webhook URL and endpoint configuration
|
|
1052
|
+
- Change authentication settings and credentials
|
|
1053
|
+
- Adjust custom headers and request parameters
|
|
1054
|
+
- Enable or disable specific webhook events
|
|
1055
|
+
|
|
1056
|
+
Key information returned:
|
|
1057
|
+
- Success confirmation of webhook updates
|
|
1058
|
+
|
|
1059
|
+
Parameters
|
|
1060
|
+
----------
|
|
1061
|
+
webhook_id : int
|
|
1062
|
+
Id of the webhook
|
|
1063
|
+
|
|
1064
|
+
auth : typing.Optional[UpdateWebhookRequestAuth]
|
|
1065
|
+
Add authentication on webhook url
|
|
1066
|
+
|
|
1067
|
+
batched : typing.Optional[bool]
|
|
1068
|
+
To send batched webhooks
|
|
1069
|
+
|
|
1070
|
+
description : typing.Optional[str]
|
|
1071
|
+
Description of the webhook
|
|
1072
|
+
|
|
1073
|
+
domain : typing.Optional[str]
|
|
1074
|
+
Inbound domain of webhook, used in case of event type `inbound`
|
|
1075
|
+
|
|
1076
|
+
events : typing.Optional[typing.Sequence[UpdateWebhookRequestEventsItem]]
|
|
1077
|
+
- Events triggering the webhook. Possible values for
|
|
1078
|
+
**Transactional** type webhook: #### `sent` OR `request`,
|
|
1079
|
+
`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
|
|
1080
|
+
`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
|
|
1081
|
+
`unsubscribed` - Possible values for **Marketing** type webhook:
|
|
1082
|
+
#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
|
|
1083
|
+
`unsubscribed`, `listAddition` & `delivered` - Possible values
|
|
1084
|
+
for **Inbound** type webhook: #### `inboundEmailProcessed`
|
|
1085
|
+
|
|
1086
|
+
headers : typing.Optional[typing.Sequence[UpdateWebhookRequestHeadersItem]]
|
|
1087
|
+
Custom headers to be send with webhooks
|
|
1088
|
+
|
|
1089
|
+
url : typing.Optional[str]
|
|
1090
|
+
URL of the webhook
|
|
1091
|
+
|
|
1092
|
+
request_options : typing.Optional[RequestOptions]
|
|
1093
|
+
Request-specific configuration.
|
|
1094
|
+
|
|
1095
|
+
Returns
|
|
1096
|
+
-------
|
|
1097
|
+
AsyncHttpResponse[None]
|
|
1098
|
+
"""
|
|
1099
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1100
|
+
f"webhooks/{jsonable_encoder(webhook_id)}",
|
|
1101
|
+
method="PUT",
|
|
1102
|
+
json={
|
|
1103
|
+
"auth": convert_and_respect_annotation_metadata(
|
|
1104
|
+
object_=auth, annotation=UpdateWebhookRequestAuth, direction="write"
|
|
1105
|
+
),
|
|
1106
|
+
"batched": batched,
|
|
1107
|
+
"description": description,
|
|
1108
|
+
"domain": domain,
|
|
1109
|
+
"events": events,
|
|
1110
|
+
"headers": convert_and_respect_annotation_metadata(
|
|
1111
|
+
object_=headers, annotation=typing.Sequence[UpdateWebhookRequestHeadersItem], direction="write"
|
|
1112
|
+
),
|
|
1113
|
+
"url": url,
|
|
1114
|
+
},
|
|
1115
|
+
headers={
|
|
1116
|
+
"content-type": "application/json",
|
|
1117
|
+
},
|
|
1118
|
+
request_options=request_options,
|
|
1119
|
+
omit=OMIT,
|
|
1120
|
+
)
|
|
1121
|
+
try:
|
|
1122
|
+
if 200 <= _response.status_code < 300:
|
|
1123
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1124
|
+
if _response.status_code == 400:
|
|
1125
|
+
raise BadRequestError(
|
|
1126
|
+
headers=dict(_response.headers),
|
|
1127
|
+
body=typing.cast(
|
|
1128
|
+
typing.Any,
|
|
1129
|
+
construct_type(
|
|
1130
|
+
type_=typing.Any, # type: ignore
|
|
1131
|
+
object_=_response.json(),
|
|
1132
|
+
),
|
|
1133
|
+
),
|
|
1134
|
+
)
|
|
1135
|
+
if _response.status_code == 404:
|
|
1136
|
+
raise NotFoundError(
|
|
1137
|
+
headers=dict(_response.headers),
|
|
1138
|
+
body=typing.cast(
|
|
1139
|
+
typing.Any,
|
|
1140
|
+
construct_type(
|
|
1141
|
+
type_=typing.Any, # type: ignore
|
|
1142
|
+
object_=_response.json(),
|
|
1143
|
+
),
|
|
1144
|
+
),
|
|
1145
|
+
)
|
|
1146
|
+
_response_json = _response.json()
|
|
1147
|
+
except JSONDecodeError:
|
|
1148
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1149
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1150
|
+
|
|
1151
|
+
async def delete_webhook(
|
|
1152
|
+
self, webhook_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
1153
|
+
) -> AsyncHttpResponse[None]:
|
|
1154
|
+
"""
|
|
1155
|
+
Permanently deletes a webhook and stops all event notifications.
|
|
1156
|
+
|
|
1157
|
+
Use this to:
|
|
1158
|
+
- Remove unused or obsolete webhook configurations
|
|
1159
|
+
- Clean up webhook endpoints and subscriptions
|
|
1160
|
+
- Stop event notifications to specific URLs
|
|
1161
|
+
- Maintain organized webhook management
|
|
1162
|
+
|
|
1163
|
+
Key information returned:
|
|
1164
|
+
- Success confirmation of webhook deletion
|
|
1165
|
+
|
|
1166
|
+
Parameters
|
|
1167
|
+
----------
|
|
1168
|
+
webhook_id : int
|
|
1169
|
+
Id of the webhook
|
|
1170
|
+
|
|
1171
|
+
request_options : typing.Optional[RequestOptions]
|
|
1172
|
+
Request-specific configuration.
|
|
1173
|
+
|
|
1174
|
+
Returns
|
|
1175
|
+
-------
|
|
1176
|
+
AsyncHttpResponse[None]
|
|
1177
|
+
"""
|
|
1178
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1179
|
+
f"webhooks/{jsonable_encoder(webhook_id)}",
|
|
1180
|
+
method="DELETE",
|
|
1181
|
+
request_options=request_options,
|
|
1182
|
+
)
|
|
1183
|
+
try:
|
|
1184
|
+
if 200 <= _response.status_code < 300:
|
|
1185
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1186
|
+
if _response.status_code == 400:
|
|
1187
|
+
raise BadRequestError(
|
|
1188
|
+
headers=dict(_response.headers),
|
|
1189
|
+
body=typing.cast(
|
|
1190
|
+
typing.Any,
|
|
1191
|
+
construct_type(
|
|
1192
|
+
type_=typing.Any, # type: ignore
|
|
1193
|
+
object_=_response.json(),
|
|
1194
|
+
),
|
|
1195
|
+
),
|
|
1196
|
+
)
|
|
1197
|
+
if _response.status_code == 404:
|
|
1198
|
+
raise NotFoundError(
|
|
1199
|
+
headers=dict(_response.headers),
|
|
1200
|
+
body=typing.cast(
|
|
1201
|
+
typing.Any,
|
|
1202
|
+
construct_type(
|
|
1203
|
+
type_=typing.Any, # type: ignore
|
|
1204
|
+
object_=_response.json(),
|
|
1205
|
+
),
|
|
1206
|
+
),
|
|
1207
|
+
)
|
|
1208
|
+
_response_json = _response.json()
|
|
1209
|
+
except JSONDecodeError:
|
|
1210
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1211
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|