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