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