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,1311 @@
|
|
|
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_whats_app_campaign_request_recipients import CreateWhatsAppCampaignRequestRecipients
|
|
16
|
+
from .types.create_whats_app_campaign_response import CreateWhatsAppCampaignResponse
|
|
17
|
+
from .types.create_whats_app_template_request_category import CreateWhatsAppTemplateRequestCategory
|
|
18
|
+
from .types.create_whats_app_template_request_source import CreateWhatsAppTemplateRequestSource
|
|
19
|
+
from .types.create_whats_app_template_response import CreateWhatsAppTemplateResponse
|
|
20
|
+
from .types.get_whats_app_campaign_response import GetWhatsAppCampaignResponse
|
|
21
|
+
from .types.get_whats_app_campaigns_request_sort import GetWhatsAppCampaignsRequestSort
|
|
22
|
+
from .types.get_whats_app_campaigns_response import GetWhatsAppCampaignsResponse
|
|
23
|
+
from .types.get_whats_app_config_response import GetWhatsAppConfigResponse
|
|
24
|
+
from .types.get_whats_app_templates_request_sort import GetWhatsAppTemplatesRequestSort
|
|
25
|
+
from .types.get_whats_app_templates_request_source import GetWhatsAppTemplatesRequestSource
|
|
26
|
+
from .types.get_whats_app_templates_response import GetWhatsAppTemplatesResponse
|
|
27
|
+
from .types.update_whats_app_campaign_request_campaign_status import UpdateWhatsAppCampaignRequestCampaignStatus
|
|
28
|
+
from .types.update_whats_app_campaign_request_recipients import UpdateWhatsAppCampaignRequestRecipients
|
|
29
|
+
|
|
30
|
+
# this is used as the default value for optional parameters
|
|
31
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class RawWhatsAppCampaignsClient:
|
|
35
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
36
|
+
self._client_wrapper = client_wrapper
|
|
37
|
+
|
|
38
|
+
def get_whats_app_campaigns(
|
|
39
|
+
self,
|
|
40
|
+
*,
|
|
41
|
+
start_date: typing.Optional[str] = None,
|
|
42
|
+
end_date: typing.Optional[str] = None,
|
|
43
|
+
limit: typing.Optional[int] = None,
|
|
44
|
+
offset: typing.Optional[int] = None,
|
|
45
|
+
sort: typing.Optional[GetWhatsAppCampaignsRequestSort] = None,
|
|
46
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
47
|
+
) -> HttpResponse[GetWhatsAppCampaignsResponse]:
|
|
48
|
+
"""
|
|
49
|
+
Parameters
|
|
50
|
+
----------
|
|
51
|
+
start_date : typing.Optional[str]
|
|
52
|
+
**Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
53
|
+
|
|
54
|
+
end_date : typing.Optional[str]
|
|
55
|
+
**Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
56
|
+
|
|
57
|
+
limit : typing.Optional[int]
|
|
58
|
+
Number of documents per page
|
|
59
|
+
|
|
60
|
+
offset : typing.Optional[int]
|
|
61
|
+
Index of the first document in the page
|
|
62
|
+
|
|
63
|
+
sort : typing.Optional[GetWhatsAppCampaignsRequestSort]
|
|
64
|
+
Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
|
|
65
|
+
|
|
66
|
+
request_options : typing.Optional[RequestOptions]
|
|
67
|
+
Request-specific configuration.
|
|
68
|
+
|
|
69
|
+
Returns
|
|
70
|
+
-------
|
|
71
|
+
HttpResponse[GetWhatsAppCampaignsResponse]
|
|
72
|
+
WhatsApp campaigns information
|
|
73
|
+
"""
|
|
74
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
75
|
+
"whatsappCampaigns",
|
|
76
|
+
method="GET",
|
|
77
|
+
params={
|
|
78
|
+
"startDate": start_date,
|
|
79
|
+
"endDate": end_date,
|
|
80
|
+
"limit": limit,
|
|
81
|
+
"offset": offset,
|
|
82
|
+
"sort": sort,
|
|
83
|
+
},
|
|
84
|
+
request_options=request_options,
|
|
85
|
+
)
|
|
86
|
+
try:
|
|
87
|
+
if 200 <= _response.status_code < 300:
|
|
88
|
+
_data = typing.cast(
|
|
89
|
+
GetWhatsAppCampaignsResponse,
|
|
90
|
+
construct_type(
|
|
91
|
+
type_=GetWhatsAppCampaignsResponse, # type: ignore
|
|
92
|
+
object_=_response.json(),
|
|
93
|
+
),
|
|
94
|
+
)
|
|
95
|
+
return HttpResponse(response=_response, data=_data)
|
|
96
|
+
if _response.status_code == 400:
|
|
97
|
+
raise BadRequestError(
|
|
98
|
+
headers=dict(_response.headers),
|
|
99
|
+
body=typing.cast(
|
|
100
|
+
typing.Any,
|
|
101
|
+
construct_type(
|
|
102
|
+
type_=typing.Any, # type: ignore
|
|
103
|
+
object_=_response.json(),
|
|
104
|
+
),
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
_response_json = _response.json()
|
|
108
|
+
except JSONDecodeError:
|
|
109
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
110
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
111
|
+
|
|
112
|
+
def create_whats_app_campaign(
|
|
113
|
+
self,
|
|
114
|
+
*,
|
|
115
|
+
name: str,
|
|
116
|
+
recipients: CreateWhatsAppCampaignRequestRecipients,
|
|
117
|
+
scheduled_at: str,
|
|
118
|
+
template_id: int,
|
|
119
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
120
|
+
) -> HttpResponse[CreateWhatsAppCampaignResponse]:
|
|
121
|
+
"""
|
|
122
|
+
<Note>
|
|
123
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
124
|
+
|
|
125
|
+
[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
126
|
+
</Note>
|
|
127
|
+
|
|
128
|
+
<Note>
|
|
129
|
+
This API requires the List and Segment ids as recipients in Body params. You can use the below Contact endpoints to get the required information.
|
|
130
|
+
|
|
131
|
+
[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
|
|
132
|
+
|
|
133
|
+
[Get all the Segments](https://developers.brevo.com/reference/getsegments)
|
|
134
|
+
</Note>
|
|
135
|
+
|
|
136
|
+
Parameters
|
|
137
|
+
----------
|
|
138
|
+
name : str
|
|
139
|
+
Name of the WhatsApp campaign creation
|
|
140
|
+
|
|
141
|
+
recipients : CreateWhatsAppCampaignRequestRecipients
|
|
142
|
+
Segment ids and List ids to include/exclude from campaign
|
|
143
|
+
|
|
144
|
+
scheduled_at : str
|
|
145
|
+
Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00**
|
|
146
|
+
|
|
147
|
+
template_id : int
|
|
148
|
+
Id of the WhatsApp template in **approved** state
|
|
149
|
+
|
|
150
|
+
request_options : typing.Optional[RequestOptions]
|
|
151
|
+
Request-specific configuration.
|
|
152
|
+
|
|
153
|
+
Returns
|
|
154
|
+
-------
|
|
155
|
+
HttpResponse[CreateWhatsAppCampaignResponse]
|
|
156
|
+
successfully created
|
|
157
|
+
"""
|
|
158
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
159
|
+
"whatsappCampaigns",
|
|
160
|
+
method="POST",
|
|
161
|
+
json={
|
|
162
|
+
"name": name,
|
|
163
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
164
|
+
object_=recipients, annotation=CreateWhatsAppCampaignRequestRecipients, direction="write"
|
|
165
|
+
),
|
|
166
|
+
"scheduledAt": scheduled_at,
|
|
167
|
+
"templateId": template_id,
|
|
168
|
+
},
|
|
169
|
+
headers={
|
|
170
|
+
"content-type": "application/json",
|
|
171
|
+
},
|
|
172
|
+
request_options=request_options,
|
|
173
|
+
omit=OMIT,
|
|
174
|
+
)
|
|
175
|
+
try:
|
|
176
|
+
if 200 <= _response.status_code < 300:
|
|
177
|
+
_data = typing.cast(
|
|
178
|
+
CreateWhatsAppCampaignResponse,
|
|
179
|
+
construct_type(
|
|
180
|
+
type_=CreateWhatsAppCampaignResponse, # type: ignore
|
|
181
|
+
object_=_response.json(),
|
|
182
|
+
),
|
|
183
|
+
)
|
|
184
|
+
return HttpResponse(response=_response, data=_data)
|
|
185
|
+
if _response.status_code == 400:
|
|
186
|
+
raise BadRequestError(
|
|
187
|
+
headers=dict(_response.headers),
|
|
188
|
+
body=typing.cast(
|
|
189
|
+
typing.Any,
|
|
190
|
+
construct_type(
|
|
191
|
+
type_=typing.Any, # type: ignore
|
|
192
|
+
object_=_response.json(),
|
|
193
|
+
),
|
|
194
|
+
),
|
|
195
|
+
)
|
|
196
|
+
_response_json = _response.json()
|
|
197
|
+
except JSONDecodeError:
|
|
198
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
199
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
200
|
+
|
|
201
|
+
def get_whats_app_config(
|
|
202
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
203
|
+
) -> HttpResponse[GetWhatsAppConfigResponse]:
|
|
204
|
+
"""
|
|
205
|
+
<Note>
|
|
206
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
207
|
+
|
|
208
|
+
[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
209
|
+
</Note>
|
|
210
|
+
|
|
211
|
+
Parameters
|
|
212
|
+
----------
|
|
213
|
+
request_options : typing.Optional[RequestOptions]
|
|
214
|
+
Request-specific configuration.
|
|
215
|
+
|
|
216
|
+
Returns
|
|
217
|
+
-------
|
|
218
|
+
HttpResponse[GetWhatsAppConfigResponse]
|
|
219
|
+
Get all the information of your WhatsApp API account
|
|
220
|
+
"""
|
|
221
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
222
|
+
"whatsappCampaigns/config",
|
|
223
|
+
method="GET",
|
|
224
|
+
request_options=request_options,
|
|
225
|
+
)
|
|
226
|
+
try:
|
|
227
|
+
if 200 <= _response.status_code < 300:
|
|
228
|
+
_data = typing.cast(
|
|
229
|
+
GetWhatsAppConfigResponse,
|
|
230
|
+
construct_type(
|
|
231
|
+
type_=GetWhatsAppConfigResponse, # type: ignore
|
|
232
|
+
object_=_response.json(),
|
|
233
|
+
),
|
|
234
|
+
)
|
|
235
|
+
return HttpResponse(response=_response, data=_data)
|
|
236
|
+
if _response.status_code == 400:
|
|
237
|
+
raise BadRequestError(
|
|
238
|
+
headers=dict(_response.headers),
|
|
239
|
+
body=typing.cast(
|
|
240
|
+
typing.Any,
|
|
241
|
+
construct_type(
|
|
242
|
+
type_=typing.Any, # type: ignore
|
|
243
|
+
object_=_response.json(),
|
|
244
|
+
),
|
|
245
|
+
),
|
|
246
|
+
)
|
|
247
|
+
_response_json = _response.json()
|
|
248
|
+
except JSONDecodeError:
|
|
249
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
250
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
251
|
+
|
|
252
|
+
def create_whats_app_template(
|
|
253
|
+
self,
|
|
254
|
+
*,
|
|
255
|
+
body_text: str,
|
|
256
|
+
category: CreateWhatsAppTemplateRequestCategory,
|
|
257
|
+
language: str,
|
|
258
|
+
name: str,
|
|
259
|
+
header_text: typing.Optional[str] = OMIT,
|
|
260
|
+
media_url: typing.Optional[str] = OMIT,
|
|
261
|
+
source: typing.Optional[CreateWhatsAppTemplateRequestSource] = OMIT,
|
|
262
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
263
|
+
) -> HttpResponse[CreateWhatsAppTemplateResponse]:
|
|
264
|
+
"""
|
|
265
|
+
<Note>
|
|
266
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
267
|
+
|
|
268
|
+
[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
269
|
+
</Note>
|
|
270
|
+
|
|
271
|
+
Parameters
|
|
272
|
+
----------
|
|
273
|
+
body_text : str
|
|
274
|
+
Body of the template. **Maximum allowed characters are 1024**
|
|
275
|
+
|
|
276
|
+
category : CreateWhatsAppTemplateRequestCategory
|
|
277
|
+
Category of the template
|
|
278
|
+
|
|
279
|
+
language : str
|
|
280
|
+
Language of the template. For Example :
|
|
281
|
+
**en** for English
|
|
282
|
+
|
|
283
|
+
name : str
|
|
284
|
+
Name of the template
|
|
285
|
+
|
|
286
|
+
header_text : typing.Optional[str]
|
|
287
|
+
Text content of the header in the template. **Maximum allowed characters are 45** **Use this field to add text content in template header and if mediaUrl is empty**
|
|
288
|
+
|
|
289
|
+
media_url : typing.Optional[str]
|
|
290
|
+
Absolute url of the media file **(no local file)** for the header. **Use this field in you want to add media in Template header and headerText is empty** Allowed extensions for media files are: #### jpeg | png | mp4 | pdf
|
|
291
|
+
|
|
292
|
+
source : typing.Optional[CreateWhatsAppTemplateRequestSource]
|
|
293
|
+
source of the template
|
|
294
|
+
|
|
295
|
+
request_options : typing.Optional[RequestOptions]
|
|
296
|
+
Request-specific configuration.
|
|
297
|
+
|
|
298
|
+
Returns
|
|
299
|
+
-------
|
|
300
|
+
HttpResponse[CreateWhatsAppTemplateResponse]
|
|
301
|
+
successfully created
|
|
302
|
+
"""
|
|
303
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
304
|
+
"whatsappCampaigns/template",
|
|
305
|
+
method="POST",
|
|
306
|
+
json={
|
|
307
|
+
"bodyText": body_text,
|
|
308
|
+
"category": category,
|
|
309
|
+
"headerText": header_text,
|
|
310
|
+
"language": language,
|
|
311
|
+
"mediaUrl": media_url,
|
|
312
|
+
"name": name,
|
|
313
|
+
"source": source,
|
|
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
|
+
_data = typing.cast(
|
|
324
|
+
CreateWhatsAppTemplateResponse,
|
|
325
|
+
construct_type(
|
|
326
|
+
type_=CreateWhatsAppTemplateResponse, # type: ignore
|
|
327
|
+
object_=_response.json(),
|
|
328
|
+
),
|
|
329
|
+
)
|
|
330
|
+
return HttpResponse(response=_response, data=_data)
|
|
331
|
+
if _response.status_code == 400:
|
|
332
|
+
raise BadRequestError(
|
|
333
|
+
headers=dict(_response.headers),
|
|
334
|
+
body=typing.cast(
|
|
335
|
+
typing.Any,
|
|
336
|
+
construct_type(
|
|
337
|
+
type_=typing.Any, # type: ignore
|
|
338
|
+
object_=_response.json(),
|
|
339
|
+
),
|
|
340
|
+
),
|
|
341
|
+
)
|
|
342
|
+
_response_json = _response.json()
|
|
343
|
+
except JSONDecodeError:
|
|
344
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
345
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
346
|
+
|
|
347
|
+
def get_whats_app_templates(
|
|
348
|
+
self,
|
|
349
|
+
*,
|
|
350
|
+
start_date: typing.Optional[str] = None,
|
|
351
|
+
end_date: typing.Optional[str] = None,
|
|
352
|
+
limit: typing.Optional[int] = None,
|
|
353
|
+
offset: typing.Optional[int] = None,
|
|
354
|
+
sort: typing.Optional[GetWhatsAppTemplatesRequestSort] = None,
|
|
355
|
+
source: typing.Optional[GetWhatsAppTemplatesRequestSource] = None,
|
|
356
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
357
|
+
) -> HttpResponse[GetWhatsAppTemplatesResponse]:
|
|
358
|
+
"""
|
|
359
|
+
Parameters
|
|
360
|
+
----------
|
|
361
|
+
start_date : typing.Optional[str]
|
|
362
|
+
**Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
363
|
+
|
|
364
|
+
end_date : typing.Optional[str]
|
|
365
|
+
**Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
366
|
+
|
|
367
|
+
limit : typing.Optional[int]
|
|
368
|
+
Number of documents per page
|
|
369
|
+
|
|
370
|
+
offset : typing.Optional[int]
|
|
371
|
+
Index of the first document in the page
|
|
372
|
+
|
|
373
|
+
sort : typing.Optional[GetWhatsAppTemplatesRequestSort]
|
|
374
|
+
Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
|
|
375
|
+
|
|
376
|
+
source : typing.Optional[GetWhatsAppTemplatesRequestSource]
|
|
377
|
+
source of the template
|
|
378
|
+
|
|
379
|
+
request_options : typing.Optional[RequestOptions]
|
|
380
|
+
Request-specific configuration.
|
|
381
|
+
|
|
382
|
+
Returns
|
|
383
|
+
-------
|
|
384
|
+
HttpResponse[GetWhatsAppTemplatesResponse]
|
|
385
|
+
WhatsApp templates informations
|
|
386
|
+
"""
|
|
387
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
388
|
+
"whatsappCampaigns/template-list",
|
|
389
|
+
method="GET",
|
|
390
|
+
params={
|
|
391
|
+
"startDate": start_date,
|
|
392
|
+
"endDate": end_date,
|
|
393
|
+
"limit": limit,
|
|
394
|
+
"offset": offset,
|
|
395
|
+
"sort": sort,
|
|
396
|
+
"source": source,
|
|
397
|
+
},
|
|
398
|
+
request_options=request_options,
|
|
399
|
+
)
|
|
400
|
+
try:
|
|
401
|
+
if 200 <= _response.status_code < 300:
|
|
402
|
+
_data = typing.cast(
|
|
403
|
+
GetWhatsAppTemplatesResponse,
|
|
404
|
+
construct_type(
|
|
405
|
+
type_=GetWhatsAppTemplatesResponse, # type: ignore
|
|
406
|
+
object_=_response.json(),
|
|
407
|
+
),
|
|
408
|
+
)
|
|
409
|
+
return HttpResponse(response=_response, data=_data)
|
|
410
|
+
if _response.status_code == 400:
|
|
411
|
+
raise BadRequestError(
|
|
412
|
+
headers=dict(_response.headers),
|
|
413
|
+
body=typing.cast(
|
|
414
|
+
typing.Any,
|
|
415
|
+
construct_type(
|
|
416
|
+
type_=typing.Any, # type: ignore
|
|
417
|
+
object_=_response.json(),
|
|
418
|
+
),
|
|
419
|
+
),
|
|
420
|
+
)
|
|
421
|
+
_response_json = _response.json()
|
|
422
|
+
except JSONDecodeError:
|
|
423
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
424
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
425
|
+
|
|
426
|
+
def send_whats_app_template_approval(
|
|
427
|
+
self, template_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
428
|
+
) -> HttpResponse[None]:
|
|
429
|
+
"""
|
|
430
|
+
<Note>
|
|
431
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
432
|
+
|
|
433
|
+
[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
434
|
+
</Note>
|
|
435
|
+
|
|
436
|
+
Parameters
|
|
437
|
+
----------
|
|
438
|
+
template_id : int
|
|
439
|
+
id of the template
|
|
440
|
+
|
|
441
|
+
request_options : typing.Optional[RequestOptions]
|
|
442
|
+
Request-specific configuration.
|
|
443
|
+
|
|
444
|
+
Returns
|
|
445
|
+
-------
|
|
446
|
+
HttpResponse[None]
|
|
447
|
+
"""
|
|
448
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
449
|
+
f"whatsappCampaigns/template/approval/{jsonable_encoder(template_id)}",
|
|
450
|
+
method="POST",
|
|
451
|
+
request_options=request_options,
|
|
452
|
+
)
|
|
453
|
+
try:
|
|
454
|
+
if 200 <= _response.status_code < 300:
|
|
455
|
+
return HttpResponse(response=_response, data=None)
|
|
456
|
+
if _response.status_code == 400:
|
|
457
|
+
raise BadRequestError(
|
|
458
|
+
headers=dict(_response.headers),
|
|
459
|
+
body=typing.cast(
|
|
460
|
+
typing.Any,
|
|
461
|
+
construct_type(
|
|
462
|
+
type_=typing.Any, # type: ignore
|
|
463
|
+
object_=_response.json(),
|
|
464
|
+
),
|
|
465
|
+
),
|
|
466
|
+
)
|
|
467
|
+
_response_json = _response.json()
|
|
468
|
+
except JSONDecodeError:
|
|
469
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
470
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
471
|
+
|
|
472
|
+
def get_whats_app_campaign(
|
|
473
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
474
|
+
) -> HttpResponse[GetWhatsAppCampaignResponse]:
|
|
475
|
+
"""
|
|
476
|
+
<Note>
|
|
477
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
478
|
+
|
|
479
|
+
[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
480
|
+
</Note>
|
|
481
|
+
|
|
482
|
+
Parameters
|
|
483
|
+
----------
|
|
484
|
+
campaign_id : int
|
|
485
|
+
Id of the campaign
|
|
486
|
+
|
|
487
|
+
request_options : typing.Optional[RequestOptions]
|
|
488
|
+
Request-specific configuration.
|
|
489
|
+
|
|
490
|
+
Returns
|
|
491
|
+
-------
|
|
492
|
+
HttpResponse[GetWhatsAppCampaignResponse]
|
|
493
|
+
Get whatsApp campaign information on the basis of campaignId
|
|
494
|
+
"""
|
|
495
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
496
|
+
f"whatsappCampaigns/{jsonable_encoder(campaign_id)}",
|
|
497
|
+
method="GET",
|
|
498
|
+
request_options=request_options,
|
|
499
|
+
)
|
|
500
|
+
try:
|
|
501
|
+
if 200 <= _response.status_code < 300:
|
|
502
|
+
_data = typing.cast(
|
|
503
|
+
GetWhatsAppCampaignResponse,
|
|
504
|
+
construct_type(
|
|
505
|
+
type_=GetWhatsAppCampaignResponse, # type: ignore
|
|
506
|
+
object_=_response.json(),
|
|
507
|
+
),
|
|
508
|
+
)
|
|
509
|
+
return HttpResponse(response=_response, data=_data)
|
|
510
|
+
if _response.status_code == 400:
|
|
511
|
+
raise BadRequestError(
|
|
512
|
+
headers=dict(_response.headers),
|
|
513
|
+
body=typing.cast(
|
|
514
|
+
typing.Any,
|
|
515
|
+
construct_type(
|
|
516
|
+
type_=typing.Any, # type: ignore
|
|
517
|
+
object_=_response.json(),
|
|
518
|
+
),
|
|
519
|
+
),
|
|
520
|
+
)
|
|
521
|
+
if _response.status_code == 404:
|
|
522
|
+
raise NotFoundError(
|
|
523
|
+
headers=dict(_response.headers),
|
|
524
|
+
body=typing.cast(
|
|
525
|
+
typing.Any,
|
|
526
|
+
construct_type(
|
|
527
|
+
type_=typing.Any, # type: ignore
|
|
528
|
+
object_=_response.json(),
|
|
529
|
+
),
|
|
530
|
+
),
|
|
531
|
+
)
|
|
532
|
+
_response_json = _response.json()
|
|
533
|
+
except JSONDecodeError:
|
|
534
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
535
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
536
|
+
|
|
537
|
+
def update_whats_app_campaign(
|
|
538
|
+
self,
|
|
539
|
+
campaign_id: int,
|
|
540
|
+
*,
|
|
541
|
+
campaign_name: typing.Optional[str] = OMIT,
|
|
542
|
+
campaign_status: typing.Optional[UpdateWhatsAppCampaignRequestCampaignStatus] = OMIT,
|
|
543
|
+
recipients: typing.Optional[UpdateWhatsAppCampaignRequestRecipients] = OMIT,
|
|
544
|
+
reschedule_for: typing.Optional[str] = OMIT,
|
|
545
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
546
|
+
) -> HttpResponse[None]:
|
|
547
|
+
"""
|
|
548
|
+
<Note>
|
|
549
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
550
|
+
|
|
551
|
+
[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
552
|
+
</Note>
|
|
553
|
+
|
|
554
|
+
<Note>
|
|
555
|
+
This API requires the List and Segment ids as recipients in Body params. You can use the below Contact endpoints to get the required information.
|
|
556
|
+
|
|
557
|
+
[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
|
|
558
|
+
|
|
559
|
+
[Get all the Segments](https://developers.brevo.com/reference/getsegments)
|
|
560
|
+
</Note>
|
|
561
|
+
|
|
562
|
+
Parameters
|
|
563
|
+
----------
|
|
564
|
+
campaign_id : int
|
|
565
|
+
id of the campaign
|
|
566
|
+
|
|
567
|
+
campaign_name : typing.Optional[str]
|
|
568
|
+
Name of the campaign
|
|
569
|
+
|
|
570
|
+
campaign_status : typing.Optional[UpdateWhatsAppCampaignRequestCampaignStatus]
|
|
571
|
+
Status of the campaign
|
|
572
|
+
|
|
573
|
+
recipients : typing.Optional[UpdateWhatsAppCampaignRequestRecipients]
|
|
574
|
+
Segment ids and List ids to include/exclude from campaign
|
|
575
|
+
|
|
576
|
+
reschedule_for : typing.Optional[str]
|
|
577
|
+
Reschedule the sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of campaign. **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00** Use this field to update the scheduledAt of any existing draft or scheduled WhatsApp campaign.
|
|
578
|
+
|
|
579
|
+
request_options : typing.Optional[RequestOptions]
|
|
580
|
+
Request-specific configuration.
|
|
581
|
+
|
|
582
|
+
Returns
|
|
583
|
+
-------
|
|
584
|
+
HttpResponse[None]
|
|
585
|
+
"""
|
|
586
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
587
|
+
f"whatsappCampaigns/{jsonable_encoder(campaign_id)}",
|
|
588
|
+
method="PUT",
|
|
589
|
+
json={
|
|
590
|
+
"campaignName": campaign_name,
|
|
591
|
+
"campaignStatus": campaign_status,
|
|
592
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
593
|
+
object_=recipients, annotation=UpdateWhatsAppCampaignRequestRecipients, direction="write"
|
|
594
|
+
),
|
|
595
|
+
"rescheduleFor": reschedule_for,
|
|
596
|
+
},
|
|
597
|
+
headers={
|
|
598
|
+
"content-type": "application/json",
|
|
599
|
+
},
|
|
600
|
+
request_options=request_options,
|
|
601
|
+
omit=OMIT,
|
|
602
|
+
)
|
|
603
|
+
try:
|
|
604
|
+
if 200 <= _response.status_code < 300:
|
|
605
|
+
return HttpResponse(response=_response, data=None)
|
|
606
|
+
if _response.status_code == 400:
|
|
607
|
+
raise BadRequestError(
|
|
608
|
+
headers=dict(_response.headers),
|
|
609
|
+
body=typing.cast(
|
|
610
|
+
typing.Any,
|
|
611
|
+
construct_type(
|
|
612
|
+
type_=typing.Any, # type: ignore
|
|
613
|
+
object_=_response.json(),
|
|
614
|
+
),
|
|
615
|
+
),
|
|
616
|
+
)
|
|
617
|
+
_response_json = _response.json()
|
|
618
|
+
except JSONDecodeError:
|
|
619
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
620
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
621
|
+
|
|
622
|
+
def delete_whats_app_campaign(
|
|
623
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
624
|
+
) -> HttpResponse[None]:
|
|
625
|
+
"""
|
|
626
|
+
Parameters
|
|
627
|
+
----------
|
|
628
|
+
campaign_id : int
|
|
629
|
+
id of the campaign
|
|
630
|
+
|
|
631
|
+
request_options : typing.Optional[RequestOptions]
|
|
632
|
+
Request-specific configuration.
|
|
633
|
+
|
|
634
|
+
Returns
|
|
635
|
+
-------
|
|
636
|
+
HttpResponse[None]
|
|
637
|
+
"""
|
|
638
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
639
|
+
f"whatsappCampaigns/{jsonable_encoder(campaign_id)}",
|
|
640
|
+
method="DELETE",
|
|
641
|
+
request_options=request_options,
|
|
642
|
+
)
|
|
643
|
+
try:
|
|
644
|
+
if 200 <= _response.status_code < 300:
|
|
645
|
+
return HttpResponse(response=_response, data=None)
|
|
646
|
+
if _response.status_code == 400:
|
|
647
|
+
raise BadRequestError(
|
|
648
|
+
headers=dict(_response.headers),
|
|
649
|
+
body=typing.cast(
|
|
650
|
+
typing.Any,
|
|
651
|
+
construct_type(
|
|
652
|
+
type_=typing.Any, # type: ignore
|
|
653
|
+
object_=_response.json(),
|
|
654
|
+
),
|
|
655
|
+
),
|
|
656
|
+
)
|
|
657
|
+
if _response.status_code == 404:
|
|
658
|
+
raise NotFoundError(
|
|
659
|
+
headers=dict(_response.headers),
|
|
660
|
+
body=typing.cast(
|
|
661
|
+
typing.Any,
|
|
662
|
+
construct_type(
|
|
663
|
+
type_=typing.Any, # type: ignore
|
|
664
|
+
object_=_response.json(),
|
|
665
|
+
),
|
|
666
|
+
),
|
|
667
|
+
)
|
|
668
|
+
_response_json = _response.json()
|
|
669
|
+
except JSONDecodeError:
|
|
670
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
671
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
672
|
+
|
|
673
|
+
|
|
674
|
+
class AsyncRawWhatsAppCampaignsClient:
|
|
675
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
676
|
+
self._client_wrapper = client_wrapper
|
|
677
|
+
|
|
678
|
+
async def get_whats_app_campaigns(
|
|
679
|
+
self,
|
|
680
|
+
*,
|
|
681
|
+
start_date: typing.Optional[str] = None,
|
|
682
|
+
end_date: typing.Optional[str] = None,
|
|
683
|
+
limit: typing.Optional[int] = None,
|
|
684
|
+
offset: typing.Optional[int] = None,
|
|
685
|
+
sort: typing.Optional[GetWhatsAppCampaignsRequestSort] = None,
|
|
686
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
687
|
+
) -> AsyncHttpResponse[GetWhatsAppCampaignsResponse]:
|
|
688
|
+
"""
|
|
689
|
+
Parameters
|
|
690
|
+
----------
|
|
691
|
+
start_date : typing.Optional[str]
|
|
692
|
+
**Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
693
|
+
|
|
694
|
+
end_date : typing.Optional[str]
|
|
695
|
+
**Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the WhatsApp campaigns created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
696
|
+
|
|
697
|
+
limit : typing.Optional[int]
|
|
698
|
+
Number of documents per page
|
|
699
|
+
|
|
700
|
+
offset : typing.Optional[int]
|
|
701
|
+
Index of the first document in the page
|
|
702
|
+
|
|
703
|
+
sort : typing.Optional[GetWhatsAppCampaignsRequestSort]
|
|
704
|
+
Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
|
|
705
|
+
|
|
706
|
+
request_options : typing.Optional[RequestOptions]
|
|
707
|
+
Request-specific configuration.
|
|
708
|
+
|
|
709
|
+
Returns
|
|
710
|
+
-------
|
|
711
|
+
AsyncHttpResponse[GetWhatsAppCampaignsResponse]
|
|
712
|
+
WhatsApp campaigns information
|
|
713
|
+
"""
|
|
714
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
715
|
+
"whatsappCampaigns",
|
|
716
|
+
method="GET",
|
|
717
|
+
params={
|
|
718
|
+
"startDate": start_date,
|
|
719
|
+
"endDate": end_date,
|
|
720
|
+
"limit": limit,
|
|
721
|
+
"offset": offset,
|
|
722
|
+
"sort": sort,
|
|
723
|
+
},
|
|
724
|
+
request_options=request_options,
|
|
725
|
+
)
|
|
726
|
+
try:
|
|
727
|
+
if 200 <= _response.status_code < 300:
|
|
728
|
+
_data = typing.cast(
|
|
729
|
+
GetWhatsAppCampaignsResponse,
|
|
730
|
+
construct_type(
|
|
731
|
+
type_=GetWhatsAppCampaignsResponse, # type: ignore
|
|
732
|
+
object_=_response.json(),
|
|
733
|
+
),
|
|
734
|
+
)
|
|
735
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
736
|
+
if _response.status_code == 400:
|
|
737
|
+
raise BadRequestError(
|
|
738
|
+
headers=dict(_response.headers),
|
|
739
|
+
body=typing.cast(
|
|
740
|
+
typing.Any,
|
|
741
|
+
construct_type(
|
|
742
|
+
type_=typing.Any, # type: ignore
|
|
743
|
+
object_=_response.json(),
|
|
744
|
+
),
|
|
745
|
+
),
|
|
746
|
+
)
|
|
747
|
+
_response_json = _response.json()
|
|
748
|
+
except JSONDecodeError:
|
|
749
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
750
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
751
|
+
|
|
752
|
+
async def create_whats_app_campaign(
|
|
753
|
+
self,
|
|
754
|
+
*,
|
|
755
|
+
name: str,
|
|
756
|
+
recipients: CreateWhatsAppCampaignRequestRecipients,
|
|
757
|
+
scheduled_at: str,
|
|
758
|
+
template_id: int,
|
|
759
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
760
|
+
) -> AsyncHttpResponse[CreateWhatsAppCampaignResponse]:
|
|
761
|
+
"""
|
|
762
|
+
<Note>
|
|
763
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
764
|
+
|
|
765
|
+
[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
766
|
+
</Note>
|
|
767
|
+
|
|
768
|
+
<Note>
|
|
769
|
+
This API requires the List and Segment ids as recipients in Body params. You can use the below Contact endpoints to get the required information.
|
|
770
|
+
|
|
771
|
+
[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
|
|
772
|
+
|
|
773
|
+
[Get all the Segments](https://developers.brevo.com/reference/getsegments)
|
|
774
|
+
</Note>
|
|
775
|
+
|
|
776
|
+
Parameters
|
|
777
|
+
----------
|
|
778
|
+
name : str
|
|
779
|
+
Name of the WhatsApp campaign creation
|
|
780
|
+
|
|
781
|
+
recipients : CreateWhatsAppCampaignRequestRecipients
|
|
782
|
+
Segment ids and List ids to include/exclude from campaign
|
|
783
|
+
|
|
784
|
+
scheduled_at : str
|
|
785
|
+
Sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00**
|
|
786
|
+
|
|
787
|
+
template_id : int
|
|
788
|
+
Id of the WhatsApp template in **approved** state
|
|
789
|
+
|
|
790
|
+
request_options : typing.Optional[RequestOptions]
|
|
791
|
+
Request-specific configuration.
|
|
792
|
+
|
|
793
|
+
Returns
|
|
794
|
+
-------
|
|
795
|
+
AsyncHttpResponse[CreateWhatsAppCampaignResponse]
|
|
796
|
+
successfully created
|
|
797
|
+
"""
|
|
798
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
799
|
+
"whatsappCampaigns",
|
|
800
|
+
method="POST",
|
|
801
|
+
json={
|
|
802
|
+
"name": name,
|
|
803
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
804
|
+
object_=recipients, annotation=CreateWhatsAppCampaignRequestRecipients, direction="write"
|
|
805
|
+
),
|
|
806
|
+
"scheduledAt": scheduled_at,
|
|
807
|
+
"templateId": template_id,
|
|
808
|
+
},
|
|
809
|
+
headers={
|
|
810
|
+
"content-type": "application/json",
|
|
811
|
+
},
|
|
812
|
+
request_options=request_options,
|
|
813
|
+
omit=OMIT,
|
|
814
|
+
)
|
|
815
|
+
try:
|
|
816
|
+
if 200 <= _response.status_code < 300:
|
|
817
|
+
_data = typing.cast(
|
|
818
|
+
CreateWhatsAppCampaignResponse,
|
|
819
|
+
construct_type(
|
|
820
|
+
type_=CreateWhatsAppCampaignResponse, # type: ignore
|
|
821
|
+
object_=_response.json(),
|
|
822
|
+
),
|
|
823
|
+
)
|
|
824
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
825
|
+
if _response.status_code == 400:
|
|
826
|
+
raise BadRequestError(
|
|
827
|
+
headers=dict(_response.headers),
|
|
828
|
+
body=typing.cast(
|
|
829
|
+
typing.Any,
|
|
830
|
+
construct_type(
|
|
831
|
+
type_=typing.Any, # type: ignore
|
|
832
|
+
object_=_response.json(),
|
|
833
|
+
),
|
|
834
|
+
),
|
|
835
|
+
)
|
|
836
|
+
_response_json = _response.json()
|
|
837
|
+
except JSONDecodeError:
|
|
838
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
839
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
840
|
+
|
|
841
|
+
async def get_whats_app_config(
|
|
842
|
+
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
843
|
+
) -> AsyncHttpResponse[GetWhatsAppConfigResponse]:
|
|
844
|
+
"""
|
|
845
|
+
<Note>
|
|
846
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
847
|
+
|
|
848
|
+
[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
849
|
+
</Note>
|
|
850
|
+
|
|
851
|
+
Parameters
|
|
852
|
+
----------
|
|
853
|
+
request_options : typing.Optional[RequestOptions]
|
|
854
|
+
Request-specific configuration.
|
|
855
|
+
|
|
856
|
+
Returns
|
|
857
|
+
-------
|
|
858
|
+
AsyncHttpResponse[GetWhatsAppConfigResponse]
|
|
859
|
+
Get all the information of your WhatsApp API account
|
|
860
|
+
"""
|
|
861
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
862
|
+
"whatsappCampaigns/config",
|
|
863
|
+
method="GET",
|
|
864
|
+
request_options=request_options,
|
|
865
|
+
)
|
|
866
|
+
try:
|
|
867
|
+
if 200 <= _response.status_code < 300:
|
|
868
|
+
_data = typing.cast(
|
|
869
|
+
GetWhatsAppConfigResponse,
|
|
870
|
+
construct_type(
|
|
871
|
+
type_=GetWhatsAppConfigResponse, # type: ignore
|
|
872
|
+
object_=_response.json(),
|
|
873
|
+
),
|
|
874
|
+
)
|
|
875
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
876
|
+
if _response.status_code == 400:
|
|
877
|
+
raise BadRequestError(
|
|
878
|
+
headers=dict(_response.headers),
|
|
879
|
+
body=typing.cast(
|
|
880
|
+
typing.Any,
|
|
881
|
+
construct_type(
|
|
882
|
+
type_=typing.Any, # type: ignore
|
|
883
|
+
object_=_response.json(),
|
|
884
|
+
),
|
|
885
|
+
),
|
|
886
|
+
)
|
|
887
|
+
_response_json = _response.json()
|
|
888
|
+
except JSONDecodeError:
|
|
889
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
890
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
891
|
+
|
|
892
|
+
async def create_whats_app_template(
|
|
893
|
+
self,
|
|
894
|
+
*,
|
|
895
|
+
body_text: str,
|
|
896
|
+
category: CreateWhatsAppTemplateRequestCategory,
|
|
897
|
+
language: str,
|
|
898
|
+
name: str,
|
|
899
|
+
header_text: typing.Optional[str] = OMIT,
|
|
900
|
+
media_url: typing.Optional[str] = OMIT,
|
|
901
|
+
source: typing.Optional[CreateWhatsAppTemplateRequestSource] = OMIT,
|
|
902
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
903
|
+
) -> AsyncHttpResponse[CreateWhatsAppTemplateResponse]:
|
|
904
|
+
"""
|
|
905
|
+
<Note>
|
|
906
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
907
|
+
|
|
908
|
+
[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
909
|
+
</Note>
|
|
910
|
+
|
|
911
|
+
Parameters
|
|
912
|
+
----------
|
|
913
|
+
body_text : str
|
|
914
|
+
Body of the template. **Maximum allowed characters are 1024**
|
|
915
|
+
|
|
916
|
+
category : CreateWhatsAppTemplateRequestCategory
|
|
917
|
+
Category of the template
|
|
918
|
+
|
|
919
|
+
language : str
|
|
920
|
+
Language of the template. For Example :
|
|
921
|
+
**en** for English
|
|
922
|
+
|
|
923
|
+
name : str
|
|
924
|
+
Name of the template
|
|
925
|
+
|
|
926
|
+
header_text : typing.Optional[str]
|
|
927
|
+
Text content of the header in the template. **Maximum allowed characters are 45** **Use this field to add text content in template header and if mediaUrl is empty**
|
|
928
|
+
|
|
929
|
+
media_url : typing.Optional[str]
|
|
930
|
+
Absolute url of the media file **(no local file)** for the header. **Use this field in you want to add media in Template header and headerText is empty** Allowed extensions for media files are: #### jpeg | png | mp4 | pdf
|
|
931
|
+
|
|
932
|
+
source : typing.Optional[CreateWhatsAppTemplateRequestSource]
|
|
933
|
+
source of the template
|
|
934
|
+
|
|
935
|
+
request_options : typing.Optional[RequestOptions]
|
|
936
|
+
Request-specific configuration.
|
|
937
|
+
|
|
938
|
+
Returns
|
|
939
|
+
-------
|
|
940
|
+
AsyncHttpResponse[CreateWhatsAppTemplateResponse]
|
|
941
|
+
successfully created
|
|
942
|
+
"""
|
|
943
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
944
|
+
"whatsappCampaigns/template",
|
|
945
|
+
method="POST",
|
|
946
|
+
json={
|
|
947
|
+
"bodyText": body_text,
|
|
948
|
+
"category": category,
|
|
949
|
+
"headerText": header_text,
|
|
950
|
+
"language": language,
|
|
951
|
+
"mediaUrl": media_url,
|
|
952
|
+
"name": name,
|
|
953
|
+
"source": source,
|
|
954
|
+
},
|
|
955
|
+
headers={
|
|
956
|
+
"content-type": "application/json",
|
|
957
|
+
},
|
|
958
|
+
request_options=request_options,
|
|
959
|
+
omit=OMIT,
|
|
960
|
+
)
|
|
961
|
+
try:
|
|
962
|
+
if 200 <= _response.status_code < 300:
|
|
963
|
+
_data = typing.cast(
|
|
964
|
+
CreateWhatsAppTemplateResponse,
|
|
965
|
+
construct_type(
|
|
966
|
+
type_=CreateWhatsAppTemplateResponse, # type: ignore
|
|
967
|
+
object_=_response.json(),
|
|
968
|
+
),
|
|
969
|
+
)
|
|
970
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
971
|
+
if _response.status_code == 400:
|
|
972
|
+
raise BadRequestError(
|
|
973
|
+
headers=dict(_response.headers),
|
|
974
|
+
body=typing.cast(
|
|
975
|
+
typing.Any,
|
|
976
|
+
construct_type(
|
|
977
|
+
type_=typing.Any, # type: ignore
|
|
978
|
+
object_=_response.json(),
|
|
979
|
+
),
|
|
980
|
+
),
|
|
981
|
+
)
|
|
982
|
+
_response_json = _response.json()
|
|
983
|
+
except JSONDecodeError:
|
|
984
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
985
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
986
|
+
|
|
987
|
+
async def get_whats_app_templates(
|
|
988
|
+
self,
|
|
989
|
+
*,
|
|
990
|
+
start_date: typing.Optional[str] = None,
|
|
991
|
+
end_date: typing.Optional[str] = None,
|
|
992
|
+
limit: typing.Optional[int] = None,
|
|
993
|
+
offset: typing.Optional[int] = None,
|
|
994
|
+
sort: typing.Optional[GetWhatsAppTemplatesRequestSort] = None,
|
|
995
|
+
source: typing.Optional[GetWhatsAppTemplatesRequestSource] = None,
|
|
996
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
997
|
+
) -> AsyncHttpResponse[GetWhatsAppTemplatesResponse]:
|
|
998
|
+
"""
|
|
999
|
+
Parameters
|
|
1000
|
+
----------
|
|
1001
|
+
start_date : typing.Optional[str]
|
|
1002
|
+
**Mandatory if endDate is used**. Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
1003
|
+
|
|
1004
|
+
end_date : typing.Optional[str]
|
|
1005
|
+
**Mandatory if startDate is used**. Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the templates created. **Prefer to pass your timezone in date-time format for accurate result**
|
|
1006
|
+
|
|
1007
|
+
limit : typing.Optional[int]
|
|
1008
|
+
Number of documents per page
|
|
1009
|
+
|
|
1010
|
+
offset : typing.Optional[int]
|
|
1011
|
+
Index of the first document in the page
|
|
1012
|
+
|
|
1013
|
+
sort : typing.Optional[GetWhatsAppTemplatesRequestSort]
|
|
1014
|
+
Sort the results in the ascending/descending order of record modification. Default order is **descending** if `sort` is not passed
|
|
1015
|
+
|
|
1016
|
+
source : typing.Optional[GetWhatsAppTemplatesRequestSource]
|
|
1017
|
+
source of the template
|
|
1018
|
+
|
|
1019
|
+
request_options : typing.Optional[RequestOptions]
|
|
1020
|
+
Request-specific configuration.
|
|
1021
|
+
|
|
1022
|
+
Returns
|
|
1023
|
+
-------
|
|
1024
|
+
AsyncHttpResponse[GetWhatsAppTemplatesResponse]
|
|
1025
|
+
WhatsApp templates informations
|
|
1026
|
+
"""
|
|
1027
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1028
|
+
"whatsappCampaigns/template-list",
|
|
1029
|
+
method="GET",
|
|
1030
|
+
params={
|
|
1031
|
+
"startDate": start_date,
|
|
1032
|
+
"endDate": end_date,
|
|
1033
|
+
"limit": limit,
|
|
1034
|
+
"offset": offset,
|
|
1035
|
+
"sort": sort,
|
|
1036
|
+
"source": source,
|
|
1037
|
+
},
|
|
1038
|
+
request_options=request_options,
|
|
1039
|
+
)
|
|
1040
|
+
try:
|
|
1041
|
+
if 200 <= _response.status_code < 300:
|
|
1042
|
+
_data = typing.cast(
|
|
1043
|
+
GetWhatsAppTemplatesResponse,
|
|
1044
|
+
construct_type(
|
|
1045
|
+
type_=GetWhatsAppTemplatesResponse, # type: ignore
|
|
1046
|
+
object_=_response.json(),
|
|
1047
|
+
),
|
|
1048
|
+
)
|
|
1049
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1050
|
+
if _response.status_code == 400:
|
|
1051
|
+
raise BadRequestError(
|
|
1052
|
+
headers=dict(_response.headers),
|
|
1053
|
+
body=typing.cast(
|
|
1054
|
+
typing.Any,
|
|
1055
|
+
construct_type(
|
|
1056
|
+
type_=typing.Any, # type: ignore
|
|
1057
|
+
object_=_response.json(),
|
|
1058
|
+
),
|
|
1059
|
+
),
|
|
1060
|
+
)
|
|
1061
|
+
_response_json = _response.json()
|
|
1062
|
+
except JSONDecodeError:
|
|
1063
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1064
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1065
|
+
|
|
1066
|
+
async def send_whats_app_template_approval(
|
|
1067
|
+
self, template_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
1068
|
+
) -> AsyncHttpResponse[None]:
|
|
1069
|
+
"""
|
|
1070
|
+
<Note>
|
|
1071
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
1072
|
+
|
|
1073
|
+
[Activating WhatsApp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
1074
|
+
</Note>
|
|
1075
|
+
|
|
1076
|
+
Parameters
|
|
1077
|
+
----------
|
|
1078
|
+
template_id : int
|
|
1079
|
+
id of the template
|
|
1080
|
+
|
|
1081
|
+
request_options : typing.Optional[RequestOptions]
|
|
1082
|
+
Request-specific configuration.
|
|
1083
|
+
|
|
1084
|
+
Returns
|
|
1085
|
+
-------
|
|
1086
|
+
AsyncHttpResponse[None]
|
|
1087
|
+
"""
|
|
1088
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1089
|
+
f"whatsappCampaigns/template/approval/{jsonable_encoder(template_id)}",
|
|
1090
|
+
method="POST",
|
|
1091
|
+
request_options=request_options,
|
|
1092
|
+
)
|
|
1093
|
+
try:
|
|
1094
|
+
if 200 <= _response.status_code < 300:
|
|
1095
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1096
|
+
if _response.status_code == 400:
|
|
1097
|
+
raise BadRequestError(
|
|
1098
|
+
headers=dict(_response.headers),
|
|
1099
|
+
body=typing.cast(
|
|
1100
|
+
typing.Any,
|
|
1101
|
+
construct_type(
|
|
1102
|
+
type_=typing.Any, # type: ignore
|
|
1103
|
+
object_=_response.json(),
|
|
1104
|
+
),
|
|
1105
|
+
),
|
|
1106
|
+
)
|
|
1107
|
+
_response_json = _response.json()
|
|
1108
|
+
except JSONDecodeError:
|
|
1109
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1110
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1111
|
+
|
|
1112
|
+
async def get_whats_app_campaign(
|
|
1113
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
1114
|
+
) -> AsyncHttpResponse[GetWhatsAppCampaignResponse]:
|
|
1115
|
+
"""
|
|
1116
|
+
<Note>
|
|
1117
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
1118
|
+
|
|
1119
|
+
[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
1120
|
+
</Note>
|
|
1121
|
+
|
|
1122
|
+
Parameters
|
|
1123
|
+
----------
|
|
1124
|
+
campaign_id : int
|
|
1125
|
+
Id of the campaign
|
|
1126
|
+
|
|
1127
|
+
request_options : typing.Optional[RequestOptions]
|
|
1128
|
+
Request-specific configuration.
|
|
1129
|
+
|
|
1130
|
+
Returns
|
|
1131
|
+
-------
|
|
1132
|
+
AsyncHttpResponse[GetWhatsAppCampaignResponse]
|
|
1133
|
+
Get whatsApp campaign information on the basis of campaignId
|
|
1134
|
+
"""
|
|
1135
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1136
|
+
f"whatsappCampaigns/{jsonable_encoder(campaign_id)}",
|
|
1137
|
+
method="GET",
|
|
1138
|
+
request_options=request_options,
|
|
1139
|
+
)
|
|
1140
|
+
try:
|
|
1141
|
+
if 200 <= _response.status_code < 300:
|
|
1142
|
+
_data = typing.cast(
|
|
1143
|
+
GetWhatsAppCampaignResponse,
|
|
1144
|
+
construct_type(
|
|
1145
|
+
type_=GetWhatsAppCampaignResponse, # type: ignore
|
|
1146
|
+
object_=_response.json(),
|
|
1147
|
+
),
|
|
1148
|
+
)
|
|
1149
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1150
|
+
if _response.status_code == 400:
|
|
1151
|
+
raise BadRequestError(
|
|
1152
|
+
headers=dict(_response.headers),
|
|
1153
|
+
body=typing.cast(
|
|
1154
|
+
typing.Any,
|
|
1155
|
+
construct_type(
|
|
1156
|
+
type_=typing.Any, # type: ignore
|
|
1157
|
+
object_=_response.json(),
|
|
1158
|
+
),
|
|
1159
|
+
),
|
|
1160
|
+
)
|
|
1161
|
+
if _response.status_code == 404:
|
|
1162
|
+
raise NotFoundError(
|
|
1163
|
+
headers=dict(_response.headers),
|
|
1164
|
+
body=typing.cast(
|
|
1165
|
+
typing.Any,
|
|
1166
|
+
construct_type(
|
|
1167
|
+
type_=typing.Any, # type: ignore
|
|
1168
|
+
object_=_response.json(),
|
|
1169
|
+
),
|
|
1170
|
+
),
|
|
1171
|
+
)
|
|
1172
|
+
_response_json = _response.json()
|
|
1173
|
+
except JSONDecodeError:
|
|
1174
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1175
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1176
|
+
|
|
1177
|
+
async def update_whats_app_campaign(
|
|
1178
|
+
self,
|
|
1179
|
+
campaign_id: int,
|
|
1180
|
+
*,
|
|
1181
|
+
campaign_name: typing.Optional[str] = OMIT,
|
|
1182
|
+
campaign_status: typing.Optional[UpdateWhatsAppCampaignRequestCampaignStatus] = OMIT,
|
|
1183
|
+
recipients: typing.Optional[UpdateWhatsAppCampaignRequestRecipients] = OMIT,
|
|
1184
|
+
reschedule_for: typing.Optional[str] = OMIT,
|
|
1185
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1186
|
+
) -> AsyncHttpResponse[None]:
|
|
1187
|
+
"""
|
|
1188
|
+
<Note>
|
|
1189
|
+
You can use this API for WhatsApp only if you have setup your WhatsApp account on Brevo platform. To setup your WhatsApp account, follow the steps in the guide below.
|
|
1190
|
+
|
|
1191
|
+
[Activating Whatsapp](https://developers.brevo.com/docs/whatsapp-campaigns-1) in your account
|
|
1192
|
+
</Note>
|
|
1193
|
+
|
|
1194
|
+
<Note>
|
|
1195
|
+
This API requires the List and Segment ids as recipients in Body params. You can use the below Contact endpoints to get the required information.
|
|
1196
|
+
|
|
1197
|
+
[Get all the Lists](https://developers.brevo.com/reference/getlists-1)
|
|
1198
|
+
|
|
1199
|
+
[Get all the Segments](https://developers.brevo.com/reference/getsegments)
|
|
1200
|
+
</Note>
|
|
1201
|
+
|
|
1202
|
+
Parameters
|
|
1203
|
+
----------
|
|
1204
|
+
campaign_id : int
|
|
1205
|
+
id of the campaign
|
|
1206
|
+
|
|
1207
|
+
campaign_name : typing.Optional[str]
|
|
1208
|
+
Name of the campaign
|
|
1209
|
+
|
|
1210
|
+
campaign_status : typing.Optional[UpdateWhatsAppCampaignRequestCampaignStatus]
|
|
1211
|
+
Status of the campaign
|
|
1212
|
+
|
|
1213
|
+
recipients : typing.Optional[UpdateWhatsAppCampaignRequestRecipients]
|
|
1214
|
+
Segment ids and List ids to include/exclude from campaign
|
|
1215
|
+
|
|
1216
|
+
reschedule_for : typing.Optional[str]
|
|
1217
|
+
Reschedule the sending UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) of campaign. **Prefer to pass your timezone in date-time format for accurate result.For example: **2017-06-01T12:30:00+02:00** Use this field to update the scheduledAt of any existing draft or scheduled WhatsApp campaign.
|
|
1218
|
+
|
|
1219
|
+
request_options : typing.Optional[RequestOptions]
|
|
1220
|
+
Request-specific configuration.
|
|
1221
|
+
|
|
1222
|
+
Returns
|
|
1223
|
+
-------
|
|
1224
|
+
AsyncHttpResponse[None]
|
|
1225
|
+
"""
|
|
1226
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1227
|
+
f"whatsappCampaigns/{jsonable_encoder(campaign_id)}",
|
|
1228
|
+
method="PUT",
|
|
1229
|
+
json={
|
|
1230
|
+
"campaignName": campaign_name,
|
|
1231
|
+
"campaignStatus": campaign_status,
|
|
1232
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
1233
|
+
object_=recipients, annotation=UpdateWhatsAppCampaignRequestRecipients, direction="write"
|
|
1234
|
+
),
|
|
1235
|
+
"rescheduleFor": reschedule_for,
|
|
1236
|
+
},
|
|
1237
|
+
headers={
|
|
1238
|
+
"content-type": "application/json",
|
|
1239
|
+
},
|
|
1240
|
+
request_options=request_options,
|
|
1241
|
+
omit=OMIT,
|
|
1242
|
+
)
|
|
1243
|
+
try:
|
|
1244
|
+
if 200 <= _response.status_code < 300:
|
|
1245
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1246
|
+
if _response.status_code == 400:
|
|
1247
|
+
raise BadRequestError(
|
|
1248
|
+
headers=dict(_response.headers),
|
|
1249
|
+
body=typing.cast(
|
|
1250
|
+
typing.Any,
|
|
1251
|
+
construct_type(
|
|
1252
|
+
type_=typing.Any, # type: ignore
|
|
1253
|
+
object_=_response.json(),
|
|
1254
|
+
),
|
|
1255
|
+
),
|
|
1256
|
+
)
|
|
1257
|
+
_response_json = _response.json()
|
|
1258
|
+
except JSONDecodeError:
|
|
1259
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1260
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1261
|
+
|
|
1262
|
+
async def delete_whats_app_campaign(
|
|
1263
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
1264
|
+
) -> AsyncHttpResponse[None]:
|
|
1265
|
+
"""
|
|
1266
|
+
Parameters
|
|
1267
|
+
----------
|
|
1268
|
+
campaign_id : int
|
|
1269
|
+
id of the campaign
|
|
1270
|
+
|
|
1271
|
+
request_options : typing.Optional[RequestOptions]
|
|
1272
|
+
Request-specific configuration.
|
|
1273
|
+
|
|
1274
|
+
Returns
|
|
1275
|
+
-------
|
|
1276
|
+
AsyncHttpResponse[None]
|
|
1277
|
+
"""
|
|
1278
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1279
|
+
f"whatsappCampaigns/{jsonable_encoder(campaign_id)}",
|
|
1280
|
+
method="DELETE",
|
|
1281
|
+
request_options=request_options,
|
|
1282
|
+
)
|
|
1283
|
+
try:
|
|
1284
|
+
if 200 <= _response.status_code < 300:
|
|
1285
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1286
|
+
if _response.status_code == 400:
|
|
1287
|
+
raise BadRequestError(
|
|
1288
|
+
headers=dict(_response.headers),
|
|
1289
|
+
body=typing.cast(
|
|
1290
|
+
typing.Any,
|
|
1291
|
+
construct_type(
|
|
1292
|
+
type_=typing.Any, # type: ignore
|
|
1293
|
+
object_=_response.json(),
|
|
1294
|
+
),
|
|
1295
|
+
),
|
|
1296
|
+
)
|
|
1297
|
+
if _response.status_code == 404:
|
|
1298
|
+
raise NotFoundError(
|
|
1299
|
+
headers=dict(_response.headers),
|
|
1300
|
+
body=typing.cast(
|
|
1301
|
+
typing.Any,
|
|
1302
|
+
construct_type(
|
|
1303
|
+
type_=typing.Any, # type: ignore
|
|
1304
|
+
object_=_response.json(),
|
|
1305
|
+
),
|
|
1306
|
+
),
|
|
1307
|
+
)
|
|
1308
|
+
_response_json = _response.json()
|
|
1309
|
+
except JSONDecodeError:
|
|
1310
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1311
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|