frameio 0.0.23__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.

Potentially problematic release.


This version of frameio might be problematic. Click here for more details.

Files changed (363) hide show
  1. frameio/__init__.py +1115 -0
  2. frameio/account_permissions/__init__.py +4 -0
  3. frameio/account_permissions/client.py +182 -0
  4. frameio/account_permissions/raw_client.py +301 -0
  5. frameio/accounts/__init__.py +4 -0
  6. frameio/accounts/client.py +151 -0
  7. frameio/accounts/raw_client.py +281 -0
  8. frameio/client.py +439 -0
  9. frameio/comments/__init__.py +34 -0
  10. frameio/comments/client.py +596 -0
  11. frameio/comments/raw_client.py +1252 -0
  12. frameio/comments/types/__init__.py +38 -0
  13. frameio/comments/types/create_comment_params_data.py +25 -0
  14. frameio/comments/types/update_comment_params_data.py +25 -0
  15. frameio/core/__init__.py +110 -0
  16. frameio/core/api_error.py +23 -0
  17. frameio/core/client_wrapper.py +87 -0
  18. frameio/core/datetime_utils.py +28 -0
  19. frameio/core/file.py +67 -0
  20. frameio/core/force_multipart.py +18 -0
  21. frameio/core/http_client.py +543 -0
  22. frameio/core/http_response.py +55 -0
  23. frameio/core/jsonable_encoder.py +100 -0
  24. frameio/core/pagination.py +82 -0
  25. frameio/core/pydantic_utilities.py +258 -0
  26. frameio/core/query_encoder.py +58 -0
  27. frameio/core/remove_none_from_dict.py +11 -0
  28. frameio/core/request_options.py +35 -0
  29. frameio/core/serialization.py +276 -0
  30. frameio/environment.py +7 -0
  31. frameio/errors/__init__.py +53 -0
  32. frameio/errors/bad_request_error.py +11 -0
  33. frameio/errors/forbidden_error.py +11 -0
  34. frameio/errors/not_found_error.py +11 -0
  35. frameio/errors/too_many_requests_error.py +11 -0
  36. frameio/errors/unauthorized_error.py +11 -0
  37. frameio/errors/unprocessable_entity_error.py +10 -0
  38. frameio/files/__init__.py +55 -0
  39. frameio/files/client.py +1136 -0
  40. frameio/files/raw_client.py +2492 -0
  41. frameio/files/types/__init__.py +53 -0
  42. frameio/files/types/file_copy_params_data.py +15 -0
  43. frameio/files/types/file_create_local_upload_params_data.py +20 -0
  44. frameio/files/types/file_create_params_data.py +31 -0
  45. frameio/files/types/file_create_remote_upload_params_data.py +20 -0
  46. frameio/files/types/file_move_params_data.py +15 -0
  47. frameio/files/types/file_update_params_data.py +15 -0
  48. frameio/folders/__init__.py +39 -0
  49. frameio/folders/client.py +988 -0
  50. frameio/folders/raw_client.py +2058 -0
  51. frameio/folders/types/__init__.py +42 -0
  52. frameio/folders/types/folder_copy_params_data.py +15 -0
  53. frameio/folders/types/folder_create_params_data.py +15 -0
  54. frameio/folders/types/folder_move_params_data.py +15 -0
  55. frameio/folders/types/folder_update_params_data.py +15 -0
  56. frameio/metadata/__init__.py +37 -0
  57. frameio/metadata/client.py +291 -0
  58. frameio/metadata/raw_client.py +509 -0
  59. frameio/metadata/types/__init__.py +38 -0
  60. frameio/metadata/types/bulk_update_metadata_params_data.py +23 -0
  61. frameio/metadata/types/bulk_update_metadata_params_data_values_item.py +13 -0
  62. frameio/metadata_fields/__init__.py +103 -0
  63. frameio/metadata_fields/client.py +536 -0
  64. frameio/metadata_fields/raw_client.py +996 -0
  65. frameio/metadata_fields/types/__init__.py +105 -0
  66. frameio/metadata_fields/types/create_field_definition_params_data.py +108 -0
  67. frameio/metadata_fields/types/update_field_definition_params_data.py +114 -0
  68. frameio/project_permissions/__init__.py +4 -0
  69. frameio/project_permissions/client.py +415 -0
  70. frameio/project_permissions/raw_client.py +789 -0
  71. frameio/projects/__init__.py +4 -0
  72. frameio/projects/client.py +582 -0
  73. frameio/projects/raw_client.py +1250 -0
  74. frameio/py.typed +0 -0
  75. frameio/shares/__init__.py +64 -0
  76. frameio/shares/client.py +1192 -0
  77. frameio/shares/raw_client.py +2446 -0
  78. frameio/shares/types/__init__.py +61 -0
  79. frameio/shares/types/add_asset_params_data.py +15 -0
  80. frameio/shares/types/add_reviewers_to_share_params_data.py +18 -0
  81. frameio/shares/types/add_reviewers_to_share_params_data_reviewers.py +27 -0
  82. frameio/shares/types/create_share_params_data.py +25 -0
  83. frameio/shares/types/remove_reviewer_params_data.py +13 -0
  84. frameio/shares/types/remove_reviewer_params_data_reviewers.py +27 -0
  85. frameio/shares/types/update_share_params_data.py +33 -0
  86. frameio/shares/types/update_share_params_data_access.py +5 -0
  87. frameio/types/__init__.py +959 -0
  88. frameio/types/account.py +65 -0
  89. frameio/types/account_roles_item.py +5 -0
  90. frameio/types/account_user_role.py +23 -0
  91. frameio/types/account_user_role_role.py +5 -0
  92. frameio/types/account_user_roles_response.py +27 -0
  93. frameio/types/accounts_response.py +23 -0
  94. frameio/types/add_asset_response.py +13 -0
  95. frameio/types/add_asset_response_data.py +15 -0
  96. frameio/types/asset_common.py +48 -0
  97. frameio/types/asset_common_type.py +5 -0
  98. frameio/types/asset_common_with_includes.py +56 -0
  99. frameio/types/asset_include.py +5 -0
  100. frameio/types/asset_share_params.py +38 -0
  101. frameio/types/asset_share_params_access.py +5 -0
  102. frameio/types/asset_with_includes.py +72 -0
  103. frameio/types/assets_with_includes_response.py +23 -0
  104. frameio/types/bad_request.py +13 -0
  105. frameio/types/bad_request_errors_item.py +15 -0
  106. frameio/types/bad_request_errors_item_source.py +12 -0
  107. frameio/types/boolean_value.py +12 -0
  108. frameio/types/children_type.py +3 -0
  109. frameio/types/comment.py +52 -0
  110. frameio/types/comment_include.py +5 -0
  111. frameio/types/comment_response.py +13 -0
  112. frameio/types/comment_with_includes.py +17 -0
  113. frameio/types/comment_with_includes_response.py +13 -0
  114. frameio/types/comments_with_includes_response.py +23 -0
  115. frameio/types/date_definition.py +43 -0
  116. frameio/types/date_definition_field_configuration.py +21 -0
  117. frameio/types/date_definition_field_configuration_display_format.py +7 -0
  118. frameio/types/date_definition_field_configuration_time_format.py +5 -0
  119. frameio/types/date_definition_params.py +17 -0
  120. frameio/types/date_definition_params_field_configuration.py +23 -0
  121. frameio/types/date_definition_params_field_configuration_display_format.py +7 -0
  122. frameio/types/date_definition_params_field_configuration_time_format.py +7 -0
  123. frameio/types/date_definition_with_includes.py +13 -0
  124. frameio/types/date_value.py +12 -0
  125. frameio/types/email.py +3 -0
  126. frameio/types/field_definition.py +163 -0
  127. frameio/types/field_definition_include.py +5 -0
  128. frameio/types/field_definition_response.py +13 -0
  129. frameio/types/field_definition_with_includes.py +174 -0
  130. frameio/types/field_definitions_with_includes_response.py +27 -0
  131. frameio/types/field_value_common.py +29 -0
  132. frameio/types/file.py +60 -0
  133. frameio/types/file_copy_response.py +13 -0
  134. frameio/types/file_remote_upload_response.py +17 -0
  135. frameio/types/file_response.py +13 -0
  136. frameio/types/file_status.py +5 -0
  137. frameio/types/file_upload_status.py +41 -0
  138. frameio/types/file_upload_status_response.py +13 -0
  139. frameio/types/file_with_includes.py +25 -0
  140. frameio/types/file_with_includes_response.py +13 -0
  141. frameio/types/file_with_includes_status.py +5 -0
  142. frameio/types/file_with_media_links_include.py +19 -0
  143. frameio/types/file_with_upload_urls.py +16 -0
  144. frameio/types/file_with_upload_urls_response.py +13 -0
  145. frameio/types/folder.py +15 -0
  146. frameio/types/folder_copy_response.py +13 -0
  147. frameio/types/folder_response.py +13 -0
  148. frameio/types/folder_with_includes.py +61 -0
  149. frameio/types/folder_with_includes_response.py +13 -0
  150. frameio/types/folders_with_includes_response.py +23 -0
  151. frameio/types/forbidden.py +13 -0
  152. frameio/types/forbidden_errors_item.py +15 -0
  153. frameio/types/forbidden_errors_item_source.py +12 -0
  154. frameio/types/include.py +5 -0
  155. frameio/types/include_total_count.py +3 -0
  156. frameio/types/integer_value.py +12 -0
  157. frameio/types/json_error_response.py +13 -0
  158. frameio/types/json_error_response_errors_item.py +15 -0
  159. frameio/types/json_error_response_errors_item_source.py +12 -0
  160. frameio/types/links.py +22 -0
  161. frameio/types/long_text_definition.py +43 -0
  162. frameio/types/long_text_definition_field_configuration.py +10 -0
  163. frameio/types/long_text_definition_params.py +15 -0
  164. frameio/types/long_text_definition_with_includes.py +13 -0
  165. frameio/types/media_link_common.py +17 -0
  166. frameio/types/media_links_collection.py +23 -0
  167. frameio/types/metadata_field.py +145 -0
  168. frameio/types/metadata_response.py +13 -0
  169. frameio/types/metadata_with_definition.py +21 -0
  170. frameio/types/multi_select_value.py +14 -0
  171. frameio/types/multi_user_value.py +20 -0
  172. frameio/types/multi_user_value_member_options_type.py +5 -0
  173. frameio/types/no_content.py +3 -0
  174. frameio/types/not_found.py +13 -0
  175. frameio/types/not_found_errors_item.py +15 -0
  176. frameio/types/not_found_errors_item_source.py +12 -0
  177. frameio/types/number_definition.py +43 -0
  178. frameio/types/number_definition_field_configuration.py +21 -0
  179. frameio/types/number_definition_field_configuration_number_format.py +7 -0
  180. frameio/types/number_definition_params.py +17 -0
  181. frameio/types/number_definition_params_field_configuration.py +23 -0
  182. frameio/types/number_definition_params_field_configuration_number_format.py +7 -0
  183. frameio/types/number_definition_with_includes.py +13 -0
  184. frameio/types/number_value.py +12 -0
  185. frameio/types/original_media_link.py +16 -0
  186. frameio/types/profile.py +34 -0
  187. frameio/types/profile_response.py +17 -0
  188. frameio/types/project.py +55 -0
  189. frameio/types/project_include.py +5 -0
  190. frameio/types/project_params.py +17 -0
  191. frameio/types/project_params_data.py +15 -0
  192. frameio/types/project_response.py +17 -0
  193. frameio/types/project_with_includes.py +18 -0
  194. frameio/types/project_with_includes_response.py +17 -0
  195. frameio/types/projects_with_includes_response.py +27 -0
  196. frameio/types/rating_definition.py +43 -0
  197. frameio/types/rating_definition_field_configuration.py +22 -0
  198. frameio/types/rating_definition_field_configuration_style.py +5 -0
  199. frameio/types/rating_definition_params.py +17 -0
  200. frameio/types/rating_definition_params_field_configuration.py +22 -0
  201. frameio/types/rating_definition_params_field_configuration_style.py +5 -0
  202. frameio/types/rating_definition_with_includes.py +13 -0
  203. frameio/types/remove_asset_response.py +13 -0
  204. frameio/types/remove_asset_response_data.py +15 -0
  205. frameio/types/rendition_media_link.py +19 -0
  206. frameio/types/request_after_opaque_cursor.py +5 -0
  207. frameio/types/request_page_size.py +3 -0
  208. frameio/types/select_definition.py +43 -0
  209. frameio/types/select_definition_field_configuration.py +18 -0
  210. frameio/types/select_definition_field_configuration_options_item.py +22 -0
  211. frameio/types/select_definition_params.py +17 -0
  212. frameio/types/select_definition_params_field_configuration.py +20 -0
  213. frameio/types/select_definition_params_field_configuration_options_item.py +20 -0
  214. frameio/types/select_definition_with_includes.py +13 -0
  215. frameio/types/select_multi_definition.py +43 -0
  216. frameio/types/select_multi_definition_field_configuration.py +18 -0
  217. frameio/types/select_multi_definition_field_configuration_options_item.py +22 -0
  218. frameio/types/select_multi_definition_params.py +17 -0
  219. frameio/types/select_multi_definition_params_field_configuration.py +20 -0
  220. frameio/types/select_multi_definition_params_field_configuration_options_item.py +20 -0
  221. frameio/types/select_multi_definition_with_includes.py +13 -0
  222. frameio/types/select_option.py +20 -0
  223. frameio/types/select_value.py +14 -0
  224. frameio/types/share.py +66 -0
  225. frameio/types/share_access.py +5 -0
  226. frameio/types/share_response.py +13 -0
  227. frameio/types/share_reviewers_response.py +27 -0
  228. frameio/types/shares_response.py +27 -0
  229. frameio/types/single_user_value.py +20 -0
  230. frameio/types/single_user_value_member_options_type.py +5 -0
  231. frameio/types/text_definition.py +43 -0
  232. frameio/types/text_definition_field_configuration.py +10 -0
  233. frameio/types/text_definition_params.py +15 -0
  234. frameio/types/text_definition_with_includes.py +13 -0
  235. frameio/types/text_value.py +12 -0
  236. frameio/types/toggle_definition.py +43 -0
  237. frameio/types/toggle_definition_field_configuration.py +15 -0
  238. frameio/types/toggle_definition_params.py +17 -0
  239. frameio/types/toggle_definition_params_field_configuration.py +15 -0
  240. frameio/types/toggle_definition_with_includes.py +13 -0
  241. frameio/types/too_many_requests.py +13 -0
  242. frameio/types/too_many_requests_errors_item.py +15 -0
  243. frameio/types/too_many_requests_errors_item_source.py +12 -0
  244. frameio/types/unauthorized.py +13 -0
  245. frameio/types/unauthorized_errors_item.py +15 -0
  246. frameio/types/unauthorized_errors_item_source.py +12 -0
  247. frameio/types/unprocessable_entity.py +13 -0
  248. frameio/types/unprocessable_entity_errors_item.py +15 -0
  249. frameio/types/unprocessable_entity_errors_item_source.py +12 -0
  250. frameio/types/update_date_definition_params.py +17 -0
  251. frameio/types/update_date_definition_params_field_configuration.py +25 -0
  252. frameio/types/update_date_definition_params_field_configuration_display_format.py +7 -0
  253. frameio/types/update_date_definition_params_field_configuration_time_format.py +7 -0
  254. frameio/types/update_long_text_definition_params.py +15 -0
  255. frameio/types/update_number_definition_params.py +17 -0
  256. frameio/types/update_number_definition_params_field_configuration.py +25 -0
  257. frameio/types/update_number_definition_params_field_configuration_number_format.py +7 -0
  258. frameio/types/update_rating_definition_params.py +17 -0
  259. frameio/types/update_rating_definition_params_field_configuration.py +24 -0
  260. frameio/types/update_rating_definition_params_field_configuration_style.py +7 -0
  261. frameio/types/update_select_definition_params.py +17 -0
  262. frameio/types/update_select_definition_params_field_configuration.py +20 -0
  263. frameio/types/update_select_definition_params_field_configuration_options_item.py +20 -0
  264. frameio/types/update_select_multi_definition_params.py +19 -0
  265. frameio/types/update_select_multi_definition_params_field_configuration.py +20 -0
  266. frameio/types/update_select_multi_definition_params_field_configuration_options_item.py +20 -0
  267. frameio/types/update_text_definition_params.py +15 -0
  268. frameio/types/update_toggle_definition_params.py +17 -0
  269. frameio/types/update_toggle_definition_params_field_configuration.py +15 -0
  270. frameio/types/update_user_multi_definition_params.py +17 -0
  271. frameio/types/update_user_multi_definition_params_field_configuration.py +25 -0
  272. frameio/types/update_user_multi_definition_params_field_configuration_custom_members_item.py +20 -0
  273. frameio/types/update_user_multi_definition_params_field_configuration_custom_members_item_type.py +7 -0
  274. frameio/types/update_user_multi_definition_params_field_configuration_member_options_type.py +7 -0
  275. frameio/types/update_user_roles_params.py +17 -0
  276. frameio/types/update_user_roles_params_data.py +13 -0
  277. frameio/types/update_user_roles_params_data_role.py +7 -0
  278. frameio/types/update_user_roles_response.py +13 -0
  279. frameio/types/update_user_roles_response_data.py +13 -0
  280. frameio/types/update_user_roles_response_data_role.py +7 -0
  281. frameio/types/update_user_single_definition_params.py +17 -0
  282. frameio/types/update_user_single_definition_params_field_configuration.py +25 -0
  283. frameio/types/update_user_single_definition_params_field_configuration_custom_members_item.py +20 -0
  284. frameio/types/update_user_single_definition_params_field_configuration_custom_members_item_type.py +7 -0
  285. frameio/types/update_user_single_definition_params_field_configuration_member_options_type.py +7 -0
  286. frameio/types/upload_url.py +20 -0
  287. frameio/types/user.py +44 -0
  288. frameio/types/user_multi_definition.py +43 -0
  289. frameio/types/user_multi_definition_field_configuration.py +23 -0
  290. frameio/types/user_multi_definition_field_configuration_custom_members_item.py +20 -0
  291. frameio/types/user_multi_definition_field_configuration_custom_members_item_type.py +7 -0
  292. frameio/types/user_multi_definition_field_configuration_member_options_type.py +7 -0
  293. frameio/types/user_multi_definition_params.py +17 -0
  294. frameio/types/user_multi_definition_params_field_configuration.py +23 -0
  295. frameio/types/user_multi_definition_params_field_configuration_custom_members_item.py +20 -0
  296. frameio/types/user_multi_definition_params_field_configuration_custom_members_item_type.py +7 -0
  297. frameio/types/user_multi_definition_params_field_configuration_member_options_type.py +7 -0
  298. frameio/types/user_multi_definition_with_includes.py +13 -0
  299. frameio/types/user_role.py +19 -0
  300. frameio/types/user_role_role.py +7 -0
  301. frameio/types/user_roles_response.py +27 -0
  302. frameio/types/user_single_definition.py +43 -0
  303. frameio/types/user_single_definition_field_configuration.py +23 -0
  304. frameio/types/user_single_definition_field_configuration_custom_members_item.py +20 -0
  305. frameio/types/user_single_definition_field_configuration_custom_members_item_type.py +7 -0
  306. frameio/types/user_single_definition_field_configuration_member_options_type.py +7 -0
  307. frameio/types/user_single_definition_params.py +17 -0
  308. frameio/types/user_single_definition_params_field_configuration.py +23 -0
  309. frameio/types/user_single_definition_params_field_configuration_custom_members_item.py +20 -0
  310. frameio/types/user_single_definition_params_field_configuration_custom_members_item_type.py +7 -0
  311. frameio/types/user_single_definition_params_field_configuration_member_options_type.py +7 -0
  312. frameio/types/user_single_definition_with_includes.py +13 -0
  313. frameio/types/user_value.py +18 -0
  314. frameio/types/user_value_type.py +5 -0
  315. frameio/types/uuid_.py +3 -0
  316. frameio/types/version_stack.py +50 -0
  317. frameio/types/version_stack_copy_response.py +13 -0
  318. frameio/types/version_stack_response.py +13 -0
  319. frameio/types/version_stack_with_includes.py +58 -0
  320. frameio/types/version_stack_with_includes_response.py +13 -0
  321. frameio/types/version_stacks_with_includes_response.py +19 -0
  322. frameio/types/webhook.py +36 -0
  323. frameio/types/webhook_create_response.py +17 -0
  324. frameio/types/webhook_create_response_data.py +15 -0
  325. frameio/types/webhook_events.py +5 -0
  326. frameio/types/webhook_response.py +13 -0
  327. frameio/types/webhook_with_includes.py +13 -0
  328. frameio/types/webhook_with_includes_response.py +13 -0
  329. frameio/types/webhooks_with_includes_response.py +23 -0
  330. frameio/types/workspace.py +40 -0
  331. frameio/types/workspace_include.py +5 -0
  332. frameio/types/workspace_params.py +17 -0
  333. frameio/types/workspace_params_data.py +15 -0
  334. frameio/types/workspace_response.py +17 -0
  335. frameio/types/workspace_with_includes.py +13 -0
  336. frameio/types/workspace_with_includes_response.py +17 -0
  337. frameio/types/workspaces_with_includes_response.py +27 -0
  338. frameio/users/__init__.py +4 -0
  339. frameio/users/client.py +100 -0
  340. frameio/users/raw_client.py +234 -0
  341. frameio/version.py +3 -0
  342. frameio/version_stacks/__init__.py +38 -0
  343. frameio/version_stacks/client.py +699 -0
  344. frameio/version_stacks/raw_client.py +1359 -0
  345. frameio/version_stacks/types/__init__.py +40 -0
  346. frameio/version_stacks/types/version_stack_copy_params_data.py +15 -0
  347. frameio/version_stacks/types/version_stack_create_params_data.py +19 -0
  348. frameio/version_stacks/types/version_stack_move_params_data.py +15 -0
  349. frameio/webhooks/__init__.py +34 -0
  350. frameio/webhooks/client.py +782 -0
  351. frameio/webhooks/raw_client.py +1312 -0
  352. frameio/webhooks/types/__init__.py +38 -0
  353. frameio/webhooks/types/webhook_create_params_data.py +18 -0
  354. frameio/webhooks/types/webhook_update_params_data.py +23 -0
  355. frameio/workspace_permissions/__init__.py +4 -0
  356. frameio/workspace_permissions/client.py +419 -0
  357. frameio/workspace_permissions/raw_client.py +789 -0
  358. frameio/workspaces/__init__.py +4 -0
  359. frameio/workspaces/client.py +552 -0
  360. frameio/workspaces/raw_client.py +1226 -0
  361. frameio-0.0.23.dist-info/METADATA +255 -0
  362. frameio-0.0.23.dist-info/RECORD +363 -0
  363. frameio-0.0.23.dist-info/WHEEL +4 -0
