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