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,1087 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import datetime as dt
4
+ import typing
5
+ from json.decoder import JSONDecodeError
6
+
7
+ from ..core.api_error import ApiError
8
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
+ from ..core.http_response import AsyncHttpResponse, HttpResponse
10
+ from ..core.jsonable_encoder import jsonable_encoder
11
+ from ..core.request_options import RequestOptions
12
+ from ..core.serialization import convert_and_respect_annotation_metadata
13
+ from ..core.unchecked_base_model import construct_type
14
+ from ..errors.bad_request_error import BadRequestError
15
+ from ..errors.not_found_error import NotFoundError
16
+ from .types.create_external_feed_request_auth_type import CreateExternalFeedRequestAuthType
17
+ from .types.create_external_feed_request_headers_item import CreateExternalFeedRequestHeadersItem
18
+ from .types.create_external_feed_response import CreateExternalFeedResponse
19
+ from .types.get_all_external_feeds_request_auth_type import GetAllExternalFeedsRequestAuthType
20
+ from .types.get_all_external_feeds_request_sort import GetAllExternalFeedsRequestSort
21
+ from .types.get_all_external_feeds_response import GetAllExternalFeedsResponse
22
+ from .types.get_external_feed_by_uuid_response import GetExternalFeedByUuidResponse
23
+ from .types.update_external_feed_request_auth_type import UpdateExternalFeedRequestAuthType
24
+ from .types.update_external_feed_request_headers_item import UpdateExternalFeedRequestHeadersItem
25
+
26
+ # this is used as the default value for optional parameters
27
+ OMIT = typing.cast(typing.Any, ...)
28
+
29
+
30
+ class RawExternalFeedsClient:
31
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
32
+ self._client_wrapper = client_wrapper
33
+
34
+ def get_all_external_feeds(
35
+ self,
36
+ *,
37
+ search: typing.Optional[str] = None,
38
+ start_date: typing.Optional[dt.date] = None,
39
+ end_date: typing.Optional[dt.date] = None,
40
+ sort: typing.Optional[GetAllExternalFeedsRequestSort] = None,
41
+ auth_type: typing.Optional[GetAllExternalFeedsRequestAuthType] = None,
42
+ limit: typing.Optional[int] = None,
43
+ offset: typing.Optional[int] = None,
44
+ request_options: typing.Optional[RequestOptions] = None,
45
+ ) -> HttpResponse[GetAllExternalFeedsResponse]:
46
+ """
47
+ Retrieves all external feeds from your Brevo account with filtering and pagination.
48
+
49
+ **Use this to:**
50
+ - Get an overview of all external data feeds
51
+ - Find feeds by name using search functionality
52
+ - Filter feeds by creation date range
53
+ - Browse feeds by authentication type
54
+ - Monitor feed library organization and usage
55
+
56
+ **Key information returned:**
57
+ - Feed details (UUID, name, URL, authentication type)
58
+ - Feed configuration and settings
59
+ - Creation and modification timestamps
60
+ - Feed status and error information
61
+ - Authentication and header configurations
62
+
63
+ **Important considerations:**
64
+ - External feeds enable dynamic content in email campaigns
65
+ - Feeds must be accessible from Brevo servers
66
+ - Authentication credentials are securely stored
67
+ - Feed performance affects campaign delivery
68
+ - Use pagination for accounts with many feeds
69
+ - Date range filtering limited to 30 days maximum
70
+ - Search functionality works on feed name matching
71
+ - Internal feeds are system-managed and cannot be modified
72
+
73
+ Parameters
74
+ ----------
75
+ search : typing.Optional[str]
76
+ Can be used to filter records by search keyword on feed name
77
+
78
+ start_date : typing.Optional[dt.date]
79
+ Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which
80
+ you want to fetch the list. Can be maximum 30 days older than current
81
+ date.
82
+
83
+ end_date : typing.Optional[dt.date]
84
+ Mandatory if `startDate` is used. Ending date (YYYY-MM-DD) till which
85
+ you want to fetch the list. Maximum time period that can be selected is
86
+ one month.
87
+
88
+ sort : typing.Optional[GetAllExternalFeedsRequestSort]
89
+ Sort the results in the ascending/descending order of record creation.
90
+ Default order is **descending** if `sort` is not passed.
91
+
92
+ auth_type : typing.Optional[GetAllExternalFeedsRequestAuthType]
93
+ Filter the records by `authType` of the feed.
94
+
95
+ limit : typing.Optional[int]
96
+ Number of documents returned per page.
97
+
98
+ offset : typing.Optional[int]
99
+ Index of the first document on the page.
100
+
101
+ request_options : typing.Optional[RequestOptions]
102
+ Request-specific configuration.
103
+
104
+ Returns
105
+ -------
106
+ HttpResponse[GetAllExternalFeedsResponse]
107
+ External feeds retrieved successfully
108
+ """
109
+ _response = self._client_wrapper.httpx_client.request(
110
+ "feeds",
111
+ method="GET",
112
+ params={
113
+ "search": search,
114
+ "startDate": str(start_date) if start_date is not None else None,
115
+ "endDate": str(end_date) if end_date is not None else None,
116
+ "sort": sort,
117
+ "authType": auth_type,
118
+ "limit": limit,
119
+ "offset": offset,
120
+ },
121
+ request_options=request_options,
122
+ )
123
+ try:
124
+ if 200 <= _response.status_code < 300:
125
+ _data = typing.cast(
126
+ GetAllExternalFeedsResponse,
127
+ construct_type(
128
+ type_=GetAllExternalFeedsResponse, # type: ignore
129
+ object_=_response.json(),
130
+ ),
131
+ )
132
+ return HttpResponse(response=_response, data=_data)
133
+ if _response.status_code == 400:
134
+ raise BadRequestError(
135
+ headers=dict(_response.headers),
136
+ body=typing.cast(
137
+ typing.Any,
138
+ construct_type(
139
+ type_=typing.Any, # type: ignore
140
+ object_=_response.json(),
141
+ ),
142
+ ),
143
+ )
144
+ if _response.status_code == 404:
145
+ raise NotFoundError(
146
+ headers=dict(_response.headers),
147
+ body=typing.cast(
148
+ typing.Any,
149
+ construct_type(
150
+ type_=typing.Any, # type: ignore
151
+ object_=_response.json(),
152
+ ),
153
+ ),
154
+ )
155
+ _response_json = _response.json()
156
+ except JSONDecodeError:
157
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
158
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
159
+
160
+ def create_external_feed(
161
+ self,
162
+ *,
163
+ name: str,
164
+ url: str,
165
+ auth_type: typing.Optional[CreateExternalFeedRequestAuthType] = OMIT,
166
+ username: typing.Optional[str] = OMIT,
167
+ password: typing.Optional[str] = OMIT,
168
+ token: typing.Optional[str] = OMIT,
169
+ max_retries: typing.Optional[int] = OMIT,
170
+ cache: typing.Optional[bool] = OMIT,
171
+ headers: typing.Optional[typing.Sequence[CreateExternalFeedRequestHeadersItem]] = OMIT,
172
+ request_options: typing.Optional[RequestOptions] = None,
173
+ ) -> HttpResponse[CreateExternalFeedResponse]:
174
+ """
175
+ Creates a new external feed for dynamic content in email campaigns.
176
+
177
+ **Use this to:**
178
+ - Set up external data sources for dynamic content
179
+ - Configure authentication for protected feeds
180
+ - Enable real-time content updates in campaigns
181
+ - Establish connections to product catalogs, blogs, or APIs
182
+
183
+ **Key information returned:**
184
+ - Created feed UUID for reference in campaigns
185
+ - Success confirmation
186
+
187
+ **Important considerations:**
188
+ - Feed URL must be accessible from Brevo infrastructure
189
+ - Authentication credentials are securely encrypted
190
+ - Test feed accessibility before campaign use
191
+ - Consider feed response time for campaign performance
192
+ - Monitor feed reliability and uptime
193
+ - Use caching for frequently accessed feeds
194
+ - Maximum 5 retry attempts allowed for failed requests
195
+ - Custom headers support for API integration requirements
196
+
197
+ Parameters
198
+ ----------
199
+ name : str
200
+ Name of the feed
201
+
202
+ url : str
203
+ URL of the external data source
204
+
205
+ auth_type : typing.Optional[CreateExternalFeedRequestAuthType]
206
+ Authentication type for accessing the feed
207
+
208
+ username : typing.Optional[str]
209
+ Username for basic authentication (required if authType is 'basic')
210
+
211
+ password : typing.Optional[str]
212
+ Password for basic authentication (required if authType is 'basic')
213
+
214
+ token : typing.Optional[str]
215
+ Token for token-based authentication (required if authType is 'token')
216
+
217
+ max_retries : typing.Optional[int]
218
+ Maximum number of retry attempts for failed requests
219
+
220
+ cache : typing.Optional[bool]
221
+ Whether to cache the feed response
222
+
223
+ headers : typing.Optional[typing.Sequence[CreateExternalFeedRequestHeadersItem]]
224
+ Custom HTTP headers for the feed request
225
+
226
+ request_options : typing.Optional[RequestOptions]
227
+ Request-specific configuration.
228
+
229
+ Returns
230
+ -------
231
+ HttpResponse[CreateExternalFeedResponse]
232
+ External feed created successfully
233
+ """
234
+ _response = self._client_wrapper.httpx_client.request(
235
+ "feeds",
236
+ method="POST",
237
+ json={
238
+ "name": name,
239
+ "url": url,
240
+ "authType": auth_type,
241
+ "username": username,
242
+ "password": password,
243
+ "token": token,
244
+ "maxRetries": max_retries,
245
+ "cache": cache,
246
+ "headers": convert_and_respect_annotation_metadata(
247
+ object_=headers, annotation=typing.Sequence[CreateExternalFeedRequestHeadersItem], direction="write"
248
+ ),
249
+ },
250
+ headers={
251
+ "content-type": "application/json",
252
+ },
253
+ request_options=request_options,
254
+ omit=OMIT,
255
+ )
256
+ try:
257
+ if 200 <= _response.status_code < 300:
258
+ _data = typing.cast(
259
+ CreateExternalFeedResponse,
260
+ construct_type(
261
+ type_=CreateExternalFeedResponse, # type: ignore
262
+ object_=_response.json(),
263
+ ),
264
+ )
265
+ return HttpResponse(response=_response, data=_data)
266
+ if _response.status_code == 400:
267
+ raise BadRequestError(
268
+ headers=dict(_response.headers),
269
+ body=typing.cast(
270
+ typing.Any,
271
+ construct_type(
272
+ type_=typing.Any, # type: ignore
273
+ object_=_response.json(),
274
+ ),
275
+ ),
276
+ )
277
+ _response_json = _response.json()
278
+ except JSONDecodeError:
279
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
280
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
281
+
282
+ def get_external_feed_by_uuid(
283
+ self, uuid_: str, *, request_options: typing.Optional[RequestOptions] = None
284
+ ) -> HttpResponse[GetExternalFeedByUuidResponse]:
285
+ """
286
+ Retrieves details of a specific external feed by its UUID.
287
+
288
+ **Use this to:**
289
+ - Get complete configuration of an external feed
290
+ - Check feed authentication settings
291
+ - Review feed personalization options
292
+ - Verify feed URL and parameters
293
+ - Monitor feed modification history
294
+
295
+ **Key information returned:**
296
+ - Complete feed configuration and settings
297
+ - Authentication credentials and headers
298
+ - Personalization and fallback settings
299
+ - Creation and modification timestamps
300
+ - Cache and retry configurations
301
+
302
+ **Important considerations:**
303
+ - UUID must exist in your account
304
+ - Provides complete feed information for troubleshooting
305
+ - Essential before making modifications
306
+ - Shows current feed health status
307
+ - Useful for debugging feed issues
308
+
309
+ Parameters
310
+ ----------
311
+ uuid_ : str
312
+ UUID of the feed to fetch
313
+
314
+ request_options : typing.Optional[RequestOptions]
315
+ Request-specific configuration.
316
+
317
+ Returns
318
+ -------
319
+ HttpResponse[GetExternalFeedByUuidResponse]
320
+ External feed details retrieved successfully
321
+ """
322
+ _response = self._client_wrapper.httpx_client.request(
323
+ f"feeds/{jsonable_encoder(uuid_)}",
324
+ method="GET",
325
+ request_options=request_options,
326
+ )
327
+ try:
328
+ if 200 <= _response.status_code < 300:
329
+ _data = typing.cast(
330
+ GetExternalFeedByUuidResponse,
331
+ construct_type(
332
+ type_=GetExternalFeedByUuidResponse, # type: ignore
333
+ object_=_response.json(),
334
+ ),
335
+ )
336
+ return HttpResponse(response=_response, data=_data)
337
+ if _response.status_code == 400:
338
+ raise BadRequestError(
339
+ headers=dict(_response.headers),
340
+ body=typing.cast(
341
+ typing.Any,
342
+ construct_type(
343
+ type_=typing.Any, # type: ignore
344
+ object_=_response.json(),
345
+ ),
346
+ ),
347
+ )
348
+ if _response.status_code == 404:
349
+ raise NotFoundError(
350
+ headers=dict(_response.headers),
351
+ body=typing.cast(
352
+ typing.Any,
353
+ construct_type(
354
+ type_=typing.Any, # type: ignore
355
+ object_=_response.json(),
356
+ ),
357
+ ),
358
+ )
359
+ _response_json = _response.json()
360
+ except JSONDecodeError:
361
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
362
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
363
+
364
+ def update_external_feed(
365
+ self,
366
+ uuid_: str,
367
+ *,
368
+ name: typing.Optional[str] = OMIT,
369
+ url: typing.Optional[str] = OMIT,
370
+ auth_type: typing.Optional[UpdateExternalFeedRequestAuthType] = OMIT,
371
+ username: typing.Optional[str] = OMIT,
372
+ password: typing.Optional[str] = OMIT,
373
+ token: typing.Optional[str] = OMIT,
374
+ headers: typing.Optional[typing.Sequence[UpdateExternalFeedRequestHeadersItem]] = OMIT,
375
+ max_retries: typing.Optional[int] = OMIT,
376
+ cache: typing.Optional[bool] = OMIT,
377
+ request_options: typing.Optional[RequestOptions] = None,
378
+ ) -> HttpResponse[None]:
379
+ """
380
+ Updates configuration of an existing external feed.
381
+
382
+ **Use this to:**
383
+ - Update feed URLs when data sources change
384
+ - Modify authentication credentials
385
+ - Change cache and retry settings
386
+ - Update custom headers
387
+ - Rename feeds for better organization
388
+
389
+ **Key information returned:**
390
+ - Success confirmation message
391
+
392
+ **Important considerations:**
393
+ - Only provided fields will be updated
394
+ - Feed UUID must exist in your account
395
+ - Authentication changes require verification
396
+ - URL changes should be tested before campaign use
397
+ - Monitor campaigns using this feed after updates
398
+
399
+ Parameters
400
+ ----------
401
+ uuid_ : str
402
+ UUID of the feed to update
403
+
404
+ name : typing.Optional[str]
405
+ Name of the feed
406
+
407
+ url : typing.Optional[str]
408
+ URL of the external data source
409
+
410
+ auth_type : typing.Optional[UpdateExternalFeedRequestAuthType]
411
+ Authentication type for accessing the feed
412
+
413
+ username : typing.Optional[str]
414
+ Username for basic authentication
415
+
416
+ password : typing.Optional[str]
417
+ Password for basic authentication
418
+
419
+ token : typing.Optional[str]
420
+ Token for token-based authentication
421
+
422
+ headers : typing.Optional[typing.Sequence[UpdateExternalFeedRequestHeadersItem]]
423
+ Custom HTTP headers for the feed request
424
+
425
+ max_retries : typing.Optional[int]
426
+ Maximum number of retry attempts for failed requests
427
+
428
+ cache : typing.Optional[bool]
429
+ Whether to cache the feed response
430
+
431
+ request_options : typing.Optional[RequestOptions]
432
+ Request-specific configuration.
433
+
434
+ Returns
435
+ -------
436
+ HttpResponse[None]
437
+ """
438
+ _response = self._client_wrapper.httpx_client.request(
439
+ f"feeds/{jsonable_encoder(uuid_)}",
440
+ method="PUT",
441
+ json={
442
+ "name": name,
443
+ "url": url,
444
+ "authType": auth_type,
445
+ "username": username,
446
+ "password": password,
447
+ "token": token,
448
+ "headers": convert_and_respect_annotation_metadata(
449
+ object_=headers, annotation=typing.Sequence[UpdateExternalFeedRequestHeadersItem], direction="write"
450
+ ),
451
+ "maxRetries": max_retries,
452
+ "cache": cache,
453
+ },
454
+ headers={
455
+ "content-type": "application/json",
456
+ },
457
+ request_options=request_options,
458
+ omit=OMIT,
459
+ )
460
+ try:
461
+ if 200 <= _response.status_code < 300:
462
+ return HttpResponse(response=_response, data=None)
463
+ if _response.status_code == 400:
464
+ raise BadRequestError(
465
+ headers=dict(_response.headers),
466
+ body=typing.cast(
467
+ typing.Any,
468
+ construct_type(
469
+ type_=typing.Any, # type: ignore
470
+ object_=_response.json(),
471
+ ),
472
+ ),
473
+ )
474
+ if _response.status_code == 404:
475
+ raise NotFoundError(
476
+ headers=dict(_response.headers),
477
+ body=typing.cast(
478
+ typing.Any,
479
+ construct_type(
480
+ type_=typing.Any, # type: ignore
481
+ object_=_response.json(),
482
+ ),
483
+ ),
484
+ )
485
+ _response_json = _response.json()
486
+ except JSONDecodeError:
487
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
488
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
489
+
490
+ def delete_external_feed(
491
+ self, uuid_: str, *, request_options: typing.Optional[RequestOptions] = None
492
+ ) -> HttpResponse[None]:
493
+ """
494
+ Deletes an external feed from your Brevo account.
495
+
496
+ **Use this to:**
497
+ - Remove external feeds that are no longer needed
498
+ - Clean up unused data sources
499
+ - Remove test or outdated feeds
500
+ - Maintain organized feed library
501
+
502
+ **Key information returned:**
503
+ - Success confirmation message
504
+
505
+ **Important considerations:**
506
+ - This action is PERMANENT and cannot be undone
507
+ - Feed configuration and history will be lost
508
+ - Check if feed is used in active campaigns before deletion
509
+ - Remove feed references from email templates
510
+ - Consider deactivating instead of deleting if unsure
511
+
512
+ Parameters
513
+ ----------
514
+ uuid_ : str
515
+ UUID of the feed to delete
516
+
517
+ request_options : typing.Optional[RequestOptions]
518
+ Request-specific configuration.
519
+
520
+ Returns
521
+ -------
522
+ HttpResponse[None]
523
+ """
524
+ _response = self._client_wrapper.httpx_client.request(
525
+ f"feeds/{jsonable_encoder(uuid_)}",
526
+ method="DELETE",
527
+ request_options=request_options,
528
+ )
529
+ try:
530
+ if 200 <= _response.status_code < 300:
531
+ return HttpResponse(response=_response, data=None)
532
+ if _response.status_code == 400:
533
+ raise BadRequestError(
534
+ headers=dict(_response.headers),
535
+ body=typing.cast(
536
+ typing.Any,
537
+ construct_type(
538
+ type_=typing.Any, # type: ignore
539
+ object_=_response.json(),
540
+ ),
541
+ ),
542
+ )
543
+ if _response.status_code == 404:
544
+ raise NotFoundError(
545
+ headers=dict(_response.headers),
546
+ body=typing.cast(
547
+ typing.Any,
548
+ construct_type(
549
+ type_=typing.Any, # type: ignore
550
+ object_=_response.json(),
551
+ ),
552
+ ),
553
+ )
554
+ _response_json = _response.json()
555
+ except JSONDecodeError:
556
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
557
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
558
+
559
+
560
+ class AsyncRawExternalFeedsClient:
561
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
562
+ self._client_wrapper = client_wrapper
563
+
564
+ async def get_all_external_feeds(
565
+ self,
566
+ *,
567
+ search: typing.Optional[str] = None,
568
+ start_date: typing.Optional[dt.date] = None,
569
+ end_date: typing.Optional[dt.date] = None,
570
+ sort: typing.Optional[GetAllExternalFeedsRequestSort] = None,
571
+ auth_type: typing.Optional[GetAllExternalFeedsRequestAuthType] = None,
572
+ limit: typing.Optional[int] = None,
573
+ offset: typing.Optional[int] = None,
574
+ request_options: typing.Optional[RequestOptions] = None,
575
+ ) -> AsyncHttpResponse[GetAllExternalFeedsResponse]:
576
+ """
577
+ Retrieves all external feeds from your Brevo account with filtering and pagination.
578
+
579
+ **Use this to:**
580
+ - Get an overview of all external data feeds
581
+ - Find feeds by name using search functionality
582
+ - Filter feeds by creation date range
583
+ - Browse feeds by authentication type
584
+ - Monitor feed library organization and usage
585
+
586
+ **Key information returned:**
587
+ - Feed details (UUID, name, URL, authentication type)
588
+ - Feed configuration and settings
589
+ - Creation and modification timestamps
590
+ - Feed status and error information
591
+ - Authentication and header configurations
592
+
593
+ **Important considerations:**
594
+ - External feeds enable dynamic content in email campaigns
595
+ - Feeds must be accessible from Brevo servers
596
+ - Authentication credentials are securely stored
597
+ - Feed performance affects campaign delivery
598
+ - Use pagination for accounts with many feeds
599
+ - Date range filtering limited to 30 days maximum
600
+ - Search functionality works on feed name matching
601
+ - Internal feeds are system-managed and cannot be modified
602
+
603
+ Parameters
604
+ ----------
605
+ search : typing.Optional[str]
606
+ Can be used to filter records by search keyword on feed name
607
+
608
+ start_date : typing.Optional[dt.date]
609
+ Mandatory if `endDate` is used. Starting date (YYYY-MM-DD) from which
610
+ you want to fetch the list. Can be maximum 30 days older than current
611
+ date.
612
+
613
+ end_date : typing.Optional[dt.date]
614
+ Mandatory if `startDate` is used. Ending date (YYYY-MM-DD) till which
615
+ you want to fetch the list. Maximum time period that can be selected is
616
+ one month.
617
+
618
+ sort : typing.Optional[GetAllExternalFeedsRequestSort]
619
+ Sort the results in the ascending/descending order of record creation.
620
+ Default order is **descending** if `sort` is not passed.
621
+
622
+ auth_type : typing.Optional[GetAllExternalFeedsRequestAuthType]
623
+ Filter the records by `authType` of the feed.
624
+
625
+ limit : typing.Optional[int]
626
+ Number of documents returned per page.
627
+
628
+ offset : typing.Optional[int]
629
+ Index of the first document on the page.
630
+
631
+ request_options : typing.Optional[RequestOptions]
632
+ Request-specific configuration.
633
+
634
+ Returns
635
+ -------
636
+ AsyncHttpResponse[GetAllExternalFeedsResponse]
637
+ External feeds retrieved successfully
638
+ """
639
+ _response = await self._client_wrapper.httpx_client.request(
640
+ "feeds",
641
+ method="GET",
642
+ params={
643
+ "search": search,
644
+ "startDate": str(start_date) if start_date is not None else None,
645
+ "endDate": str(end_date) if end_date is not None else None,
646
+ "sort": sort,
647
+ "authType": auth_type,
648
+ "limit": limit,
649
+ "offset": offset,
650
+ },
651
+ request_options=request_options,
652
+ )
653
+ try:
654
+ if 200 <= _response.status_code < 300:
655
+ _data = typing.cast(
656
+ GetAllExternalFeedsResponse,
657
+ construct_type(
658
+ type_=GetAllExternalFeedsResponse, # type: ignore
659
+ object_=_response.json(),
660
+ ),
661
+ )
662
+ return AsyncHttpResponse(response=_response, data=_data)
663
+ if _response.status_code == 400:
664
+ raise BadRequestError(
665
+ headers=dict(_response.headers),
666
+ body=typing.cast(
667
+ typing.Any,
668
+ construct_type(
669
+ type_=typing.Any, # type: ignore
670
+ object_=_response.json(),
671
+ ),
672
+ ),
673
+ )
674
+ if _response.status_code == 404:
675
+ raise NotFoundError(
676
+ headers=dict(_response.headers),
677
+ body=typing.cast(
678
+ typing.Any,
679
+ construct_type(
680
+ type_=typing.Any, # type: ignore
681
+ object_=_response.json(),
682
+ ),
683
+ ),
684
+ )
685
+ _response_json = _response.json()
686
+ except JSONDecodeError:
687
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
688
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
689
+
690
+ async def create_external_feed(
691
+ self,
692
+ *,
693
+ name: str,
694
+ url: str,
695
+ auth_type: typing.Optional[CreateExternalFeedRequestAuthType] = OMIT,
696
+ username: typing.Optional[str] = OMIT,
697
+ password: typing.Optional[str] = OMIT,
698
+ token: typing.Optional[str] = OMIT,
699
+ max_retries: typing.Optional[int] = OMIT,
700
+ cache: typing.Optional[bool] = OMIT,
701
+ headers: typing.Optional[typing.Sequence[CreateExternalFeedRequestHeadersItem]] = OMIT,
702
+ request_options: typing.Optional[RequestOptions] = None,
703
+ ) -> AsyncHttpResponse[CreateExternalFeedResponse]:
704
+ """
705
+ Creates a new external feed for dynamic content in email campaigns.
706
+
707
+ **Use this to:**
708
+ - Set up external data sources for dynamic content
709
+ - Configure authentication for protected feeds
710
+ - Enable real-time content updates in campaigns
711
+ - Establish connections to product catalogs, blogs, or APIs
712
+
713
+ **Key information returned:**
714
+ - Created feed UUID for reference in campaigns
715
+ - Success confirmation
716
+
717
+ **Important considerations:**
718
+ - Feed URL must be accessible from Brevo infrastructure
719
+ - Authentication credentials are securely encrypted
720
+ - Test feed accessibility before campaign use
721
+ - Consider feed response time for campaign performance
722
+ - Monitor feed reliability and uptime
723
+ - Use caching for frequently accessed feeds
724
+ - Maximum 5 retry attempts allowed for failed requests
725
+ - Custom headers support for API integration requirements
726
+
727
+ Parameters
728
+ ----------
729
+ name : str
730
+ Name of the feed
731
+
732
+ url : str
733
+ URL of the external data source
734
+
735
+ auth_type : typing.Optional[CreateExternalFeedRequestAuthType]
736
+ Authentication type for accessing the feed
737
+
738
+ username : typing.Optional[str]
739
+ Username for basic authentication (required if authType is 'basic')
740
+
741
+ password : typing.Optional[str]
742
+ Password for basic authentication (required if authType is 'basic')
743
+
744
+ token : typing.Optional[str]
745
+ Token for token-based authentication (required if authType is 'token')
746
+
747
+ max_retries : typing.Optional[int]
748
+ Maximum number of retry attempts for failed requests
749
+
750
+ cache : typing.Optional[bool]
751
+ Whether to cache the feed response
752
+
753
+ headers : typing.Optional[typing.Sequence[CreateExternalFeedRequestHeadersItem]]
754
+ Custom HTTP headers for the feed request
755
+
756
+ request_options : typing.Optional[RequestOptions]
757
+ Request-specific configuration.
758
+
759
+ Returns
760
+ -------
761
+ AsyncHttpResponse[CreateExternalFeedResponse]
762
+ External feed created successfully
763
+ """
764
+ _response = await self._client_wrapper.httpx_client.request(
765
+ "feeds",
766
+ method="POST",
767
+ json={
768
+ "name": name,
769
+ "url": url,
770
+ "authType": auth_type,
771
+ "username": username,
772
+ "password": password,
773
+ "token": token,
774
+ "maxRetries": max_retries,
775
+ "cache": cache,
776
+ "headers": convert_and_respect_annotation_metadata(
777
+ object_=headers, annotation=typing.Sequence[CreateExternalFeedRequestHeadersItem], direction="write"
778
+ ),
779
+ },
780
+ headers={
781
+ "content-type": "application/json",
782
+ },
783
+ request_options=request_options,
784
+ omit=OMIT,
785
+ )
786
+ try:
787
+ if 200 <= _response.status_code < 300:
788
+ _data = typing.cast(
789
+ CreateExternalFeedResponse,
790
+ construct_type(
791
+ type_=CreateExternalFeedResponse, # type: ignore
792
+ object_=_response.json(),
793
+ ),
794
+ )
795
+ return AsyncHttpResponse(response=_response, data=_data)
796
+ if _response.status_code == 400:
797
+ raise BadRequestError(
798
+ headers=dict(_response.headers),
799
+ body=typing.cast(
800
+ typing.Any,
801
+ construct_type(
802
+ type_=typing.Any, # type: ignore
803
+ object_=_response.json(),
804
+ ),
805
+ ),
806
+ )
807
+ _response_json = _response.json()
808
+ except JSONDecodeError:
809
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
810
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
811
+
812
+ async def get_external_feed_by_uuid(
813
+ self, uuid_: str, *, request_options: typing.Optional[RequestOptions] = None
814
+ ) -> AsyncHttpResponse[GetExternalFeedByUuidResponse]:
815
+ """
816
+ Retrieves details of a specific external feed by its UUID.
817
+
818
+ **Use this to:**
819
+ - Get complete configuration of an external feed
820
+ - Check feed authentication settings
821
+ - Review feed personalization options
822
+ - Verify feed URL and parameters
823
+ - Monitor feed modification history
824
+
825
+ **Key information returned:**
826
+ - Complete feed configuration and settings
827
+ - Authentication credentials and headers
828
+ - Personalization and fallback settings
829
+ - Creation and modification timestamps
830
+ - Cache and retry configurations
831
+
832
+ **Important considerations:**
833
+ - UUID must exist in your account
834
+ - Provides complete feed information for troubleshooting
835
+ - Essential before making modifications
836
+ - Shows current feed health status
837
+ - Useful for debugging feed issues
838
+
839
+ Parameters
840
+ ----------
841
+ uuid_ : str
842
+ UUID of the feed to fetch
843
+
844
+ request_options : typing.Optional[RequestOptions]
845
+ Request-specific configuration.
846
+
847
+ Returns
848
+ -------
849
+ AsyncHttpResponse[GetExternalFeedByUuidResponse]
850
+ External feed details retrieved successfully
851
+ """
852
+ _response = await self._client_wrapper.httpx_client.request(
853
+ f"feeds/{jsonable_encoder(uuid_)}",
854
+ method="GET",
855
+ request_options=request_options,
856
+ )
857
+ try:
858
+ if 200 <= _response.status_code < 300:
859
+ _data = typing.cast(
860
+ GetExternalFeedByUuidResponse,
861
+ construct_type(
862
+ type_=GetExternalFeedByUuidResponse, # type: ignore
863
+ object_=_response.json(),
864
+ ),
865
+ )
866
+ return AsyncHttpResponse(response=_response, data=_data)
867
+ if _response.status_code == 400:
868
+ raise BadRequestError(
869
+ headers=dict(_response.headers),
870
+ body=typing.cast(
871
+ typing.Any,
872
+ construct_type(
873
+ type_=typing.Any, # type: ignore
874
+ object_=_response.json(),
875
+ ),
876
+ ),
877
+ )
878
+ if _response.status_code == 404:
879
+ raise NotFoundError(
880
+ headers=dict(_response.headers),
881
+ body=typing.cast(
882
+ typing.Any,
883
+ construct_type(
884
+ type_=typing.Any, # type: ignore
885
+ object_=_response.json(),
886
+ ),
887
+ ),
888
+ )
889
+ _response_json = _response.json()
890
+ except JSONDecodeError:
891
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
892
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
893
+
894
+ async def update_external_feed(
895
+ self,
896
+ uuid_: str,
897
+ *,
898
+ name: typing.Optional[str] = OMIT,
899
+ url: typing.Optional[str] = OMIT,
900
+ auth_type: typing.Optional[UpdateExternalFeedRequestAuthType] = OMIT,
901
+ username: typing.Optional[str] = OMIT,
902
+ password: typing.Optional[str] = OMIT,
903
+ token: typing.Optional[str] = OMIT,
904
+ headers: typing.Optional[typing.Sequence[UpdateExternalFeedRequestHeadersItem]] = OMIT,
905
+ max_retries: typing.Optional[int] = OMIT,
906
+ cache: typing.Optional[bool] = OMIT,
907
+ request_options: typing.Optional[RequestOptions] = None,
908
+ ) -> AsyncHttpResponse[None]:
909
+ """
910
+ Updates configuration of an existing external feed.
911
+
912
+ **Use this to:**
913
+ - Update feed URLs when data sources change
914
+ - Modify authentication credentials
915
+ - Change cache and retry settings
916
+ - Update custom headers
917
+ - Rename feeds for better organization
918
+
919
+ **Key information returned:**
920
+ - Success confirmation message
921
+
922
+ **Important considerations:**
923
+ - Only provided fields will be updated
924
+ - Feed UUID must exist in your account
925
+ - Authentication changes require verification
926
+ - URL changes should be tested before campaign use
927
+ - Monitor campaigns using this feed after updates
928
+
929
+ Parameters
930
+ ----------
931
+ uuid_ : str
932
+ UUID of the feed to update
933
+
934
+ name : typing.Optional[str]
935
+ Name of the feed
936
+
937
+ url : typing.Optional[str]
938
+ URL of the external data source
939
+
940
+ auth_type : typing.Optional[UpdateExternalFeedRequestAuthType]
941
+ Authentication type for accessing the feed
942
+
943
+ username : typing.Optional[str]
944
+ Username for basic authentication
945
+
946
+ password : typing.Optional[str]
947
+ Password for basic authentication
948
+
949
+ token : typing.Optional[str]
950
+ Token for token-based authentication
951
+
952
+ headers : typing.Optional[typing.Sequence[UpdateExternalFeedRequestHeadersItem]]
953
+ Custom HTTP headers for the feed request
954
+
955
+ max_retries : typing.Optional[int]
956
+ Maximum number of retry attempts for failed requests
957
+
958
+ cache : typing.Optional[bool]
959
+ Whether to cache the feed response
960
+
961
+ request_options : typing.Optional[RequestOptions]
962
+ Request-specific configuration.
963
+
964
+ Returns
965
+ -------
966
+ AsyncHttpResponse[None]
967
+ """
968
+ _response = await self._client_wrapper.httpx_client.request(
969
+ f"feeds/{jsonable_encoder(uuid_)}",
970
+ method="PUT",
971
+ json={
972
+ "name": name,
973
+ "url": url,
974
+ "authType": auth_type,
975
+ "username": username,
976
+ "password": password,
977
+ "token": token,
978
+ "headers": convert_and_respect_annotation_metadata(
979
+ object_=headers, annotation=typing.Sequence[UpdateExternalFeedRequestHeadersItem], direction="write"
980
+ ),
981
+ "maxRetries": max_retries,
982
+ "cache": cache,
983
+ },
984
+ headers={
985
+ "content-type": "application/json",
986
+ },
987
+ request_options=request_options,
988
+ omit=OMIT,
989
+ )
990
+ try:
991
+ if 200 <= _response.status_code < 300:
992
+ return AsyncHttpResponse(response=_response, data=None)
993
+ if _response.status_code == 400:
994
+ raise BadRequestError(
995
+ headers=dict(_response.headers),
996
+ body=typing.cast(
997
+ typing.Any,
998
+ construct_type(
999
+ type_=typing.Any, # type: ignore
1000
+ object_=_response.json(),
1001
+ ),
1002
+ ),
1003
+ )
1004
+ if _response.status_code == 404:
1005
+ raise NotFoundError(
1006
+ headers=dict(_response.headers),
1007
+ body=typing.cast(
1008
+ typing.Any,
1009
+ construct_type(
1010
+ type_=typing.Any, # type: ignore
1011
+ object_=_response.json(),
1012
+ ),
1013
+ ),
1014
+ )
1015
+ _response_json = _response.json()
1016
+ except JSONDecodeError:
1017
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1018
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1019
+
1020
+ async def delete_external_feed(
1021
+ self, uuid_: str, *, request_options: typing.Optional[RequestOptions] = None
1022
+ ) -> AsyncHttpResponse[None]:
1023
+ """
1024
+ Deletes an external feed from your Brevo account.
1025
+
1026
+ **Use this to:**
1027
+ - Remove external feeds that are no longer needed
1028
+ - Clean up unused data sources
1029
+ - Remove test or outdated feeds
1030
+ - Maintain organized feed library
1031
+
1032
+ **Key information returned:**
1033
+ - Success confirmation message
1034
+
1035
+ **Important considerations:**
1036
+ - This action is PERMANENT and cannot be undone
1037
+ - Feed configuration and history will be lost
1038
+ - Check if feed is used in active campaigns before deletion
1039
+ - Remove feed references from email templates
1040
+ - Consider deactivating instead of deleting if unsure
1041
+
1042
+ Parameters
1043
+ ----------
1044
+ uuid_ : str
1045
+ UUID of the feed to delete
1046
+
1047
+ request_options : typing.Optional[RequestOptions]
1048
+ Request-specific configuration.
1049
+
1050
+ Returns
1051
+ -------
1052
+ AsyncHttpResponse[None]
1053
+ """
1054
+ _response = await self._client_wrapper.httpx_client.request(
1055
+ f"feeds/{jsonable_encoder(uuid_)}",
1056
+ method="DELETE",
1057
+ request_options=request_options,
1058
+ )
1059
+ try:
1060
+ if 200 <= _response.status_code < 300:
1061
+ return AsyncHttpResponse(response=_response, data=None)
1062
+ if _response.status_code == 400:
1063
+ raise BadRequestError(
1064
+ headers=dict(_response.headers),
1065
+ body=typing.cast(
1066
+ typing.Any,
1067
+ construct_type(
1068
+ type_=typing.Any, # type: ignore
1069
+ object_=_response.json(),
1070
+ ),
1071
+ ),
1072
+ )
1073
+ if _response.status_code == 404:
1074
+ raise NotFoundError(
1075
+ headers=dict(_response.headers),
1076
+ body=typing.cast(
1077
+ typing.Any,
1078
+ construct_type(
1079
+ type_=typing.Any, # type: ignore
1080
+ object_=_response.json(),
1081
+ ),
1082
+ ),
1083
+ )
1084
+ _response_json = _response.json()
1085
+ except JSONDecodeError:
1086
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1087
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)