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,1226 @@
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.workspace_params_data import WorkspaceParamsData
29
+ from ..types.workspace_response import WorkspaceResponse
30
+ from ..types.workspace_with_includes_response import WorkspaceWithIncludesResponse
31
+ from ..types.workspaces_with_includes_response import WorkspacesWithIncludesResponse
32
+
33
+ # this is used as the default value for optional parameters
34
+ OMIT = typing.cast(typing.Any, ...)
35
+
36
+
37
+ class RawWorkspacesClient:
38
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
39
+ self._client_wrapper = client_wrapper
40
+
41
+ def show(
42
+ self,
43
+ account_id: Uuid,
44
+ workspace_id: Uuid,
45
+ *,
46
+ include: typing.Optional[typing.Literal["creator"]] = None,
47
+ request_options: typing.Optional[RequestOptions] = None,
48
+ ) -> HttpResponse[WorkspaceWithIncludesResponse]:
49
+ """
50
+ Show workspace details. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
51
+
52
+ Parameters
53
+ ----------
54
+ account_id : Uuid
55
+
56
+
57
+ workspace_id : Uuid
58
+
59
+
60
+ include : typing.Optional[typing.Literal["creator"]]
61
+
62
+
63
+ request_options : typing.Optional[RequestOptions]
64
+ Request-specific configuration.
65
+
66
+ Returns
67
+ -------
68
+ HttpResponse[WorkspaceWithIncludesResponse]
69
+ OK
70
+ """
71
+ _response = self._client_wrapper.httpx_client.request(
72
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}",
73
+ method="GET",
74
+ params={
75
+ "include": include,
76
+ },
77
+ request_options=request_options,
78
+ )
79
+ try:
80
+ if 200 <= _response.status_code < 300:
81
+ _data = typing.cast(
82
+ WorkspaceWithIncludesResponse,
83
+ parse_obj_as(
84
+ type_=WorkspaceWithIncludesResponse, # type: ignore
85
+ object_=_response.json(),
86
+ ),
87
+ )
88
+ return HttpResponse(response=_response, data=_data)
89
+ if _response.status_code == 400:
90
+ raise BadRequestError(
91
+ headers=dict(_response.headers),
92
+ body=typing.cast(
93
+ BadRequest,
94
+ parse_obj_as(
95
+ type_=BadRequest, # type: ignore
96
+ object_=_response.json(),
97
+ ),
98
+ ),
99
+ )
100
+ if _response.status_code == 401:
101
+ raise UnauthorizedError(
102
+ headers=dict(_response.headers),
103
+ body=typing.cast(
104
+ Unauthorized,
105
+ parse_obj_as(
106
+ type_=Unauthorized, # type: ignore
107
+ object_=_response.json(),
108
+ ),
109
+ ),
110
+ )
111
+ if _response.status_code == 403:
112
+ raise ForbiddenError(
113
+ headers=dict(_response.headers),
114
+ body=typing.cast(
115
+ Forbidden,
116
+ parse_obj_as(
117
+ type_=Forbidden, # type: ignore
118
+ object_=_response.json(),
119
+ ),
120
+ ),
121
+ )
122
+ if _response.status_code == 404:
123
+ raise NotFoundError(
124
+ headers=dict(_response.headers),
125
+ body=typing.cast(
126
+ NotFound,
127
+ parse_obj_as(
128
+ type_=NotFound, # type: ignore
129
+ object_=_response.json(),
130
+ ),
131
+ ),
132
+ )
133
+ if _response.status_code == 422:
134
+ raise UnprocessableEntityError(
135
+ headers=dict(_response.headers),
136
+ body=typing.cast(
137
+ typing.Optional[typing.Any],
138
+ parse_obj_as(
139
+ type_=typing.Optional[typing.Any], # type: ignore
140
+ object_=_response.json(),
141
+ ),
142
+ ),
143
+ )
144
+ if _response.status_code == 429:
145
+ raise TooManyRequestsError(
146
+ headers=dict(_response.headers),
147
+ body=typing.cast(
148
+ TooManyRequests,
149
+ parse_obj_as(
150
+ type_=TooManyRequests, # type: ignore
151
+ object_=_response.json(),
152
+ ),
153
+ ),
154
+ )
155
+ _response_json = _response.json()
156
+ except JSONDecodeError:
157
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
158
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
159
+
160
+ def delete(
161
+ self, account_id: Uuid, workspace_id: Uuid, *, request_options: typing.Optional[RequestOptions] = None
162
+ ) -> HttpResponse[None]:
163
+ """
164
+ Delete workspace from account. <br><br>Rate Limits: 60 calls per 1.00 minute(s) per account
165
+
166
+ Parameters
167
+ ----------
168
+ account_id : Uuid
169
+
170
+
171
+ workspace_id : Uuid
172
+
173
+
174
+ request_options : typing.Optional[RequestOptions]
175
+ Request-specific configuration.
176
+
177
+ Returns
178
+ -------
179
+ HttpResponse[None]
180
+ """
181
+ _response = self._client_wrapper.httpx_client.request(
182
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}",
183
+ method="DELETE",
184
+ request_options=request_options,
185
+ )
186
+ try:
187
+ if 200 <= _response.status_code < 300:
188
+ return HttpResponse(response=_response, data=None)
189
+ if _response.status_code == 400:
190
+ raise BadRequestError(
191
+ headers=dict(_response.headers),
192
+ body=typing.cast(
193
+ BadRequest,
194
+ parse_obj_as(
195
+ type_=BadRequest, # type: ignore
196
+ object_=_response.json(),
197
+ ),
198
+ ),
199
+ )
200
+ if _response.status_code == 401:
201
+ raise UnauthorizedError(
202
+ headers=dict(_response.headers),
203
+ body=typing.cast(
204
+ Unauthorized,
205
+ parse_obj_as(
206
+ type_=Unauthorized, # type: ignore
207
+ object_=_response.json(),
208
+ ),
209
+ ),
210
+ )
211
+ if _response.status_code == 403:
212
+ raise ForbiddenError(
213
+ headers=dict(_response.headers),
214
+ body=typing.cast(
215
+ Forbidden,
216
+ parse_obj_as(
217
+ type_=Forbidden, # type: ignore
218
+ object_=_response.json(),
219
+ ),
220
+ ),
221
+ )
222
+ if _response.status_code == 404:
223
+ raise NotFoundError(
224
+ headers=dict(_response.headers),
225
+ body=typing.cast(
226
+ NotFound,
227
+ parse_obj_as(
228
+ type_=NotFound, # type: ignore
229
+ object_=_response.json(),
230
+ ),
231
+ ),
232
+ )
233
+ if _response.status_code == 422:
234
+ raise UnprocessableEntityError(
235
+ headers=dict(_response.headers),
236
+ body=typing.cast(
237
+ typing.Optional[typing.Any],
238
+ parse_obj_as(
239
+ type_=typing.Optional[typing.Any], # type: ignore
240
+ object_=_response.json(),
241
+ ),
242
+ ),
243
+ )
244
+ if _response.status_code == 429:
245
+ raise TooManyRequestsError(
246
+ headers=dict(_response.headers),
247
+ body=typing.cast(
248
+ TooManyRequests,
249
+ parse_obj_as(
250
+ type_=TooManyRequests, # type: ignore
251
+ object_=_response.json(),
252
+ ),
253
+ ),
254
+ )
255
+ _response_json = _response.json()
256
+ except JSONDecodeError:
257
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
258
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
259
+
260
+ def update(
261
+ self,
262
+ account_id: Uuid,
263
+ workspace_id: Uuid,
264
+ *,
265
+ data: WorkspaceParamsData,
266
+ request_options: typing.Optional[RequestOptions] = None,
267
+ ) -> HttpResponse[WorkspaceResponse]:
268
+ """
269
+ Update a workspace. <br><br>Rate Limits: 10 calls per 1.00 minute(s) per account
270
+
271
+ Parameters
272
+ ----------
273
+ account_id : Uuid
274
+
275
+
276
+ workspace_id : Uuid
277
+
278
+
279
+ data : WorkspaceParamsData
280
+
281
+ request_options : typing.Optional[RequestOptions]
282
+ Request-specific configuration.
283
+
284
+ Returns
285
+ -------
286
+ HttpResponse[WorkspaceResponse]
287
+ OK
288
+ """
289
+ _response = self._client_wrapper.httpx_client.request(
290
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}",
291
+ method="PATCH",
292
+ json={
293
+ "data": convert_and_respect_annotation_metadata(
294
+ object_=data, annotation=WorkspaceParamsData, direction="write"
295
+ ),
296
+ },
297
+ headers={
298
+ "content-type": "application/json",
299
+ },
300
+ request_options=request_options,
301
+ omit=OMIT,
302
+ )
303
+ try:
304
+ if 200 <= _response.status_code < 300:
305
+ _data = typing.cast(
306
+ WorkspaceResponse,
307
+ parse_obj_as(
308
+ type_=WorkspaceResponse, # type: ignore
309
+ object_=_response.json(),
310
+ ),
311
+ )
312
+ return HttpResponse(response=_response, data=_data)
313
+ if _response.status_code == 400:
314
+ raise BadRequestError(
315
+ headers=dict(_response.headers),
316
+ body=typing.cast(
317
+ BadRequest,
318
+ parse_obj_as(
319
+ type_=BadRequest, # type: ignore
320
+ object_=_response.json(),
321
+ ),
322
+ ),
323
+ )
324
+ if _response.status_code == 401:
325
+ raise UnauthorizedError(
326
+ headers=dict(_response.headers),
327
+ body=typing.cast(
328
+ Unauthorized,
329
+ parse_obj_as(
330
+ type_=Unauthorized, # type: ignore
331
+ object_=_response.json(),
332
+ ),
333
+ ),
334
+ )
335
+ if _response.status_code == 403:
336
+ raise ForbiddenError(
337
+ headers=dict(_response.headers),
338
+ body=typing.cast(
339
+ Forbidden,
340
+ parse_obj_as(
341
+ type_=Forbidden, # type: ignore
342
+ object_=_response.json(),
343
+ ),
344
+ ),
345
+ )
346
+ if _response.status_code == 404:
347
+ raise NotFoundError(
348
+ headers=dict(_response.headers),
349
+ body=typing.cast(
350
+ NotFound,
351
+ parse_obj_as(
352
+ type_=NotFound, # type: ignore
353
+ object_=_response.json(),
354
+ ),
355
+ ),
356
+ )
357
+ if _response.status_code == 422:
358
+ raise UnprocessableEntityError(
359
+ headers=dict(_response.headers),
360
+ body=typing.cast(
361
+ typing.Optional[typing.Any],
362
+ parse_obj_as(
363
+ type_=typing.Optional[typing.Any], # type: ignore
364
+ object_=_response.json(),
365
+ ),
366
+ ),
367
+ )
368
+ if _response.status_code == 429:
369
+ raise TooManyRequestsError(
370
+ headers=dict(_response.headers),
371
+ body=typing.cast(
372
+ TooManyRequests,
373
+ parse_obj_as(
374
+ type_=TooManyRequests, # type: ignore
375
+ object_=_response.json(),
376
+ ),
377
+ ),
378
+ )
379
+ _response_json = _response.json()
380
+ except JSONDecodeError:
381
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
382
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
383
+
384
+ def index(
385
+ self,
386
+ account_id: Uuid,
387
+ *,
388
+ include: typing.Optional[typing.Literal["creator"]] = None,
389
+ after: typing.Optional[RequestAfterOpaqueCursor] = None,
390
+ page_size: typing.Optional[RequestPageSize] = None,
391
+ include_total_count: typing.Optional[IncludeTotalCount] = None,
392
+ request_options: typing.Optional[RequestOptions] = None,
393
+ ) -> HttpResponse[WorkspacesWithIncludesResponse]:
394
+ """
395
+ List workspaces for a given account. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
396
+
397
+ Parameters
398
+ ----------
399
+ account_id : Uuid
400
+
401
+
402
+ include : typing.Optional[typing.Literal["creator"]]
403
+
404
+
405
+ after : typing.Optional[RequestAfterOpaqueCursor]
406
+ Opaque Cursor query param for requests returning paginated results.
407
+ <br/>
408
+ NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.
409
+
410
+ page_size : typing.Optional[RequestPageSize]
411
+
412
+
413
+ include_total_count : typing.Optional[IncludeTotalCount]
414
+
415
+
416
+ request_options : typing.Optional[RequestOptions]
417
+ Request-specific configuration.
418
+
419
+ Returns
420
+ -------
421
+ HttpResponse[WorkspacesWithIncludesResponse]
422
+ OK
423
+ """
424
+ _response = self._client_wrapper.httpx_client.request(
425
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces",
426
+ method="GET",
427
+ params={
428
+ "include": include,
429
+ "after": after,
430
+ "page_size": page_size,
431
+ "include_total_count": include_total_count,
432
+ },
433
+ request_options=request_options,
434
+ )
435
+ try:
436
+ if 200 <= _response.status_code < 300:
437
+ _data = typing.cast(
438
+ WorkspacesWithIncludesResponse,
439
+ parse_obj_as(
440
+ type_=WorkspacesWithIncludesResponse, # type: ignore
441
+ object_=_response.json(),
442
+ ),
443
+ )
444
+ return HttpResponse(response=_response, data=_data)
445
+ if _response.status_code == 400:
446
+ raise BadRequestError(
447
+ headers=dict(_response.headers),
448
+ body=typing.cast(
449
+ BadRequest,
450
+ parse_obj_as(
451
+ type_=BadRequest, # type: ignore
452
+ object_=_response.json(),
453
+ ),
454
+ ),
455
+ )
456
+ if _response.status_code == 401:
457
+ raise UnauthorizedError(
458
+ headers=dict(_response.headers),
459
+ body=typing.cast(
460
+ Unauthorized,
461
+ parse_obj_as(
462
+ type_=Unauthorized, # type: ignore
463
+ object_=_response.json(),
464
+ ),
465
+ ),
466
+ )
467
+ if _response.status_code == 403:
468
+ raise ForbiddenError(
469
+ headers=dict(_response.headers),
470
+ body=typing.cast(
471
+ Forbidden,
472
+ parse_obj_as(
473
+ type_=Forbidden, # type: ignore
474
+ object_=_response.json(),
475
+ ),
476
+ ),
477
+ )
478
+ if _response.status_code == 404:
479
+ raise NotFoundError(
480
+ headers=dict(_response.headers),
481
+ body=typing.cast(
482
+ NotFound,
483
+ parse_obj_as(
484
+ type_=NotFound, # type: ignore
485
+ object_=_response.json(),
486
+ ),
487
+ ),
488
+ )
489
+ if _response.status_code == 422:
490
+ raise UnprocessableEntityError(
491
+ headers=dict(_response.headers),
492
+ body=typing.cast(
493
+ typing.Optional[typing.Any],
494
+ parse_obj_as(
495
+ type_=typing.Optional[typing.Any], # type: ignore
496
+ object_=_response.json(),
497
+ ),
498
+ ),
499
+ )
500
+ if _response.status_code == 429:
501
+ raise TooManyRequestsError(
502
+ headers=dict(_response.headers),
503
+ body=typing.cast(
504
+ TooManyRequests,
505
+ parse_obj_as(
506
+ type_=TooManyRequests, # type: ignore
507
+ object_=_response.json(),
508
+ ),
509
+ ),
510
+ )
511
+ _response_json = _response.json()
512
+ except JSONDecodeError:
513
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
514
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
515
+
516
+ def create(
517
+ self, account_id: Uuid, *, data: WorkspaceParamsData, request_options: typing.Optional[RequestOptions] = None
518
+ ) -> HttpResponse[WorkspaceResponse]:
519
+ """
520
+ Create workspace from an account. <br><br>Rate Limits: 10 calls per 1.00 minute(s) per account
521
+
522
+ Parameters
523
+ ----------
524
+ account_id : Uuid
525
+
526
+
527
+ data : WorkspaceParamsData
528
+
529
+ request_options : typing.Optional[RequestOptions]
530
+ Request-specific configuration.
531
+
532
+ Returns
533
+ -------
534
+ HttpResponse[WorkspaceResponse]
535
+ Created
536
+ """
537
+ _response = self._client_wrapper.httpx_client.request(
538
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces",
539
+ method="POST",
540
+ json={
541
+ "data": convert_and_respect_annotation_metadata(
542
+ object_=data, annotation=WorkspaceParamsData, direction="write"
543
+ ),
544
+ },
545
+ headers={
546
+ "content-type": "application/json",
547
+ },
548
+ request_options=request_options,
549
+ omit=OMIT,
550
+ )
551
+ try:
552
+ if 200 <= _response.status_code < 300:
553
+ _data = typing.cast(
554
+ WorkspaceResponse,
555
+ parse_obj_as(
556
+ type_=WorkspaceResponse, # type: ignore
557
+ object_=_response.json(),
558
+ ),
559
+ )
560
+ return HttpResponse(response=_response, data=_data)
561
+ if _response.status_code == 400:
562
+ raise BadRequestError(
563
+ headers=dict(_response.headers),
564
+ body=typing.cast(
565
+ BadRequest,
566
+ parse_obj_as(
567
+ type_=BadRequest, # type: ignore
568
+ object_=_response.json(),
569
+ ),
570
+ ),
571
+ )
572
+ if _response.status_code == 401:
573
+ raise UnauthorizedError(
574
+ headers=dict(_response.headers),
575
+ body=typing.cast(
576
+ Unauthorized,
577
+ parse_obj_as(
578
+ type_=Unauthorized, # type: ignore
579
+ object_=_response.json(),
580
+ ),
581
+ ),
582
+ )
583
+ if _response.status_code == 403:
584
+ raise ForbiddenError(
585
+ headers=dict(_response.headers),
586
+ body=typing.cast(
587
+ Forbidden,
588
+ parse_obj_as(
589
+ type_=Forbidden, # type: ignore
590
+ object_=_response.json(),
591
+ ),
592
+ ),
593
+ )
594
+ if _response.status_code == 404:
595
+ raise NotFoundError(
596
+ headers=dict(_response.headers),
597
+ body=typing.cast(
598
+ NotFound,
599
+ parse_obj_as(
600
+ type_=NotFound, # type: ignore
601
+ object_=_response.json(),
602
+ ),
603
+ ),
604
+ )
605
+ if _response.status_code == 422:
606
+ raise UnprocessableEntityError(
607
+ headers=dict(_response.headers),
608
+ body=typing.cast(
609
+ typing.Optional[typing.Any],
610
+ parse_obj_as(
611
+ type_=typing.Optional[typing.Any], # type: ignore
612
+ object_=_response.json(),
613
+ ),
614
+ ),
615
+ )
616
+ if _response.status_code == 429:
617
+ raise TooManyRequestsError(
618
+ headers=dict(_response.headers),
619
+ body=typing.cast(
620
+ TooManyRequests,
621
+ parse_obj_as(
622
+ type_=TooManyRequests, # type: ignore
623
+ object_=_response.json(),
624
+ ),
625
+ ),
626
+ )
627
+ _response_json = _response.json()
628
+ except JSONDecodeError:
629
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
630
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
631
+
632
+
633
+ class AsyncRawWorkspacesClient:
634
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
635
+ self._client_wrapper = client_wrapper
636
+
637
+ async def show(
638
+ self,
639
+ account_id: Uuid,
640
+ workspace_id: Uuid,
641
+ *,
642
+ include: typing.Optional[typing.Literal["creator"]] = None,
643
+ request_options: typing.Optional[RequestOptions] = None,
644
+ ) -> AsyncHttpResponse[WorkspaceWithIncludesResponse]:
645
+ """
646
+ Show workspace details. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
647
+
648
+ Parameters
649
+ ----------
650
+ account_id : Uuid
651
+
652
+
653
+ workspace_id : Uuid
654
+
655
+
656
+ include : typing.Optional[typing.Literal["creator"]]
657
+
658
+
659
+ request_options : typing.Optional[RequestOptions]
660
+ Request-specific configuration.
661
+
662
+ Returns
663
+ -------
664
+ AsyncHttpResponse[WorkspaceWithIncludesResponse]
665
+ OK
666
+ """
667
+ _response = await self._client_wrapper.httpx_client.request(
668
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}",
669
+ method="GET",
670
+ params={
671
+ "include": include,
672
+ },
673
+ request_options=request_options,
674
+ )
675
+ try:
676
+ if 200 <= _response.status_code < 300:
677
+ _data = typing.cast(
678
+ WorkspaceWithIncludesResponse,
679
+ parse_obj_as(
680
+ type_=WorkspaceWithIncludesResponse, # type: ignore
681
+ object_=_response.json(),
682
+ ),
683
+ )
684
+ return AsyncHttpResponse(response=_response, data=_data)
685
+ if _response.status_code == 400:
686
+ raise BadRequestError(
687
+ headers=dict(_response.headers),
688
+ body=typing.cast(
689
+ BadRequest,
690
+ parse_obj_as(
691
+ type_=BadRequest, # type: ignore
692
+ object_=_response.json(),
693
+ ),
694
+ ),
695
+ )
696
+ if _response.status_code == 401:
697
+ raise UnauthorizedError(
698
+ headers=dict(_response.headers),
699
+ body=typing.cast(
700
+ Unauthorized,
701
+ parse_obj_as(
702
+ type_=Unauthorized, # type: ignore
703
+ object_=_response.json(),
704
+ ),
705
+ ),
706
+ )
707
+ if _response.status_code == 403:
708
+ raise ForbiddenError(
709
+ headers=dict(_response.headers),
710
+ body=typing.cast(
711
+ Forbidden,
712
+ parse_obj_as(
713
+ type_=Forbidden, # type: ignore
714
+ object_=_response.json(),
715
+ ),
716
+ ),
717
+ )
718
+ if _response.status_code == 404:
719
+ raise NotFoundError(
720
+ headers=dict(_response.headers),
721
+ body=typing.cast(
722
+ NotFound,
723
+ parse_obj_as(
724
+ type_=NotFound, # type: ignore
725
+ object_=_response.json(),
726
+ ),
727
+ ),
728
+ )
729
+ if _response.status_code == 422:
730
+ raise UnprocessableEntityError(
731
+ headers=dict(_response.headers),
732
+ body=typing.cast(
733
+ typing.Optional[typing.Any],
734
+ parse_obj_as(
735
+ type_=typing.Optional[typing.Any], # type: ignore
736
+ object_=_response.json(),
737
+ ),
738
+ ),
739
+ )
740
+ if _response.status_code == 429:
741
+ raise TooManyRequestsError(
742
+ headers=dict(_response.headers),
743
+ body=typing.cast(
744
+ TooManyRequests,
745
+ parse_obj_as(
746
+ type_=TooManyRequests, # type: ignore
747
+ object_=_response.json(),
748
+ ),
749
+ ),
750
+ )
751
+ _response_json = _response.json()
752
+ except JSONDecodeError:
753
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
754
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
755
+
756
+ async def delete(
757
+ self, account_id: Uuid, workspace_id: Uuid, *, request_options: typing.Optional[RequestOptions] = None
758
+ ) -> AsyncHttpResponse[None]:
759
+ """
760
+ Delete workspace from account. <br><br>Rate Limits: 60 calls per 1.00 minute(s) per account
761
+
762
+ Parameters
763
+ ----------
764
+ account_id : Uuid
765
+
766
+
767
+ workspace_id : Uuid
768
+
769
+
770
+ request_options : typing.Optional[RequestOptions]
771
+ Request-specific configuration.
772
+
773
+ Returns
774
+ -------
775
+ AsyncHttpResponse[None]
776
+ """
777
+ _response = await self._client_wrapper.httpx_client.request(
778
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}",
779
+ method="DELETE",
780
+ request_options=request_options,
781
+ )
782
+ try:
783
+ if 200 <= _response.status_code < 300:
784
+ return AsyncHttpResponse(response=_response, data=None)
785
+ if _response.status_code == 400:
786
+ raise BadRequestError(
787
+ headers=dict(_response.headers),
788
+ body=typing.cast(
789
+ BadRequest,
790
+ parse_obj_as(
791
+ type_=BadRequest, # type: ignore
792
+ object_=_response.json(),
793
+ ),
794
+ ),
795
+ )
796
+ if _response.status_code == 401:
797
+ raise UnauthorizedError(
798
+ headers=dict(_response.headers),
799
+ body=typing.cast(
800
+ Unauthorized,
801
+ parse_obj_as(
802
+ type_=Unauthorized, # type: ignore
803
+ object_=_response.json(),
804
+ ),
805
+ ),
806
+ )
807
+ if _response.status_code == 403:
808
+ raise ForbiddenError(
809
+ headers=dict(_response.headers),
810
+ body=typing.cast(
811
+ Forbidden,
812
+ parse_obj_as(
813
+ type_=Forbidden, # type: ignore
814
+ object_=_response.json(),
815
+ ),
816
+ ),
817
+ )
818
+ if _response.status_code == 404:
819
+ raise NotFoundError(
820
+ headers=dict(_response.headers),
821
+ body=typing.cast(
822
+ NotFound,
823
+ parse_obj_as(
824
+ type_=NotFound, # type: ignore
825
+ object_=_response.json(),
826
+ ),
827
+ ),
828
+ )
829
+ if _response.status_code == 422:
830
+ raise UnprocessableEntityError(
831
+ headers=dict(_response.headers),
832
+ body=typing.cast(
833
+ typing.Optional[typing.Any],
834
+ parse_obj_as(
835
+ type_=typing.Optional[typing.Any], # type: ignore
836
+ object_=_response.json(),
837
+ ),
838
+ ),
839
+ )
840
+ if _response.status_code == 429:
841
+ raise TooManyRequestsError(
842
+ headers=dict(_response.headers),
843
+ body=typing.cast(
844
+ TooManyRequests,
845
+ parse_obj_as(
846
+ type_=TooManyRequests, # type: ignore
847
+ object_=_response.json(),
848
+ ),
849
+ ),
850
+ )
851
+ _response_json = _response.json()
852
+ except JSONDecodeError:
853
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
854
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
855
+
856
+ async def update(
857
+ self,
858
+ account_id: Uuid,
859
+ workspace_id: Uuid,
860
+ *,
861
+ data: WorkspaceParamsData,
862
+ request_options: typing.Optional[RequestOptions] = None,
863
+ ) -> AsyncHttpResponse[WorkspaceResponse]:
864
+ """
865
+ Update a workspace. <br><br>Rate Limits: 10 calls per 1.00 minute(s) per account
866
+
867
+ Parameters
868
+ ----------
869
+ account_id : Uuid
870
+
871
+
872
+ workspace_id : Uuid
873
+
874
+
875
+ data : WorkspaceParamsData
876
+
877
+ request_options : typing.Optional[RequestOptions]
878
+ Request-specific configuration.
879
+
880
+ Returns
881
+ -------
882
+ AsyncHttpResponse[WorkspaceResponse]
883
+ OK
884
+ """
885
+ _response = await self._client_wrapper.httpx_client.request(
886
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces/{jsonable_encoder(workspace_id)}",
887
+ method="PATCH",
888
+ json={
889
+ "data": convert_and_respect_annotation_metadata(
890
+ object_=data, annotation=WorkspaceParamsData, direction="write"
891
+ ),
892
+ },
893
+ headers={
894
+ "content-type": "application/json",
895
+ },
896
+ request_options=request_options,
897
+ omit=OMIT,
898
+ )
899
+ try:
900
+ if 200 <= _response.status_code < 300:
901
+ _data = typing.cast(
902
+ WorkspaceResponse,
903
+ parse_obj_as(
904
+ type_=WorkspaceResponse, # type: ignore
905
+ object_=_response.json(),
906
+ ),
907
+ )
908
+ return AsyncHttpResponse(response=_response, data=_data)
909
+ if _response.status_code == 400:
910
+ raise BadRequestError(
911
+ headers=dict(_response.headers),
912
+ body=typing.cast(
913
+ BadRequest,
914
+ parse_obj_as(
915
+ type_=BadRequest, # type: ignore
916
+ object_=_response.json(),
917
+ ),
918
+ ),
919
+ )
920
+ if _response.status_code == 401:
921
+ raise UnauthorizedError(
922
+ headers=dict(_response.headers),
923
+ body=typing.cast(
924
+ Unauthorized,
925
+ parse_obj_as(
926
+ type_=Unauthorized, # type: ignore
927
+ object_=_response.json(),
928
+ ),
929
+ ),
930
+ )
931
+ if _response.status_code == 403:
932
+ raise ForbiddenError(
933
+ headers=dict(_response.headers),
934
+ body=typing.cast(
935
+ Forbidden,
936
+ parse_obj_as(
937
+ type_=Forbidden, # type: ignore
938
+ object_=_response.json(),
939
+ ),
940
+ ),
941
+ )
942
+ if _response.status_code == 404:
943
+ raise NotFoundError(
944
+ headers=dict(_response.headers),
945
+ body=typing.cast(
946
+ NotFound,
947
+ parse_obj_as(
948
+ type_=NotFound, # type: ignore
949
+ object_=_response.json(),
950
+ ),
951
+ ),
952
+ )
953
+ if _response.status_code == 422:
954
+ raise UnprocessableEntityError(
955
+ headers=dict(_response.headers),
956
+ body=typing.cast(
957
+ typing.Optional[typing.Any],
958
+ parse_obj_as(
959
+ type_=typing.Optional[typing.Any], # type: ignore
960
+ object_=_response.json(),
961
+ ),
962
+ ),
963
+ )
964
+ if _response.status_code == 429:
965
+ raise TooManyRequestsError(
966
+ headers=dict(_response.headers),
967
+ body=typing.cast(
968
+ TooManyRequests,
969
+ parse_obj_as(
970
+ type_=TooManyRequests, # type: ignore
971
+ object_=_response.json(),
972
+ ),
973
+ ),
974
+ )
975
+ _response_json = _response.json()
976
+ except JSONDecodeError:
977
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
978
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
979
+
980
+ async def index(
981
+ self,
982
+ account_id: Uuid,
983
+ *,
984
+ include: typing.Optional[typing.Literal["creator"]] = None,
985
+ after: typing.Optional[RequestAfterOpaqueCursor] = None,
986
+ page_size: typing.Optional[RequestPageSize] = None,
987
+ include_total_count: typing.Optional[IncludeTotalCount] = None,
988
+ request_options: typing.Optional[RequestOptions] = None,
989
+ ) -> AsyncHttpResponse[WorkspacesWithIncludesResponse]:
990
+ """
991
+ List workspaces for a given account. <br><br>Rate Limits: 100 calls per 1.00 minute(s) per account
992
+
993
+ Parameters
994
+ ----------
995
+ account_id : Uuid
996
+
997
+
998
+ include : typing.Optional[typing.Literal["creator"]]
999
+
1000
+
1001
+ after : typing.Optional[RequestAfterOpaqueCursor]
1002
+ Opaque Cursor query param for requests returning paginated results.
1003
+ <br/>
1004
+ NOTE: this value is auto-generated and included as part of links from a previous response. It is not intended to be human readable.
1005
+
1006
+ page_size : typing.Optional[RequestPageSize]
1007
+
1008
+
1009
+ include_total_count : typing.Optional[IncludeTotalCount]
1010
+
1011
+
1012
+ request_options : typing.Optional[RequestOptions]
1013
+ Request-specific configuration.
1014
+
1015
+ Returns
1016
+ -------
1017
+ AsyncHttpResponse[WorkspacesWithIncludesResponse]
1018
+ OK
1019
+ """
1020
+ _response = await self._client_wrapper.httpx_client.request(
1021
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces",
1022
+ method="GET",
1023
+ params={
1024
+ "include": include,
1025
+ "after": after,
1026
+ "page_size": page_size,
1027
+ "include_total_count": include_total_count,
1028
+ },
1029
+ request_options=request_options,
1030
+ )
1031
+ try:
1032
+ if 200 <= _response.status_code < 300:
1033
+ _data = typing.cast(
1034
+ WorkspacesWithIncludesResponse,
1035
+ parse_obj_as(
1036
+ type_=WorkspacesWithIncludesResponse, # type: ignore
1037
+ object_=_response.json(),
1038
+ ),
1039
+ )
1040
+ return AsyncHttpResponse(response=_response, data=_data)
1041
+ if _response.status_code == 400:
1042
+ raise BadRequestError(
1043
+ headers=dict(_response.headers),
1044
+ body=typing.cast(
1045
+ BadRequest,
1046
+ parse_obj_as(
1047
+ type_=BadRequest, # type: ignore
1048
+ object_=_response.json(),
1049
+ ),
1050
+ ),
1051
+ )
1052
+ if _response.status_code == 401:
1053
+ raise UnauthorizedError(
1054
+ headers=dict(_response.headers),
1055
+ body=typing.cast(
1056
+ Unauthorized,
1057
+ parse_obj_as(
1058
+ type_=Unauthorized, # type: ignore
1059
+ object_=_response.json(),
1060
+ ),
1061
+ ),
1062
+ )
1063
+ if _response.status_code == 403:
1064
+ raise ForbiddenError(
1065
+ headers=dict(_response.headers),
1066
+ body=typing.cast(
1067
+ Forbidden,
1068
+ parse_obj_as(
1069
+ type_=Forbidden, # type: ignore
1070
+ object_=_response.json(),
1071
+ ),
1072
+ ),
1073
+ )
1074
+ if _response.status_code == 404:
1075
+ raise NotFoundError(
1076
+ headers=dict(_response.headers),
1077
+ body=typing.cast(
1078
+ NotFound,
1079
+ parse_obj_as(
1080
+ type_=NotFound, # type: ignore
1081
+ object_=_response.json(),
1082
+ ),
1083
+ ),
1084
+ )
1085
+ if _response.status_code == 422:
1086
+ raise UnprocessableEntityError(
1087
+ headers=dict(_response.headers),
1088
+ body=typing.cast(
1089
+ typing.Optional[typing.Any],
1090
+ parse_obj_as(
1091
+ type_=typing.Optional[typing.Any], # type: ignore
1092
+ object_=_response.json(),
1093
+ ),
1094
+ ),
1095
+ )
1096
+ if _response.status_code == 429:
1097
+ raise TooManyRequestsError(
1098
+ headers=dict(_response.headers),
1099
+ body=typing.cast(
1100
+ TooManyRequests,
1101
+ parse_obj_as(
1102
+ type_=TooManyRequests, # type: ignore
1103
+ object_=_response.json(),
1104
+ ),
1105
+ ),
1106
+ )
1107
+ _response_json = _response.json()
1108
+ except JSONDecodeError:
1109
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1110
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
1111
+
1112
+ async def create(
1113
+ self, account_id: Uuid, *, data: WorkspaceParamsData, request_options: typing.Optional[RequestOptions] = None
1114
+ ) -> AsyncHttpResponse[WorkspaceResponse]:
1115
+ """
1116
+ Create workspace from an account. <br><br>Rate Limits: 10 calls per 1.00 minute(s) per account
1117
+
1118
+ Parameters
1119
+ ----------
1120
+ account_id : Uuid
1121
+
1122
+
1123
+ data : WorkspaceParamsData
1124
+
1125
+ request_options : typing.Optional[RequestOptions]
1126
+ Request-specific configuration.
1127
+
1128
+ Returns
1129
+ -------
1130
+ AsyncHttpResponse[WorkspaceResponse]
1131
+ Created
1132
+ """
1133
+ _response = await self._client_wrapper.httpx_client.request(
1134
+ f"v4/accounts/{jsonable_encoder(account_id)}/workspaces",
1135
+ method="POST",
1136
+ json={
1137
+ "data": convert_and_respect_annotation_metadata(
1138
+ object_=data, annotation=WorkspaceParamsData, direction="write"
1139
+ ),
1140
+ },
1141
+ headers={
1142
+ "content-type": "application/json",
1143
+ },
1144
+ request_options=request_options,
1145
+ omit=OMIT,
1146
+ )
1147
+ try:
1148
+ if 200 <= _response.status_code < 300:
1149
+ _data = typing.cast(
1150
+ WorkspaceResponse,
1151
+ parse_obj_as(
1152
+ type_=WorkspaceResponse, # type: ignore
1153
+ object_=_response.json(),
1154
+ ),
1155
+ )
1156
+ return AsyncHttpResponse(response=_response, data=_data)
1157
+ if _response.status_code == 400:
1158
+ raise BadRequestError(
1159
+ headers=dict(_response.headers),
1160
+ body=typing.cast(
1161
+ BadRequest,
1162
+ parse_obj_as(
1163
+ type_=BadRequest, # type: ignore
1164
+ object_=_response.json(),
1165
+ ),
1166
+ ),
1167
+ )
1168
+ if _response.status_code == 401:
1169
+ raise UnauthorizedError(
1170
+ headers=dict(_response.headers),
1171
+ body=typing.cast(
1172
+ Unauthorized,
1173
+ parse_obj_as(
1174
+ type_=Unauthorized, # type: ignore
1175
+ object_=_response.json(),
1176
+ ),
1177
+ ),
1178
+ )
1179
+ if _response.status_code == 403:
1180
+ raise ForbiddenError(
1181
+ headers=dict(_response.headers),
1182
+ body=typing.cast(
1183
+ Forbidden,
1184
+ parse_obj_as(
1185
+ type_=Forbidden, # type: ignore
1186
+ object_=_response.json(),
1187
+ ),
1188
+ ),
1189
+ )
1190
+ if _response.status_code == 404:
1191
+ raise NotFoundError(
1192
+ headers=dict(_response.headers),
1193
+ body=typing.cast(
1194
+ NotFound,
1195
+ parse_obj_as(
1196
+ type_=NotFound, # type: ignore
1197
+ object_=_response.json(),
1198
+ ),
1199
+ ),
1200
+ )
1201
+ if _response.status_code == 422:
1202
+ raise UnprocessableEntityError(
1203
+ headers=dict(_response.headers),
1204
+ body=typing.cast(
1205
+ typing.Optional[typing.Any],
1206
+ parse_obj_as(
1207
+ type_=typing.Optional[typing.Any], # type: ignore
1208
+ object_=_response.json(),
1209
+ ),
1210
+ ),
1211
+ )
1212
+ if _response.status_code == 429:
1213
+ raise TooManyRequestsError(
1214
+ headers=dict(_response.headers),
1215
+ body=typing.cast(
1216
+ TooManyRequests,
1217
+ parse_obj_as(
1218
+ type_=TooManyRequests, # type: ignore
1219
+ object_=_response.json(),
1220
+ ),
1221
+ ),
1222
+ )
1223
+ _response_json = _response.json()
1224
+ except JSONDecodeError:
1225
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
1226
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)