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,1089 @@
|
|
|
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.create_sender_request_ips_item import CreateSenderRequestIpsItem
|
|
16
|
+
from .types.create_sender_response import CreateSenderResponse
|
|
17
|
+
from .types.get_ips_from_sender_response import GetIpsFromSenderResponse
|
|
18
|
+
from .types.get_ips_response import GetIpsResponse
|
|
19
|
+
from .types.get_senders_response import GetSendersResponse
|
|
20
|
+
from .types.update_sender_request_ips_item import UpdateSenderRequestIpsItem
|
|
21
|
+
|
|
22
|
+
# this is used as the default value for optional parameters
|
|
23
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class RawSendersClient:
|
|
27
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
28
|
+
self._client_wrapper = client_wrapper
|
|
29
|
+
|
|
30
|
+
def get_senders(
|
|
31
|
+
self,
|
|
32
|
+
*,
|
|
33
|
+
ip: typing.Optional[str] = None,
|
|
34
|
+
domain: typing.Optional[str] = None,
|
|
35
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
36
|
+
) -> HttpResponse[GetSendersResponse]:
|
|
37
|
+
"""
|
|
38
|
+
Retrieves a list of all email senders from your Brevo account with optional filtering.
|
|
39
|
+
|
|
40
|
+
**Use this to:**
|
|
41
|
+
- Get all available senders for email campaign setup
|
|
42
|
+
- Find sender details including ID, name, and email address
|
|
43
|
+
- Filter senders by IP address for dedicated IP users
|
|
44
|
+
- Filter senders by domain for domain-specific configurations
|
|
45
|
+
- Monitor sender configuration and status
|
|
46
|
+
|
|
47
|
+
**Key information returned:**
|
|
48
|
+
- Sender details (ID, name, email address)
|
|
49
|
+
- Sender status and verification information
|
|
50
|
+
- Associated IP addresses and domains (for dedicated IP accounts)
|
|
51
|
+
- Sender configuration settings
|
|
52
|
+
|
|
53
|
+
**Important considerations:**
|
|
54
|
+
- Standard accounts show empty IP arrays, dedicated IP accounts show IP assignments
|
|
55
|
+
- Filtering by IP only available for accounts with dedicated IPs
|
|
56
|
+
- Domain filtering helps organize senders by business units or brands
|
|
57
|
+
- Sender status indicates if sender is active and ready for campaign use
|
|
58
|
+
- Email verification required before sender can be used in campaigns
|
|
59
|
+
|
|
60
|
+
Parameters
|
|
61
|
+
----------
|
|
62
|
+
ip : typing.Optional[str]
|
|
63
|
+
Filter your senders for a specific ip. **Available for dedicated IP usage only**
|
|
64
|
+
|
|
65
|
+
domain : typing.Optional[str]
|
|
66
|
+
Filter your senders for a specific domain
|
|
67
|
+
|
|
68
|
+
request_options : typing.Optional[RequestOptions]
|
|
69
|
+
Request-specific configuration.
|
|
70
|
+
|
|
71
|
+
Returns
|
|
72
|
+
-------
|
|
73
|
+
HttpResponse[GetSendersResponse]
|
|
74
|
+
List of senders retrieved successfully
|
|
75
|
+
"""
|
|
76
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
77
|
+
"senders",
|
|
78
|
+
method="GET",
|
|
79
|
+
params={
|
|
80
|
+
"ip": ip,
|
|
81
|
+
"domain": domain,
|
|
82
|
+
},
|
|
83
|
+
request_options=request_options,
|
|
84
|
+
)
|
|
85
|
+
try:
|
|
86
|
+
if 200 <= _response.status_code < 300:
|
|
87
|
+
_data = typing.cast(
|
|
88
|
+
GetSendersResponse,
|
|
89
|
+
construct_type(
|
|
90
|
+
type_=GetSendersResponse, # type: ignore
|
|
91
|
+
object_=_response.json(),
|
|
92
|
+
),
|
|
93
|
+
)
|
|
94
|
+
return HttpResponse(response=_response, data=_data)
|
|
95
|
+
if _response.status_code == 400:
|
|
96
|
+
raise BadRequestError(
|
|
97
|
+
headers=dict(_response.headers),
|
|
98
|
+
body=typing.cast(
|
|
99
|
+
typing.Any,
|
|
100
|
+
construct_type(
|
|
101
|
+
type_=typing.Any, # type: ignore
|
|
102
|
+
object_=_response.json(),
|
|
103
|
+
),
|
|
104
|
+
),
|
|
105
|
+
)
|
|
106
|
+
_response_json = _response.json()
|
|
107
|
+
except JSONDecodeError:
|
|
108
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
109
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
110
|
+
|
|
111
|
+
def create_sender(
|
|
112
|
+
self,
|
|
113
|
+
*,
|
|
114
|
+
email: str,
|
|
115
|
+
name: str,
|
|
116
|
+
ips: typing.Optional[typing.Sequence[CreateSenderRequestIpsItem]] = OMIT,
|
|
117
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
118
|
+
) -> HttpResponse[CreateSenderResponse]:
|
|
119
|
+
"""
|
|
120
|
+
Creates a new email sender in your Brevo account.
|
|
121
|
+
|
|
122
|
+
**Use this to:**
|
|
123
|
+
- Add new senders for email campaigns
|
|
124
|
+
- Configure sender identity (name and email)
|
|
125
|
+
- Associate dedicated IPs with the sender (for dedicated IP accounts)
|
|
126
|
+
- Set up domain-based sender configurations
|
|
127
|
+
|
|
128
|
+
**Key information returned:**
|
|
129
|
+
- Created sender ID
|
|
130
|
+
- DKIM and SPF configuration status
|
|
131
|
+
- Success confirmation
|
|
132
|
+
|
|
133
|
+
**Important considerations:**
|
|
134
|
+
- Verification email sent to specified sender address
|
|
135
|
+
- DKIM and SPF configuration affects deliverability
|
|
136
|
+
- Dedicated IP accounts require IP association during creation
|
|
137
|
+
- IP weights must sum to 100 when specified
|
|
138
|
+
- Sender must be verified before use in campaigns
|
|
139
|
+
|
|
140
|
+
Parameters
|
|
141
|
+
----------
|
|
142
|
+
email : str
|
|
143
|
+
From email to use for the sender. A verification email will be
|
|
144
|
+
sent to this address.
|
|
145
|
+
|
|
146
|
+
name : str
|
|
147
|
+
From Name to use for the sender
|
|
148
|
+
|
|
149
|
+
ips : typing.Optional[typing.Sequence[CreateSenderRequestIpsItem]]
|
|
150
|
+
**Mandatory in case of dedicated IP**. IPs to associate to the
|
|
151
|
+
sender. Not required for standard accounts.
|
|
152
|
+
|
|
153
|
+
request_options : typing.Optional[RequestOptions]
|
|
154
|
+
Request-specific configuration.
|
|
155
|
+
|
|
156
|
+
Returns
|
|
157
|
+
-------
|
|
158
|
+
HttpResponse[CreateSenderResponse]
|
|
159
|
+
Sender created successfully
|
|
160
|
+
"""
|
|
161
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
162
|
+
"senders",
|
|
163
|
+
method="POST",
|
|
164
|
+
json={
|
|
165
|
+
"email": email,
|
|
166
|
+
"ips": convert_and_respect_annotation_metadata(
|
|
167
|
+
object_=ips, annotation=typing.Sequence[CreateSenderRequestIpsItem], direction="write"
|
|
168
|
+
),
|
|
169
|
+
"name": name,
|
|
170
|
+
},
|
|
171
|
+
headers={
|
|
172
|
+
"content-type": "application/json",
|
|
173
|
+
},
|
|
174
|
+
request_options=request_options,
|
|
175
|
+
omit=OMIT,
|
|
176
|
+
)
|
|
177
|
+
try:
|
|
178
|
+
if 200 <= _response.status_code < 300:
|
|
179
|
+
_data = typing.cast(
|
|
180
|
+
CreateSenderResponse,
|
|
181
|
+
construct_type(
|
|
182
|
+
type_=CreateSenderResponse, # type: ignore
|
|
183
|
+
object_=_response.json(),
|
|
184
|
+
),
|
|
185
|
+
)
|
|
186
|
+
return HttpResponse(response=_response, data=_data)
|
|
187
|
+
if _response.status_code == 400:
|
|
188
|
+
raise BadRequestError(
|
|
189
|
+
headers=dict(_response.headers),
|
|
190
|
+
body=typing.cast(
|
|
191
|
+
typing.Any,
|
|
192
|
+
construct_type(
|
|
193
|
+
type_=typing.Any, # type: ignore
|
|
194
|
+
object_=_response.json(),
|
|
195
|
+
),
|
|
196
|
+
),
|
|
197
|
+
)
|
|
198
|
+
_response_json = _response.json()
|
|
199
|
+
except JSONDecodeError:
|
|
200
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
201
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
202
|
+
|
|
203
|
+
def get_ips(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[GetIpsResponse]:
|
|
204
|
+
"""
|
|
205
|
+
Retrieves all dedicated IPs associated with your Brevo account.
|
|
206
|
+
|
|
207
|
+
Use this to:
|
|
208
|
+
- List all your dedicated IPs
|
|
209
|
+
- Check the status of your dedicated IPs (active/inactive)
|
|
210
|
+
- Find IP addresses and associated domains for configuration purposes
|
|
211
|
+
- Monitor your IP reputation and deliverability
|
|
212
|
+
- Verify available IPs for sender configuration
|
|
213
|
+
|
|
214
|
+
Key information returned:
|
|
215
|
+
- IP ID and address
|
|
216
|
+
- Associated domain
|
|
217
|
+
- Active status
|
|
218
|
+
- IP configuration details
|
|
219
|
+
|
|
220
|
+
Parameters
|
|
221
|
+
----------
|
|
222
|
+
request_options : typing.Optional[RequestOptions]
|
|
223
|
+
Request-specific configuration.
|
|
224
|
+
|
|
225
|
+
Returns
|
|
226
|
+
-------
|
|
227
|
+
HttpResponse[GetIpsResponse]
|
|
228
|
+
List of dedicated IPs retrieved successfully
|
|
229
|
+
"""
|
|
230
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
231
|
+
"senders/ips",
|
|
232
|
+
method="GET",
|
|
233
|
+
request_options=request_options,
|
|
234
|
+
)
|
|
235
|
+
try:
|
|
236
|
+
if 200 <= _response.status_code < 300:
|
|
237
|
+
_data = typing.cast(
|
|
238
|
+
GetIpsResponse,
|
|
239
|
+
construct_type(
|
|
240
|
+
type_=GetIpsResponse, # type: ignore
|
|
241
|
+
object_=_response.json(),
|
|
242
|
+
),
|
|
243
|
+
)
|
|
244
|
+
return HttpResponse(response=_response, data=_data)
|
|
245
|
+
if _response.status_code == 400:
|
|
246
|
+
raise BadRequestError(
|
|
247
|
+
headers=dict(_response.headers),
|
|
248
|
+
body=typing.cast(
|
|
249
|
+
typing.Any,
|
|
250
|
+
construct_type(
|
|
251
|
+
type_=typing.Any, # type: ignore
|
|
252
|
+
object_=_response.json(),
|
|
253
|
+
),
|
|
254
|
+
),
|
|
255
|
+
)
|
|
256
|
+
_response_json = _response.json()
|
|
257
|
+
except JSONDecodeError:
|
|
258
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
259
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
260
|
+
|
|
261
|
+
def update_sender(
|
|
262
|
+
self,
|
|
263
|
+
sender_id: int,
|
|
264
|
+
*,
|
|
265
|
+
email: typing.Optional[str] = OMIT,
|
|
266
|
+
ips: typing.Optional[typing.Sequence[UpdateSenderRequestIpsItem]] = OMIT,
|
|
267
|
+
name: typing.Optional[str] = OMIT,
|
|
268
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
269
|
+
) -> HttpResponse[None]:
|
|
270
|
+
"""
|
|
271
|
+
Updates an existing email sender's configuration.
|
|
272
|
+
|
|
273
|
+
Use this to:
|
|
274
|
+
- Modify sender display name or email address
|
|
275
|
+
- Update dedicated IP associations
|
|
276
|
+
- Change sender configuration settings
|
|
277
|
+
- Correct sender information
|
|
278
|
+
|
|
279
|
+
Key information returned:
|
|
280
|
+
- Success confirmation
|
|
281
|
+
- Updated sender details
|
|
282
|
+
|
|
283
|
+
Parameters
|
|
284
|
+
----------
|
|
285
|
+
sender_id : int
|
|
286
|
+
Id of the sender
|
|
287
|
+
|
|
288
|
+
email : typing.Optional[str]
|
|
289
|
+
From Email to update the sender
|
|
290
|
+
|
|
291
|
+
ips : typing.Optional[typing.Sequence[UpdateSenderRequestIpsItem]]
|
|
292
|
+
**Only in case of dedicated IP**. IPs to associate to the
|
|
293
|
+
sender. If passed, will replace all the existing IPs. Not required for standard accounts.
|
|
294
|
+
|
|
295
|
+
name : typing.Optional[str]
|
|
296
|
+
From Name to update the sender
|
|
297
|
+
|
|
298
|
+
request_options : typing.Optional[RequestOptions]
|
|
299
|
+
Request-specific configuration.
|
|
300
|
+
|
|
301
|
+
Returns
|
|
302
|
+
-------
|
|
303
|
+
HttpResponse[None]
|
|
304
|
+
"""
|
|
305
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
306
|
+
f"senders/{jsonable_encoder(sender_id)}",
|
|
307
|
+
method="PUT",
|
|
308
|
+
json={
|
|
309
|
+
"email": email,
|
|
310
|
+
"ips": convert_and_respect_annotation_metadata(
|
|
311
|
+
object_=ips, annotation=typing.Sequence[UpdateSenderRequestIpsItem], direction="write"
|
|
312
|
+
),
|
|
313
|
+
"name": name,
|
|
314
|
+
},
|
|
315
|
+
headers={
|
|
316
|
+
"content-type": "application/json",
|
|
317
|
+
},
|
|
318
|
+
request_options=request_options,
|
|
319
|
+
omit=OMIT,
|
|
320
|
+
)
|
|
321
|
+
try:
|
|
322
|
+
if 200 <= _response.status_code < 300:
|
|
323
|
+
return HttpResponse(response=_response, data=None)
|
|
324
|
+
if _response.status_code == 400:
|
|
325
|
+
raise BadRequestError(
|
|
326
|
+
headers=dict(_response.headers),
|
|
327
|
+
body=typing.cast(
|
|
328
|
+
typing.Any,
|
|
329
|
+
construct_type(
|
|
330
|
+
type_=typing.Any, # type: ignore
|
|
331
|
+
object_=_response.json(),
|
|
332
|
+
),
|
|
333
|
+
),
|
|
334
|
+
)
|
|
335
|
+
if _response.status_code == 404:
|
|
336
|
+
raise NotFoundError(
|
|
337
|
+
headers=dict(_response.headers),
|
|
338
|
+
body=typing.cast(
|
|
339
|
+
typing.Any,
|
|
340
|
+
construct_type(
|
|
341
|
+
type_=typing.Any, # type: ignore
|
|
342
|
+
object_=_response.json(),
|
|
343
|
+
),
|
|
344
|
+
),
|
|
345
|
+
)
|
|
346
|
+
_response_json = _response.json()
|
|
347
|
+
except JSONDecodeError:
|
|
348
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
349
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
350
|
+
|
|
351
|
+
def delete_sender(
|
|
352
|
+
self, sender_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
353
|
+
) -> HttpResponse[None]:
|
|
354
|
+
"""
|
|
355
|
+
Deletes an email sender from your Brevo account.
|
|
356
|
+
|
|
357
|
+
Use this to:
|
|
358
|
+
- Remove senders that are no longer needed
|
|
359
|
+
- Clean up sender configurations
|
|
360
|
+
- Remove duplicate or test senders
|
|
361
|
+
|
|
362
|
+
Key information returned:
|
|
363
|
+
- Success confirmation message
|
|
364
|
+
|
|
365
|
+
Parameters
|
|
366
|
+
----------
|
|
367
|
+
sender_id : int
|
|
368
|
+
Id of the sender
|
|
369
|
+
|
|
370
|
+
request_options : typing.Optional[RequestOptions]
|
|
371
|
+
Request-specific configuration.
|
|
372
|
+
|
|
373
|
+
Returns
|
|
374
|
+
-------
|
|
375
|
+
HttpResponse[None]
|
|
376
|
+
"""
|
|
377
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
378
|
+
f"senders/{jsonable_encoder(sender_id)}",
|
|
379
|
+
method="DELETE",
|
|
380
|
+
request_options=request_options,
|
|
381
|
+
)
|
|
382
|
+
try:
|
|
383
|
+
if 200 <= _response.status_code < 300:
|
|
384
|
+
return HttpResponse(response=_response, data=None)
|
|
385
|
+
if _response.status_code == 400:
|
|
386
|
+
raise BadRequestError(
|
|
387
|
+
headers=dict(_response.headers),
|
|
388
|
+
body=typing.cast(
|
|
389
|
+
typing.Any,
|
|
390
|
+
construct_type(
|
|
391
|
+
type_=typing.Any, # type: ignore
|
|
392
|
+
object_=_response.json(),
|
|
393
|
+
),
|
|
394
|
+
),
|
|
395
|
+
)
|
|
396
|
+
if _response.status_code == 404:
|
|
397
|
+
raise NotFoundError(
|
|
398
|
+
headers=dict(_response.headers),
|
|
399
|
+
body=typing.cast(
|
|
400
|
+
typing.Any,
|
|
401
|
+
construct_type(
|
|
402
|
+
type_=typing.Any, # type: ignore
|
|
403
|
+
object_=_response.json(),
|
|
404
|
+
),
|
|
405
|
+
),
|
|
406
|
+
)
|
|
407
|
+
_response_json = _response.json()
|
|
408
|
+
except JSONDecodeError:
|
|
409
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
410
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
411
|
+
|
|
412
|
+
def get_ips_from_sender(
|
|
413
|
+
self, sender_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
414
|
+
) -> HttpResponse[GetIpsFromSenderResponse]:
|
|
415
|
+
"""
|
|
416
|
+
Retrieves the dedicated IPs associated with a specific sender.
|
|
417
|
+
|
|
418
|
+
Use this to:
|
|
419
|
+
- Check IP configuration for a sender
|
|
420
|
+
- Verify dedicated IP associations
|
|
421
|
+
- Get IP details for troubleshooting
|
|
422
|
+
- Monitor sender IP configuration
|
|
423
|
+
|
|
424
|
+
Key information returned:
|
|
425
|
+
- List of associated dedicated IPs
|
|
426
|
+
- IP addresses and domain configurations
|
|
427
|
+
- IP status and settings
|
|
428
|
+
|
|
429
|
+
Parameters
|
|
430
|
+
----------
|
|
431
|
+
sender_id : int
|
|
432
|
+
Id of the sender
|
|
433
|
+
|
|
434
|
+
request_options : typing.Optional[RequestOptions]
|
|
435
|
+
Request-specific configuration.
|
|
436
|
+
|
|
437
|
+
Returns
|
|
438
|
+
-------
|
|
439
|
+
HttpResponse[GetIpsFromSenderResponse]
|
|
440
|
+
List of dedicated IPs retrieved successfully
|
|
441
|
+
"""
|
|
442
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
443
|
+
f"senders/{jsonable_encoder(sender_id)}/ips",
|
|
444
|
+
method="GET",
|
|
445
|
+
request_options=request_options,
|
|
446
|
+
)
|
|
447
|
+
try:
|
|
448
|
+
if 200 <= _response.status_code < 300:
|
|
449
|
+
_data = typing.cast(
|
|
450
|
+
GetIpsFromSenderResponse,
|
|
451
|
+
construct_type(
|
|
452
|
+
type_=GetIpsFromSenderResponse, # type: ignore
|
|
453
|
+
object_=_response.json(),
|
|
454
|
+
),
|
|
455
|
+
)
|
|
456
|
+
return HttpResponse(response=_response, data=_data)
|
|
457
|
+
if _response.status_code == 400:
|
|
458
|
+
raise BadRequestError(
|
|
459
|
+
headers=dict(_response.headers),
|
|
460
|
+
body=typing.cast(
|
|
461
|
+
typing.Any,
|
|
462
|
+
construct_type(
|
|
463
|
+
type_=typing.Any, # type: ignore
|
|
464
|
+
object_=_response.json(),
|
|
465
|
+
),
|
|
466
|
+
),
|
|
467
|
+
)
|
|
468
|
+
if _response.status_code == 404:
|
|
469
|
+
raise NotFoundError(
|
|
470
|
+
headers=dict(_response.headers),
|
|
471
|
+
body=typing.cast(
|
|
472
|
+
typing.Any,
|
|
473
|
+
construct_type(
|
|
474
|
+
type_=typing.Any, # type: ignore
|
|
475
|
+
object_=_response.json(),
|
|
476
|
+
),
|
|
477
|
+
),
|
|
478
|
+
)
|
|
479
|
+
_response_json = _response.json()
|
|
480
|
+
except JSONDecodeError:
|
|
481
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
482
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
483
|
+
|
|
484
|
+
def validate_sender_by_otp(
|
|
485
|
+
self, sender_id: int, *, otp: int, request_options: typing.Optional[RequestOptions] = None
|
|
486
|
+
) -> HttpResponse[None]:
|
|
487
|
+
"""
|
|
488
|
+
Validates a sender using the OTP (One-Time Password) received via email.
|
|
489
|
+
|
|
490
|
+
Use this to:
|
|
491
|
+
- Complete sender verification process
|
|
492
|
+
- Activate a newly created sender
|
|
493
|
+
- Verify ownership of the sender email address
|
|
494
|
+
- Enable the sender for use in email campaigns
|
|
495
|
+
|
|
496
|
+
Key information returned:
|
|
497
|
+
- Success confirmation of sender verification
|
|
498
|
+
- Sender activation status
|
|
499
|
+
|
|
500
|
+
Parameters
|
|
501
|
+
----------
|
|
502
|
+
sender_id : int
|
|
503
|
+
Id of the sender
|
|
504
|
+
|
|
505
|
+
otp : int
|
|
506
|
+
6 digit OTP received on email
|
|
507
|
+
|
|
508
|
+
request_options : typing.Optional[RequestOptions]
|
|
509
|
+
Request-specific configuration.
|
|
510
|
+
|
|
511
|
+
Returns
|
|
512
|
+
-------
|
|
513
|
+
HttpResponse[None]
|
|
514
|
+
"""
|
|
515
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
516
|
+
f"senders/{jsonable_encoder(sender_id)}/validate",
|
|
517
|
+
method="PUT",
|
|
518
|
+
json={
|
|
519
|
+
"otp": otp,
|
|
520
|
+
},
|
|
521
|
+
headers={
|
|
522
|
+
"content-type": "application/json",
|
|
523
|
+
},
|
|
524
|
+
request_options=request_options,
|
|
525
|
+
omit=OMIT,
|
|
526
|
+
)
|
|
527
|
+
try:
|
|
528
|
+
if 200 <= _response.status_code < 300:
|
|
529
|
+
return HttpResponse(response=_response, data=None)
|
|
530
|
+
if _response.status_code == 400:
|
|
531
|
+
raise BadRequestError(
|
|
532
|
+
headers=dict(_response.headers),
|
|
533
|
+
body=typing.cast(
|
|
534
|
+
typing.Any,
|
|
535
|
+
construct_type(
|
|
536
|
+
type_=typing.Any, # type: ignore
|
|
537
|
+
object_=_response.json(),
|
|
538
|
+
),
|
|
539
|
+
),
|
|
540
|
+
)
|
|
541
|
+
if _response.status_code == 404:
|
|
542
|
+
raise NotFoundError(
|
|
543
|
+
headers=dict(_response.headers),
|
|
544
|
+
body=typing.cast(
|
|
545
|
+
typing.Any,
|
|
546
|
+
construct_type(
|
|
547
|
+
type_=typing.Any, # type: ignore
|
|
548
|
+
object_=_response.json(),
|
|
549
|
+
),
|
|
550
|
+
),
|
|
551
|
+
)
|
|
552
|
+
_response_json = _response.json()
|
|
553
|
+
except JSONDecodeError:
|
|
554
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
555
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
class AsyncRawSendersClient:
|
|
559
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
560
|
+
self._client_wrapper = client_wrapper
|
|
561
|
+
|
|
562
|
+
async def get_senders(
|
|
563
|
+
self,
|
|
564
|
+
*,
|
|
565
|
+
ip: typing.Optional[str] = None,
|
|
566
|
+
domain: typing.Optional[str] = None,
|
|
567
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
568
|
+
) -> AsyncHttpResponse[GetSendersResponse]:
|
|
569
|
+
"""
|
|
570
|
+
Retrieves a list of all email senders from your Brevo account with optional filtering.
|
|
571
|
+
|
|
572
|
+
**Use this to:**
|
|
573
|
+
- Get all available senders for email campaign setup
|
|
574
|
+
- Find sender details including ID, name, and email address
|
|
575
|
+
- Filter senders by IP address for dedicated IP users
|
|
576
|
+
- Filter senders by domain for domain-specific configurations
|
|
577
|
+
- Monitor sender configuration and status
|
|
578
|
+
|
|
579
|
+
**Key information returned:**
|
|
580
|
+
- Sender details (ID, name, email address)
|
|
581
|
+
- Sender status and verification information
|
|
582
|
+
- Associated IP addresses and domains (for dedicated IP accounts)
|
|
583
|
+
- Sender configuration settings
|
|
584
|
+
|
|
585
|
+
**Important considerations:**
|
|
586
|
+
- Standard accounts show empty IP arrays, dedicated IP accounts show IP assignments
|
|
587
|
+
- Filtering by IP only available for accounts with dedicated IPs
|
|
588
|
+
- Domain filtering helps organize senders by business units or brands
|
|
589
|
+
- Sender status indicates if sender is active and ready for campaign use
|
|
590
|
+
- Email verification required before sender can be used in campaigns
|
|
591
|
+
|
|
592
|
+
Parameters
|
|
593
|
+
----------
|
|
594
|
+
ip : typing.Optional[str]
|
|
595
|
+
Filter your senders for a specific ip. **Available for dedicated IP usage only**
|
|
596
|
+
|
|
597
|
+
domain : typing.Optional[str]
|
|
598
|
+
Filter your senders for a specific domain
|
|
599
|
+
|
|
600
|
+
request_options : typing.Optional[RequestOptions]
|
|
601
|
+
Request-specific configuration.
|
|
602
|
+
|
|
603
|
+
Returns
|
|
604
|
+
-------
|
|
605
|
+
AsyncHttpResponse[GetSendersResponse]
|
|
606
|
+
List of senders retrieved successfully
|
|
607
|
+
"""
|
|
608
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
609
|
+
"senders",
|
|
610
|
+
method="GET",
|
|
611
|
+
params={
|
|
612
|
+
"ip": ip,
|
|
613
|
+
"domain": domain,
|
|
614
|
+
},
|
|
615
|
+
request_options=request_options,
|
|
616
|
+
)
|
|
617
|
+
try:
|
|
618
|
+
if 200 <= _response.status_code < 300:
|
|
619
|
+
_data = typing.cast(
|
|
620
|
+
GetSendersResponse,
|
|
621
|
+
construct_type(
|
|
622
|
+
type_=GetSendersResponse, # type: ignore
|
|
623
|
+
object_=_response.json(),
|
|
624
|
+
),
|
|
625
|
+
)
|
|
626
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
627
|
+
if _response.status_code == 400:
|
|
628
|
+
raise BadRequestError(
|
|
629
|
+
headers=dict(_response.headers),
|
|
630
|
+
body=typing.cast(
|
|
631
|
+
typing.Any,
|
|
632
|
+
construct_type(
|
|
633
|
+
type_=typing.Any, # type: ignore
|
|
634
|
+
object_=_response.json(),
|
|
635
|
+
),
|
|
636
|
+
),
|
|
637
|
+
)
|
|
638
|
+
_response_json = _response.json()
|
|
639
|
+
except JSONDecodeError:
|
|
640
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
641
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
642
|
+
|
|
643
|
+
async def create_sender(
|
|
644
|
+
self,
|
|
645
|
+
*,
|
|
646
|
+
email: str,
|
|
647
|
+
name: str,
|
|
648
|
+
ips: typing.Optional[typing.Sequence[CreateSenderRequestIpsItem]] = OMIT,
|
|
649
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
650
|
+
) -> AsyncHttpResponse[CreateSenderResponse]:
|
|
651
|
+
"""
|
|
652
|
+
Creates a new email sender in your Brevo account.
|
|
653
|
+
|
|
654
|
+
**Use this to:**
|
|
655
|
+
- Add new senders for email campaigns
|
|
656
|
+
- Configure sender identity (name and email)
|
|
657
|
+
- Associate dedicated IPs with the sender (for dedicated IP accounts)
|
|
658
|
+
- Set up domain-based sender configurations
|
|
659
|
+
|
|
660
|
+
**Key information returned:**
|
|
661
|
+
- Created sender ID
|
|
662
|
+
- DKIM and SPF configuration status
|
|
663
|
+
- Success confirmation
|
|
664
|
+
|
|
665
|
+
**Important considerations:**
|
|
666
|
+
- Verification email sent to specified sender address
|
|
667
|
+
- DKIM and SPF configuration affects deliverability
|
|
668
|
+
- Dedicated IP accounts require IP association during creation
|
|
669
|
+
- IP weights must sum to 100 when specified
|
|
670
|
+
- Sender must be verified before use in campaigns
|
|
671
|
+
|
|
672
|
+
Parameters
|
|
673
|
+
----------
|
|
674
|
+
email : str
|
|
675
|
+
From email to use for the sender. A verification email will be
|
|
676
|
+
sent to this address.
|
|
677
|
+
|
|
678
|
+
name : str
|
|
679
|
+
From Name to use for the sender
|
|
680
|
+
|
|
681
|
+
ips : typing.Optional[typing.Sequence[CreateSenderRequestIpsItem]]
|
|
682
|
+
**Mandatory in case of dedicated IP**. IPs to associate to the
|
|
683
|
+
sender. Not required for standard accounts.
|
|
684
|
+
|
|
685
|
+
request_options : typing.Optional[RequestOptions]
|
|
686
|
+
Request-specific configuration.
|
|
687
|
+
|
|
688
|
+
Returns
|
|
689
|
+
-------
|
|
690
|
+
AsyncHttpResponse[CreateSenderResponse]
|
|
691
|
+
Sender created successfully
|
|
692
|
+
"""
|
|
693
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
694
|
+
"senders",
|
|
695
|
+
method="POST",
|
|
696
|
+
json={
|
|
697
|
+
"email": email,
|
|
698
|
+
"ips": convert_and_respect_annotation_metadata(
|
|
699
|
+
object_=ips, annotation=typing.Sequence[CreateSenderRequestIpsItem], direction="write"
|
|
700
|
+
),
|
|
701
|
+
"name": name,
|
|
702
|
+
},
|
|
703
|
+
headers={
|
|
704
|
+
"content-type": "application/json",
|
|
705
|
+
},
|
|
706
|
+
request_options=request_options,
|
|
707
|
+
omit=OMIT,
|
|
708
|
+
)
|
|
709
|
+
try:
|
|
710
|
+
if 200 <= _response.status_code < 300:
|
|
711
|
+
_data = typing.cast(
|
|
712
|
+
CreateSenderResponse,
|
|
713
|
+
construct_type(
|
|
714
|
+
type_=CreateSenderResponse, # type: ignore
|
|
715
|
+
object_=_response.json(),
|
|
716
|
+
),
|
|
717
|
+
)
|
|
718
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
719
|
+
if _response.status_code == 400:
|
|
720
|
+
raise BadRequestError(
|
|
721
|
+
headers=dict(_response.headers),
|
|
722
|
+
body=typing.cast(
|
|
723
|
+
typing.Any,
|
|
724
|
+
construct_type(
|
|
725
|
+
type_=typing.Any, # type: ignore
|
|
726
|
+
object_=_response.json(),
|
|
727
|
+
),
|
|
728
|
+
),
|
|
729
|
+
)
|
|
730
|
+
_response_json = _response.json()
|
|
731
|
+
except JSONDecodeError:
|
|
732
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
733
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
734
|
+
|
|
735
|
+
async def get_ips(
|
|
736
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
737
|
+
) -> AsyncHttpResponse[GetIpsResponse]:
|
|
738
|
+
"""
|
|
739
|
+
Retrieves all dedicated IPs associated with your Brevo account.
|
|
740
|
+
|
|
741
|
+
Use this to:
|
|
742
|
+
- List all your dedicated IPs
|
|
743
|
+
- Check the status of your dedicated IPs (active/inactive)
|
|
744
|
+
- Find IP addresses and associated domains for configuration purposes
|
|
745
|
+
- Monitor your IP reputation and deliverability
|
|
746
|
+
- Verify available IPs for sender configuration
|
|
747
|
+
|
|
748
|
+
Key information returned:
|
|
749
|
+
- IP ID and address
|
|
750
|
+
- Associated domain
|
|
751
|
+
- Active status
|
|
752
|
+
- IP configuration details
|
|
753
|
+
|
|
754
|
+
Parameters
|
|
755
|
+
----------
|
|
756
|
+
request_options : typing.Optional[RequestOptions]
|
|
757
|
+
Request-specific configuration.
|
|
758
|
+
|
|
759
|
+
Returns
|
|
760
|
+
-------
|
|
761
|
+
AsyncHttpResponse[GetIpsResponse]
|
|
762
|
+
List of dedicated IPs retrieved successfully
|
|
763
|
+
"""
|
|
764
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
765
|
+
"senders/ips",
|
|
766
|
+
method="GET",
|
|
767
|
+
request_options=request_options,
|
|
768
|
+
)
|
|
769
|
+
try:
|
|
770
|
+
if 200 <= _response.status_code < 300:
|
|
771
|
+
_data = typing.cast(
|
|
772
|
+
GetIpsResponse,
|
|
773
|
+
construct_type(
|
|
774
|
+
type_=GetIpsResponse, # type: ignore
|
|
775
|
+
object_=_response.json(),
|
|
776
|
+
),
|
|
777
|
+
)
|
|
778
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
779
|
+
if _response.status_code == 400:
|
|
780
|
+
raise BadRequestError(
|
|
781
|
+
headers=dict(_response.headers),
|
|
782
|
+
body=typing.cast(
|
|
783
|
+
typing.Any,
|
|
784
|
+
construct_type(
|
|
785
|
+
type_=typing.Any, # type: ignore
|
|
786
|
+
object_=_response.json(),
|
|
787
|
+
),
|
|
788
|
+
),
|
|
789
|
+
)
|
|
790
|
+
_response_json = _response.json()
|
|
791
|
+
except JSONDecodeError:
|
|
792
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
793
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
794
|
+
|
|
795
|
+
async def update_sender(
|
|
796
|
+
self,
|
|
797
|
+
sender_id: int,
|
|
798
|
+
*,
|
|
799
|
+
email: typing.Optional[str] = OMIT,
|
|
800
|
+
ips: typing.Optional[typing.Sequence[UpdateSenderRequestIpsItem]] = OMIT,
|
|
801
|
+
name: typing.Optional[str] = OMIT,
|
|
802
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
803
|
+
) -> AsyncHttpResponse[None]:
|
|
804
|
+
"""
|
|
805
|
+
Updates an existing email sender's configuration.
|
|
806
|
+
|
|
807
|
+
Use this to:
|
|
808
|
+
- Modify sender display name or email address
|
|
809
|
+
- Update dedicated IP associations
|
|
810
|
+
- Change sender configuration settings
|
|
811
|
+
- Correct sender information
|
|
812
|
+
|
|
813
|
+
Key information returned:
|
|
814
|
+
- Success confirmation
|
|
815
|
+
- Updated sender details
|
|
816
|
+
|
|
817
|
+
Parameters
|
|
818
|
+
----------
|
|
819
|
+
sender_id : int
|
|
820
|
+
Id of the sender
|
|
821
|
+
|
|
822
|
+
email : typing.Optional[str]
|
|
823
|
+
From Email to update the sender
|
|
824
|
+
|
|
825
|
+
ips : typing.Optional[typing.Sequence[UpdateSenderRequestIpsItem]]
|
|
826
|
+
**Only in case of dedicated IP**. IPs to associate to the
|
|
827
|
+
sender. If passed, will replace all the existing IPs. Not required for standard accounts.
|
|
828
|
+
|
|
829
|
+
name : typing.Optional[str]
|
|
830
|
+
From Name to update the sender
|
|
831
|
+
|
|
832
|
+
request_options : typing.Optional[RequestOptions]
|
|
833
|
+
Request-specific configuration.
|
|
834
|
+
|
|
835
|
+
Returns
|
|
836
|
+
-------
|
|
837
|
+
AsyncHttpResponse[None]
|
|
838
|
+
"""
|
|
839
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
840
|
+
f"senders/{jsonable_encoder(sender_id)}",
|
|
841
|
+
method="PUT",
|
|
842
|
+
json={
|
|
843
|
+
"email": email,
|
|
844
|
+
"ips": convert_and_respect_annotation_metadata(
|
|
845
|
+
object_=ips, annotation=typing.Sequence[UpdateSenderRequestIpsItem], direction="write"
|
|
846
|
+
),
|
|
847
|
+
"name": name,
|
|
848
|
+
},
|
|
849
|
+
headers={
|
|
850
|
+
"content-type": "application/json",
|
|
851
|
+
},
|
|
852
|
+
request_options=request_options,
|
|
853
|
+
omit=OMIT,
|
|
854
|
+
)
|
|
855
|
+
try:
|
|
856
|
+
if 200 <= _response.status_code < 300:
|
|
857
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
858
|
+
if _response.status_code == 400:
|
|
859
|
+
raise BadRequestError(
|
|
860
|
+
headers=dict(_response.headers),
|
|
861
|
+
body=typing.cast(
|
|
862
|
+
typing.Any,
|
|
863
|
+
construct_type(
|
|
864
|
+
type_=typing.Any, # type: ignore
|
|
865
|
+
object_=_response.json(),
|
|
866
|
+
),
|
|
867
|
+
),
|
|
868
|
+
)
|
|
869
|
+
if _response.status_code == 404:
|
|
870
|
+
raise NotFoundError(
|
|
871
|
+
headers=dict(_response.headers),
|
|
872
|
+
body=typing.cast(
|
|
873
|
+
typing.Any,
|
|
874
|
+
construct_type(
|
|
875
|
+
type_=typing.Any, # type: ignore
|
|
876
|
+
object_=_response.json(),
|
|
877
|
+
),
|
|
878
|
+
),
|
|
879
|
+
)
|
|
880
|
+
_response_json = _response.json()
|
|
881
|
+
except JSONDecodeError:
|
|
882
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
883
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
884
|
+
|
|
885
|
+
async def delete_sender(
|
|
886
|
+
self, sender_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
887
|
+
) -> AsyncHttpResponse[None]:
|
|
888
|
+
"""
|
|
889
|
+
Deletes an email sender from your Brevo account.
|
|
890
|
+
|
|
891
|
+
Use this to:
|
|
892
|
+
- Remove senders that are no longer needed
|
|
893
|
+
- Clean up sender configurations
|
|
894
|
+
- Remove duplicate or test senders
|
|
895
|
+
|
|
896
|
+
Key information returned:
|
|
897
|
+
- Success confirmation message
|
|
898
|
+
|
|
899
|
+
Parameters
|
|
900
|
+
----------
|
|
901
|
+
sender_id : int
|
|
902
|
+
Id of the sender
|
|
903
|
+
|
|
904
|
+
request_options : typing.Optional[RequestOptions]
|
|
905
|
+
Request-specific configuration.
|
|
906
|
+
|
|
907
|
+
Returns
|
|
908
|
+
-------
|
|
909
|
+
AsyncHttpResponse[None]
|
|
910
|
+
"""
|
|
911
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
912
|
+
f"senders/{jsonable_encoder(sender_id)}",
|
|
913
|
+
method="DELETE",
|
|
914
|
+
request_options=request_options,
|
|
915
|
+
)
|
|
916
|
+
try:
|
|
917
|
+
if 200 <= _response.status_code < 300:
|
|
918
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
919
|
+
if _response.status_code == 400:
|
|
920
|
+
raise BadRequestError(
|
|
921
|
+
headers=dict(_response.headers),
|
|
922
|
+
body=typing.cast(
|
|
923
|
+
typing.Any,
|
|
924
|
+
construct_type(
|
|
925
|
+
type_=typing.Any, # type: ignore
|
|
926
|
+
object_=_response.json(),
|
|
927
|
+
),
|
|
928
|
+
),
|
|
929
|
+
)
|
|
930
|
+
if _response.status_code == 404:
|
|
931
|
+
raise NotFoundError(
|
|
932
|
+
headers=dict(_response.headers),
|
|
933
|
+
body=typing.cast(
|
|
934
|
+
typing.Any,
|
|
935
|
+
construct_type(
|
|
936
|
+
type_=typing.Any, # type: ignore
|
|
937
|
+
object_=_response.json(),
|
|
938
|
+
),
|
|
939
|
+
),
|
|
940
|
+
)
|
|
941
|
+
_response_json = _response.json()
|
|
942
|
+
except JSONDecodeError:
|
|
943
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
944
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
945
|
+
|
|
946
|
+
async def get_ips_from_sender(
|
|
947
|
+
self, sender_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
948
|
+
) -> AsyncHttpResponse[GetIpsFromSenderResponse]:
|
|
949
|
+
"""
|
|
950
|
+
Retrieves the dedicated IPs associated with a specific sender.
|
|
951
|
+
|
|
952
|
+
Use this to:
|
|
953
|
+
- Check IP configuration for a sender
|
|
954
|
+
- Verify dedicated IP associations
|
|
955
|
+
- Get IP details for troubleshooting
|
|
956
|
+
- Monitor sender IP configuration
|
|
957
|
+
|
|
958
|
+
Key information returned:
|
|
959
|
+
- List of associated dedicated IPs
|
|
960
|
+
- IP addresses and domain configurations
|
|
961
|
+
- IP status and settings
|
|
962
|
+
|
|
963
|
+
Parameters
|
|
964
|
+
----------
|
|
965
|
+
sender_id : int
|
|
966
|
+
Id of the sender
|
|
967
|
+
|
|
968
|
+
request_options : typing.Optional[RequestOptions]
|
|
969
|
+
Request-specific configuration.
|
|
970
|
+
|
|
971
|
+
Returns
|
|
972
|
+
-------
|
|
973
|
+
AsyncHttpResponse[GetIpsFromSenderResponse]
|
|
974
|
+
List of dedicated IPs retrieved successfully
|
|
975
|
+
"""
|
|
976
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
977
|
+
f"senders/{jsonable_encoder(sender_id)}/ips",
|
|
978
|
+
method="GET",
|
|
979
|
+
request_options=request_options,
|
|
980
|
+
)
|
|
981
|
+
try:
|
|
982
|
+
if 200 <= _response.status_code < 300:
|
|
983
|
+
_data = typing.cast(
|
|
984
|
+
GetIpsFromSenderResponse,
|
|
985
|
+
construct_type(
|
|
986
|
+
type_=GetIpsFromSenderResponse, # type: ignore
|
|
987
|
+
object_=_response.json(),
|
|
988
|
+
),
|
|
989
|
+
)
|
|
990
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
991
|
+
if _response.status_code == 400:
|
|
992
|
+
raise BadRequestError(
|
|
993
|
+
headers=dict(_response.headers),
|
|
994
|
+
body=typing.cast(
|
|
995
|
+
typing.Any,
|
|
996
|
+
construct_type(
|
|
997
|
+
type_=typing.Any, # type: ignore
|
|
998
|
+
object_=_response.json(),
|
|
999
|
+
),
|
|
1000
|
+
),
|
|
1001
|
+
)
|
|
1002
|
+
if _response.status_code == 404:
|
|
1003
|
+
raise NotFoundError(
|
|
1004
|
+
headers=dict(_response.headers),
|
|
1005
|
+
body=typing.cast(
|
|
1006
|
+
typing.Any,
|
|
1007
|
+
construct_type(
|
|
1008
|
+
type_=typing.Any, # type: ignore
|
|
1009
|
+
object_=_response.json(),
|
|
1010
|
+
),
|
|
1011
|
+
),
|
|
1012
|
+
)
|
|
1013
|
+
_response_json = _response.json()
|
|
1014
|
+
except JSONDecodeError:
|
|
1015
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1016
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1017
|
+
|
|
1018
|
+
async def validate_sender_by_otp(
|
|
1019
|
+
self, sender_id: int, *, otp: int, request_options: typing.Optional[RequestOptions] = None
|
|
1020
|
+
) -> AsyncHttpResponse[None]:
|
|
1021
|
+
"""
|
|
1022
|
+
Validates a sender using the OTP (One-Time Password) received via email.
|
|
1023
|
+
|
|
1024
|
+
Use this to:
|
|
1025
|
+
- Complete sender verification process
|
|
1026
|
+
- Activate a newly created sender
|
|
1027
|
+
- Verify ownership of the sender email address
|
|
1028
|
+
- Enable the sender for use in email campaigns
|
|
1029
|
+
|
|
1030
|
+
Key information returned:
|
|
1031
|
+
- Success confirmation of sender verification
|
|
1032
|
+
- Sender activation status
|
|
1033
|
+
|
|
1034
|
+
Parameters
|
|
1035
|
+
----------
|
|
1036
|
+
sender_id : int
|
|
1037
|
+
Id of the sender
|
|
1038
|
+
|
|
1039
|
+
otp : int
|
|
1040
|
+
6 digit OTP received on email
|
|
1041
|
+
|
|
1042
|
+
request_options : typing.Optional[RequestOptions]
|
|
1043
|
+
Request-specific configuration.
|
|
1044
|
+
|
|
1045
|
+
Returns
|
|
1046
|
+
-------
|
|
1047
|
+
AsyncHttpResponse[None]
|
|
1048
|
+
"""
|
|
1049
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1050
|
+
f"senders/{jsonable_encoder(sender_id)}/validate",
|
|
1051
|
+
method="PUT",
|
|
1052
|
+
json={
|
|
1053
|
+
"otp": otp,
|
|
1054
|
+
},
|
|
1055
|
+
headers={
|
|
1056
|
+
"content-type": "application/json",
|
|
1057
|
+
},
|
|
1058
|
+
request_options=request_options,
|
|
1059
|
+
omit=OMIT,
|
|
1060
|
+
)
|
|
1061
|
+
try:
|
|
1062
|
+
if 200 <= _response.status_code < 300:
|
|
1063
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1064
|
+
if _response.status_code == 400:
|
|
1065
|
+
raise BadRequestError(
|
|
1066
|
+
headers=dict(_response.headers),
|
|
1067
|
+
body=typing.cast(
|
|
1068
|
+
typing.Any,
|
|
1069
|
+
construct_type(
|
|
1070
|
+
type_=typing.Any, # type: ignore
|
|
1071
|
+
object_=_response.json(),
|
|
1072
|
+
),
|
|
1073
|
+
),
|
|
1074
|
+
)
|
|
1075
|
+
if _response.status_code == 404:
|
|
1076
|
+
raise NotFoundError(
|
|
1077
|
+
headers=dict(_response.headers),
|
|
1078
|
+
body=typing.cast(
|
|
1079
|
+
typing.Any,
|
|
1080
|
+
construct_type(
|
|
1081
|
+
type_=typing.Any, # type: ignore
|
|
1082
|
+
object_=_response.json(),
|
|
1083
|
+
),
|
|
1084
|
+
),
|
|
1085
|
+
)
|
|
1086
|
+
_response_json = _response.json()
|
|
1087
|
+
except JSONDecodeError:
|
|
1088
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1089
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|