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