@@ -0,0 +1,1312 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ..core.api_error import ApiError
7
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ..core.http_response import AsyncHttpResponse, HttpResponse
9
+ from ..core.jsonable_encoder import jsonable_encoder
10
+ from ..core.pydantic_utilities import parse_obj_as
11
+ from ..core.request_options import RequestOptions
12
+ from ..core.serialization import convert_and_respect_annotation_metadata
13
+ from ..errors.bad_request_error import BadRequestError
14
+ from ..errors.forbidden_error import ForbiddenError
15
+ from ..errors.not_found_error import NotFoundError
16
+ from ..errors.too_many_requests_error import TooManyRequestsError
17
+ from ..errors.unauthorized_error import UnauthorizedError
18
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
19
+ from ..types.bad_request import BadRequest
20
+ from ..types.forbidden import Forbidden
21
+ from ..types.include_total_count import IncludeTotalCount
22
+ from ..types.not_found import NotFound
23
+ from ..types.request_after_opaque_cursor import RequestAfterOpaqueCursor
24
+ from ..types.request_page_size import RequestPageSize
25
+ from ..types.too_many_requests import TooManyRequests
26
+ from ..types.unauthorized import Unauthorized
27
+ from ..types.uuid_ import Uuid
28
+ from ..types.webhook_create_response import WebhookCreateResponse
29
+ from ..types.webhook_response import WebhookResponse
30
+ from ..types.webhook_with_includes_response import WebhookWithIncludesResponse
31
+ from ..types.webhooks_with_includes_response import WebhooksWithIncludesResponse
32
+ from .types.webhook_create_params_data import WebhookCreateParamsData
33
+ from .types.webhook_update_params_data import WebhookUpdateParamsData
34
+
35
+ # this is used as the default value for optional parameters
36
+ OMIT = typing.cast(typing.Any, ...)
37
+
38
+
39
+ class RawWebhooksClient:
40
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
41
+ self._client_wrapper = client_wrapper
42
+
43
+ def index(
44
+ self,
45
+ account_id: Uuid,
46
+ workspace_id: Uuid,
47
+ *,
48
+ include: typing.Optional[typing.Literal["creator"]] = None,
49
+ after: typing.Optional[RequestAfterOpaqueCursor] = None,
50
+ page_size: typing.Optional[RequestPageSize] = None,
51
+ include_total_count: typing.Optional[IncludeTotalCount] = None,
52
+ request_options: typing.Optional[RequestOptions] = None,
53
+ ) -> HttpResponse[WebhooksWithIncludesResponse]:
54
+ """
55
+ List webhooks for the given workspace. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
56
+
57
+ Parameters
58
+ ----------
59
+ account_id : Uuid
60
+
61
+
62
+ workspace_id : Uuid
63
+
64
+
65
+ include : typing.Optional[typing.Literal["creator"]]
66
+
67
+
68
+ after : typing.Optional[RequestAfterOpaqueCursor]
69
+ Opaque Cursor query param for requests returning paginated results.
70
+ <br/>
71
+ NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.
72
+
73
+ page_size : typing.Optional[RequestPageSize]
74
+
75
+
76
+ include_total_count : typing.Optional[IncludeTotalCount]
77
+
78
+
79
+ request_options : typing.Optional[RequestOptions]
80
+ Request-specific configuration.
81
+
82
+ Returns
83
+ -------
84
+ HttpResponse[WebhooksWithIncludesResponse]
85
+ OK
86
+ """
87
+ _response = self._client_wrapper.httpx_client.request(
88
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}/webhooks",
89
+ method="GET",
90
+ params={
91
+ "include": include,
92
+ "after": after,
93
+ "page_size": page_size,
94
+ "include_total_count": include_total_count,
95
+ },
96
+ request_options=request_options,
97
+ )
98
+ try:
99
+ if 200 <= _response.status_code < 300:
100
+ _data = typing.cast(
101
+ WebhooksWithIncludesResponse,
102
+ parse_obj_as(
103
+ type_=WebhooksWithIncludesResponse, # type: ignore
104
+ object_=_response.json(),
105
+ ),
106
+ )
107
+ return HttpResponse(response=_response, data=_data)
108
+ if _response.status_code == 400:
109
+ raise BadRequestError(
110
+ headers=dict(_response.headers),
111
+ body=typing.cast(
112
+ BadRequest,
113
+ parse_obj_as(
114
+ type_=BadRequest, # type: ignore
115
+ object_=_response.json(),
116
+ ),
117
+ ),
118
+ )
119
+ if _response.status_code == 401:
120
+ raise UnauthorizedError(
121
+ headers=dict(_response.headers),
122
+ body=typing.cast(
123
+ Unauthorized,
124
+ parse_obj_as(
125
+ type_=Unauthorized, # type: ignore
126
+ object_=_response.json(),
127
+ ),
128
+ ),
129
+ )
130
+ if _response.status_code == 403:
131
+ raise ForbiddenError(
132
+ headers=dict(_response.headers),
133
+ body=typing.cast(
134
+ Forbidden,
135
+ parse_obj_as(
136
+ type_=Forbidden, # type: ignore
137
+ object_=_response.json(),
138
+ ),
139
+ ),
140
+ )
141
+ if _response.status_code == 404:
142
+ raise NotFoundError(
143
+ headers=dict(_response.headers),
144
+ body=typing.cast(
145
+ NotFound,
146
+ parse_obj_as(
147
+ type_=NotFound, # type: ignore
148
+ object_=_response.json(),
149
+ ),
150
+ ),
151
+ )
152
+ if _response.status_code == 422:
153
+ raise UnprocessableEntityError(
154
+ headers=dict(_response.headers),
155
+ body=typing.cast(
156
+ typing.Optional[typing.Any],
157
+ parse_obj_as(
158
+ type_=typing.Optional[typing.Any], # type: ignore
159
+ object_=_response.json(),
160
+ ),
161
+ ),
162
+ )
163
+ if _response.status_code == 429:
164
+ raise TooManyRequestsError(
165
+ headers=dict(_response.headers),
166
+ body=typing.cast(
167
+ TooManyRequests,
168
+ parse_obj_as(
169
+ type_=TooManyRequests, # type: ignore
170
+ object_=_response.json(),
171
+ ),
172
+ ),
173
+ )
174
+ _response_json = _response.json()
175
+ except JSONDecodeError:
176
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
177
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
178
+
179
+ def create(
180
+ self,
181
+ account_id: Uuid,
182
+ workspace_id: Uuid,
183
+ *,
184
+ data: WebhookCreateParamsData,
185
+ request_options: typing.Optional[RequestOptions] = None,
186
+ ) -> HttpResponse[WebhookCreateResponse]:
187
+ """
188
+ Creates a single webhook with secret.<br/><br/>Valid events:<p><code>
189
+ file.created, <br/>
190
+ file.deleted, <br/>
191
+ file.ready, <br/>
192
+ file.updated, <br/>
193
+ file.upload.completed, <br/>
194
+ file.versioned, <br/>
195
+ file.copied, <br/>
196
+ folder.created, <br/>
197
+ folder.deleted, <br/>
198
+ folder.updated, <br/>
199
+ folder.copied, <br/>
200
+ comment.completed, <br/>
201
+ comment.created, <br/>
202
+ comment.deleted, <br/>
203
+ comment.uncompleted, <br/>
204
+ comment.updated, <br/>
205
+ customfield.created, <br/>
206
+ customfield.updated, <br/>
207
+ customfield.deleted, <br/>
208
+ metadata.value.updated, <br/>
209
+ project.created, <br/>
210
+ project.deleted, <br/>
211
+ project.updated, <br/>
212
+ collection.created, <br/>
213
+ collection.updated, <br/>
214
+ collection.deleted, <br/>
215
+ share.created, <br/>
216
+ share.updated, <br/>
217
+ share.deleted, <br/>
218
+ share.viewed</code></p>Rate Limits: 10 calls per 1.00 minute(s) per account
219
+
220
+ Parameters
221
+ ----------
222
+ account_id : Uuid
223
+
224
+
225
+ workspace_id : Uuid
226
+
227
+
228
+ data : WebhookCreateParamsData
229
+
230
+ request_options : typing.Optional[RequestOptions]
231
+ Request-specific configuration.
232
+
233
+ Returns
234
+ -------
235
+ HttpResponse[WebhookCreateResponse]
236
+ Created
237
+ """
238
+ _response = self._client_wrapper.httpx_client.request(
239
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}/webhooks",
240
+ method="POST",
241
+ json={
242
+ "data": convert_and_respect_annotation_metadata(
243
+ object_=data, annotation=WebhookCreateParamsData, direction="write"
244
+ ),
245
+ },
246
+ headers={
247
+ "content-type": "application/json",
248
+ },
249
+ request_options=request_options,
250
+ omit=OMIT,
251
+ )
252
+ try:
253
+ if 200 <= _response.status_code < 300:
254
+ _data = typing.cast(
255
+ WebhookCreateResponse,
256
+ parse_obj_as(
257
+ type_=WebhookCreateResponse, # type: ignore
258
+ object_=_response.json(),
259
+ ),
260
+ )
261
+ return HttpResponse(response=_response, data=_data)
262
+ if _response.status_code == 400:
263
+ raise BadRequestError(
264
+ headers=dict(_response.headers),
265
+ body=typing.cast(
266
+ BadRequest,
267
+ parse_obj_as(
268
+ type_=BadRequest, # type: ignore
269
+ object_=_response.json(),
270
+ ),
271
+ ),
272
+ )
273
+ if _response.status_code == 401:
274
+ raise UnauthorizedError(
275
+ headers=dict(_response.headers),
276
+ body=typing.cast(
277
+ Unauthorized,
278
+ parse_obj_as(
279
+ type_=Unauthorized, # type: ignore
280
+ object_=_response.json(),
281
+ ),
282
+ ),
283
+ )
284
+ if _response.status_code == 403:
285
+ raise ForbiddenError(
286
+ headers=dict(_response.headers),
287
+ body=typing.cast(
288
+ Forbidden,
289
+ parse_obj_as(
290
+ type_=Forbidden, # type: ignore
291
+ object_=_response.json(),
292
+ ),
293
+ ),
294
+ )
295
+ if _response.status_code == 404:
296
+ raise NotFoundError(
297
+ headers=dict(_response.headers),
298
+ body=typing.cast(
299
+ NotFound,
300
+ parse_obj_as(
301
+ type_=NotFound, # type: ignore
302
+ object_=_response.json(),
303
+ ),
304
+ ),
305
+ )
306
+ if _response.status_code == 422:
307
+ raise UnprocessableEntityError(
308
+ headers=dict(_response.headers),
309
+ body=typing.cast(
310
+ typing.Optional[typing.Any],
311
+ parse_obj_as(
312
+ type_=typing.Optional[typing.Any], # type: ignore
313
+ object_=_response.json(),
314
+ ),
315
+ ),
316
+ )
317
+ if _response.status_code == 429:
318
+ raise TooManyRequestsError(
319
+ headers=dict(_response.headers),
320
+ body=typing.cast(
321
+ TooManyRequests,
322
+ parse_obj_as(
323
+ type_=TooManyRequests, # type: ignore
324
+ object_=_response.json(),
325
+ ),
326
+ ),
327
+ )
328
+ _response_json = _response.json()
329
+ except JSONDecodeError:
330
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
331
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
332
+
333
+ def show(
334
+ self,
335
+ account_id: Uuid,
336
+ webhook_id: Uuid,
337
+ *,
338
+ include: typing.Optional[typing.Literal["creator"]] = None,
339
+ request_options: typing.Optional[RequestOptions] = None,
340
+ ) -> HttpResponse[WebhookWithIncludesResponse]:
341
+ """
342
+ Show webhook details. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
343
+
344
+ Parameters
345
+ ----------
346
+ account_id : Uuid
347
+
348
+
349
+ webhook_id : Uuid
350
+
351
+
352
+ include : typing.Optional[typing.Literal["creator"]]
353
+
354
+
355
+ request_options : typing.Optional[RequestOptions]
356
+ Request-specific configuration.
357
+
358
+ Returns
359
+ -------
360
+ HttpResponse[WebhookWithIncludesResponse]
361
+ OK
362
+ """
363
+ _response = self._client_wrapper.httpx_client.request(
364
+ f"v4/accounts/{jsonable_encoder(account_id)}/webhooks/{jsonable_encoder(webhook_id)}",
365
+ method="GET",
366
+ params={
367
+ "include": include,
368
+ },
369
+ request_options=request_options,
370
+ )
371
+ try:
372
+ if 200 <= _response.status_code < 300:
373
+ _data = typing.cast(
374
+ WebhookWithIncludesResponse,
375
+ parse_obj_as(
376
+ type_=WebhookWithIncludesResponse, # type: ignore
377
+ object_=_response.json(),
378
+ ),
379
+ )
380
+ return HttpResponse(response=_response, data=_data)
381
+ if _response.status_code == 400:
382
+ raise BadRequestError(
383
+ headers=dict(_response.headers),
384
+ body=typing.cast(
385
+ BadRequest,
386
+ parse_obj_as(
387
+ type_=BadRequest, # type: ignore
388
+ object_=_response.json(),
389
+ ),
390
+ ),
391
+ )
392
+ if _response.status_code == 401:
393
+ raise UnauthorizedError(
394
+ headers=dict(_response.headers),
395
+ body=typing.cast(
396
+ Unauthorized,
397
+ parse_obj_as(
398
+ type_=Unauthorized, # type: ignore
399
+ object_=_response.json(),
400
+ ),
401
+ ),
402
+ )
403
+ if _response.status_code == 403:
404
+ raise ForbiddenError(
405
+ headers=dict(_response.headers),
406
+ body=typing.cast(
407
+ Forbidden,
408
+ parse_obj_as(
409
+ type_=Forbidden, # type: ignore
410
+ object_=_response.json(),
411
+ ),
412
+ ),
413
+ )
414
+ if _response.status_code == 404:
415
+ raise NotFoundError(
416
+ headers=dict(_response.headers),
417
+ body=typing.cast(
418
+ NotFound,
419
+ parse_obj_as(
420
+ type_=NotFound, # type: ignore
421
+ object_=_response.json(),
422
+ ),
423
+ ),
424
+ )
425
+ if _response.status_code == 422:
426
+ raise UnprocessableEntityError(
427
+ headers=dict(_response.headers),
428
+ body=typing.cast(
429
+ typing.Optional[typing.Any],
430
+ parse_obj_as(
431
+ type_=typing.Optional[typing.Any], # type: ignore
432
+ object_=_response.json(),
433
+ ),
434
+ ),
435
+ )
436
+ if _response.status_code == 429:
437
+ raise TooManyRequestsError(
438
+ headers=dict(_response.headers),
439
+ body=typing.cast(
440
+ TooManyRequests,
441
+ parse_obj_as(
442
+ type_=TooManyRequests, # type: ignore
443
+ object_=_response.json(),
444
+ ),
445
+ ),
446
+ )
447
+ _response_json = _response.json()
448
+ except JSONDecodeError:
449
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
450
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
451
+
452
+ def delete(
453
+ self, account_id: Uuid, webhook_id: Uuid, *, request_options: typing.Optional[RequestOptions] = None
454
+ ) -> HttpResponse[None]:
455
+ """
456
+ Delete a webhook. <br><br>Rate Limits: 60 calls per 1.00 minute(s) per account
457
+
458
+ Parameters
459
+ ----------
460
+ account_id : Uuid
461
+
462
+
463
+ webhook_id : Uuid
464
+
465
+
466
+ request_options : typing.Optional[RequestOptions]
467
+ Request-specific configuration.
468
+
469
+ Returns
470
+ -------
471
+ HttpResponse[None]
472
+ """
473
+ _response = self._client_wrapper.httpx_client.request(
474
+ f"v4/accounts/{jsonable_encoder(account_id)}/webhooks/{jsonable_encoder(webhook_id)}",
475
+ method="DELETE",
476
+ request_options=request_options,
477
+ )
478
+ try:
479
+ if 200 <= _response.status_code < 300:
480
+ return HttpResponse(response=_response, data=None)
481
+ if _response.status_code == 400:
482
+ raise BadRequestError(
483
+ headers=dict(_response.headers),
484
+ body=typing.cast(
485
+ BadRequest,
486
+ parse_obj_as(
487
+ type_=BadRequest, # type: ignore
488
+ object_=_response.json(),
489
+ ),
490
+ ),
491
+ )
492
+ if _response.status_code == 401:
493
+ raise UnauthorizedError(
494
+ headers=dict(_response.headers),
495
+ body=typing.cast(
496
+ Unauthorized,
497
+ parse_obj_as(
498
+ type_=Unauthorized, # type: ignore
499
+ object_=_response.json(),
500
+ ),
501
+ ),
502
+ )
503
+ if _response.status_code == 403:
504
+ raise ForbiddenError(
505
+ headers=dict(_response.headers),
506
+ body=typing.cast(
507
+ Forbidden,
508
+ parse_obj_as(
509
+ type_=Forbidden, # type: ignore
510
+ object_=_response.json(),
511
+ ),
512
+ ),
513
+ )
514
+ if _response.status_code == 404:
515
+ raise NotFoundError(
516
+ headers=dict(_response.headers),
517
+ body=typing.cast(
518
+ NotFound,
519
+ parse_obj_as(
520
+ type_=NotFound, # type: ignore
521
+ object_=_response.json(),
522
+ ),
523
+ ),
524
+ )
525
+ if _response.status_code == 422:
526
+ raise UnprocessableEntityError(
527
+ headers=dict(_response.headers),
528
+ body=typing.cast(
529
+ typing.Optional[typing.Any],
530
+ parse_obj_as(
531
+ type_=typing.Optional[typing.Any], # type: ignore
532
+ object_=_response.json(),
533
+ ),
534
+ ),
535
+ )
536
+ if _response.status_code == 429:
537
+ raise TooManyRequestsError(
538
+ headers=dict(_response.headers),
539
+ body=typing.cast(
540
+ TooManyRequests,
541
+ parse_obj_as(
542
+ type_=TooManyRequests, # type: ignore
543
+ object_=_response.json(),
544
+ ),
545
+ ),
546
+ )
547
+ _response_json = _response.json()
548
+ except JSONDecodeError:
549
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
550
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
551
+
552
+ def update(
553
+ self,
554
+ account_id: Uuid,
555
+ webhook_id: Uuid,
556
+ *,
557
+ data: WebhookUpdateParamsData,
558
+ request_options: typing.Optional[RequestOptions] = None,
559
+ ) -> HttpResponse[WebhookResponse]:
560
+ """
561
+ Update webhook details. <br><br>Rate Limits: 10 calls per 1.00 minute(s) per account
562
+
563
+ Parameters
564
+ ----------
565
+ account_id : Uuid
566
+
567
+
568
+ webhook_id : Uuid
569
+
570
+
571
+ data : WebhookUpdateParamsData
572
+
573
+ request_options : typing.Optional[RequestOptions]
574
+ Request-specific configuration.
575
+
576
+ Returns
577
+ -------
578
+ HttpResponse[WebhookResponse]
579
+ OK
580
+ """
581
+ _response = self._client_wrapper.httpx_client.request(
582
+ f"v4/accounts/{jsonable_encoder(account_id)}/webhooks/{jsonable_encoder(webhook_id)}",
583
+ method="PATCH",
584
+ json={
585
+ "data": convert_and_respect_annotation_metadata(
586
+ object_=data, annotation=WebhookUpdateParamsData, direction="write"
587
+ ),
588
+ },
589
+ headers={
590
+ "content-type": "application/json",
591
+ },
592
+ request_options=request_options,
593
+ omit=OMIT,
594
+ )
595
+ try:
596
+ if 200 <= _response.status_code < 300:
597
+ _data = typing.cast(
598
+ WebhookResponse,
599
+ parse_obj_as(
600
+ type_=WebhookResponse, # type: ignore
601
+ object_=_response.json(),
602
+ ),
603
+ )
604
+ return HttpResponse(response=_response, data=_data)
605
+ if _response.status_code == 400:
606
+ raise BadRequestError(
607
+ headers=dict(_response.headers),
608
+ body=typing.cast(
609
+ BadRequest,
610
+ parse_obj_as(
611
+ type_=BadRequest, # type: ignore
612
+ object_=_response.json(),
613
+ ),
614
+ ),
615
+ )
616
+ if _response.status_code == 401:
617
+ raise UnauthorizedError(
618
+ headers=dict(_response.headers),
619
+ body=typing.cast(
620
+ Unauthorized,
621
+ parse_obj_as(
622
+ type_=Unauthorized, # type: ignore
623
+ object_=_response.json(),
624
+ ),
625
+ ),
626
+ )
627
+ if _response.status_code == 403:
628
+ raise ForbiddenError(
629
+ headers=dict(_response.headers),
630
+ body=typing.cast(
631
+ Forbidden,
632
+ parse_obj_as(
633
+ type_=Forbidden, # type: ignore
634
+ object_=_response.json(),
635
+ ),
636
+ ),
637
+ )
638
+ if _response.status_code == 404:
639
+ raise NotFoundError(
640
+ headers=dict(_response.headers),
641
+ body=typing.cast(
642
+ NotFound,
643
+ parse_obj_as(
644
+ type_=NotFound, # type: ignore
645
+ object_=_response.json(),
646
+ ),
647
+ ),
648
+ )
649
+ if _response.status_code == 422:
650
+ raise UnprocessableEntityError(
651
+ headers=dict(_response.headers),
652
+ body=typing.cast(
653
+ typing.Optional[typing.Any],
654
+ parse_obj_as(
655
+ type_=typing.Optional[typing.Any], # type: ignore
656
+ object_=_response.json(),
657
+ ),
658
+ ),
659
+ )
660
+ if _response.status_code == 429:
661
+ raise TooManyRequestsError(
662
+ headers=dict(_response.headers),
663
+ body=typing.cast(
664
+ TooManyRequests,
665
+ parse_obj_as(
666
+ type_=TooManyRequests, # type: ignore
667
+ object_=_response.json(),
668
+ ),
669
+ ),
670
+ )
671
+ _response_json = _response.json()
672
+ except JSONDecodeError:
673
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
674
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
675
+
676
+
677
+ class AsyncRawWebhooksClient:
678
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
679
+ self._client_wrapper = client_wrapper
680
+
681
+ async def index(
682
+ self,
683
+ account_id: Uuid,
684
+ workspace_id: Uuid,
685
+ *,
686
+ include: typing.Optional[typing.Literal["creator"]] = None,
687
+ after: typing.Optional[RequestAfterOpaqueCursor] = None,
688
+ page_size: typing.Optional[RequestPageSize] = None,
689
+ include_total_count: typing.Optional[IncludeTotalCount] = None,
690
+ request_options: typing.Optional[RequestOptions] = None,
691
+ ) -> AsyncHttpResponse[WebhooksWithIncludesResponse]:
692
+ """
693
+ List webhooks for the given workspace. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
694
+
695
+ Parameters
696
+ ----------
697
+ account_id : Uuid
698
+
699
+
700
+ workspace_id : Uuid
701
+
702
+
703
+ include : typing.Optional[typing.Literal["creator"]]
704
+
705
+
706
+ after : typing.Optional[RequestAfterOpaqueCursor]
707
+ Opaque Cursor query param for requests returning paginated results.
708
+ <br/>
709
+ NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.
710
+
711
+ page_size : typing.Optional[RequestPageSize]
712
+
713
+
714
+ include_total_count : typing.Optional[IncludeTotalCount]
715
+
716
+
717
+ request_options : typing.Optional[RequestOptions]
718
+ Request-specific configuration.
719
+
720
+ Returns
721
+ -------
722
+ AsyncHttpResponse[WebhooksWithIncludesResponse]
723
+ OK
724
+ """
725
+ _response = await self._client_wrapper.httpx_client.request(
726
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}/webhooks",
727
+ method="GET",
728
+ params={
729
+ "include": include,
730
+ "after": after,
731
+ "page_size": page_size,
732
+ "include_total_count": include_total_count,
733
+ },
734
+ request_options=request_options,
735
+ )
736
+ try:
737
+ if 200 <= _response.status_code < 300:
738
+ _data = typing.cast(
739
+ WebhooksWithIncludesResponse,
740
+ parse_obj_as(
741
+ type_=WebhooksWithIncludesResponse, # type: ignore
742
+ object_=_response.json(),
743
+ ),
744
+ )
745
+ return AsyncHttpResponse(response=_response, data=_data)
746
+ if _response.status_code == 400:
747
+ raise BadRequestError(
748
+ headers=dict(_response.headers),
749
+ body=typing.cast(
750
+ BadRequest,
751
+ parse_obj_as(
752
+ type_=BadRequest, # type: ignore
753
+ object_=_response.json(),
754
+ ),
755
+ ),
756
+ )
757
+ if _response.status_code == 401:
758
+ raise UnauthorizedError(
759
+ headers=dict(_response.headers),
760
+ body=typing.cast(
761
+ Unauthorized,
762
+ parse_obj_as(
763
+ type_=Unauthorized, # type: ignore
764
+ object_=_response.json(),
765
+ ),
766
+ ),
767
+ )
768
+ if _response.status_code == 403:
769
+ raise ForbiddenError(
770
+ headers=dict(_response.headers),
771
+ body=typing.cast(
772
+ Forbidden,
773
+ parse_obj_as(
774
+ type_=Forbidden, # type: ignore
775
+ object_=_response.json(),
776
+ ),
777
+ ),
778
+ )
779
+ if _response.status_code == 404:
780
+ raise NotFoundError(
781
+ headers=dict(_response.headers),
782
+ body=typing.cast(
783
+ NotFound,
784
+ parse_obj_as(
785
+ type_=NotFound, # type: ignore
786
+ object_=_response.json(),
787
+ ),
788
+ ),
789
+ )
790
+ if _response.status_code == 422:
791
+ raise UnprocessableEntityError(
792
+ headers=dict(_response.headers),
793
+ body=typing.cast(
794
+ typing.Optional[typing.Any],
795
+ parse_obj_as(
796
+ type_=typing.Optional[typing.Any], # type: ignore
797
+ object_=_response.json(),
798
+ ),
799
+ ),
800
+ )
801
+ if _response.status_code == 429:
802
+ raise TooManyRequestsError(
803
+ headers=dict(_response.headers),
804
+ body=typing.cast(
805
+ TooManyRequests,
806
+ parse_obj_as(
807
+ type_=TooManyRequests, # type: ignore
808
+ object_=_response.json(),
809
+ ),
810
+ ),
811
+ )
812
+ _response_json = _response.json()
813
+ except JSONDecodeError:
814
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
815
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
816
+
817
+ async def create(
818
+ self,
819
+ account_id: Uuid,
820
+ workspace_id: Uuid,
821
+ *,
822
+ data: WebhookCreateParamsData,
823
+ request_options: typing.Optional[RequestOptions] = None,
824
+ ) -> AsyncHttpResponse[WebhookCreateResponse]:
825
+ """
826
+ Creates a single webhook with secret.<br/><br/>Valid events:<p><code>
827
+ file.created, <br/>
828
+ file.deleted, <br/>
829
+ file.ready, <br/>
830
+ file.updated, <br/>
831
+ file.upload.completed, <br/>
832
+ file.versioned, <br/>
833
+ file.copied, <br/>
834
+ folder.created, <br/>
835
+ folder.deleted, <br/>
836
+ folder.updated, <br/>
837
+ folder.copied, <br/>
838
+ comment.completed, <br/>
839
+ comment.created, <br/>
840
+ comment.deleted, <br/>
841
+ comment.uncompleted, <br/>
842
+ comment.updated, <br/>
843
+ customfield.created, <br/>
844
+ customfield.updated, <br/>
845
+ customfield.deleted, <br/>
846
+ metadata.value.updated, <br/>
847
+ project.created, <br/>
848
+ project.deleted, <br/>
849
+ project.updated, <br/>
850
+ collection.created, <br/>
851
+ collection.updated, <br/>
852
+ collection.deleted, <br/>
853
+ share.created, <br/>
854
+ share.updated, <br/>
855
+ share.deleted, <br/>
856
+ share.viewed</code></p>Rate Limits: 10 calls per 1.00 minute(s) per account
857
+
858
+ Parameters
859
+ ----------
860
+ account_id : Uuid
861
+
862
+
863
+ workspace_id : Uuid
864
+
865
+
866
+ data : WebhookCreateParamsData
867
+
868
+ request_options : typing.Optional[RequestOptions]
869
+ Request-specific configuration.
870
+
871
+ Returns
872
+ -------
873
+ AsyncHttpResponse[WebhookCreateResponse]
874
+ Created
875
+ """
876
+ _response = await self._client_wrapper.httpx_client.request(
877
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}/webhooks",
878
+ method="POST",
879
+ json={
880
+ "data": convert_and_respect_annotation_metadata(
881
+ object_=data, annotation=WebhookCreateParamsData, direction="write"
882
+ ),
883
+ },
884
+ headers={
885
+ "content-type": "application/json",
886
+ },
887
+ request_options=request_options,
888
+ omit=OMIT,
889
+ )
890
+ try:
891
+ if 200 <= _response.status_code < 300:
892
+ _data = typing.cast(
893
+ WebhookCreateResponse,
894
+ parse_obj_as(
895
+ type_=WebhookCreateResponse, # type: ignore
896
+ object_=_response.json(),
897
+ ),
898
+ )
899
+ return AsyncHttpResponse(response=_response, data=_data)
900
+ if _response.status_code == 400:
901
+ raise BadRequestError(
902
+ headers=dict(_response.headers),
903
+ body=typing.cast(
904
+ BadRequest,
905
+ parse_obj_as(
906
+ type_=BadRequest, # type: ignore
907
+ object_=_response.json(),
908
+ ),
909
+ ),
910
+ )
911
+ if _response.status_code == 401:
912
+ raise UnauthorizedError(
913
+ headers=dict(_response.headers),
914
+ body=typing.cast(
915
+ Unauthorized,
916
+ parse_obj_as(
917
+ type_=Unauthorized, # type: ignore
918
+ object_=_response.json(),
919
+ ),
920
+ ),
921
+ )
922
+ if _response.status_code == 403:
923
+ raise ForbiddenError(
924
+ headers=dict(_response.headers),
925
+ body=typing.cast(
926
+ Forbidden,
927
+ parse_obj_as(
928
+ type_=Forbidden, # type: ignore
929
+ object_=_response.json(),
930
+ ),
931
+ ),
932
+ )
933
+ if _response.status_code == 404:
934
+ raise NotFoundError(
935
+ headers=dict(_response.headers),
936
+ body=typing.cast(
937
+ NotFound,
938
+ parse_obj_as(
939
+ type_=NotFound, # type: ignore
940
+ object_=_response.json(),
941
+ ),
942
+ ),
943
+ )
944
+ if _response.status_code == 422:
945
+ raise UnprocessableEntityError(
946
+ headers=dict(_response.headers),
947
+ body=typing.cast(
948
+ typing.Optional[typing.Any],
949
+ parse_obj_as(
950
+ type_=typing.Optional[typing.Any], # type: ignore
951
+ object_=_response.json(),
952
+ ),
953
+ ),
954
+ )
955
+ if _response.status_code == 429:
956
+ raise TooManyRequestsError(
957
+ headers=dict(_response.headers),
958
+ body=typing.cast(
959
+ TooManyRequests,
960
+ parse_obj_as(
961
+ type_=TooManyRequests, # type: ignore
962
+ object_=_response.json(),
963
+ ),
964
+ ),
965
+ )
966
+ _response_json = _response.json()
967
+ except JSONDecodeError:
968
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
969
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
970
+
971
+ async def show(
972
+ self,
973
+ account_id: Uuid,
974
+ webhook_id: Uuid,
975
+ *,
976
+ include: typing.Optional[typing.Literal["creator"]] = None,
977
+ request_options: typing.Optional[RequestOptions] = None,
978
+ ) -> AsyncHttpResponse[WebhookWithIncludesResponse]:
979
+ """
980
+ Show webhook details. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
981
+
982
+ Parameters
983
+ ----------
984
+ account_id : Uuid
985
+
986
+
987
+ webhook_id : Uuid
988
+
989
+
990
+ include : typing.Optional[typing.Literal["creator"]]
991
+
992
+
993
+ request_options : typing.Optional[RequestOptions]
994
+ Request-specific configuration.
995
+
996
+ Returns
997
+ -------
998
+ AsyncHttpResponse[WebhookWithIncludesResponse]
999
+ OK
1000
+ """
1001
+ _response = await self._client_wrapper.httpx_client.request(
1002
+ f"v4/accounts/{jsonable_encoder(account_id)}/webhooks/{jsonable_encoder(webhook_id)}",
1003
+ method="GET",
1004
+ params={
1005
+ "include": include,
1006
+ },
1007
+ request_options=request_options,
1008
+ )
1009
+ try:
1010
+ if 200 <= _response.status_code < 300:
1011
+ _data = typing.cast(
1012
+ WebhookWithIncludesResponse,
1013
+ parse_obj_as(
1014
+ type_=WebhookWithIncludesResponse, # type: ignore
1015
+ object_=_response.json(),
1016
+ ),
1017
+ )
1018
+ return AsyncHttpResponse(response=_response, data=_data)
1019
+ if _response.status_code == 400:
1020
+ raise BadRequestError(
1021
+ headers=dict(_response.headers),
1022
+ body=typing.cast(
1023
+ BadRequest,
1024
+ parse_obj_as(
1025
+ type_=BadRequest, # type: ignore
1026
+ object_=_response.json(),
1027
+ ),
1028
+ ),
1029
+ )
1030
+ if _response.status_code == 401:
1031
+ raise UnauthorizedError(
1032
+ headers=dict(_response.headers),
1033
+ body=typing.cast(
1034
+ Unauthorized,
1035
+ parse_obj_as(
1036
+ type_=Unauthorized, # type: ignore
1037
+ object_=_response.json(),
1038
+ ),
1039
+ ),
1040
+ )
1041
+ if _response.status_code == 403:
1042
+ raise ForbiddenError(
1043
+ headers=dict(_response.headers),
1044
+ body=typing.cast(
1045
+ Forbidden,
1046
+ parse_obj_as(
1047
+ type_=Forbidden, # type: ignore
1048
+ object_=_response.json(),
1049
+ ),
1050
+ ),
1051
+ )
1052
+ if _response.status_code == 404:
1053
+ raise NotFoundError(
1054
+ headers=dict(_response.headers),
1055
+ body=typing.cast(
1056
+ NotFound,
1057
+ parse_obj_as(
1058
+ type_=NotFound, # type: ignore
1059
+ object_=_response.json(),
1060
+ ),
1061
+ ),
1062
+ )
1063
+ if _response.status_code == 422:
1064
+ raise UnprocessableEntityError(
1065
+ headers=dict(_response.headers),
1066
+ body=typing.cast(
1067
+ typing.Optional[typing.Any],
1068
+ parse_obj_as(
1069
+ type_=typing.Optional[typing.Any], # type: ignore
1070
+ object_=_response.json(),
1071
+ ),
1072
+ ),
1073
+ )
1074
+ if _response.status_code == 429:
1075
+ raise TooManyRequestsError(
1076
+ headers=dict(_response.headers),
1077
+ body=typing.cast(
1078
+ TooManyRequests,
1079
+ parse_obj_as(
1080
+ type_=TooManyRequests, # type: ignore
1081
+ object_=_response.json(),
1082
+ ),
1083
+ ),
1084
+ )
1085
+ _response_json = _response.json()
1086
+ except JSONDecodeError:
1087
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1088
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1089
+
1090
+ async def delete(
1091
+ self, account_id: Uuid, webhook_id: Uuid, *, request_options: typing.Optional[RequestOptions] = None
1092
+ ) -> AsyncHttpResponse[None]:
1093
+ """
1094
+ Delete a webhook. <br><br>Rate Limits: 60 calls per 1.00 minute(s) per account
1095
+
1096
+ Parameters
1097
+ ----------
1098
+ account_id : Uuid
1099
+
1100
+
1101
+ webhook_id : Uuid
1102
+
1103
+
1104
+ request_options : typing.Optional[RequestOptions]
1105
+ Request-specific configuration.
1106
+
1107
+ Returns
1108
+ -------
1109
+ AsyncHttpResponse[None]
1110
+ """
1111
+ _response = await self._client_wrapper.httpx_client.request(
1112
+ f"v4/accounts/{jsonable_encoder(account_id)}/webhooks/{jsonable_encoder(webhook_id)}",
1113
+ method="DELETE",
1114
+ request_options=request_options,
1115
+ )
1116
+ try:
1117
+ if 200 <= _response.status_code < 300:
1118
+ return AsyncHttpResponse(response=_response, data=None)
1119
+ if _response.status_code == 400:
1120
+ raise BadRequestError(
1121
+ headers=dict(_response.headers),
1122
+ body=typing.cast(
1123
+ BadRequest,
1124
+ parse_obj_as(
1125
+ type_=BadRequest, # type: ignore
1126
+ object_=_response.json(),
1127
+ ),
1128
+ ),
1129
+ )
1130
+ if _response.status_code == 401:
1131
+ raise UnauthorizedError(
1132
+ headers=dict(_response.headers),
1133
+ body=typing.cast(
1134
+ Unauthorized,
1135
+ parse_obj_as(
1136
+ type_=Unauthorized, # type: ignore
1137
+ object_=_response.json(),
1138
+ ),
1139
+ ),
1140
+ )
1141
+ if _response.status_code == 403:
1142
+ raise ForbiddenError(
1143
+ headers=dict(_response.headers),
1144
+ body=typing.cast(
1145
+ Forbidden,
1146
+ parse_obj_as(
1147
+ type_=Forbidden, # type: ignore
1148
+ object_=_response.json(),
1149
+ ),
1150
+ ),
1151
+ )
1152
+ if _response.status_code == 404:
1153
+ raise NotFoundError(
1154
+ headers=dict(_response.headers),
1155
+ body=typing.cast(
1156
+ NotFound,
1157
+ parse_obj_as(
1158
+ type_=NotFound, # type: ignore
1159
+ object_=_response.json(),
1160
+ ),
1161
+ ),
1162
+ )
1163
+ if _response.status_code == 422:
1164
+ raise UnprocessableEntityError(
1165
+ headers=dict(_response.headers),
1166
+ body=typing.cast(
1167
+ typing.Optional[typing.Any],
1168
+ parse_obj_as(
1169
+ type_=typing.Optional[typing.Any], # type: ignore
1170
+ object_=_response.json(),
1171
+ ),
1172
+ ),
1173
+ )
1174
+ if _response.status_code == 429:
1175
+ raise TooManyRequestsError(
1176
+ headers=dict(_response.headers),
1177
+ body=typing.cast(
1178
+ TooManyRequests,
1179
+ parse_obj_as(
1180
+ type_=TooManyRequests, # type: ignore
1181
+ object_=_response.json(),
1182
+ ),
1183
+ ),
1184
+ )
1185
+ _response_json = _response.json()
1186
+ except JSONDecodeError:
1187
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1188
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1189
+
1190
+ async def update(
1191
+ self,
1192
+ account_id: Uuid,
1193
+ webhook_id: Uuid,
1194
+ *,
1195
+ data: WebhookUpdateParamsData,
1196
+ request_options: typing.Optional[RequestOptions] = None,
1197
+ ) -> AsyncHttpResponse[WebhookResponse]:
1198
+ """
1199
+ Update webhook details. <br><br>Rate Limits: 10 calls per 1.00 minute(s) per account
1200
+
1201
+ Parameters
1202
+ ----------
1203
+ account_id : Uuid
1204
+
1205
+
1206
+ webhook_id : Uuid
1207
+
1208
+
1209
+ data : WebhookUpdateParamsData
1210
+
1211
+ request_options : typing.Optional[RequestOptions]
1212
+ Request-specific configuration.
1213
+
1214
+ Returns
1215
+ -------
1216
+ AsyncHttpResponse[WebhookResponse]
1217
+ OK
1218
+ """
1219
+ _response = await self._client_wrapper.httpx_client.request(
1220
+ f"v4/accounts/{jsonable_encoder(account_id)}/webhooks/{jsonable_encoder(webhook_id)}",
1221
+ method="PATCH",
1222
+ json={
1223
+ "data": convert_and_respect_annotation_metadata(
1224
+ object_=data, annotation=WebhookUpdateParamsData, direction="write"
1225
+ ),
1226
+ },
1227
+ headers={
1228
+ "content-type": "application/json",
1229
+ },
1230
+ request_options=request_options,
1231
+ omit=OMIT,
1232
+ )
1233
+ try:
1234
+ if 200 <= _response.status_code < 300:
1235
+ _data = typing.cast(
1236
+ WebhookResponse,
1237
+ parse_obj_as(
1238
+ type_=WebhookResponse, # type: ignore
1239
+ object_=_response.json(),
1240
+ ),
1241
+ )
1242
+ return AsyncHttpResponse(response=_response, data=_data)
1243
+ if _response.status_code == 400:
1244
+ raise BadRequestError(
1245
+ headers=dict(_response.headers),
1246
+ body=typing.cast(
1247
+ BadRequest,
1248
+ parse_obj_as(
1249
+ type_=BadRequest, # type: ignore
1250
+ object_=_response.json(),
1251
+ ),
1252
+ ),
1253
+ )
1254
+ if _response.status_code == 401:
1255
+ raise UnauthorizedError(
1256
+ headers=dict(_response.headers),
1257
+ body=typing.cast(
1258
+ Unauthorized,
1259
+ parse_obj_as(
1260
+ type_=Unauthorized, # type: ignore
1261
+ object_=_response.json(),
1262
+ ),
1263
+ ),
1264
+ )
1265
+ if _response.status_code == 403:
1266
+ raise ForbiddenError(
1267
+ headers=dict(_response.headers),
1268
+ body=typing.cast(
1269
+ Forbidden,
1270
+ parse_obj_as(
1271
+ type_=Forbidden, # type: ignore
1272
+ object_=_response.json(),
1273
+ ),
1274
+ ),
1275
+ )
1276
+ if _response.status_code == 404:
1277
+ raise NotFoundError(
1278
+ headers=dict(_response.headers),
1279
+ body=typing.cast(
1280
+ NotFound,
1281
+ parse_obj_as(
1282
+ type_=NotFound, # type: ignore
1283
+ object_=_response.json(),
1284
+ ),
1285
+ ),
1286
+ )
1287
+ if _response.status_code == 422:
1288
+ raise UnprocessableEntityError(
1289
+ headers=dict(_response.headers),
1290
+ body=typing.cast(
1291
+ typing.Optional[typing.Any],
1292
+ parse_obj_as(
1293
+ type_=typing.Optional[typing.Any], # type: ignore
1294
+ object_=_response.json(),
1295
+ ),
1296
+ ),
1297
+ )
1298
+ if _response.status_code == 429:
1299
+ raise TooManyRequestsError(
1300
+ headers=dict(_response.headers),
1301
+ body=typing.cast(
1302
+ TooManyRequests,
1303
+ parse_obj_as(
1304
+ type_=TooManyRequests, # type: ignore
1305
+ object_=_response.json(),
1306
+ ),
1307
+ ),
1308
+ )
1309
+ _response_json = _response.json()
1310
+ except JSONDecodeError:
1311
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1312
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)