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,1501 @@
|
|
|
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 ..errors.payment_required_error import PaymentRequiredError
|
|
16
|
+
from ..types.error_model import ErrorModel
|
|
17
|
+
from ..types.send_report_email import SendReportEmail
|
|
18
|
+
from ..types.send_report_language import SendReportLanguage
|
|
19
|
+
from ..types.update_campaign_status_status import UpdateCampaignStatusStatus
|
|
20
|
+
from .types.create_sms_campaign_request_recipients import CreateSmsCampaignRequestRecipients
|
|
21
|
+
from .types.create_sms_campaign_response import CreateSmsCampaignResponse
|
|
22
|
+
from .types.get_sms_campaign_response import GetSmsCampaignResponse
|
|
23
|
+
from .types.get_sms_campaigns_request_sort import GetSmsCampaignsRequestSort
|
|
24
|
+
from .types.get_sms_campaigns_request_status import GetSmsCampaignsRequestStatus
|
|
25
|
+
from .types.get_sms_campaigns_response import GetSmsCampaignsResponse
|
|
26
|
+
from .types.request_sms_recipient_export_request_recipients_type import RequestSmsRecipientExportRequestRecipientsType
|
|
27
|
+
from .types.request_sms_recipient_export_response import RequestSmsRecipientExportResponse
|
|
28
|
+
from .types.update_sms_campaign_request_recipients import UpdateSmsCampaignRequestRecipients
|
|
29
|
+
|
|
30
|
+
# this is used as the default value for optional parameters
|
|
31
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class RawSmsCampaignsClient:
|
|
35
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
36
|
+
self._client_wrapper = client_wrapper
|
|
37
|
+
|
|
38
|
+
def get_sms_campaigns(
|
|
39
|
+
self,
|
|
40
|
+
*,
|
|
41
|
+
status: typing.Optional[GetSmsCampaignsRequestStatus] = None,
|
|
42
|
+
start_date: typing.Optional[str] = None,
|
|
43
|
+
end_date: typing.Optional[str] = None,
|
|
44
|
+
limit: typing.Optional[int] = None,
|
|
45
|
+
offset: typing.Optional[int] = None,
|
|
46
|
+
sort: typing.Optional[GetSmsCampaignsRequestSort] = None,
|
|
47
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
48
|
+
) -> HttpResponse[GetSmsCampaignsResponse]:
|
|
49
|
+
"""
|
|
50
|
+
Parameters
|
|
51
|
+
----------
|
|
52
|
+
status : typing.Optional[GetSmsCampaignsRequestStatus]
|
|
53
|
+
Status of campaign.
|
|
54
|
+
|
|
55
|
+
start_date : typing.Optional[str]
|
|
56
|
+
**Mandatory if endDate is used.** Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
|
|
57
|
+
|
|
58
|
+
end_date : typing.Optional[str]
|
|
59
|
+
**Mandatory if startDate is used.** Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
|
|
60
|
+
|
|
61
|
+
limit : typing.Optional[int]
|
|
62
|
+
Number limitation for the result returned
|
|
63
|
+
|
|
64
|
+
offset : typing.Optional[int]
|
|
65
|
+
Beginning point in the list to retrieve from.
|
|
66
|
+
|
|
67
|
+
sort : typing.Optional[GetSmsCampaignsRequestSort]
|
|
68
|
+
Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
|
|
69
|
+
|
|
70
|
+
request_options : typing.Optional[RequestOptions]
|
|
71
|
+
Request-specific configuration.
|
|
72
|
+
|
|
73
|
+
Returns
|
|
74
|
+
-------
|
|
75
|
+
HttpResponse[GetSmsCampaignsResponse]
|
|
76
|
+
SMS campaigns informations
|
|
77
|
+
"""
|
|
78
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
79
|
+
"smsCampaigns",
|
|
80
|
+
method="GET",
|
|
81
|
+
params={
|
|
82
|
+
"status": status,
|
|
83
|
+
"startDate": start_date,
|
|
84
|
+
"endDate": end_date,
|
|
85
|
+
"limit": limit,
|
|
86
|
+
"offset": offset,
|
|
87
|
+
"sort": sort,
|
|
88
|
+
},
|
|
89
|
+
request_options=request_options,
|
|
90
|
+
)
|
|
91
|
+
try:
|
|
92
|
+
if 200 <= _response.status_code < 300:
|
|
93
|
+
_data = typing.cast(
|
|
94
|
+
GetSmsCampaignsResponse,
|
|
95
|
+
construct_type(
|
|
96
|
+
type_=GetSmsCampaignsResponse, # type: ignore
|
|
97
|
+
object_=_response.json(),
|
|
98
|
+
),
|
|
99
|
+
)
|
|
100
|
+
return HttpResponse(response=_response, data=_data)
|
|
101
|
+
if _response.status_code == 400:
|
|
102
|
+
raise BadRequestError(
|
|
103
|
+
headers=dict(_response.headers),
|
|
104
|
+
body=typing.cast(
|
|
105
|
+
typing.Any,
|
|
106
|
+
construct_type(
|
|
107
|
+
type_=typing.Any, # type: ignore
|
|
108
|
+
object_=_response.json(),
|
|
109
|
+
),
|
|
110
|
+
),
|
|
111
|
+
)
|
|
112
|
+
_response_json = _response.json()
|
|
113
|
+
except JSONDecodeError:
|
|
114
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
115
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
116
|
+
|
|
117
|
+
def create_sms_campaign(
|
|
118
|
+
self,
|
|
119
|
+
*,
|
|
120
|
+
content: str,
|
|
121
|
+
name: str,
|
|
122
|
+
sender: str,
|
|
123
|
+
organisation_prefix: typing.Optional[str] = OMIT,
|
|
124
|
+
recipients: typing.Optional[CreateSmsCampaignRequestRecipients] = OMIT,
|
|
125
|
+
scheduled_at: typing.Optional[str] = OMIT,
|
|
126
|
+
unicode_enabled: typing.Optional[bool] = OMIT,
|
|
127
|
+
unsubscribe_instruction: typing.Optional[str] = OMIT,
|
|
128
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
129
|
+
) -> HttpResponse[CreateSmsCampaignResponse]:
|
|
130
|
+
"""
|
|
131
|
+
Parameters
|
|
132
|
+
----------
|
|
133
|
+
content : str
|
|
134
|
+
Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS.
|
|
135
|
+
|
|
136
|
+
name : str
|
|
137
|
+
Name of the campaign
|
|
138
|
+
|
|
139
|
+
sender : str
|
|
140
|
+
Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**
|
|
141
|
+
|
|
142
|
+
organisation_prefix : typing.Optional[str]
|
|
143
|
+
A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**
|
|
144
|
+
|
|
145
|
+
recipients : typing.Optional[CreateSmsCampaignRequestRecipients]
|
|
146
|
+
|
|
147
|
+
scheduled_at : typing.Optional[str]
|
|
148
|
+
UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
|
|
149
|
+
|
|
150
|
+
unicode_enabled : typing.Optional[bool]
|
|
151
|
+
Format of the message. It indicates whether the content should be treated as unicode or not.
|
|
152
|
+
|
|
153
|
+
unsubscribe_instruction : typing.Optional[str]
|
|
154
|
+
Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**
|
|
155
|
+
|
|
156
|
+
request_options : typing.Optional[RequestOptions]
|
|
157
|
+
Request-specific configuration.
|
|
158
|
+
|
|
159
|
+
Returns
|
|
160
|
+
-------
|
|
161
|
+
HttpResponse[CreateSmsCampaignResponse]
|
|
162
|
+
successfully created
|
|
163
|
+
"""
|
|
164
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
165
|
+
"smsCampaigns",
|
|
166
|
+
method="POST",
|
|
167
|
+
json={
|
|
168
|
+
"content": content,
|
|
169
|
+
"name": name,
|
|
170
|
+
"organisationPrefix": organisation_prefix,
|
|
171
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
172
|
+
object_=recipients, annotation=CreateSmsCampaignRequestRecipients, direction="write"
|
|
173
|
+
),
|
|
174
|
+
"scheduledAt": scheduled_at,
|
|
175
|
+
"sender": sender,
|
|
176
|
+
"unicodeEnabled": unicode_enabled,
|
|
177
|
+
"unsubscribeInstruction": unsubscribe_instruction,
|
|
178
|
+
},
|
|
179
|
+
headers={
|
|
180
|
+
"content-type": "application/json",
|
|
181
|
+
},
|
|
182
|
+
request_options=request_options,
|
|
183
|
+
omit=OMIT,
|
|
184
|
+
)
|
|
185
|
+
try:
|
|
186
|
+
if 200 <= _response.status_code < 300:
|
|
187
|
+
_data = typing.cast(
|
|
188
|
+
CreateSmsCampaignResponse,
|
|
189
|
+
construct_type(
|
|
190
|
+
type_=CreateSmsCampaignResponse, # type: ignore
|
|
191
|
+
object_=_response.json(),
|
|
192
|
+
),
|
|
193
|
+
)
|
|
194
|
+
return HttpResponse(response=_response, data=_data)
|
|
195
|
+
if _response.status_code == 400:
|
|
196
|
+
raise BadRequestError(
|
|
197
|
+
headers=dict(_response.headers),
|
|
198
|
+
body=typing.cast(
|
|
199
|
+
typing.Any,
|
|
200
|
+
construct_type(
|
|
201
|
+
type_=typing.Any, # type: ignore
|
|
202
|
+
object_=_response.json(),
|
|
203
|
+
),
|
|
204
|
+
),
|
|
205
|
+
)
|
|
206
|
+
_response_json = _response.json()
|
|
207
|
+
except JSONDecodeError:
|
|
208
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
209
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
210
|
+
|
|
211
|
+
def get_sms_campaign(
|
|
212
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
213
|
+
) -> HttpResponse[GetSmsCampaignResponse]:
|
|
214
|
+
"""
|
|
215
|
+
Parameters
|
|
216
|
+
----------
|
|
217
|
+
campaign_id : int
|
|
218
|
+
id of the SMS campaign
|
|
219
|
+
|
|
220
|
+
request_options : typing.Optional[RequestOptions]
|
|
221
|
+
Request-specific configuration.
|
|
222
|
+
|
|
223
|
+
Returns
|
|
224
|
+
-------
|
|
225
|
+
HttpResponse[GetSmsCampaignResponse]
|
|
226
|
+
SMS campaign informations
|
|
227
|
+
"""
|
|
228
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
229
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}",
|
|
230
|
+
method="GET",
|
|
231
|
+
request_options=request_options,
|
|
232
|
+
)
|
|
233
|
+
try:
|
|
234
|
+
if 200 <= _response.status_code < 300:
|
|
235
|
+
_data = typing.cast(
|
|
236
|
+
GetSmsCampaignResponse,
|
|
237
|
+
construct_type(
|
|
238
|
+
type_=GetSmsCampaignResponse, # type: ignore
|
|
239
|
+
object_=_response.json(),
|
|
240
|
+
),
|
|
241
|
+
)
|
|
242
|
+
return HttpResponse(response=_response, data=_data)
|
|
243
|
+
if _response.status_code == 400:
|
|
244
|
+
raise BadRequestError(
|
|
245
|
+
headers=dict(_response.headers),
|
|
246
|
+
body=typing.cast(
|
|
247
|
+
typing.Any,
|
|
248
|
+
construct_type(
|
|
249
|
+
type_=typing.Any, # type: ignore
|
|
250
|
+
object_=_response.json(),
|
|
251
|
+
),
|
|
252
|
+
),
|
|
253
|
+
)
|
|
254
|
+
if _response.status_code == 404:
|
|
255
|
+
raise NotFoundError(
|
|
256
|
+
headers=dict(_response.headers),
|
|
257
|
+
body=typing.cast(
|
|
258
|
+
typing.Any,
|
|
259
|
+
construct_type(
|
|
260
|
+
type_=typing.Any, # type: ignore
|
|
261
|
+
object_=_response.json(),
|
|
262
|
+
),
|
|
263
|
+
),
|
|
264
|
+
)
|
|
265
|
+
_response_json = _response.json()
|
|
266
|
+
except JSONDecodeError:
|
|
267
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
268
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
269
|
+
|
|
270
|
+
def update_sms_campaign(
|
|
271
|
+
self,
|
|
272
|
+
campaign_id: int,
|
|
273
|
+
*,
|
|
274
|
+
content: typing.Optional[str] = OMIT,
|
|
275
|
+
name: typing.Optional[str] = OMIT,
|
|
276
|
+
organisation_prefix: typing.Optional[str] = OMIT,
|
|
277
|
+
recipients: typing.Optional[UpdateSmsCampaignRequestRecipients] = OMIT,
|
|
278
|
+
scheduled_at: typing.Optional[str] = OMIT,
|
|
279
|
+
sender: typing.Optional[str] = OMIT,
|
|
280
|
+
unicode_enabled: typing.Optional[bool] = OMIT,
|
|
281
|
+
unsubscribe_instruction: typing.Optional[str] = OMIT,
|
|
282
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
283
|
+
) -> HttpResponse[None]:
|
|
284
|
+
"""
|
|
285
|
+
Parameters
|
|
286
|
+
----------
|
|
287
|
+
campaign_id : int
|
|
288
|
+
id of the SMS campaign
|
|
289
|
+
|
|
290
|
+
content : typing.Optional[str]
|
|
291
|
+
Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS
|
|
292
|
+
|
|
293
|
+
name : typing.Optional[str]
|
|
294
|
+
Name of the campaign
|
|
295
|
+
|
|
296
|
+
organisation_prefix : typing.Optional[str]
|
|
297
|
+
A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**
|
|
298
|
+
|
|
299
|
+
recipients : typing.Optional[UpdateSmsCampaignRequestRecipients]
|
|
300
|
+
|
|
301
|
+
scheduled_at : typing.Optional[str]
|
|
302
|
+
UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
|
|
303
|
+
|
|
304
|
+
sender : typing.Optional[str]
|
|
305
|
+
Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**
|
|
306
|
+
|
|
307
|
+
unicode_enabled : typing.Optional[bool]
|
|
308
|
+
Format of the message. It indicates whether the content should be treated as unicode or not.
|
|
309
|
+
|
|
310
|
+
unsubscribe_instruction : typing.Optional[str]
|
|
311
|
+
Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**
|
|
312
|
+
|
|
313
|
+
request_options : typing.Optional[RequestOptions]
|
|
314
|
+
Request-specific configuration.
|
|
315
|
+
|
|
316
|
+
Returns
|
|
317
|
+
-------
|
|
318
|
+
HttpResponse[None]
|
|
319
|
+
"""
|
|
320
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
321
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}",
|
|
322
|
+
method="PUT",
|
|
323
|
+
json={
|
|
324
|
+
"content": content,
|
|
325
|
+
"name": name,
|
|
326
|
+
"organisationPrefix": organisation_prefix,
|
|
327
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
328
|
+
object_=recipients, annotation=UpdateSmsCampaignRequestRecipients, direction="write"
|
|
329
|
+
),
|
|
330
|
+
"scheduledAt": scheduled_at,
|
|
331
|
+
"sender": sender,
|
|
332
|
+
"unicodeEnabled": unicode_enabled,
|
|
333
|
+
"unsubscribeInstruction": unsubscribe_instruction,
|
|
334
|
+
},
|
|
335
|
+
headers={
|
|
336
|
+
"content-type": "application/json",
|
|
337
|
+
},
|
|
338
|
+
request_options=request_options,
|
|
339
|
+
omit=OMIT,
|
|
340
|
+
)
|
|
341
|
+
try:
|
|
342
|
+
if 200 <= _response.status_code < 300:
|
|
343
|
+
return HttpResponse(response=_response, data=None)
|
|
344
|
+
if _response.status_code == 400:
|
|
345
|
+
raise BadRequestError(
|
|
346
|
+
headers=dict(_response.headers),
|
|
347
|
+
body=typing.cast(
|
|
348
|
+
typing.Any,
|
|
349
|
+
construct_type(
|
|
350
|
+
type_=typing.Any, # type: ignore
|
|
351
|
+
object_=_response.json(),
|
|
352
|
+
),
|
|
353
|
+
),
|
|
354
|
+
)
|
|
355
|
+
if _response.status_code == 404:
|
|
356
|
+
raise NotFoundError(
|
|
357
|
+
headers=dict(_response.headers),
|
|
358
|
+
body=typing.cast(
|
|
359
|
+
typing.Any,
|
|
360
|
+
construct_type(
|
|
361
|
+
type_=typing.Any, # type: ignore
|
|
362
|
+
object_=_response.json(),
|
|
363
|
+
),
|
|
364
|
+
),
|
|
365
|
+
)
|
|
366
|
+
_response_json = _response.json()
|
|
367
|
+
except JSONDecodeError:
|
|
368
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
369
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
370
|
+
|
|
371
|
+
def delete_sms_campaign(
|
|
372
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
373
|
+
) -> HttpResponse[None]:
|
|
374
|
+
"""
|
|
375
|
+
Parameters
|
|
376
|
+
----------
|
|
377
|
+
campaign_id : int
|
|
378
|
+
id of the SMS campaign
|
|
379
|
+
|
|
380
|
+
request_options : typing.Optional[RequestOptions]
|
|
381
|
+
Request-specific configuration.
|
|
382
|
+
|
|
383
|
+
Returns
|
|
384
|
+
-------
|
|
385
|
+
HttpResponse[None]
|
|
386
|
+
"""
|
|
387
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
388
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}",
|
|
389
|
+
method="DELETE",
|
|
390
|
+
request_options=request_options,
|
|
391
|
+
)
|
|
392
|
+
try:
|
|
393
|
+
if 200 <= _response.status_code < 300:
|
|
394
|
+
return HttpResponse(response=_response, data=None)
|
|
395
|
+
if _response.status_code == 400:
|
|
396
|
+
raise BadRequestError(
|
|
397
|
+
headers=dict(_response.headers),
|
|
398
|
+
body=typing.cast(
|
|
399
|
+
typing.Any,
|
|
400
|
+
construct_type(
|
|
401
|
+
type_=typing.Any, # type: ignore
|
|
402
|
+
object_=_response.json(),
|
|
403
|
+
),
|
|
404
|
+
),
|
|
405
|
+
)
|
|
406
|
+
if _response.status_code == 404:
|
|
407
|
+
raise NotFoundError(
|
|
408
|
+
headers=dict(_response.headers),
|
|
409
|
+
body=typing.cast(
|
|
410
|
+
typing.Any,
|
|
411
|
+
construct_type(
|
|
412
|
+
type_=typing.Any, # type: ignore
|
|
413
|
+
object_=_response.json(),
|
|
414
|
+
),
|
|
415
|
+
),
|
|
416
|
+
)
|
|
417
|
+
_response_json = _response.json()
|
|
418
|
+
except JSONDecodeError:
|
|
419
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
420
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
421
|
+
|
|
422
|
+
def request_sms_recipient_export(
|
|
423
|
+
self,
|
|
424
|
+
campaign_id: int,
|
|
425
|
+
*,
|
|
426
|
+
recipients_type: RequestSmsRecipientExportRequestRecipientsType,
|
|
427
|
+
notify_url: typing.Optional[str] = OMIT,
|
|
428
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
429
|
+
) -> HttpResponse[RequestSmsRecipientExportResponse]:
|
|
430
|
+
"""
|
|
431
|
+
It returns the background process ID which on completion calls the notify URL that you have set in the input.
|
|
432
|
+
|
|
433
|
+
Parameters
|
|
434
|
+
----------
|
|
435
|
+
campaign_id : int
|
|
436
|
+
id of the campaign
|
|
437
|
+
|
|
438
|
+
recipients_type : RequestSmsRecipientExportRequestRecipientsType
|
|
439
|
+
Filter the recipients based on how they interacted with the campaign
|
|
440
|
+
|
|
441
|
+
notify_url : typing.Optional[str]
|
|
442
|
+
URL that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
|
|
443
|
+
|
|
444
|
+
request_options : typing.Optional[RequestOptions]
|
|
445
|
+
Request-specific configuration.
|
|
446
|
+
|
|
447
|
+
Returns
|
|
448
|
+
-------
|
|
449
|
+
HttpResponse[RequestSmsRecipientExportResponse]
|
|
450
|
+
process id created
|
|
451
|
+
"""
|
|
452
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
453
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/exportRecipients",
|
|
454
|
+
method="POST",
|
|
455
|
+
json={
|
|
456
|
+
"notifyURL": notify_url,
|
|
457
|
+
"recipientsType": recipients_type,
|
|
458
|
+
},
|
|
459
|
+
headers={
|
|
460
|
+
"content-type": "application/json",
|
|
461
|
+
},
|
|
462
|
+
request_options=request_options,
|
|
463
|
+
omit=OMIT,
|
|
464
|
+
)
|
|
465
|
+
try:
|
|
466
|
+
if 200 <= _response.status_code < 300:
|
|
467
|
+
_data = typing.cast(
|
|
468
|
+
RequestSmsRecipientExportResponse,
|
|
469
|
+
construct_type(
|
|
470
|
+
type_=RequestSmsRecipientExportResponse, # type: ignore
|
|
471
|
+
object_=_response.json(),
|
|
472
|
+
),
|
|
473
|
+
)
|
|
474
|
+
return HttpResponse(response=_response, data=_data)
|
|
475
|
+
if _response.status_code == 400:
|
|
476
|
+
raise BadRequestError(
|
|
477
|
+
headers=dict(_response.headers),
|
|
478
|
+
body=typing.cast(
|
|
479
|
+
typing.Any,
|
|
480
|
+
construct_type(
|
|
481
|
+
type_=typing.Any, # type: ignore
|
|
482
|
+
object_=_response.json(),
|
|
483
|
+
),
|
|
484
|
+
),
|
|
485
|
+
)
|
|
486
|
+
if _response.status_code == 404:
|
|
487
|
+
raise NotFoundError(
|
|
488
|
+
headers=dict(_response.headers),
|
|
489
|
+
body=typing.cast(
|
|
490
|
+
typing.Any,
|
|
491
|
+
construct_type(
|
|
492
|
+
type_=typing.Any, # type: ignore
|
|
493
|
+
object_=_response.json(),
|
|
494
|
+
),
|
|
495
|
+
),
|
|
496
|
+
)
|
|
497
|
+
_response_json = _response.json()
|
|
498
|
+
except JSONDecodeError:
|
|
499
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
500
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
501
|
+
|
|
502
|
+
def send_sms_campaign_now(
|
|
503
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
504
|
+
) -> HttpResponse[None]:
|
|
505
|
+
"""
|
|
506
|
+
Parameters
|
|
507
|
+
----------
|
|
508
|
+
campaign_id : int
|
|
509
|
+
id of the campaign
|
|
510
|
+
|
|
511
|
+
request_options : typing.Optional[RequestOptions]
|
|
512
|
+
Request-specific configuration.
|
|
513
|
+
|
|
514
|
+
Returns
|
|
515
|
+
-------
|
|
516
|
+
HttpResponse[None]
|
|
517
|
+
"""
|
|
518
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
519
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/sendNow",
|
|
520
|
+
method="POST",
|
|
521
|
+
request_options=request_options,
|
|
522
|
+
)
|
|
523
|
+
try:
|
|
524
|
+
if 200 <= _response.status_code < 300:
|
|
525
|
+
return HttpResponse(response=_response, data=None)
|
|
526
|
+
if _response.status_code == 400:
|
|
527
|
+
raise BadRequestError(
|
|
528
|
+
headers=dict(_response.headers),
|
|
529
|
+
body=typing.cast(
|
|
530
|
+
typing.Any,
|
|
531
|
+
construct_type(
|
|
532
|
+
type_=typing.Any, # type: ignore
|
|
533
|
+
object_=_response.json(),
|
|
534
|
+
),
|
|
535
|
+
),
|
|
536
|
+
)
|
|
537
|
+
if _response.status_code == 402:
|
|
538
|
+
raise PaymentRequiredError(
|
|
539
|
+
headers=dict(_response.headers),
|
|
540
|
+
body=typing.cast(
|
|
541
|
+
ErrorModel,
|
|
542
|
+
construct_type(
|
|
543
|
+
type_=ErrorModel, # type: ignore
|
|
544
|
+
object_=_response.json(),
|
|
545
|
+
),
|
|
546
|
+
),
|
|
547
|
+
)
|
|
548
|
+
if _response.status_code == 404:
|
|
549
|
+
raise NotFoundError(
|
|
550
|
+
headers=dict(_response.headers),
|
|
551
|
+
body=typing.cast(
|
|
552
|
+
typing.Any,
|
|
553
|
+
construct_type(
|
|
554
|
+
type_=typing.Any, # type: ignore
|
|
555
|
+
object_=_response.json(),
|
|
556
|
+
),
|
|
557
|
+
),
|
|
558
|
+
)
|
|
559
|
+
_response_json = _response.json()
|
|
560
|
+
except JSONDecodeError:
|
|
561
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
562
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
563
|
+
|
|
564
|
+
def send_sms_report(
|
|
565
|
+
self,
|
|
566
|
+
campaign_id: int,
|
|
567
|
+
*,
|
|
568
|
+
email: SendReportEmail,
|
|
569
|
+
language: typing.Optional[SendReportLanguage] = OMIT,
|
|
570
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
571
|
+
) -> HttpResponse[None]:
|
|
572
|
+
"""
|
|
573
|
+
Send report of Sent and Archived campaign, to the specified email addresses, with respective data and a pdf attachment in detail.
|
|
574
|
+
|
|
575
|
+
Parameters
|
|
576
|
+
----------
|
|
577
|
+
campaign_id : int
|
|
578
|
+
id of the campaign
|
|
579
|
+
|
|
580
|
+
email : SendReportEmail
|
|
581
|
+
Custom attributes for the report email.
|
|
582
|
+
|
|
583
|
+
language : typing.Optional[SendReportLanguage]
|
|
584
|
+
Language of email content for campaign report sending.
|
|
585
|
+
|
|
586
|
+
request_options : typing.Optional[RequestOptions]
|
|
587
|
+
Request-specific configuration.
|
|
588
|
+
|
|
589
|
+
Returns
|
|
590
|
+
-------
|
|
591
|
+
HttpResponse[None]
|
|
592
|
+
"""
|
|
593
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
594
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/sendReport",
|
|
595
|
+
method="POST",
|
|
596
|
+
json={
|
|
597
|
+
"email": convert_and_respect_annotation_metadata(
|
|
598
|
+
object_=email, annotation=SendReportEmail, direction="write"
|
|
599
|
+
),
|
|
600
|
+
"language": language,
|
|
601
|
+
},
|
|
602
|
+
headers={
|
|
603
|
+
"content-type": "application/json",
|
|
604
|
+
},
|
|
605
|
+
request_options=request_options,
|
|
606
|
+
omit=OMIT,
|
|
607
|
+
)
|
|
608
|
+
try:
|
|
609
|
+
if 200 <= _response.status_code < 300:
|
|
610
|
+
return HttpResponse(response=_response, data=None)
|
|
611
|
+
if _response.status_code == 400:
|
|
612
|
+
raise BadRequestError(
|
|
613
|
+
headers=dict(_response.headers),
|
|
614
|
+
body=typing.cast(
|
|
615
|
+
typing.Any,
|
|
616
|
+
construct_type(
|
|
617
|
+
type_=typing.Any, # type: ignore
|
|
618
|
+
object_=_response.json(),
|
|
619
|
+
),
|
|
620
|
+
),
|
|
621
|
+
)
|
|
622
|
+
if _response.status_code == 404:
|
|
623
|
+
raise NotFoundError(
|
|
624
|
+
headers=dict(_response.headers),
|
|
625
|
+
body=typing.cast(
|
|
626
|
+
typing.Any,
|
|
627
|
+
construct_type(
|
|
628
|
+
type_=typing.Any, # type: ignore
|
|
629
|
+
object_=_response.json(),
|
|
630
|
+
),
|
|
631
|
+
),
|
|
632
|
+
)
|
|
633
|
+
_response_json = _response.json()
|
|
634
|
+
except JSONDecodeError:
|
|
635
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
636
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
637
|
+
|
|
638
|
+
def send_test_sms(
|
|
639
|
+
self,
|
|
640
|
+
campaign_id: int,
|
|
641
|
+
*,
|
|
642
|
+
phone_number: typing.Optional[str] = OMIT,
|
|
643
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
644
|
+
) -> HttpResponse[None]:
|
|
645
|
+
"""
|
|
646
|
+
Parameters
|
|
647
|
+
----------
|
|
648
|
+
campaign_id : int
|
|
649
|
+
Id of the SMS campaign
|
|
650
|
+
|
|
651
|
+
phone_number : typing.Optional[str]
|
|
652
|
+
Mobile number of the recipient with the country code. This number **must belong to one of your contacts in Brevo account and must not be blacklisted**
|
|
653
|
+
|
|
654
|
+
request_options : typing.Optional[RequestOptions]
|
|
655
|
+
Request-specific configuration.
|
|
656
|
+
|
|
657
|
+
Returns
|
|
658
|
+
-------
|
|
659
|
+
HttpResponse[None]
|
|
660
|
+
"""
|
|
661
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
662
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/sendTest",
|
|
663
|
+
method="POST",
|
|
664
|
+
json={
|
|
665
|
+
"phoneNumber": phone_number,
|
|
666
|
+
},
|
|
667
|
+
headers={
|
|
668
|
+
"content-type": "application/json",
|
|
669
|
+
},
|
|
670
|
+
request_options=request_options,
|
|
671
|
+
omit=OMIT,
|
|
672
|
+
)
|
|
673
|
+
try:
|
|
674
|
+
if 200 <= _response.status_code < 300:
|
|
675
|
+
return HttpResponse(response=_response, data=None)
|
|
676
|
+
if _response.status_code == 400:
|
|
677
|
+
raise BadRequestError(
|
|
678
|
+
headers=dict(_response.headers),
|
|
679
|
+
body=typing.cast(
|
|
680
|
+
typing.Any,
|
|
681
|
+
construct_type(
|
|
682
|
+
type_=typing.Any, # type: ignore
|
|
683
|
+
object_=_response.json(),
|
|
684
|
+
),
|
|
685
|
+
),
|
|
686
|
+
)
|
|
687
|
+
if _response.status_code == 404:
|
|
688
|
+
raise NotFoundError(
|
|
689
|
+
headers=dict(_response.headers),
|
|
690
|
+
body=typing.cast(
|
|
691
|
+
typing.Any,
|
|
692
|
+
construct_type(
|
|
693
|
+
type_=typing.Any, # type: ignore
|
|
694
|
+
object_=_response.json(),
|
|
695
|
+
),
|
|
696
|
+
),
|
|
697
|
+
)
|
|
698
|
+
_response_json = _response.json()
|
|
699
|
+
except JSONDecodeError:
|
|
700
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
701
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
702
|
+
|
|
703
|
+
def update_sms_campaign_status(
|
|
704
|
+
self,
|
|
705
|
+
campaign_id: int,
|
|
706
|
+
*,
|
|
707
|
+
status: typing.Optional[UpdateCampaignStatusStatus] = OMIT,
|
|
708
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
709
|
+
) -> HttpResponse[None]:
|
|
710
|
+
"""
|
|
711
|
+
Parameters
|
|
712
|
+
----------
|
|
713
|
+
campaign_id : int
|
|
714
|
+
id of the campaign
|
|
715
|
+
|
|
716
|
+
status : typing.Optional[UpdateCampaignStatusStatus]
|
|
717
|
+
Note:- **replicateTemplate** status will be available **only for template type campaigns.**
|
|
718
|
+
|
|
719
|
+
request_options : typing.Optional[RequestOptions]
|
|
720
|
+
Request-specific configuration.
|
|
721
|
+
|
|
722
|
+
Returns
|
|
723
|
+
-------
|
|
724
|
+
HttpResponse[None]
|
|
725
|
+
"""
|
|
726
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
727
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/status",
|
|
728
|
+
method="PUT",
|
|
729
|
+
json={
|
|
730
|
+
"status": status,
|
|
731
|
+
},
|
|
732
|
+
headers={
|
|
733
|
+
"content-type": "application/json",
|
|
734
|
+
},
|
|
735
|
+
request_options=request_options,
|
|
736
|
+
omit=OMIT,
|
|
737
|
+
)
|
|
738
|
+
try:
|
|
739
|
+
if 200 <= _response.status_code < 300:
|
|
740
|
+
return HttpResponse(response=_response, data=None)
|
|
741
|
+
if _response.status_code == 400:
|
|
742
|
+
raise BadRequestError(
|
|
743
|
+
headers=dict(_response.headers),
|
|
744
|
+
body=typing.cast(
|
|
745
|
+
typing.Any,
|
|
746
|
+
construct_type(
|
|
747
|
+
type_=typing.Any, # type: ignore
|
|
748
|
+
object_=_response.json(),
|
|
749
|
+
),
|
|
750
|
+
),
|
|
751
|
+
)
|
|
752
|
+
if _response.status_code == 404:
|
|
753
|
+
raise NotFoundError(
|
|
754
|
+
headers=dict(_response.headers),
|
|
755
|
+
body=typing.cast(
|
|
756
|
+
typing.Any,
|
|
757
|
+
construct_type(
|
|
758
|
+
type_=typing.Any, # type: ignore
|
|
759
|
+
object_=_response.json(),
|
|
760
|
+
),
|
|
761
|
+
),
|
|
762
|
+
)
|
|
763
|
+
_response_json = _response.json()
|
|
764
|
+
except JSONDecodeError:
|
|
765
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
766
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
767
|
+
|
|
768
|
+
|
|
769
|
+
class AsyncRawSmsCampaignsClient:
|
|
770
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
771
|
+
self._client_wrapper = client_wrapper
|
|
772
|
+
|
|
773
|
+
async def get_sms_campaigns(
|
|
774
|
+
self,
|
|
775
|
+
*,
|
|
776
|
+
status: typing.Optional[GetSmsCampaignsRequestStatus] = None,
|
|
777
|
+
start_date: typing.Optional[str] = None,
|
|
778
|
+
end_date: typing.Optional[str] = None,
|
|
779
|
+
limit: typing.Optional[int] = None,
|
|
780
|
+
offset: typing.Optional[int] = None,
|
|
781
|
+
sort: typing.Optional[GetSmsCampaignsRequestSort] = None,
|
|
782
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
783
|
+
) -> AsyncHttpResponse[GetSmsCampaignsResponse]:
|
|
784
|
+
"""
|
|
785
|
+
Parameters
|
|
786
|
+
----------
|
|
787
|
+
status : typing.Optional[GetSmsCampaignsRequestStatus]
|
|
788
|
+
Status of campaign.
|
|
789
|
+
|
|
790
|
+
start_date : typing.Optional[str]
|
|
791
|
+
**Mandatory if endDate is used.** Starting (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
|
|
792
|
+
|
|
793
|
+
end_date : typing.Optional[str]
|
|
794
|
+
**Mandatory if startDate is used.** Ending (urlencoded) UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ) to filter the sent sms campaigns. **Prefer to pass your timezone in date-time format for accurate result** ( only available if either 'status' not passed and if passed is set to 'sent' )
|
|
795
|
+
|
|
796
|
+
limit : typing.Optional[int]
|
|
797
|
+
Number limitation for the result returned
|
|
798
|
+
|
|
799
|
+
offset : typing.Optional[int]
|
|
800
|
+
Beginning point in the list to retrieve from.
|
|
801
|
+
|
|
802
|
+
sort : typing.Optional[GetSmsCampaignsRequestSort]
|
|
803
|
+
Sort the results in the ascending/descending order of record creation. Default order is **descending** if `sort` is not passed
|
|
804
|
+
|
|
805
|
+
request_options : typing.Optional[RequestOptions]
|
|
806
|
+
Request-specific configuration.
|
|
807
|
+
|
|
808
|
+
Returns
|
|
809
|
+
-------
|
|
810
|
+
AsyncHttpResponse[GetSmsCampaignsResponse]
|
|
811
|
+
SMS campaigns informations
|
|
812
|
+
"""
|
|
813
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
814
|
+
"smsCampaigns",
|
|
815
|
+
method="GET",
|
|
816
|
+
params={
|
|
817
|
+
"status": status,
|
|
818
|
+
"startDate": start_date,
|
|
819
|
+
"endDate": end_date,
|
|
820
|
+
"limit": limit,
|
|
821
|
+
"offset": offset,
|
|
822
|
+
"sort": sort,
|
|
823
|
+
},
|
|
824
|
+
request_options=request_options,
|
|
825
|
+
)
|
|
826
|
+
try:
|
|
827
|
+
if 200 <= _response.status_code < 300:
|
|
828
|
+
_data = typing.cast(
|
|
829
|
+
GetSmsCampaignsResponse,
|
|
830
|
+
construct_type(
|
|
831
|
+
type_=GetSmsCampaignsResponse, # type: ignore
|
|
832
|
+
object_=_response.json(),
|
|
833
|
+
),
|
|
834
|
+
)
|
|
835
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
836
|
+
if _response.status_code == 400:
|
|
837
|
+
raise BadRequestError(
|
|
838
|
+
headers=dict(_response.headers),
|
|
839
|
+
body=typing.cast(
|
|
840
|
+
typing.Any,
|
|
841
|
+
construct_type(
|
|
842
|
+
type_=typing.Any, # type: ignore
|
|
843
|
+
object_=_response.json(),
|
|
844
|
+
),
|
|
845
|
+
),
|
|
846
|
+
)
|
|
847
|
+
_response_json = _response.json()
|
|
848
|
+
except JSONDecodeError:
|
|
849
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
850
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
851
|
+
|
|
852
|
+
async def create_sms_campaign(
|
|
853
|
+
self,
|
|
854
|
+
*,
|
|
855
|
+
content: str,
|
|
856
|
+
name: str,
|
|
857
|
+
sender: str,
|
|
858
|
+
organisation_prefix: typing.Optional[str] = OMIT,
|
|
859
|
+
recipients: typing.Optional[CreateSmsCampaignRequestRecipients] = OMIT,
|
|
860
|
+
scheduled_at: typing.Optional[str] = OMIT,
|
|
861
|
+
unicode_enabled: typing.Optional[bool] = OMIT,
|
|
862
|
+
unsubscribe_instruction: typing.Optional[str] = OMIT,
|
|
863
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
864
|
+
) -> AsyncHttpResponse[CreateSmsCampaignResponse]:
|
|
865
|
+
"""
|
|
866
|
+
Parameters
|
|
867
|
+
----------
|
|
868
|
+
content : str
|
|
869
|
+
Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS.
|
|
870
|
+
|
|
871
|
+
name : str
|
|
872
|
+
Name of the campaign
|
|
873
|
+
|
|
874
|
+
sender : str
|
|
875
|
+
Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**
|
|
876
|
+
|
|
877
|
+
organisation_prefix : typing.Optional[str]
|
|
878
|
+
A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**
|
|
879
|
+
|
|
880
|
+
recipients : typing.Optional[CreateSmsCampaignRequestRecipients]
|
|
881
|
+
|
|
882
|
+
scheduled_at : typing.Optional[str]
|
|
883
|
+
UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
|
|
884
|
+
|
|
885
|
+
unicode_enabled : typing.Optional[bool]
|
|
886
|
+
Format of the message. It indicates whether the content should be treated as unicode or not.
|
|
887
|
+
|
|
888
|
+
unsubscribe_instruction : typing.Optional[str]
|
|
889
|
+
Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**
|
|
890
|
+
|
|
891
|
+
request_options : typing.Optional[RequestOptions]
|
|
892
|
+
Request-specific configuration.
|
|
893
|
+
|
|
894
|
+
Returns
|
|
895
|
+
-------
|
|
896
|
+
AsyncHttpResponse[CreateSmsCampaignResponse]
|
|
897
|
+
successfully created
|
|
898
|
+
"""
|
|
899
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
900
|
+
"smsCampaigns",
|
|
901
|
+
method="POST",
|
|
902
|
+
json={
|
|
903
|
+
"content": content,
|
|
904
|
+
"name": name,
|
|
905
|
+
"organisationPrefix": organisation_prefix,
|
|
906
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
907
|
+
object_=recipients, annotation=CreateSmsCampaignRequestRecipients, direction="write"
|
|
908
|
+
),
|
|
909
|
+
"scheduledAt": scheduled_at,
|
|
910
|
+
"sender": sender,
|
|
911
|
+
"unicodeEnabled": unicode_enabled,
|
|
912
|
+
"unsubscribeInstruction": unsubscribe_instruction,
|
|
913
|
+
},
|
|
914
|
+
headers={
|
|
915
|
+
"content-type": "application/json",
|
|
916
|
+
},
|
|
917
|
+
request_options=request_options,
|
|
918
|
+
omit=OMIT,
|
|
919
|
+
)
|
|
920
|
+
try:
|
|
921
|
+
if 200 <= _response.status_code < 300:
|
|
922
|
+
_data = typing.cast(
|
|
923
|
+
CreateSmsCampaignResponse,
|
|
924
|
+
construct_type(
|
|
925
|
+
type_=CreateSmsCampaignResponse, # type: ignore
|
|
926
|
+
object_=_response.json(),
|
|
927
|
+
),
|
|
928
|
+
)
|
|
929
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
930
|
+
if _response.status_code == 400:
|
|
931
|
+
raise BadRequestError(
|
|
932
|
+
headers=dict(_response.headers),
|
|
933
|
+
body=typing.cast(
|
|
934
|
+
typing.Any,
|
|
935
|
+
construct_type(
|
|
936
|
+
type_=typing.Any, # type: ignore
|
|
937
|
+
object_=_response.json(),
|
|
938
|
+
),
|
|
939
|
+
),
|
|
940
|
+
)
|
|
941
|
+
_response_json = _response.json()
|
|
942
|
+
except JSONDecodeError:
|
|
943
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
944
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
945
|
+
|
|
946
|
+
async def get_sms_campaign(
|
|
947
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
948
|
+
) -> AsyncHttpResponse[GetSmsCampaignResponse]:
|
|
949
|
+
"""
|
|
950
|
+
Parameters
|
|
951
|
+
----------
|
|
952
|
+
campaign_id : int
|
|
953
|
+
id of the SMS campaign
|
|
954
|
+
|
|
955
|
+
request_options : typing.Optional[RequestOptions]
|
|
956
|
+
Request-specific configuration.
|
|
957
|
+
|
|
958
|
+
Returns
|
|
959
|
+
-------
|
|
960
|
+
AsyncHttpResponse[GetSmsCampaignResponse]
|
|
961
|
+
SMS campaign informations
|
|
962
|
+
"""
|
|
963
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
964
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}",
|
|
965
|
+
method="GET",
|
|
966
|
+
request_options=request_options,
|
|
967
|
+
)
|
|
968
|
+
try:
|
|
969
|
+
if 200 <= _response.status_code < 300:
|
|
970
|
+
_data = typing.cast(
|
|
971
|
+
GetSmsCampaignResponse,
|
|
972
|
+
construct_type(
|
|
973
|
+
type_=GetSmsCampaignResponse, # type: ignore
|
|
974
|
+
object_=_response.json(),
|
|
975
|
+
),
|
|
976
|
+
)
|
|
977
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
978
|
+
if _response.status_code == 400:
|
|
979
|
+
raise BadRequestError(
|
|
980
|
+
headers=dict(_response.headers),
|
|
981
|
+
body=typing.cast(
|
|
982
|
+
typing.Any,
|
|
983
|
+
construct_type(
|
|
984
|
+
type_=typing.Any, # type: ignore
|
|
985
|
+
object_=_response.json(),
|
|
986
|
+
),
|
|
987
|
+
),
|
|
988
|
+
)
|
|
989
|
+
if _response.status_code == 404:
|
|
990
|
+
raise NotFoundError(
|
|
991
|
+
headers=dict(_response.headers),
|
|
992
|
+
body=typing.cast(
|
|
993
|
+
typing.Any,
|
|
994
|
+
construct_type(
|
|
995
|
+
type_=typing.Any, # type: ignore
|
|
996
|
+
object_=_response.json(),
|
|
997
|
+
),
|
|
998
|
+
),
|
|
999
|
+
)
|
|
1000
|
+
_response_json = _response.json()
|
|
1001
|
+
except JSONDecodeError:
|
|
1002
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1003
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1004
|
+
|
|
1005
|
+
async def update_sms_campaign(
|
|
1006
|
+
self,
|
|
1007
|
+
campaign_id: int,
|
|
1008
|
+
*,
|
|
1009
|
+
content: typing.Optional[str] = OMIT,
|
|
1010
|
+
name: typing.Optional[str] = OMIT,
|
|
1011
|
+
organisation_prefix: typing.Optional[str] = OMIT,
|
|
1012
|
+
recipients: typing.Optional[UpdateSmsCampaignRequestRecipients] = OMIT,
|
|
1013
|
+
scheduled_at: typing.Optional[str] = OMIT,
|
|
1014
|
+
sender: typing.Optional[str] = OMIT,
|
|
1015
|
+
unicode_enabled: typing.Optional[bool] = OMIT,
|
|
1016
|
+
unsubscribe_instruction: typing.Optional[str] = OMIT,
|
|
1017
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1018
|
+
) -> AsyncHttpResponse[None]:
|
|
1019
|
+
"""
|
|
1020
|
+
Parameters
|
|
1021
|
+
----------
|
|
1022
|
+
campaign_id : int
|
|
1023
|
+
id of the SMS campaign
|
|
1024
|
+
|
|
1025
|
+
content : typing.Optional[str]
|
|
1026
|
+
Content of the message. The **maximum characters used per SMS is 160**, if used more than that, it will be counted as more than one SMS
|
|
1027
|
+
|
|
1028
|
+
name : typing.Optional[str]
|
|
1029
|
+
Name of the campaign
|
|
1030
|
+
|
|
1031
|
+
organisation_prefix : typing.Optional[str]
|
|
1032
|
+
A recognizable prefix will ensure your audience knows who you are. Recommended by U.S. carriers. This will be added as your Brand Name before the message content. **Prefer verifying maximum length of 160 characters including this prefix in message content to avoid multiple sending of same sms.**
|
|
1033
|
+
|
|
1034
|
+
recipients : typing.Optional[UpdateSmsCampaignRequestRecipients]
|
|
1035
|
+
|
|
1036
|
+
scheduled_at : typing.Optional[str]
|
|
1037
|
+
UTC date-time on which the campaign has to run (YYYY-MM-DDTHH:mm:ss.SSSZ). **Prefer to pass your timezone in date-time format for accurate result.**
|
|
1038
|
+
|
|
1039
|
+
sender : typing.Optional[str]
|
|
1040
|
+
Name of the sender. **The number of characters is limited to 11 for alphanumeric characters and 15 for numeric characters**
|
|
1041
|
+
|
|
1042
|
+
unicode_enabled : typing.Optional[bool]
|
|
1043
|
+
Format of the message. It indicates whether the content should be treated as unicode or not.
|
|
1044
|
+
|
|
1045
|
+
unsubscribe_instruction : typing.Optional[str]
|
|
1046
|
+
Instructions to unsubscribe from future communications. Recommended by U.S. carriers. Must include **STOP** keyword. This will be added as instructions after the end of message content. **Prefer verifying maximum length of 160 characters including this instructions in message content to avoid multiple sending of same sms.**
|
|
1047
|
+
|
|
1048
|
+
request_options : typing.Optional[RequestOptions]
|
|
1049
|
+
Request-specific configuration.
|
|
1050
|
+
|
|
1051
|
+
Returns
|
|
1052
|
+
-------
|
|
1053
|
+
AsyncHttpResponse[None]
|
|
1054
|
+
"""
|
|
1055
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1056
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}",
|
|
1057
|
+
method="PUT",
|
|
1058
|
+
json={
|
|
1059
|
+
"content": content,
|
|
1060
|
+
"name": name,
|
|
1061
|
+
"organisationPrefix": organisation_prefix,
|
|
1062
|
+
"recipients": convert_and_respect_annotation_metadata(
|
|
1063
|
+
object_=recipients, annotation=UpdateSmsCampaignRequestRecipients, direction="write"
|
|
1064
|
+
),
|
|
1065
|
+
"scheduledAt": scheduled_at,
|
|
1066
|
+
"sender": sender,
|
|
1067
|
+
"unicodeEnabled": unicode_enabled,
|
|
1068
|
+
"unsubscribeInstruction": unsubscribe_instruction,
|
|
1069
|
+
},
|
|
1070
|
+
headers={
|
|
1071
|
+
"content-type": "application/json",
|
|
1072
|
+
},
|
|
1073
|
+
request_options=request_options,
|
|
1074
|
+
omit=OMIT,
|
|
1075
|
+
)
|
|
1076
|
+
try:
|
|
1077
|
+
if 200 <= _response.status_code < 300:
|
|
1078
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1079
|
+
if _response.status_code == 400:
|
|
1080
|
+
raise BadRequestError(
|
|
1081
|
+
headers=dict(_response.headers),
|
|
1082
|
+
body=typing.cast(
|
|
1083
|
+
typing.Any,
|
|
1084
|
+
construct_type(
|
|
1085
|
+
type_=typing.Any, # type: ignore
|
|
1086
|
+
object_=_response.json(),
|
|
1087
|
+
),
|
|
1088
|
+
),
|
|
1089
|
+
)
|
|
1090
|
+
if _response.status_code == 404:
|
|
1091
|
+
raise NotFoundError(
|
|
1092
|
+
headers=dict(_response.headers),
|
|
1093
|
+
body=typing.cast(
|
|
1094
|
+
typing.Any,
|
|
1095
|
+
construct_type(
|
|
1096
|
+
type_=typing.Any, # type: ignore
|
|
1097
|
+
object_=_response.json(),
|
|
1098
|
+
),
|
|
1099
|
+
),
|
|
1100
|
+
)
|
|
1101
|
+
_response_json = _response.json()
|
|
1102
|
+
except JSONDecodeError:
|
|
1103
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1104
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1105
|
+
|
|
1106
|
+
async def delete_sms_campaign(
|
|
1107
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
1108
|
+
) -> AsyncHttpResponse[None]:
|
|
1109
|
+
"""
|
|
1110
|
+
Parameters
|
|
1111
|
+
----------
|
|
1112
|
+
campaign_id : int
|
|
1113
|
+
id of the SMS campaign
|
|
1114
|
+
|
|
1115
|
+
request_options : typing.Optional[RequestOptions]
|
|
1116
|
+
Request-specific configuration.
|
|
1117
|
+
|
|
1118
|
+
Returns
|
|
1119
|
+
-------
|
|
1120
|
+
AsyncHttpResponse[None]
|
|
1121
|
+
"""
|
|
1122
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1123
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}",
|
|
1124
|
+
method="DELETE",
|
|
1125
|
+
request_options=request_options,
|
|
1126
|
+
)
|
|
1127
|
+
try:
|
|
1128
|
+
if 200 <= _response.status_code < 300:
|
|
1129
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1130
|
+
if _response.status_code == 400:
|
|
1131
|
+
raise BadRequestError(
|
|
1132
|
+
headers=dict(_response.headers),
|
|
1133
|
+
body=typing.cast(
|
|
1134
|
+
typing.Any,
|
|
1135
|
+
construct_type(
|
|
1136
|
+
type_=typing.Any, # type: ignore
|
|
1137
|
+
object_=_response.json(),
|
|
1138
|
+
),
|
|
1139
|
+
),
|
|
1140
|
+
)
|
|
1141
|
+
if _response.status_code == 404:
|
|
1142
|
+
raise NotFoundError(
|
|
1143
|
+
headers=dict(_response.headers),
|
|
1144
|
+
body=typing.cast(
|
|
1145
|
+
typing.Any,
|
|
1146
|
+
construct_type(
|
|
1147
|
+
type_=typing.Any, # type: ignore
|
|
1148
|
+
object_=_response.json(),
|
|
1149
|
+
),
|
|
1150
|
+
),
|
|
1151
|
+
)
|
|
1152
|
+
_response_json = _response.json()
|
|
1153
|
+
except JSONDecodeError:
|
|
1154
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1155
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1156
|
+
|
|
1157
|
+
async def request_sms_recipient_export(
|
|
1158
|
+
self,
|
|
1159
|
+
campaign_id: int,
|
|
1160
|
+
*,
|
|
1161
|
+
recipients_type: RequestSmsRecipientExportRequestRecipientsType,
|
|
1162
|
+
notify_url: typing.Optional[str] = OMIT,
|
|
1163
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1164
|
+
) -> AsyncHttpResponse[RequestSmsRecipientExportResponse]:
|
|
1165
|
+
"""
|
|
1166
|
+
It returns the background process ID which on completion calls the notify URL that you have set in the input.
|
|
1167
|
+
|
|
1168
|
+
Parameters
|
|
1169
|
+
----------
|
|
1170
|
+
campaign_id : int
|
|
1171
|
+
id of the campaign
|
|
1172
|
+
|
|
1173
|
+
recipients_type : RequestSmsRecipientExportRequestRecipientsType
|
|
1174
|
+
Filter the recipients based on how they interacted with the campaign
|
|
1175
|
+
|
|
1176
|
+
notify_url : typing.Optional[str]
|
|
1177
|
+
URL that will be called once the export process is finished. For reference, https://help.brevo.com/hc/en-us/articles/360007666479
|
|
1178
|
+
|
|
1179
|
+
request_options : typing.Optional[RequestOptions]
|
|
1180
|
+
Request-specific configuration.
|
|
1181
|
+
|
|
1182
|
+
Returns
|
|
1183
|
+
-------
|
|
1184
|
+
AsyncHttpResponse[RequestSmsRecipientExportResponse]
|
|
1185
|
+
process id created
|
|
1186
|
+
"""
|
|
1187
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1188
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/exportRecipients",
|
|
1189
|
+
method="POST",
|
|
1190
|
+
json={
|
|
1191
|
+
"notifyURL": notify_url,
|
|
1192
|
+
"recipientsType": recipients_type,
|
|
1193
|
+
},
|
|
1194
|
+
headers={
|
|
1195
|
+
"content-type": "application/json",
|
|
1196
|
+
},
|
|
1197
|
+
request_options=request_options,
|
|
1198
|
+
omit=OMIT,
|
|
1199
|
+
)
|
|
1200
|
+
try:
|
|
1201
|
+
if 200 <= _response.status_code < 300:
|
|
1202
|
+
_data = typing.cast(
|
|
1203
|
+
RequestSmsRecipientExportResponse,
|
|
1204
|
+
construct_type(
|
|
1205
|
+
type_=RequestSmsRecipientExportResponse, # type: ignore
|
|
1206
|
+
object_=_response.json(),
|
|
1207
|
+
),
|
|
1208
|
+
)
|
|
1209
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1210
|
+
if _response.status_code == 400:
|
|
1211
|
+
raise BadRequestError(
|
|
1212
|
+
headers=dict(_response.headers),
|
|
1213
|
+
body=typing.cast(
|
|
1214
|
+
typing.Any,
|
|
1215
|
+
construct_type(
|
|
1216
|
+
type_=typing.Any, # type: ignore
|
|
1217
|
+
object_=_response.json(),
|
|
1218
|
+
),
|
|
1219
|
+
),
|
|
1220
|
+
)
|
|
1221
|
+
if _response.status_code == 404:
|
|
1222
|
+
raise NotFoundError(
|
|
1223
|
+
headers=dict(_response.headers),
|
|
1224
|
+
body=typing.cast(
|
|
1225
|
+
typing.Any,
|
|
1226
|
+
construct_type(
|
|
1227
|
+
type_=typing.Any, # type: ignore
|
|
1228
|
+
object_=_response.json(),
|
|
1229
|
+
),
|
|
1230
|
+
),
|
|
1231
|
+
)
|
|
1232
|
+
_response_json = _response.json()
|
|
1233
|
+
except JSONDecodeError:
|
|
1234
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1235
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1236
|
+
|
|
1237
|
+
async def send_sms_campaign_now(
|
|
1238
|
+
self, campaign_id: int, *, request_options: typing.Optional[RequestOptions] = None
|
|
1239
|
+
) -> AsyncHttpResponse[None]:
|
|
1240
|
+
"""
|
|
1241
|
+
Parameters
|
|
1242
|
+
----------
|
|
1243
|
+
campaign_id : int
|
|
1244
|
+
id of the campaign
|
|
1245
|
+
|
|
1246
|
+
request_options : typing.Optional[RequestOptions]
|
|
1247
|
+
Request-specific configuration.
|
|
1248
|
+
|
|
1249
|
+
Returns
|
|
1250
|
+
-------
|
|
1251
|
+
AsyncHttpResponse[None]
|
|
1252
|
+
"""
|
|
1253
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1254
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/sendNow",
|
|
1255
|
+
method="POST",
|
|
1256
|
+
request_options=request_options,
|
|
1257
|
+
)
|
|
1258
|
+
try:
|
|
1259
|
+
if 200 <= _response.status_code < 300:
|
|
1260
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1261
|
+
if _response.status_code == 400:
|
|
1262
|
+
raise BadRequestError(
|
|
1263
|
+
headers=dict(_response.headers),
|
|
1264
|
+
body=typing.cast(
|
|
1265
|
+
typing.Any,
|
|
1266
|
+
construct_type(
|
|
1267
|
+
type_=typing.Any, # type: ignore
|
|
1268
|
+
object_=_response.json(),
|
|
1269
|
+
),
|
|
1270
|
+
),
|
|
1271
|
+
)
|
|
1272
|
+
if _response.status_code == 402:
|
|
1273
|
+
raise PaymentRequiredError(
|
|
1274
|
+
headers=dict(_response.headers),
|
|
1275
|
+
body=typing.cast(
|
|
1276
|
+
ErrorModel,
|
|
1277
|
+
construct_type(
|
|
1278
|
+
type_=ErrorModel, # type: ignore
|
|
1279
|
+
object_=_response.json(),
|
|
1280
|
+
),
|
|
1281
|
+
),
|
|
1282
|
+
)
|
|
1283
|
+
if _response.status_code == 404:
|
|
1284
|
+
raise NotFoundError(
|
|
1285
|
+
headers=dict(_response.headers),
|
|
1286
|
+
body=typing.cast(
|
|
1287
|
+
typing.Any,
|
|
1288
|
+
construct_type(
|
|
1289
|
+
type_=typing.Any, # type: ignore
|
|
1290
|
+
object_=_response.json(),
|
|
1291
|
+
),
|
|
1292
|
+
),
|
|
1293
|
+
)
|
|
1294
|
+
_response_json = _response.json()
|
|
1295
|
+
except JSONDecodeError:
|
|
1296
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1297
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1298
|
+
|
|
1299
|
+
async def send_sms_report(
|
|
1300
|
+
self,
|
|
1301
|
+
campaign_id: int,
|
|
1302
|
+
*,
|
|
1303
|
+
email: SendReportEmail,
|
|
1304
|
+
language: typing.Optional[SendReportLanguage] = OMIT,
|
|
1305
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1306
|
+
) -> AsyncHttpResponse[None]:
|
|
1307
|
+
"""
|
|
1308
|
+
Send report of Sent and Archived campaign, to the specified email addresses, with respective data and a pdf attachment in detail.
|
|
1309
|
+
|
|
1310
|
+
Parameters
|
|
1311
|
+
----------
|
|
1312
|
+
campaign_id : int
|
|
1313
|
+
id of the campaign
|
|
1314
|
+
|
|
1315
|
+
email : SendReportEmail
|
|
1316
|
+
Custom attributes for the report email.
|
|
1317
|
+
|
|
1318
|
+
language : typing.Optional[SendReportLanguage]
|
|
1319
|
+
Language of email content for campaign report sending.
|
|
1320
|
+
|
|
1321
|
+
request_options : typing.Optional[RequestOptions]
|
|
1322
|
+
Request-specific configuration.
|
|
1323
|
+
|
|
1324
|
+
Returns
|
|
1325
|
+
-------
|
|
1326
|
+
AsyncHttpResponse[None]
|
|
1327
|
+
"""
|
|
1328
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1329
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/sendReport",
|
|
1330
|
+
method="POST",
|
|
1331
|
+
json={
|
|
1332
|
+
"email": convert_and_respect_annotation_metadata(
|
|
1333
|
+
object_=email, annotation=SendReportEmail, direction="write"
|
|
1334
|
+
),
|
|
1335
|
+
"language": language,
|
|
1336
|
+
},
|
|
1337
|
+
headers={
|
|
1338
|
+
"content-type": "application/json",
|
|
1339
|
+
},
|
|
1340
|
+
request_options=request_options,
|
|
1341
|
+
omit=OMIT,
|
|
1342
|
+
)
|
|
1343
|
+
try:
|
|
1344
|
+
if 200 <= _response.status_code < 300:
|
|
1345
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1346
|
+
if _response.status_code == 400:
|
|
1347
|
+
raise BadRequestError(
|
|
1348
|
+
headers=dict(_response.headers),
|
|
1349
|
+
body=typing.cast(
|
|
1350
|
+
typing.Any,
|
|
1351
|
+
construct_type(
|
|
1352
|
+
type_=typing.Any, # type: ignore
|
|
1353
|
+
object_=_response.json(),
|
|
1354
|
+
),
|
|
1355
|
+
),
|
|
1356
|
+
)
|
|
1357
|
+
if _response.status_code == 404:
|
|
1358
|
+
raise NotFoundError(
|
|
1359
|
+
headers=dict(_response.headers),
|
|
1360
|
+
body=typing.cast(
|
|
1361
|
+
typing.Any,
|
|
1362
|
+
construct_type(
|
|
1363
|
+
type_=typing.Any, # type: ignore
|
|
1364
|
+
object_=_response.json(),
|
|
1365
|
+
),
|
|
1366
|
+
),
|
|
1367
|
+
)
|
|
1368
|
+
_response_json = _response.json()
|
|
1369
|
+
except JSONDecodeError:
|
|
1370
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1371
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1372
|
+
|
|
1373
|
+
async def send_test_sms(
|
|
1374
|
+
self,
|
|
1375
|
+
campaign_id: int,
|
|
1376
|
+
*,
|
|
1377
|
+
phone_number: typing.Optional[str] = OMIT,
|
|
1378
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1379
|
+
) -> AsyncHttpResponse[None]:
|
|
1380
|
+
"""
|
|
1381
|
+
Parameters
|
|
1382
|
+
----------
|
|
1383
|
+
campaign_id : int
|
|
1384
|
+
Id of the SMS campaign
|
|
1385
|
+
|
|
1386
|
+
phone_number : typing.Optional[str]
|
|
1387
|
+
Mobile number of the recipient with the country code. This number **must belong to one of your contacts in Brevo account and must not be blacklisted**
|
|
1388
|
+
|
|
1389
|
+
request_options : typing.Optional[RequestOptions]
|
|
1390
|
+
Request-specific configuration.
|
|
1391
|
+
|
|
1392
|
+
Returns
|
|
1393
|
+
-------
|
|
1394
|
+
AsyncHttpResponse[None]
|
|
1395
|
+
"""
|
|
1396
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1397
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/sendTest",
|
|
1398
|
+
method="POST",
|
|
1399
|
+
json={
|
|
1400
|
+
"phoneNumber": phone_number,
|
|
1401
|
+
},
|
|
1402
|
+
headers={
|
|
1403
|
+
"content-type": "application/json",
|
|
1404
|
+
},
|
|
1405
|
+
request_options=request_options,
|
|
1406
|
+
omit=OMIT,
|
|
1407
|
+
)
|
|
1408
|
+
try:
|
|
1409
|
+
if 200 <= _response.status_code < 300:
|
|
1410
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1411
|
+
if _response.status_code == 400:
|
|
1412
|
+
raise BadRequestError(
|
|
1413
|
+
headers=dict(_response.headers),
|
|
1414
|
+
body=typing.cast(
|
|
1415
|
+
typing.Any,
|
|
1416
|
+
construct_type(
|
|
1417
|
+
type_=typing.Any, # type: ignore
|
|
1418
|
+
object_=_response.json(),
|
|
1419
|
+
),
|
|
1420
|
+
),
|
|
1421
|
+
)
|
|
1422
|
+
if _response.status_code == 404:
|
|
1423
|
+
raise NotFoundError(
|
|
1424
|
+
headers=dict(_response.headers),
|
|
1425
|
+
body=typing.cast(
|
|
1426
|
+
typing.Any,
|
|
1427
|
+
construct_type(
|
|
1428
|
+
type_=typing.Any, # type: ignore
|
|
1429
|
+
object_=_response.json(),
|
|
1430
|
+
),
|
|
1431
|
+
),
|
|
1432
|
+
)
|
|
1433
|
+
_response_json = _response.json()
|
|
1434
|
+
except JSONDecodeError:
|
|
1435
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1436
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1437
|
+
|
|
1438
|
+
async def update_sms_campaign_status(
|
|
1439
|
+
self,
|
|
1440
|
+
campaign_id: int,
|
|
1441
|
+
*,
|
|
1442
|
+
status: typing.Optional[UpdateCampaignStatusStatus] = OMIT,
|
|
1443
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1444
|
+
) -> AsyncHttpResponse[None]:
|
|
1445
|
+
"""
|
|
1446
|
+
Parameters
|
|
1447
|
+
----------
|
|
1448
|
+
campaign_id : int
|
|
1449
|
+
id of the campaign
|
|
1450
|
+
|
|
1451
|
+
status : typing.Optional[UpdateCampaignStatusStatus]
|
|
1452
|
+
Note:- **replicateTemplate** status will be available **only for template type campaigns.**
|
|
1453
|
+
|
|
1454
|
+
request_options : typing.Optional[RequestOptions]
|
|
1455
|
+
Request-specific configuration.
|
|
1456
|
+
|
|
1457
|
+
Returns
|
|
1458
|
+
-------
|
|
1459
|
+
AsyncHttpResponse[None]
|
|
1460
|
+
"""
|
|
1461
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1462
|
+
f"smsCampaigns/{jsonable_encoder(campaign_id)}/status",
|
|
1463
|
+
method="PUT",
|
|
1464
|
+
json={
|
|
1465
|
+
"status": status,
|
|
1466
|
+
},
|
|
1467
|
+
headers={
|
|
1468
|
+
"content-type": "application/json",
|
|
1469
|
+
},
|
|
1470
|
+
request_options=request_options,
|
|
1471
|
+
omit=OMIT,
|
|
1472
|
+
)
|
|
1473
|
+
try:
|
|
1474
|
+
if 200 <= _response.status_code < 300:
|
|
1475
|
+
return AsyncHttpResponse(response=_response, data=None)
|
|
1476
|
+
if _response.status_code == 400:
|
|
1477
|
+
raise BadRequestError(
|
|
1478
|
+
headers=dict(_response.headers),
|
|
1479
|
+
body=typing.cast(
|
|
1480
|
+
typing.Any,
|
|
1481
|
+
construct_type(
|
|
1482
|
+
type_=typing.Any, # type: ignore
|
|
1483
|
+
object_=_response.json(),
|
|
1484
|
+
),
|
|
1485
|
+
),
|
|
1486
|
+
)
|
|
1487
|
+
if _response.status_code == 404:
|
|
1488
|
+
raise NotFoundError(
|
|
1489
|
+
headers=dict(_response.headers),
|
|
1490
|
+
body=typing.cast(
|
|
1491
|
+
typing.Any,
|
|
1492
|
+
construct_type(
|
|
1493
|
+
type_=typing.Any, # type: ignore
|
|
1494
|
+
object_=_response.json(),
|
|
1495
|
+
),
|
|
1496
|
+
),
|
|
1497
|
+
)
|
|
1498
|
+
_response_json = _response.json()
|
|
1499
|
+
except JSONDecodeError:
|
|
1500
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1501
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|