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
brevo/client.py ADDED
@@ -0,0 +1,773 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from __future__ import annotations
4
+
5
+ import typing
6
+
7
+ import httpx
8
+ from .core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from .core.logging import LogConfig, Logger
10
+ from .environment import BrevoEnvironment
11
+
12
+ if typing.TYPE_CHECKING:
13
+ from .account.client import AccountClient, AsyncAccountClient
14
+ from .balance.client import AsyncBalanceClient, BalanceClient
15
+ from .companies.client import AsyncCompaniesClient, CompaniesClient
16
+ from .contacts.client import AsyncContactsClient, ContactsClient
17
+ from .conversations.client import AsyncConversationsClient, ConversationsClient
18
+ from .coupons.client import AsyncCouponsClient, CouponsClient
19
+ from .custom_objects.client import AsyncCustomObjectsClient, CustomObjectsClient
20
+ from .deals.client import AsyncDealsClient, DealsClient
21
+ from .domains.client import AsyncDomainsClient, DomainsClient
22
+ from .ecommerce.client import AsyncEcommerceClient, EcommerceClient
23
+ from .email_campaigns.client import AsyncEmailCampaignsClient, EmailCampaignsClient
24
+ from .event.client import AsyncEventClient, EventClient
25
+ from .external_feeds.client import AsyncExternalFeedsClient, ExternalFeedsClient
26
+ from .files.client import AsyncFilesClient, FilesClient
27
+ from .inbound_parsing.client import AsyncInboundParsingClient, InboundParsingClient
28
+ from .master_account.client import AsyncMasterAccountClient, MasterAccountClient
29
+ from .notes.client import AsyncNotesClient, NotesClient
30
+ from .payments.client import AsyncPaymentsClient, PaymentsClient
31
+ from .process.client import AsyncProcessClient, ProcessClient
32
+ from .program.client import AsyncProgramClient, ProgramClient
33
+ from .reward.client import AsyncRewardClient, RewardClient
34
+ from .senders.client import AsyncSendersClient, SendersClient
35
+ from .sms_campaigns.client import AsyncSmsCampaignsClient, SmsCampaignsClient
36
+ from .sms_templates.client import AsyncSmsTemplatesClient, SmsTemplatesClient
37
+ from .tasks.client import AsyncTasksClient, TasksClient
38
+ from .tier.client import AsyncTierClient, TierClient
39
+ from .transactional_emails.client import AsyncTransactionalEmailsClient, TransactionalEmailsClient
40
+ from .transactional_sms.client import AsyncTransactionalSmsClient, TransactionalSmsClient
41
+ from .transactional_whats_app.client import AsyncTransactionalWhatsAppClient, TransactionalWhatsAppClient
42
+ from .user.client import AsyncUserClient, UserClient
43
+ from .webhooks.client import AsyncWebhooksClient, WebhooksClient
44
+ from .whats_app_campaigns.client import AsyncWhatsAppCampaignsClient, WhatsAppCampaignsClient
45
+
46
+
47
+ class Brevo:
48
+ """
49
+ Use this class to access the different functions within the SDK. You can instantiate any number of clients with different configuration that will propagate to these functions.
50
+
51
+ Parameters
52
+ ----------
53
+ base_url : typing.Optional[str]
54
+ The base url to use for requests from the client.
55
+
56
+ environment : BrevoEnvironment
57
+ The environment to use for requests from the client. from .environment import BrevoEnvironment
58
+
59
+
60
+
61
+ Defaults to BrevoEnvironment.DEFAULT
62
+
63
+
64
+
65
+ api_key : str
66
+ headers : typing.Optional[typing.Dict[str, str]]
67
+ Additional headers to send with every request.
68
+
69
+ timeout : typing.Optional[float]
70
+ The timeout to be used, in seconds, for requests. By default the timeout is 60 seconds, unless a custom httpx client is used, in which case this default is not enforced.
71
+
72
+ follow_redirects : typing.Optional[bool]
73
+ Whether the default httpx client follows redirects or not, this is irrelevant if a custom httpx client is passed in.
74
+
75
+ httpx_client : typing.Optional[httpx.Client]
76
+ The httpx client to use for making requests, a preconfigured client is used by default, however this is useful should you want to pass in any custom httpx configuration.
77
+
78
+ logging : typing.Optional[typing.Union[LogConfig, Logger]]
79
+ Configure logging for the SDK. Accepts a LogConfig dict with 'level' (debug/info/warn/error), 'logger' (custom logger implementation), and 'silent' (boolean, defaults to True) fields. You can also pass a pre-configured Logger instance.
80
+
81
+ Examples
82
+ --------
83
+ from brevo import Brevo
84
+
85
+ client = Brevo(
86
+ api_key="YOUR_API_KEY",
87
+ )
88
+ """
89
+
90
+ def __init__(
91
+ self,
92
+ *,
93
+ base_url: typing.Optional[str] = None,
94
+ environment: BrevoEnvironment = BrevoEnvironment.DEFAULT,
95
+ api_key: str,
96
+ headers: typing.Optional[typing.Dict[str, str]] = None,
97
+ timeout: typing.Optional[float] = None,
98
+ follow_redirects: typing.Optional[bool] = True,
99
+ httpx_client: typing.Optional[httpx.Client] = None,
100
+ logging: typing.Optional[typing.Union[LogConfig, Logger]] = None,
101
+ ):
102
+ _defaulted_timeout = (
103
+ timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read
104
+ )
105
+ self._client_wrapper = SyncClientWrapper(
106
+ base_url=_get_base_url(base_url=base_url, environment=environment),
107
+ api_key=api_key,
108
+ headers=headers,
109
+ httpx_client=httpx_client
110
+ if httpx_client is not None
111
+ else httpx.Client(timeout=_defaulted_timeout, follow_redirects=follow_redirects)
112
+ if follow_redirects is not None
113
+ else httpx.Client(timeout=_defaulted_timeout),
114
+ timeout=_defaulted_timeout,
115
+ logging=logging,
116
+ )
117
+ self._account: typing.Optional[AccountClient] = None
118
+ self._master_account: typing.Optional[MasterAccountClient] = None
119
+ self._user: typing.Optional[UserClient] = None
120
+ self._process: typing.Optional[ProcessClient] = None
121
+ self._senders: typing.Optional[SendersClient] = None
122
+ self._domains: typing.Optional[DomainsClient] = None
123
+ self._webhooks: typing.Optional[WebhooksClient] = None
124
+ self._external_feeds: typing.Optional[ExternalFeedsClient] = None
125
+ self._custom_objects: typing.Optional[CustomObjectsClient] = None
126
+ self._contacts: typing.Optional[ContactsClient] = None
127
+ self._conversations: typing.Optional[ConversationsClient] = None
128
+ self._ecommerce: typing.Optional[EcommerceClient] = None
129
+ self._coupons: typing.Optional[CouponsClient] = None
130
+ self._payments: typing.Optional[PaymentsClient] = None
131
+ self._event: typing.Optional[EventClient] = None
132
+ self._inbound_parsing: typing.Optional[InboundParsingClient] = None
133
+ self._balance: typing.Optional[BalanceClient] = None
134
+ self._program: typing.Optional[ProgramClient] = None
135
+ self._reward: typing.Optional[RewardClient] = None
136
+ self._tier: typing.Optional[TierClient] = None
137
+ self._email_campaigns: typing.Optional[EmailCampaignsClient] = None
138
+ self._sms_campaigns: typing.Optional[SmsCampaignsClient] = None
139
+ self._whats_app_campaigns: typing.Optional[WhatsAppCampaignsClient] = None
140
+ self._companies: typing.Optional[CompaniesClient] = None
141
+ self._deals: typing.Optional[DealsClient] = None
142
+ self._files: typing.Optional[FilesClient] = None
143
+ self._notes: typing.Optional[NotesClient] = None
144
+ self._tasks: typing.Optional[TasksClient] = None
145
+ self._transactional_whats_app: typing.Optional[TransactionalWhatsAppClient] = None
146
+ self._transactional_emails: typing.Optional[TransactionalEmailsClient] = None
147
+ self._transactional_sms: typing.Optional[TransactionalSmsClient] = None
148
+ self._sms_templates: typing.Optional[SmsTemplatesClient] = None
149
+
150
+ @property
151
+ def account(self):
152
+ if self._account is None:
153
+ from .account.client import AccountClient # noqa: E402
154
+
155
+ self._account = AccountClient(client_wrapper=self._client_wrapper)
156
+ return self._account
157
+
158
+ @property
159
+ def master_account(self):
160
+ if self._master_account is None:
161
+ from .master_account.client import MasterAccountClient # noqa: E402
162
+
163
+ self._master_account = MasterAccountClient(client_wrapper=self._client_wrapper)
164
+ return self._master_account
165
+
166
+ @property
167
+ def user(self):
168
+ if self._user is None:
169
+ from .user.client import UserClient # noqa: E402
170
+
171
+ self._user = UserClient(client_wrapper=self._client_wrapper)
172
+ return self._user
173
+
174
+ @property
175
+ def process(self):
176
+ if self._process is None:
177
+ from .process.client import ProcessClient # noqa: E402
178
+
179
+ self._process = ProcessClient(client_wrapper=self._client_wrapper)
180
+ return self._process
181
+
182
+ @property
183
+ def senders(self):
184
+ if self._senders is None:
185
+ from .senders.client import SendersClient # noqa: E402
186
+
187
+ self._senders = SendersClient(client_wrapper=self._client_wrapper)
188
+ return self._senders
189
+
190
+ @property
191
+ def domains(self):
192
+ if self._domains is None:
193
+ from .domains.client import DomainsClient # noqa: E402
194
+
195
+ self._domains = DomainsClient(client_wrapper=self._client_wrapper)
196
+ return self._domains
197
+
198
+ @property
199
+ def webhooks(self):
200
+ if self._webhooks is None:
201
+ from .webhooks.client import WebhooksClient # noqa: E402
202
+
203
+ self._webhooks = WebhooksClient(client_wrapper=self._client_wrapper)
204
+ return self._webhooks
205
+
206
+ @property
207
+ def external_feeds(self):
208
+ if self._external_feeds is None:
209
+ from .external_feeds.client import ExternalFeedsClient # noqa: E402
210
+
211
+ self._external_feeds = ExternalFeedsClient(client_wrapper=self._client_wrapper)
212
+ return self._external_feeds
213
+
214
+ @property
215
+ def custom_objects(self):
216
+ if self._custom_objects is None:
217
+ from .custom_objects.client import CustomObjectsClient # noqa: E402
218
+
219
+ self._custom_objects = CustomObjectsClient(client_wrapper=self._client_wrapper)
220
+ return self._custom_objects
221
+
222
+ @property
223
+ def contacts(self):
224
+ if self._contacts is None:
225
+ from .contacts.client import ContactsClient # noqa: E402
226
+
227
+ self._contacts = ContactsClient(client_wrapper=self._client_wrapper)
228
+ return self._contacts
229
+
230
+ @property
231
+ def conversations(self):
232
+ if self._conversations is None:
233
+ from .conversations.client import ConversationsClient # noqa: E402
234
+
235
+ self._conversations = ConversationsClient(client_wrapper=self._client_wrapper)
236
+ return self._conversations
237
+
238
+ @property
239
+ def ecommerce(self):
240
+ if self._ecommerce is None:
241
+ from .ecommerce.client import EcommerceClient # noqa: E402
242
+
243
+ self._ecommerce = EcommerceClient(client_wrapper=self._client_wrapper)
244
+ return self._ecommerce
245
+
246
+ @property
247
+ def coupons(self):
248
+ if self._coupons is None:
249
+ from .coupons.client import CouponsClient # noqa: E402
250
+
251
+ self._coupons = CouponsClient(client_wrapper=self._client_wrapper)
252
+ return self._coupons
253
+
254
+ @property
255
+ def payments(self):
256
+ if self._payments is None:
257
+ from .payments.client import PaymentsClient # noqa: E402
258
+
259
+ self._payments = PaymentsClient(client_wrapper=self._client_wrapper)
260
+ return self._payments
261
+
262
+ @property
263
+ def event(self):
264
+ if self._event is None:
265
+ from .event.client import EventClient # noqa: E402
266
+
267
+ self._event = EventClient(client_wrapper=self._client_wrapper)
268
+ return self._event
269
+
270
+ @property
271
+ def inbound_parsing(self):
272
+ if self._inbound_parsing is None:
273
+ from .inbound_parsing.client import InboundParsingClient # noqa: E402
274
+
275
+ self._inbound_parsing = InboundParsingClient(client_wrapper=self._client_wrapper)
276
+ return self._inbound_parsing
277
+
278
+ @property
279
+ def balance(self):
280
+ if self._balance is None:
281
+ from .balance.client import BalanceClient # noqa: E402
282
+
283
+ self._balance = BalanceClient(client_wrapper=self._client_wrapper)
284
+ return self._balance
285
+
286
+ @property
287
+ def program(self):
288
+ if self._program is None:
289
+ from .program.client import ProgramClient # noqa: E402
290
+
291
+ self._program = ProgramClient(client_wrapper=self._client_wrapper)
292
+ return self._program
293
+
294
+ @property
295
+ def reward(self):
296
+ if self._reward is None:
297
+ from .reward.client import RewardClient # noqa: E402
298
+
299
+ self._reward = RewardClient(client_wrapper=self._client_wrapper)
300
+ return self._reward
301
+
302
+ @property
303
+ def tier(self):
304
+ if self._tier is None:
305
+ from .tier.client import TierClient # noqa: E402
306
+
307
+ self._tier = TierClient(client_wrapper=self._client_wrapper)
308
+ return self._tier
309
+
310
+ @property
311
+ def email_campaigns(self):
312
+ if self._email_campaigns is None:
313
+ from .email_campaigns.client import EmailCampaignsClient # noqa: E402
314
+
315
+ self._email_campaigns = EmailCampaignsClient(client_wrapper=self._client_wrapper)
316
+ return self._email_campaigns
317
+
318
+ @property
319
+ def sms_campaigns(self):
320
+ if self._sms_campaigns is None:
321
+ from .sms_campaigns.client import SmsCampaignsClient # noqa: E402
322
+
323
+ self._sms_campaigns = SmsCampaignsClient(client_wrapper=self._client_wrapper)
324
+ return self._sms_campaigns
325
+
326
+ @property
327
+ def whats_app_campaigns(self):
328
+ if self._whats_app_campaigns is None:
329
+ from .whats_app_campaigns.client import WhatsAppCampaignsClient # noqa: E402
330
+
331
+ self._whats_app_campaigns = WhatsAppCampaignsClient(client_wrapper=self._client_wrapper)
332
+ return self._whats_app_campaigns
333
+
334
+ @property
335
+ def companies(self):
336
+ if self._companies is None:
337
+ from .companies.client import CompaniesClient # noqa: E402
338
+
339
+ self._companies = CompaniesClient(client_wrapper=self._client_wrapper)
340
+ return self._companies
341
+
342
+ @property
343
+ def deals(self):
344
+ if self._deals is None:
345
+ from .deals.client import DealsClient # noqa: E402
346
+
347
+ self._deals = DealsClient(client_wrapper=self._client_wrapper)
348
+ return self._deals
349
+
350
+ @property
351
+ def files(self):
352
+ if self._files is None:
353
+ from .files.client import FilesClient # noqa: E402
354
+
355
+ self._files = FilesClient(client_wrapper=self._client_wrapper)
356
+ return self._files
357
+
358
+ @property
359
+ def notes(self):
360
+ if self._notes is None:
361
+ from .notes.client import NotesClient # noqa: E402
362
+
363
+ self._notes = NotesClient(client_wrapper=self._client_wrapper)
364
+ return self._notes
365
+
366
+ @property
367
+ def tasks(self):
368
+ if self._tasks is None:
369
+ from .tasks.client import TasksClient # noqa: E402
370
+
371
+ self._tasks = TasksClient(client_wrapper=self._client_wrapper)
372
+ return self._tasks
373
+
374
+ @property
375
+ def transactional_whats_app(self):
376
+ if self._transactional_whats_app is None:
377
+ from .transactional_whats_app.client import TransactionalWhatsAppClient # noqa: E402
378
+
379
+ self._transactional_whats_app = TransactionalWhatsAppClient(client_wrapper=self._client_wrapper)
380
+ return self._transactional_whats_app
381
+
382
+ @property
383
+ def transactional_emails(self):
384
+ if self._transactional_emails is None:
385
+ from .transactional_emails.client import TransactionalEmailsClient # noqa: E402
386
+
387
+ self._transactional_emails = TransactionalEmailsClient(client_wrapper=self._client_wrapper)
388
+ return self._transactional_emails
389
+
390
+ @property
391
+ def transactional_sms(self):
392
+ if self._transactional_sms is None:
393
+ from .transactional_sms.client import TransactionalSmsClient # noqa: E402
394
+
395
+ self._transactional_sms = TransactionalSmsClient(client_wrapper=self._client_wrapper)
396
+ return self._transactional_sms
397
+
398
+ @property
399
+ def sms_templates(self):
400
+ if self._sms_templates is None:
401
+ from .sms_templates.client import SmsTemplatesClient # noqa: E402
402
+
403
+ self._sms_templates = SmsTemplatesClient(client_wrapper=self._client_wrapper)
404
+ return self._sms_templates
405
+
406
+
407
+ class AsyncBrevo:
408
+ """
409
+ Use this class to access the different functions within the SDK. You can instantiate any number of clients with different configuration that will propagate to these functions.
410
+
411
+ Parameters
412
+ ----------
413
+ base_url : typing.Optional[str]
414
+ The base url to use for requests from the client.
415
+
416
+ environment : BrevoEnvironment
417
+ The environment to use for requests from the client. from .environment import BrevoEnvironment
418
+
419
+
420
+
421
+ Defaults to BrevoEnvironment.DEFAULT
422
+
423
+
424
+
425
+ api_key : str
426
+ headers : typing.Optional[typing.Dict[str, str]]
427
+ Additional headers to send with every request.
428
+
429
+ timeout : typing.Optional[float]
430
+ The timeout to be used, in seconds, for requests. By default the timeout is 60 seconds, unless a custom httpx client is used, in which case this default is not enforced.
431
+
432
+ follow_redirects : typing.Optional[bool]
433
+ Whether the default httpx client follows redirects or not, this is irrelevant if a custom httpx client is passed in.
434
+
435
+ httpx_client : typing.Optional[httpx.AsyncClient]
436
+ The httpx client to use for making requests, a preconfigured client is used by default, however this is useful should you want to pass in any custom httpx configuration.
437
+
438
+ logging : typing.Optional[typing.Union[LogConfig, Logger]]
439
+ Configure logging for the SDK. Accepts a LogConfig dict with 'level' (debug/info/warn/error), 'logger' (custom logger implementation), and 'silent' (boolean, defaults to True) fields. You can also pass a pre-configured Logger instance.
440
+
441
+ Examples
442
+ --------
443
+ from brevo import AsyncBrevo
444
+
445
+ client = AsyncBrevo(
446
+ api_key="YOUR_API_KEY",
447
+ )
448
+ """
449
+
450
+ def __init__(
451
+ self,
452
+ *,
453
+ base_url: typing.Optional[str] = None,
454
+ environment: BrevoEnvironment = BrevoEnvironment.DEFAULT,
455
+ api_key: str,
456
+ headers: typing.Optional[typing.Dict[str, str]] = None,
457
+ timeout: typing.Optional[float] = None,
458
+ follow_redirects: typing.Optional[bool] = True,
459
+ httpx_client: typing.Optional[httpx.AsyncClient] = None,
460
+ logging: typing.Optional[typing.Union[LogConfig, Logger]] = None,
461
+ ):
462
+ _defaulted_timeout = (
463
+ timeout if timeout is not None else 60 if httpx_client is None else httpx_client.timeout.read
464
+ )
465
+ self._client_wrapper = AsyncClientWrapper(
466
+ base_url=_get_base_url(base_url=base_url, environment=environment),
467
+ api_key=api_key,
468
+ headers=headers,
469
+ httpx_client=httpx_client
470
+ if httpx_client is not None
471
+ else httpx.AsyncClient(timeout=_defaulted_timeout, follow_redirects=follow_redirects)
472
+ if follow_redirects is not None
473
+ else httpx.AsyncClient(timeout=_defaulted_timeout),
474
+ timeout=_defaulted_timeout,
475
+ logging=logging,
476
+ )
477
+ self._account: typing.Optional[AsyncAccountClient] = None
478
+ self._master_account: typing.Optional[AsyncMasterAccountClient] = None
479
+ self._user: typing.Optional[AsyncUserClient] = None
480
+ self._process: typing.Optional[AsyncProcessClient] = None
481
+ self._senders: typing.Optional[AsyncSendersClient] = None
482
+ self._domains: typing.Optional[AsyncDomainsClient] = None
483
+ self._webhooks: typing.Optional[AsyncWebhooksClient] = None
484
+ self._external_feeds: typing.Optional[AsyncExternalFeedsClient] = None
485
+ self._custom_objects: typing.Optional[AsyncCustomObjectsClient] = None
486
+ self._contacts: typing.Optional[AsyncContactsClient] = None
487
+ self._conversations: typing.Optional[AsyncConversationsClient] = None
488
+ self._ecommerce: typing.Optional[AsyncEcommerceClient] = None
489
+ self._coupons: typing.Optional[AsyncCouponsClient] = None
490
+ self._payments: typing.Optional[AsyncPaymentsClient] = None
491
+ self._event: typing.Optional[AsyncEventClient] = None
492
+ self._inbound_parsing: typing.Optional[AsyncInboundParsingClient] = None
493
+ self._balance: typing.Optional[AsyncBalanceClient] = None
494
+ self._program: typing.Optional[AsyncProgramClient] = None
495
+ self._reward: typing.Optional[AsyncRewardClient] = None
496
+ self._tier: typing.Optional[AsyncTierClient] = None
497
+ self._email_campaigns: typing.Optional[AsyncEmailCampaignsClient] = None
498
+ self._sms_campaigns: typing.Optional[AsyncSmsCampaignsClient] = None
499
+ self._whats_app_campaigns: typing.Optional[AsyncWhatsAppCampaignsClient] = None
500
+ self._companies: typing.Optional[AsyncCompaniesClient] = None
501
+ self._deals: typing.Optional[AsyncDealsClient] = None
502
+ self._files: typing.Optional[AsyncFilesClient] = None
503
+ self._notes: typing.Optional[AsyncNotesClient] = None
504
+ self._tasks: typing.Optional[AsyncTasksClient] = None
505
+ self._transactional_whats_app: typing.Optional[AsyncTransactionalWhatsAppClient] = None
506
+ self._transactional_emails: typing.Optional[AsyncTransactionalEmailsClient] = None
507
+ self._transactional_sms: typing.Optional[AsyncTransactionalSmsClient] = None
508
+ self._sms_templates: typing.Optional[AsyncSmsTemplatesClient] = None
509
+
510
+ @property
511
+ def account(self):
512
+ if self._account is None:
513
+ from .account.client import AsyncAccountClient # noqa: E402
514
+
515
+ self._account = AsyncAccountClient(client_wrapper=self._client_wrapper)
516
+ return self._account
517
+
518
+ @property
519
+ def master_account(self):
520
+ if self._master_account is None:
521
+ from .master_account.client import AsyncMasterAccountClient # noqa: E402
522
+
523
+ self._master_account = AsyncMasterAccountClient(client_wrapper=self._client_wrapper)
524
+ return self._master_account
525
+
526
+ @property
527
+ def user(self):
528
+ if self._user is None:
529
+ from .user.client import AsyncUserClient # noqa: E402
530
+
531
+ self._user = AsyncUserClient(client_wrapper=self._client_wrapper)
532
+ return self._user
533
+
534
+ @property
535
+ def process(self):
536
+ if self._process is None:
537
+ from .process.client import AsyncProcessClient # noqa: E402
538
+
539
+ self._process = AsyncProcessClient(client_wrapper=self._client_wrapper)
540
+ return self._process
541
+
542
+ @property
543
+ def senders(self):
544
+ if self._senders is None:
545
+ from .senders.client import AsyncSendersClient # noqa: E402
546
+
547
+ self._senders = AsyncSendersClient(client_wrapper=self._client_wrapper)
548
+ return self._senders
549
+
550
+ @property
551
+ def domains(self):
552
+ if self._domains is None:
553
+ from .domains.client import AsyncDomainsClient # noqa: E402
554
+
555
+ self._domains = AsyncDomainsClient(client_wrapper=self._client_wrapper)
556
+ return self._domains
557
+
558
+ @property
559
+ def webhooks(self):
560
+ if self._webhooks is None:
561
+ from .webhooks.client import AsyncWebhooksClient # noqa: E402
562
+
563
+ self._webhooks = AsyncWebhooksClient(client_wrapper=self._client_wrapper)
564
+ return self._webhooks
565
+
566
+ @property
567
+ def external_feeds(self):
568
+ if self._external_feeds is None:
569
+ from .external_feeds.client import AsyncExternalFeedsClient # noqa: E402
570
+
571
+ self._external_feeds = AsyncExternalFeedsClient(client_wrapper=self._client_wrapper)
572
+ return self._external_feeds
573
+
574
+ @property
575
+ def custom_objects(self):
576
+ if self._custom_objects is None:
577
+ from .custom_objects.client import AsyncCustomObjectsClient # noqa: E402
578
+
579
+ self._custom_objects = AsyncCustomObjectsClient(client_wrapper=self._client_wrapper)
580
+ return self._custom_objects
581
+
582
+ @property
583
+ def contacts(self):
584
+ if self._contacts is None:
585
+ from .contacts.client import AsyncContactsClient # noqa: E402
586
+
587
+ self._contacts = AsyncContactsClient(client_wrapper=self._client_wrapper)
588
+ return self._contacts
589
+
590
+ @property
591
+ def conversations(self):
592
+ if self._conversations is None:
593
+ from .conversations.client import AsyncConversationsClient # noqa: E402
594
+
595
+ self._conversations = AsyncConversationsClient(client_wrapper=self._client_wrapper)
596
+ return self._conversations
597
+
598
+ @property
599
+ def ecommerce(self):
600
+ if self._ecommerce is None:
601
+ from .ecommerce.client import AsyncEcommerceClient # noqa: E402
602
+
603
+ self._ecommerce = AsyncEcommerceClient(client_wrapper=self._client_wrapper)
604
+ return self._ecommerce
605
+
606
+ @property
607
+ def coupons(self):
608
+ if self._coupons is None:
609
+ from .coupons.client import AsyncCouponsClient # noqa: E402
610
+
611
+ self._coupons = AsyncCouponsClient(client_wrapper=self._client_wrapper)
612
+ return self._coupons
613
+
614
+ @property
615
+ def payments(self):
616
+ if self._payments is None:
617
+ from .payments.client import AsyncPaymentsClient # noqa: E402
618
+
619
+ self._payments = AsyncPaymentsClient(client_wrapper=self._client_wrapper)
620
+ return self._payments
621
+
622
+ @property
623
+ def event(self):
624
+ if self._event is None:
625
+ from .event.client import AsyncEventClient # noqa: E402
626
+
627
+ self._event = AsyncEventClient(client_wrapper=self._client_wrapper)
628
+ return self._event
629
+
630
+ @property
631
+ def inbound_parsing(self):
632
+ if self._inbound_parsing is None:
633
+ from .inbound_parsing.client import AsyncInboundParsingClient # noqa: E402
634
+
635
+ self._inbound_parsing = AsyncInboundParsingClient(client_wrapper=self._client_wrapper)
636
+ return self._inbound_parsing
637
+
638
+ @property
639
+ def balance(self):
640
+ if self._balance is None:
641
+ from .balance.client import AsyncBalanceClient # noqa: E402
642
+
643
+ self._balance = AsyncBalanceClient(client_wrapper=self._client_wrapper)
644
+ return self._balance
645
+
646
+ @property
647
+ def program(self):
648
+ if self._program is None:
649
+ from .program.client import AsyncProgramClient # noqa: E402
650
+
651
+ self._program = AsyncProgramClient(client_wrapper=self._client_wrapper)
652
+ return self._program
653
+
654
+ @property
655
+ def reward(self):
656
+ if self._reward is None:
657
+ from .reward.client import AsyncRewardClient # noqa: E402
658
+
659
+ self._reward = AsyncRewardClient(client_wrapper=self._client_wrapper)
660
+ return self._reward
661
+
662
+ @property
663
+ def tier(self):
664
+ if self._tier is None:
665
+ from .tier.client import AsyncTierClient # noqa: E402
666
+
667
+ self._tier = AsyncTierClient(client_wrapper=self._client_wrapper)
668
+ return self._tier
669
+
670
+ @property
671
+ def email_campaigns(self):
672
+ if self._email_campaigns is None:
673
+ from .email_campaigns.client import AsyncEmailCampaignsClient # noqa: E402
674
+
675
+ self._email_campaigns = AsyncEmailCampaignsClient(client_wrapper=self._client_wrapper)
676
+ return self._email_campaigns
677
+
678
+ @property
679
+ def sms_campaigns(self):
680
+ if self._sms_campaigns is None:
681
+ from .sms_campaigns.client import AsyncSmsCampaignsClient # noqa: E402
682
+
683
+ self._sms_campaigns = AsyncSmsCampaignsClient(client_wrapper=self._client_wrapper)
684
+ return self._sms_campaigns
685
+
686
+ @property
687
+ def whats_app_campaigns(self):
688
+ if self._whats_app_campaigns is None:
689
+ from .whats_app_campaigns.client import AsyncWhatsAppCampaignsClient # noqa: E402
690
+
691
+ self._whats_app_campaigns = AsyncWhatsAppCampaignsClient(client_wrapper=self._client_wrapper)
692
+ return self._whats_app_campaigns
693
+
694
+ @property
695
+ def companies(self):
696
+ if self._companies is None:
697
+ from .companies.client import AsyncCompaniesClient # noqa: E402
698
+
699
+ self._companies = AsyncCompaniesClient(client_wrapper=self._client_wrapper)
700
+ return self._companies
701
+
702
+ @property
703
+ def deals(self):
704
+ if self._deals is None:
705
+ from .deals.client import AsyncDealsClient # noqa: E402
706
+
707
+ self._deals = AsyncDealsClient(client_wrapper=self._client_wrapper)
708
+ return self._deals
709
+
710
+ @property
711
+ def files(self):
712
+ if self._files is None:
713
+ from .files.client import AsyncFilesClient # noqa: E402
714
+
715
+ self._files = AsyncFilesClient(client_wrapper=self._client_wrapper)
716
+ return self._files
717
+
718
+ @property
719
+ def notes(self):
720
+ if self._notes is None:
721
+ from .notes.client import AsyncNotesClient # noqa: E402
722
+
723
+ self._notes = AsyncNotesClient(client_wrapper=self._client_wrapper)
724
+ return self._notes
725
+
726
+ @property
727
+ def tasks(self):
728
+ if self._tasks is None:
729
+ from .tasks.client import AsyncTasksClient # noqa: E402
730
+
731
+ self._tasks = AsyncTasksClient(client_wrapper=self._client_wrapper)
732
+ return self._tasks
733
+
734
+ @property
735
+ def transactional_whats_app(self):
736
+ if self._transactional_whats_app is None:
737
+ from .transactional_whats_app.client import AsyncTransactionalWhatsAppClient # noqa: E402
738
+
739
+ self._transactional_whats_app = AsyncTransactionalWhatsAppClient(client_wrapper=self._client_wrapper)
740
+ return self._transactional_whats_app
741
+
742
+ @property
743
+ def transactional_emails(self):
744
+ if self._transactional_emails is None:
745
+ from .transactional_emails.client import AsyncTransactionalEmailsClient # noqa: E402
746
+
747
+ self._transactional_emails = AsyncTransactionalEmailsClient(client_wrapper=self._client_wrapper)
748
+ return self._transactional_emails
749
+
750
+ @property
751
+ def transactional_sms(self):
752
+ if self._transactional_sms is None:
753
+ from .transactional_sms.client import AsyncTransactionalSmsClient # noqa: E402
754
+
755
+ self._transactional_sms = AsyncTransactionalSmsClient(client_wrapper=self._client_wrapper)
756
+ return self._transactional_sms
757
+
758
+ @property
759
+ def sms_templates(self):
760
+ if self._sms_templates is None:
761
+ from .sms_templates.client import AsyncSmsTemplatesClient # noqa: E402
762
+
763
+ self._sms_templates = AsyncSmsTemplatesClient(client_wrapper=self._client_wrapper)
764
+ return self._sms_templates
765
+
766
+
767
+ def _get_base_url(*, base_url: typing.Optional[str] = None, environment: BrevoEnvironment) -> str:
768
+ if base_url is not None:
769
+ return base_url
770
+ elif environment is not None:
771
+ return environment.value
772
+ else:
773
+ raise Exception("Please pass in either base_url or environment to construct the client")