label-studio-sdk 1.0.20__py3-none-any.whl → 2.0.0__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 label-studio-sdk might be problematic. Click here for more details.

Files changed (410) hide show
  1. label_studio_sdk/__init__.py +325 -180
  2. label_studio_sdk/actions/__init__.py +4 -0
  3. label_studio_sdk/actions/client.py +46 -10
  4. label_studio_sdk/actions/types/__init__.py +4 -0
  5. label_studio_sdk/actions/types/actions_create_request_filters.py +2 -2
  6. label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +2 -2
  7. label_studio_sdk/actions/types/actions_create_request_id.py +7 -7
  8. label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +2 -2
  9. label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +2 -2
  10. label_studio_sdk/actions/types/actions_list_response_item.py +25 -0
  11. label_studio_sdk/actions/types/actions_list_response_item_dialog.py +22 -0
  12. label_studio_sdk/annotations/__init__.py +2 -2
  13. label_studio_sdk/annotations/client.py +379 -243
  14. label_studio_sdk/annotations/types/__init__.py +4 -2
  15. label_studio_sdk/annotations/types/annotation_bulk_serializer_with_selected_items_request_last_action.py +7 -0
  16. label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +8 -5
  17. label_studio_sdk/base_client.py +28 -24
  18. label_studio_sdk/comments/client.py +378 -140
  19. label_studio_sdk/converter/README.md +207 -0
  20. label_studio_sdk/converter/imports/coco.py +132 -23
  21. label_studio_sdk/core/__init__.py +4 -0
  22. label_studio_sdk/core/unchecked_base_model.py +305 -0
  23. label_studio_sdk/environment.py +1 -1
  24. label_studio_sdk/errors/__init__.py +10 -1
  25. label_studio_sdk/errors/forbidden_error.py +9 -0
  26. label_studio_sdk/errors/method_not_allowed_error.py +9 -0
  27. label_studio_sdk/export_storage/__init__.py +1 -24
  28. label_studio_sdk/export_storage/azure/__init__.py +0 -3
  29. label_studio_sdk/export_storage/azure/client.py +231 -273
  30. label_studio_sdk/export_storage/client.py +5 -5
  31. label_studio_sdk/export_storage/gcs/__init__.py +0 -3
  32. label_studio_sdk/export_storage/gcs/client.py +231 -273
  33. label_studio_sdk/export_storage/local/__init__.py +0 -3
  34. label_studio_sdk/export_storage/local/client.py +211 -253
  35. label_studio_sdk/export_storage/redis/__init__.py +0 -3
  36. label_studio_sdk/export_storage/redis/client.py +239 -281
  37. label_studio_sdk/export_storage/s3/__init__.py +0 -3
  38. label_studio_sdk/export_storage/s3/client.py +254 -296
  39. label_studio_sdk/export_storage/s3s/client.py +694 -210
  40. label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +2 -2
  41. label_studio_sdk/files/client.py +52 -71
  42. label_studio_sdk/import_storage/__init__.py +1 -24
  43. label_studio_sdk/import_storage/azure/__init__.py +0 -3
  44. label_studio_sdk/import_storage/azure/client.py +249 -299
  45. label_studio_sdk/import_storage/client.py +5 -5
  46. label_studio_sdk/import_storage/gcs/__init__.py +0 -3
  47. label_studio_sdk/import_storage/gcs/client.py +249 -299
  48. label_studio_sdk/import_storage/local/__init__.py +0 -3
  49. label_studio_sdk/import_storage/local/client.py +211 -257
  50. label_studio_sdk/import_storage/redis/__init__.py +0 -3
  51. label_studio_sdk/import_storage/redis/client.py +239 -285
  52. label_studio_sdk/import_storage/s3/__init__.py +0 -3
  53. label_studio_sdk/import_storage/s3/client.py +274 -324
  54. label_studio_sdk/import_storage/s3s/client.py +728 -434
  55. label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +2 -2
  56. label_studio_sdk/jwt_settings/client.py +56 -58
  57. label_studio_sdk/label_interface/control_tags.py +48 -8
  58. label_studio_sdk/label_interface/interface.py +261 -56
  59. label_studio_sdk/ml/__init__.py +2 -16
  60. label_studio_sdk/ml/client.py +196 -179
  61. label_studio_sdk/ml/types/__init__.py +2 -12
  62. label_studio_sdk/ml/types/ml_list_model_versions_response.py +20 -0
  63. label_studio_sdk/model_providers/__init__.py +3 -0
  64. label_studio_sdk/model_providers/client.py +280 -228
  65. label_studio_sdk/model_providers/types/__init__.py +5 -0
  66. label_studio_sdk/{prompts/types/prompts_batch_predictions_response.py → model_providers/types/model_providers_list_model_provider_choices_response.py} +3 -3
  67. label_studio_sdk/organizations/__init__.py +5 -0
  68. label_studio_sdk/organizations/client.py +331 -0
  69. label_studio_sdk/organizations/members/__init__.py +2 -0
  70. label_studio_sdk/organizations/members/client.py +290 -0
  71. label_studio_sdk/predictions/client.py +29 -77
  72. label_studio_sdk/projects/__init__.py +18 -9
  73. label_studio_sdk/projects/client.py +905 -414
  74. label_studio_sdk/projects/exports/__init__.py +2 -2
  75. label_studio_sdk/projects/exports/client.py +336 -396
  76. label_studio_sdk/projects/exports/client_ext.py +30 -30
  77. label_studio_sdk/projects/exports/types/__init__.py +1 -2
  78. label_studio_sdk/projects/exports/types/exports_convert_response.py +5 -9
  79. label_studio_sdk/projects/pauses/client.py +114 -105
  80. label_studio_sdk/projects/stats/__init__.py +5 -0
  81. label_studio_sdk/projects/stats/client.py +175 -0
  82. label_studio_sdk/projects/stats/types/__init__.py +8 -0
  83. label_studio_sdk/projects/stats/types/stats_iaa_response.py +44 -0
  84. label_studio_sdk/projects/stats/types/stats_iaa_response_common_tasks.py +7 -0
  85. label_studio_sdk/projects/stats/types/stats_iaa_response_iaa.py +5 -0
  86. label_studio_sdk/{types/base_task_file_upload.py → projects/stats/types/stats_iaa_response_std.py} +1 -1
  87. label_studio_sdk/projects/types/__init__.py +10 -6
  88. label_studio_sdk/projects/types/lse_project_create_request_sampling.py +7 -0
  89. label_studio_sdk/projects/types/lse_project_create_request_skip_queue.py +7 -0
  90. label_studio_sdk/projects/types/patched_lse_project_update_request_sampling.py +7 -0
  91. label_studio_sdk/projects/types/patched_lse_project_update_request_skip_queue.py +7 -0
  92. label_studio_sdk/{prompts/types/prompts_batch_failed_predictions_response.py → projects/types/projects_duplicate_response.py} +8 -5
  93. label_studio_sdk/projects/types/projects_import_tasks_response.py +2 -2
  94. label_studio_sdk/projects/types/projects_list_request_filter.py +1 -1
  95. label_studio_sdk/prompts/__init__.py +4 -10
  96. label_studio_sdk/prompts/client.py +511 -442
  97. label_studio_sdk/prompts/indicators/__init__.py +3 -0
  98. label_studio_sdk/prompts/indicators/client.py +47 -49
  99. label_studio_sdk/prompts/indicators/types/__init__.py +5 -0
  100. label_studio_sdk/{types/key_indicator_value.py → prompts/indicators/types/indicators_list_response_item.py} +3 -3
  101. label_studio_sdk/prompts/runs/client.py +113 -135
  102. label_studio_sdk/prompts/types/__init__.py +2 -12
  103. label_studio_sdk/prompts/types/prompts_compatible_projects_request_project_type.py +7 -0
  104. label_studio_sdk/prompts/versions/client.py +372 -312
  105. label_studio_sdk/tasks/__init__.py +2 -2
  106. label_studio_sdk/tasks/client.py +514 -213
  107. label_studio_sdk/tasks/types/__init__.py +1 -2
  108. label_studio_sdk/tokens/client.py +160 -152
  109. label_studio_sdk/tokens/client_ext.py +3 -3
  110. label_studio_sdk/types/__init__.py +258 -142
  111. label_studio_sdk/{webhooks/types/webhooks_update_request_actions_item.py → types/actions_enum.py} +4 -1
  112. label_studio_sdk/types/all_roles_project_list.py +197 -0
  113. label_studio_sdk/types/all_roles_project_list_sampling.py +7 -0
  114. label_studio_sdk/types/all_roles_project_list_skip_queue.py +7 -0
  115. label_studio_sdk/types/annotated_enum.py +5 -0
  116. label_studio_sdk/types/annotation.py +24 -10
  117. label_studio_sdk/types/annotation_last_action.py +3 -15
  118. label_studio_sdk/types/{annotations_dm_field.py → annotation_request.py} +21 -30
  119. label_studio_sdk/types/annotation_request_last_action.py +7 -0
  120. label_studio_sdk/types/assignment_settings.py +31 -0
  121. label_studio_sdk/types/assignment_settings_label_stream_task_distribution.py +7 -0
  122. label_studio_sdk/types/assignment_settings_request.py +32 -0
  123. label_studio_sdk/types/assignment_settings_request_label_stream_task_distribution.py +7 -0
  124. label_studio_sdk/types/{key_indicators_item_additional_kpis_item.py → associated_project.py} +9 -6
  125. label_studio_sdk/types/auth_method_enum.py +5 -0
  126. label_studio_sdk/types/azure_blob_export_storage.py +8 -12
  127. label_studio_sdk/types/azure_blob_import_storage.py +8 -12
  128. label_studio_sdk/types/{prompt_associated_projects_item_id.py → batch_failed_predictions.py} +4 -4
  129. label_studio_sdk/types/{access_token_response.py → batch_predictions.py} +6 -8
  130. label_studio_sdk/types/blank_enum.py +5 -0
  131. label_studio_sdk/types/{key_indicators_item_extra_kpis_item.py → blueprint_list.py} +12 -6
  132. label_studio_sdk/types/budget_reset_period_enum.py +5 -0
  133. label_studio_sdk/types/child_filter.py +44 -0
  134. label_studio_sdk/types/comment.py +39 -14
  135. label_studio_sdk/types/comment_request.py +32 -0
  136. label_studio_sdk/types/comment_serializer_with_expanded_user.py +53 -0
  137. label_studio_sdk/types/converted_format.py +5 -5
  138. label_studio_sdk/types/{api_token_response.py → converted_format_request.py} +8 -15
  139. label_studio_sdk/types/custom_scripts_editable_by_enum.py +5 -0
  140. label_studio_sdk/types/default_role_enum.py +5 -0
  141. label_studio_sdk/types/edition_enum.py +5 -0
  142. label_studio_sdk/types/export.py +7 -7
  143. label_studio_sdk/types/file_upload.py +5 -5
  144. label_studio_sdk/types/filter.py +9 -6
  145. label_studio_sdk/types/filter_group.py +3 -3
  146. label_studio_sdk/types/finished_enum.py +5 -0
  147. label_studio_sdk/types/gcs_export_storage.py +8 -12
  148. label_studio_sdk/types/gcs_import_storage.py +8 -12
  149. label_studio_sdk/types/{rotate_token_response.py → hotkeys.py} +5 -8
  150. label_studio_sdk/types/{base_task.py → import_api_request.py} +11 -34
  151. label_studio_sdk/types/inference_run_cost_estimate.py +2 -2
  152. label_studio_sdk/types/label_stream_task_distribution_enum.py +5 -0
  153. label_studio_sdk/types/{annotations_dm_field_last_action.py → last_action_enum.py} +1 -1
  154. label_studio_sdk/types/local_files_export_storage.py +8 -12
  155. label_studio_sdk/types/local_files_import_storage.py +8 -12
  156. label_studio_sdk/types/{annotation_filter_options.py → lse_annotation_filter_options.py} +12 -2
  157. label_studio_sdk/types/lse_annotation_filter_options_request.py +42 -0
  158. label_studio_sdk/types/lse_annotation_filter_options_request_reviewed.py +7 -0
  159. label_studio_sdk/types/lse_annotation_filter_options_reviewed.py +7 -0
  160. label_studio_sdk/types/{export_snapshot.py → lse_export_create.py} +11 -11
  161. label_studio_sdk/types/lse_fields.py +49 -0
  162. label_studio_sdk/types/lse_fields_onboarding_state.py +8 -0
  163. label_studio_sdk/types/lse_fields_trial_role.py +8 -0
  164. label_studio_sdk/types/lse_key_indicator_value.py +35 -0
  165. label_studio_sdk/types/lse_organization.py +57 -0
  166. label_studio_sdk/types/lse_organization_custom_scripts_editable_by.py +7 -0
  167. label_studio_sdk/types/lse_project_create.py +196 -0
  168. label_studio_sdk/types/lse_project_create_sampling.py +7 -0
  169. label_studio_sdk/types/lse_project_create_skip_queue.py +7 -0
  170. label_studio_sdk/types/lse_project_update.py +215 -0
  171. label_studio_sdk/types/lse_project_update_sampling.py +7 -0
  172. label_studio_sdk/types/lse_project_update_skip_queue.py +7 -0
  173. label_studio_sdk/types/lse_s3export_storage.py +134 -0
  174. label_studio_sdk/{import_storage/s3/types/s3create_response.py → types/lse_s3export_storage_request.py} +47 -21
  175. label_studio_sdk/{import_storage/s3/types/s3update_response.py → types/lse_s3import_storage.py} +60 -21
  176. label_studio_sdk/types/{s3s_import_storage.py → lse_s3import_storage_request.py} +32 -21
  177. label_studio_sdk/types/lse_task.py +117 -0
  178. label_studio_sdk/types/{data_manager_task_serializer_drafts_item.py → lse_task_drafts_item.py} +2 -2
  179. label_studio_sdk/types/lse_task_filter_options.py +63 -0
  180. label_studio_sdk/types/lse_task_filter_options_annotated.py +7 -0
  181. label_studio_sdk/types/lse_task_filter_options_finished.py +7 -0
  182. label_studio_sdk/types/lse_task_filter_options_request.py +63 -0
  183. label_studio_sdk/types/lse_task_filter_options_request_annotated.py +7 -0
  184. label_studio_sdk/types/lse_task_filter_options_request_finished.py +7 -0
  185. label_studio_sdk/types/lse_task_filter_options_request_reviewed.py +7 -0
  186. label_studio_sdk/types/lse_task_filter_options_request_skipped.py +7 -0
  187. label_studio_sdk/types/lse_task_filter_options_reviewed.py +7 -0
  188. label_studio_sdk/types/lse_task_filter_options_skipped.py +7 -0
  189. label_studio_sdk/types/{data_manager_task_serializer_predictions_item.py → lse_task_predictions_item.py} +4 -5
  190. label_studio_sdk/types/lse_task_serializer_for_annotators.py +54 -0
  191. label_studio_sdk/types/lse_task_serializer_for_annotators_drafts_item.py +22 -0
  192. label_studio_sdk/types/lse_task_serializer_for_annotators_predictions_item.py +28 -0
  193. label_studio_sdk/types/lse_task_serializer_for_reviewers.py +117 -0
  194. label_studio_sdk/types/lse_task_serializer_for_reviewers_drafts_item.py +22 -0
  195. label_studio_sdk/types/lse_task_serializer_for_reviewers_predictions_item.py +28 -0
  196. label_studio_sdk/types/lse_user.py +49 -0
  197. label_studio_sdk/types/{base_user.py → lse_user_api.py} +17 -6
  198. label_studio_sdk/types/lseapi_token_create.py +21 -0
  199. label_studio_sdk/types/lseapi_token_list.py +21 -0
  200. label_studio_sdk/types/lsejwt_settings.py +32 -0
  201. label_studio_sdk/types/maybe_expanded_comment.py +7 -0
  202. label_studio_sdk/types/ml_backend.py +16 -17
  203. label_studio_sdk/types/mode_enum.py +5 -0
  204. label_studio_sdk/types/model_interface.py +44 -0
  205. label_studio_sdk/types/model_interface_request.py +40 -0
  206. label_studio_sdk/types/model_interface_serializer_get.py +45 -0
  207. label_studio_sdk/types/model_provider_connection.py +48 -17
  208. label_studio_sdk/types/model_provider_connection_budget_reset_period.py +3 -1
  209. label_studio_sdk/types/model_provider_connection_request.py +71 -0
  210. label_studio_sdk/types/model_run.py +40 -0
  211. label_studio_sdk/types/{inference_run_status.py → model_run_status_enum.py} +1 -1
  212. label_studio_sdk/types/null_enum.py +3 -0
  213. label_studio_sdk/types/onboarding_state_enum.py +7 -0
  214. label_studio_sdk/types/organization_billing.py +20 -0
  215. label_studio_sdk/types/organization_id.py +28 -0
  216. label_studio_sdk/types/organization_invite.py +20 -0
  217. label_studio_sdk/types/organization_member.py +37 -0
  218. label_studio_sdk/types/organization_membership.py +24 -0
  219. label_studio_sdk/{projects/types/projects_list_response.py → types/paginated_all_roles_project_list_list.py} +5 -5
  220. label_studio_sdk/types/{jwt_settings_response.py → paginated_role_based_task_list.py} +11 -9
  221. label_studio_sdk/types/pause.py +55 -14
  222. label_studio_sdk/types/pause_request.py +41 -0
  223. label_studio_sdk/types/prediction.py +7 -11
  224. label_studio_sdk/types/prediction_request.py +56 -0
  225. label_studio_sdk/types/project.py +32 -39
  226. label_studio_sdk/types/project_import.py +12 -13
  227. label_studio_sdk/types/project_label_config.py +2 -2
  228. label_studio_sdk/types/project_label_config_request.py +22 -0
  229. label_studio_sdk/types/project_sampling.py +3 -3
  230. label_studio_sdk/types/project_skip_queue.py +3 -1
  231. label_studio_sdk/types/project_subset_enum.py +5 -0
  232. label_studio_sdk/types/{prompt_version_provider.py → provider_enum.py} +1 -1
  233. label_studio_sdk/types/reason_enum.py +7 -0
  234. label_studio_sdk/types/redis_export_storage.py +8 -12
  235. label_studio_sdk/types/redis_import_storage.py +8 -12
  236. label_studio_sdk/types/refined_prompt_response.py +5 -6
  237. label_studio_sdk/types/requeue_rejected_tasks_mode_enum.py +5 -0
  238. label_studio_sdk/types/review_criteria_enum.py +5 -0
  239. label_studio_sdk/types/review_settings.py +80 -0
  240. label_studio_sdk/types/review_settings_request.py +80 -0
  241. label_studio_sdk/types/review_settings_request_requeue_rejected_tasks_mode.py +8 -0
  242. label_studio_sdk/types/review_settings_request_review_criteria.py +7 -0
  243. label_studio_sdk/types/review_settings_requeue_rejected_tasks_mode.py +8 -0
  244. label_studio_sdk/types/review_settings_review_criteria.py +7 -0
  245. label_studio_sdk/types/reviewed_enum.py +5 -0
  246. label_studio_sdk/types/role_based_task.py +8 -0
  247. label_studio_sdk/types/s3export_storage.py +8 -12
  248. label_studio_sdk/types/s3import_storage.py +8 -12
  249. label_studio_sdk/types/sampling_enum.py +7 -0
  250. label_studio_sdk/types/scope_enum.py +5 -0
  251. label_studio_sdk/types/selected_items_request.py +23 -0
  252. label_studio_sdk/types/serialization_option.py +2 -6
  253. label_studio_sdk/types/serialization_option_request.py +22 -0
  254. label_studio_sdk/types/serialization_options.py +17 -5
  255. label_studio_sdk/types/serialization_options_request.py +47 -0
  256. label_studio_sdk/types/skill_name_enum.py +5 -0
  257. label_studio_sdk/types/skip_queue_enum.py +5 -0
  258. label_studio_sdk/types/skipped_enum.py +5 -0
  259. label_studio_sdk/types/state_enum.py +5 -0
  260. label_studio_sdk/types/status7bf_enum.py +5 -0
  261. label_studio_sdk/types/{azure_blob_import_storage_status.py → status_c5a_enum.py} +2 -2
  262. label_studio_sdk/types/third_party_model_version.py +65 -0
  263. label_studio_sdk/types/third_party_model_version_request.py +54 -0
  264. label_studio_sdk/types/token_refresh_response.py +19 -0
  265. label_studio_sdk/types/token_rotate_response.py +19 -0
  266. label_studio_sdk/types/trial_role_enum.py +16 -0
  267. label_studio_sdk/types/user_simple.py +8 -5
  268. label_studio_sdk/types/user_simple_request.py +28 -0
  269. label_studio_sdk/types/version_response.py +49 -0
  270. label_studio_sdk/types/view.py +8 -15
  271. label_studio_sdk/types/webhook.py +9 -13
  272. label_studio_sdk/types/webhook_serializer_for_update.py +15 -13
  273. label_studio_sdk/types/workspace.py +14 -34
  274. label_studio_sdk/types/workspace_member_create.py +27 -0
  275. label_studio_sdk/types/workspace_member_list.py +24 -0
  276. label_studio_sdk/users/client.py +604 -87
  277. label_studio_sdk/users/types/users_get_token_response.py +4 -11
  278. label_studio_sdk/users/types/users_reset_token_response.py +4 -11
  279. label_studio_sdk/versions/__init__.py +0 -3
  280. label_studio_sdk/versions/client.py +14 -14
  281. label_studio_sdk/views/client.py +227 -141
  282. label_studio_sdk/views/types/views_create_request_data.py +2 -2
  283. label_studio_sdk/views/types/views_create_request_data_filters.py +2 -2
  284. label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +2 -2
  285. label_studio_sdk/views/types/views_update_request_data.py +2 -2
  286. label_studio_sdk/views/types/views_update_request_data_filters.py +2 -2
  287. label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +2 -2
  288. label_studio_sdk/webhooks/__init__.py +36 -2
  289. label_studio_sdk/webhooks/client.py +173 -367
  290. label_studio_sdk/webhooks/types/__init__.py +34 -2
  291. label_studio_sdk/webhooks/types/webhooks_info_response.py +80 -0
  292. label_studio_sdk/webhooks/types/webhooks_info_response_annotation_created.py +24 -0
  293. label_studio_sdk/webhooks/types/webhooks_info_response_annotation_updated.py +24 -0
  294. label_studio_sdk/webhooks/types/webhooks_info_response_annotations_created.py +24 -0
  295. label_studio_sdk/webhooks/types/webhooks_info_response_annotations_deleted.py +24 -0
  296. label_studio_sdk/webhooks/types/webhooks_info_response_label_link_created.py +24 -0
  297. label_studio_sdk/webhooks/types/webhooks_info_response_label_link_deleted.py +24 -0
  298. label_studio_sdk/webhooks/types/webhooks_info_response_label_link_updated.py +24 -0
  299. label_studio_sdk/webhooks/types/webhooks_info_response_project_created.py +24 -0
  300. label_studio_sdk/webhooks/types/webhooks_info_response_project_deleted.py +24 -0
  301. label_studio_sdk/webhooks/types/webhooks_info_response_project_updated.py +24 -0
  302. label_studio_sdk/webhooks/types/webhooks_info_response_review_created.py +24 -0
  303. label_studio_sdk/webhooks/types/webhooks_info_response_review_updated.py +24 -0
  304. label_studio_sdk/webhooks/types/webhooks_info_response_reviews_deleted.py +24 -0
  305. label_studio_sdk/webhooks/types/webhooks_info_response_tasks_created.py +24 -0
  306. label_studio_sdk/webhooks/types/webhooks_info_response_tasks_deleted.py +24 -0
  307. label_studio_sdk/workspaces/__init__.py +1 -2
  308. label_studio_sdk/workspaces/client.py +97 -117
  309. label_studio_sdk/workspaces/members/__init__.py +0 -3
  310. label_studio_sdk/workspaces/members/client.py +65 -81
  311. {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/METADATA +1 -1
  312. label_studio_sdk-2.0.0.dist-info/RECORD +424 -0
  313. {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/WHEEL +1 -1
  314. label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +0 -34
  315. label_studio_sdk/export_storage/azure/types/__init__.py +0 -6
  316. label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -57
  317. label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -57
  318. label_studio_sdk/export_storage/gcs/types/__init__.py +0 -6
  319. label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -57
  320. label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -57
  321. label_studio_sdk/export_storage/local/types/__init__.py +0 -6
  322. label_studio_sdk/export_storage/local/types/local_create_response.py +0 -47
  323. label_studio_sdk/export_storage/local/types/local_update_response.py +0 -47
  324. label_studio_sdk/export_storage/redis/types/__init__.py +0 -6
  325. label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -62
  326. label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -62
  327. label_studio_sdk/export_storage/s3/types/__init__.py +0 -6
  328. label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -81
  329. label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -81
  330. label_studio_sdk/import_storage/azure/types/__init__.py +0 -6
  331. label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -72
  332. label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -72
  333. label_studio_sdk/import_storage/gcs/types/__init__.py +0 -6
  334. label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -72
  335. label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -72
  336. label_studio_sdk/import_storage/local/types/__init__.py +0 -6
  337. label_studio_sdk/import_storage/local/types/local_create_response.py +0 -47
  338. label_studio_sdk/import_storage/local/types/local_update_response.py +0 -47
  339. label_studio_sdk/import_storage/redis/types/__init__.py +0 -6
  340. label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -62
  341. label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -62
  342. label_studio_sdk/import_storage/s3/types/__init__.py +0 -6
  343. label_studio_sdk/ml/types/ml_create_response.py +0 -68
  344. label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -5
  345. label_studio_sdk/ml/types/ml_update_response.py +0 -68
  346. label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -5
  347. label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +0 -44
  348. label_studio_sdk/projects/types/projects_create_response.py +0 -91
  349. label_studio_sdk/projects/types/projects_update_response.py +0 -96
  350. label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -32
  351. label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -59
  352. label_studio_sdk/tasks/types/tasks_list_response.py +0 -38
  353. label_studio_sdk/types/annotation_completed_by.py +0 -6
  354. label_studio_sdk/types/azure_blob_export_storage_status.py +0 -7
  355. label_studio_sdk/types/base_task_updated_by.py +0 -7
  356. label_studio_sdk/types/comment_created_by.py +0 -5
  357. label_studio_sdk/types/converted_format_status.py +0 -5
  358. label_studio_sdk/types/data_manager_task_serializer.py +0 -118
  359. label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +0 -5
  360. label_studio_sdk/types/data_manager_task_serializer_comment_authors_item.py +0 -5
  361. label_studio_sdk/types/data_manager_task_serializer_predictions_item_model_run.py +0 -5
  362. label_studio_sdk/types/export_format.py +0 -25
  363. label_studio_sdk/types/export_snapshot_status.py +0 -5
  364. label_studio_sdk/types/export_status.py +0 -5
  365. label_studio_sdk/types/gcs_export_storage_status.py +0 -7
  366. label_studio_sdk/types/gcs_import_storage_status.py +0 -7
  367. label_studio_sdk/types/inference_run.py +0 -34
  368. label_studio_sdk/types/inference_run_created_by.py +0 -5
  369. label_studio_sdk/types/inference_run_organization.py +0 -5
  370. label_studio_sdk/types/inference_run_project_subset.py +0 -5
  371. label_studio_sdk/types/key_indicators.py +0 -6
  372. label_studio_sdk/types/key_indicators_item.py +0 -41
  373. label_studio_sdk/types/local_files_export_storage_status.py +0 -7
  374. label_studio_sdk/types/local_files_import_storage_status.py +0 -7
  375. label_studio_sdk/types/ml_backend_auth_method.py +0 -5
  376. label_studio_sdk/types/ml_backend_state.py +0 -5
  377. label_studio_sdk/types/model_provider_connection_created_by.py +0 -5
  378. label_studio_sdk/types/model_provider_connection_organization.py +0 -5
  379. label_studio_sdk/types/model_provider_connection_provider.py +0 -7
  380. label_studio_sdk/types/model_provider_connection_scope.py +0 -5
  381. label_studio_sdk/types/pause_paused_by.py +0 -5
  382. label_studio_sdk/types/project_import_status.py +0 -5
  383. label_studio_sdk/types/prompt.py +0 -71
  384. label_studio_sdk/types/prompt_associated_projects_item.py +0 -6
  385. label_studio_sdk/types/prompt_created_by.py +0 -5
  386. label_studio_sdk/types/prompt_organization.py +0 -5
  387. label_studio_sdk/types/prompt_version.py +0 -32
  388. label_studio_sdk/types/prompt_version_created_by.py +0 -5
  389. label_studio_sdk/types/prompt_version_organization.py +0 -5
  390. label_studio_sdk/types/redis_export_storage_status.py +0 -7
  391. label_studio_sdk/types/redis_import_storage_status.py +0 -7
  392. label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -7
  393. label_studio_sdk/types/s3export_storage_status.py +0 -7
  394. label_studio_sdk/types/s3import_storage_status.py +0 -7
  395. label_studio_sdk/types/s3s_export_storage.py +0 -73
  396. label_studio_sdk/types/s3s_import_storage_status.py +0 -7
  397. label_studio_sdk/types/task.py +0 -156
  398. label_studio_sdk/types/task_annotators_item.py +0 -5
  399. label_studio_sdk/types/task_comment_authors_item.py +0 -5
  400. label_studio_sdk/types/task_filter_options.py +0 -39
  401. label_studio_sdk/types/webhook_actions_item.py +0 -21
  402. label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -21
  403. label_studio_sdk/versions/types/__init__.py +0 -6
  404. label_studio_sdk/versions/types/versions_get_response.py +0 -73
  405. label_studio_sdk/versions/types/versions_get_response_edition.py +0 -5
  406. label_studio_sdk/workspaces/members/types/__init__.py +0 -6
  407. label_studio_sdk/workspaces/members/types/members_create_response.py +0 -22
  408. label_studio_sdk/workspaces/members/types/members_list_response_item.py +0 -22
  409. label_studio_sdk-1.0.20.dist-info/RECORD +0 -374
  410. {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/LICENSE +0 -0
@@ -1,6 +1,5 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from .tasks_list_request_fields import TasksListRequestFields
4
- from .tasks_list_response import TasksListResponse
5
4
 
6
- __all__ = ["TasksListRequestFields", "TasksListResponse"]
5
+ __all__ = ["TasksListRequestFields"]
@@ -3,14 +3,14 @@
3
3
  import typing
4
4
  from ..core.client_wrapper import SyncClientWrapper
5
5
  from ..core.request_options import RequestOptions
6
- from ..errors.not_found_error import NotFoundError
7
- from ..core.pydantic_utilities import parse_obj_as
6
+ from ..types.lseapi_token_list import LseapiTokenList
7
+ from ..core.unchecked_base_model import construct_type
8
8
  from json.decoder import JSONDecodeError
9
9
  from ..core.api_error import ApiError
10
- from ..types.api_token_response import ApiTokenResponse
11
- from ..types.access_token_response import AccessTokenResponse
12
- from ..errors.unauthorized_error import UnauthorizedError
13
- from ..types.rotate_token_response import RotateTokenResponse
10
+ from ..types.lseapi_token_create import LseapiTokenCreate
11
+ from ..errors.not_found_error import NotFoundError
12
+ from ..types.token_refresh_response import TokenRefreshResponse
13
+ from ..types.token_rotate_response import TokenRotateResponse
14
14
  from ..errors.bad_request_error import BadRequestError
15
15
  from ..core.client_wrapper import AsyncClientWrapper
16
16
 
@@ -22,21 +22,24 @@ class TokensClient:
22
22
  def __init__(self, *, client_wrapper: SyncClientWrapper):
23
23
  self._client_wrapper = client_wrapper
24
24
 
25
- def blacklist(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> None:
25
+ def list(
26
+ self, *, ordering: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None
27
+ ) -> typing.List[LseapiTokenList]:
26
28
  """
27
- Blacklist a refresh token to prevent its future use.
29
+ List all API tokens for the current user.
28
30
 
29
31
  Parameters
30
32
  ----------
31
- refresh : str
32
- JWT refresh token
33
+ ordering : typing.Optional[str]
34
+ Which field to use when ordering the results.
33
35
 
34
36
  request_options : typing.Optional[RequestOptions]
35
37
  Request-specific configuration.
36
38
 
37
39
  Returns
38
40
  -------
39
- None
41
+ typing.List[LseapiTokenList]
42
+
40
43
 
41
44
  Examples
42
45
  --------
@@ -45,43 +48,33 @@ class TokensClient:
45
48
  client = LabelStudio(
46
49
  api_key="YOUR_API_KEY",
47
50
  )
48
- client.tokens.blacklist(
49
- refresh="refresh",
50
- )
51
+ client.tokens.list()
51
52
  """
52
53
  _response = self._client_wrapper.httpx_client.request(
53
- "api/token/blacklist",
54
- method="POST",
55
- json={
56
- "refresh": refresh,
57
- },
58
- headers={
59
- "content-type": "application/json",
54
+ "api/token/",
55
+ method="GET",
56
+ params={
57
+ "ordering": ordering,
60
58
  },
61
59
  request_options=request_options,
62
- omit=OMIT,
63
60
  )
64
61
  try:
65
62
  if 200 <= _response.status_code < 300:
66
- return
67
- if _response.status_code == 404:
68
- raise NotFoundError(
69
- typing.cast(
70
- typing.Optional[typing.Any],
71
- parse_obj_as(
72
- type_=typing.Optional[typing.Any], # type: ignore
73
- object_=_response.json(),
74
- ),
75
- )
63
+ return typing.cast(
64
+ typing.List[LseapiTokenList],
65
+ construct_type(
66
+ type_=typing.List[LseapiTokenList], # type: ignore
67
+ object_=_response.json(),
68
+ ),
76
69
  )
77
70
  _response_json = _response.json()
78
71
  except JSONDecodeError:
79
72
  raise ApiError(status_code=_response.status_code, body=_response.text)
80
73
  raise ApiError(status_code=_response.status_code, body=_response_json)
81
74
 
82
- def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[ApiTokenResponse]:
75
+ def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> LseapiTokenCreate:
83
76
  """
84
- List all API tokens for the current user.
77
+ Create a new API token for the current user.
85
78
 
86
79
  Parameters
87
80
  ----------
@@ -90,8 +83,8 @@ class TokensClient:
90
83
 
91
84
  Returns
92
85
  -------
93
- typing.List[ApiTokenResponse]
94
- List of API tokens retrieved successfully
86
+ LseapiTokenCreate
87
+
95
88
 
96
89
  Examples
97
90
  --------
@@ -100,19 +93,19 @@ class TokensClient:
100
93
  client = LabelStudio(
101
94
  api_key="YOUR_API_KEY",
102
95
  )
103
- client.tokens.get()
96
+ client.tokens.create()
104
97
  """
105
98
  _response = self._client_wrapper.httpx_client.request(
106
- "api/token",
107
- method="GET",
99
+ "api/token/",
100
+ method="POST",
108
101
  request_options=request_options,
109
102
  )
110
103
  try:
111
104
  if 200 <= _response.status_code < 300:
112
105
  return typing.cast(
113
- typing.List[ApiTokenResponse],
114
- parse_obj_as(
115
- type_=typing.List[ApiTokenResponse], # type: ignore
106
+ LseapiTokenCreate,
107
+ construct_type(
108
+ type_=LseapiTokenCreate, # type: ignore
116
109
  object_=_response.json(),
117
110
  ),
118
111
  )
@@ -121,19 +114,23 @@ class TokensClient:
121
114
  raise ApiError(status_code=_response.status_code, body=_response.text)
122
115
  raise ApiError(status_code=_response.status_code, body=_response_json)
123
116
 
124
- def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> ApiTokenResponse:
117
+ def blacklist(
118
+ self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None
119
+ ) -> typing.Dict[str, typing.Optional[typing.Any]]:
125
120
  """
126
- Create a new API token for the current user.
121
+ Adds a JWT refresh token to the blacklist, preventing it from being used to obtain new access tokens.
127
122
 
128
123
  Parameters
129
124
  ----------
125
+ refresh : str
126
+
130
127
  request_options : typing.Optional[RequestOptions]
131
128
  Request-specific configuration.
132
129
 
133
130
  Returns
134
131
  -------
135
- ApiTokenResponse
136
- Token created successfully
132
+ typing.Dict[str, typing.Optional[typing.Any]]
133
+
137
134
 
138
135
  Examples
139
136
  --------
@@ -142,43 +139,61 @@ class TokensClient:
142
139
  client = LabelStudio(
143
140
  api_key="YOUR_API_KEY",
144
141
  )
145
- client.tokens.create()
142
+ client.tokens.blacklist(
143
+ refresh="refresh",
144
+ )
146
145
  """
147
146
  _response = self._client_wrapper.httpx_client.request(
148
- "api/token",
147
+ "api/token/blacklist/",
149
148
  method="POST",
149
+ json={
150
+ "refresh": refresh,
151
+ },
152
+ headers={
153
+ "content-type": "application/json",
154
+ },
150
155
  request_options=request_options,
156
+ omit=OMIT,
151
157
  )
152
158
  try:
153
159
  if 200 <= _response.status_code < 300:
154
160
  return typing.cast(
155
- ApiTokenResponse,
156
- parse_obj_as(
157
- type_=ApiTokenResponse, # type: ignore
161
+ typing.Dict[str, typing.Optional[typing.Any]],
162
+ construct_type(
163
+ type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
158
164
  object_=_response.json(),
159
165
  ),
160
166
  )
167
+ if _response.status_code == 404:
168
+ raise NotFoundError(
169
+ typing.cast(
170
+ typing.Optional[typing.Any],
171
+ construct_type(
172
+ type_=typing.Optional[typing.Any], # type: ignore
173
+ object_=_response.json(),
174
+ ),
175
+ )
176
+ )
161
177
  _response_json = _response.json()
162
178
  except JSONDecodeError:
163
179
  raise ApiError(status_code=_response.status_code, body=_response.text)
164
180
  raise ApiError(status_code=_response.status_code, body=_response_json)
165
181
 
166
- def refresh(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> AccessTokenResponse:
182
+ def refresh(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> TokenRefreshResponse:
167
183
  """
168
184
  Get a new access token, using a refresh token.
169
185
 
170
186
  Parameters
171
187
  ----------
172
188
  refresh : str
173
- JWT refresh token
174
189
 
175
190
  request_options : typing.Optional[RequestOptions]
176
191
  Request-specific configuration.
177
192
 
178
193
  Returns
179
194
  -------
180
- AccessTokenResponse
181
- New access token created successfully
195
+ TokenRefreshResponse
196
+
182
197
 
183
198
  Examples
184
199
  --------
@@ -192,7 +207,7 @@ class TokensClient:
192
207
  )
193
208
  """
194
209
  _response = self._client_wrapper.httpx_client.request(
195
- "api/token/refresh",
210
+ "api/token/refresh/",
196
211
  method="POST",
197
212
  json={
198
213
  "refresh": refresh,
@@ -206,43 +221,32 @@ class TokensClient:
206
221
  try:
207
222
  if 200 <= _response.status_code < 300:
208
223
  return typing.cast(
209
- AccessTokenResponse,
210
- parse_obj_as(
211
- type_=AccessTokenResponse, # type: ignore
224
+ TokenRefreshResponse,
225
+ construct_type(
226
+ type_=TokenRefreshResponse, # type: ignore
212
227
  object_=_response.json(),
213
228
  ),
214
229
  )
215
- if _response.status_code == 401:
216
- raise UnauthorizedError(
217
- typing.cast(
218
- typing.Optional[typing.Any],
219
- parse_obj_as(
220
- type_=typing.Optional[typing.Any], # type: ignore
221
- object_=_response.json(),
222
- ),
223
- )
224
- )
225
230
  _response_json = _response.json()
226
231
  except JSONDecodeError:
227
232
  raise ApiError(status_code=_response.status_code, body=_response.text)
228
233
  raise ApiError(status_code=_response.status_code, body=_response_json)
229
234
 
230
- def rotate(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> RotateTokenResponse:
235
+ def rotate(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> TokenRotateResponse:
231
236
  """
232
- Blacklist existing refresh token, and get a new refresh token.
237
+ Creates a new JWT refresh token and blacklists the current one.
233
238
 
234
239
  Parameters
235
240
  ----------
236
241
  refresh : str
237
- JWT refresh token
238
242
 
239
243
  request_options : typing.Optional[RequestOptions]
240
244
  Request-specific configuration.
241
245
 
242
246
  Returns
243
247
  -------
244
- RotateTokenResponse
245
- Refresh token successfully rotated
248
+ TokenRotateResponse
249
+
246
250
 
247
251
  Examples
248
252
  --------
@@ -256,7 +260,7 @@ class TokensClient:
256
260
  )
257
261
  """
258
262
  _response = self._client_wrapper.httpx_client.request(
259
- "api/token/rotate",
263
+ "api/token/rotate/",
260
264
  method="POST",
261
265
  json={
262
266
  "refresh": refresh,
@@ -270,9 +274,9 @@ class TokensClient:
270
274
  try:
271
275
  if 200 <= _response.status_code < 300:
272
276
  return typing.cast(
273
- RotateTokenResponse,
274
- parse_obj_as(
275
- type_=RotateTokenResponse, # type: ignore
277
+ TokenRotateResponse,
278
+ construct_type(
279
+ type_=TokenRotateResponse, # type: ignore
276
280
  object_=_response.json(),
277
281
  ),
278
282
  )
@@ -280,7 +284,7 @@ class TokensClient:
280
284
  raise BadRequestError(
281
285
  typing.cast(
282
286
  typing.Optional[typing.Any],
283
- parse_obj_as(
287
+ construct_type(
284
288
  type_=typing.Optional[typing.Any], # type: ignore
285
289
  object_=_response.json(),
286
290
  ),
@@ -296,21 +300,24 @@ class AsyncTokensClient:
296
300
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
297
301
  self._client_wrapper = client_wrapper
298
302
 
299
- async def blacklist(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> None:
303
+ async def list(
304
+ self, *, ordering: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None
305
+ ) -> typing.List[LseapiTokenList]:
300
306
  """
301
- Blacklist a refresh token to prevent its future use.
307
+ List all API tokens for the current user.
302
308
 
303
309
  Parameters
304
310
  ----------
305
- refresh : str
306
- JWT refresh token
311
+ ordering : typing.Optional[str]
312
+ Which field to use when ordering the results.
307
313
 
308
314
  request_options : typing.Optional[RequestOptions]
309
315
  Request-specific configuration.
310
316
 
311
317
  Returns
312
318
  -------
313
- None
319
+ typing.List[LseapiTokenList]
320
+
314
321
 
315
322
  Examples
316
323
  --------
@@ -324,46 +331,36 @@ class AsyncTokensClient:
324
331
 
325
332
 
326
333
  async def main() -> None:
327
- await client.tokens.blacklist(
328
- refresh="refresh",
329
- )
334
+ await client.tokens.list()
330
335
 
331
336
 
332
337
  asyncio.run(main())
333
338
  """
334
339
  _response = await self._client_wrapper.httpx_client.request(
335
- "api/token/blacklist",
336
- method="POST",
337
- json={
338
- "refresh": refresh,
339
- },
340
- headers={
341
- "content-type": "application/json",
340
+ "api/token/",
341
+ method="GET",
342
+ params={
343
+ "ordering": ordering,
342
344
  },
343
345
  request_options=request_options,
344
- omit=OMIT,
345
346
  )
346
347
  try:
347
348
  if 200 <= _response.status_code < 300:
348
- return
349
- if _response.status_code == 404:
350
- raise NotFoundError(
351
- typing.cast(
352
- typing.Optional[typing.Any],
353
- parse_obj_as(
354
- type_=typing.Optional[typing.Any], # type: ignore
355
- object_=_response.json(),
356
- ),
357
- )
349
+ return typing.cast(
350
+ typing.List[LseapiTokenList],
351
+ construct_type(
352
+ type_=typing.List[LseapiTokenList], # type: ignore
353
+ object_=_response.json(),
354
+ ),
358
355
  )
359
356
  _response_json = _response.json()
360
357
  except JSONDecodeError:
361
358
  raise ApiError(status_code=_response.status_code, body=_response.text)
362
359
  raise ApiError(status_code=_response.status_code, body=_response_json)
363
360
 
364
- async def get(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[ApiTokenResponse]:
361
+ async def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> LseapiTokenCreate:
365
362
  """
366
- List all API tokens for the current user.
363
+ Create a new API token for the current user.
367
364
 
368
365
  Parameters
369
366
  ----------
@@ -372,8 +369,8 @@ class AsyncTokensClient:
372
369
 
373
370
  Returns
374
371
  -------
375
- typing.List[ApiTokenResponse]
376
- List of API tokens retrieved successfully
372
+ LseapiTokenCreate
373
+
377
374
 
378
375
  Examples
379
376
  --------
@@ -387,22 +384,22 @@ class AsyncTokensClient:
387
384
 
388
385
 
389
386
  async def main() -> None:
390
- await client.tokens.get()
387
+ await client.tokens.create()
391
388
 
392
389
 
393
390
  asyncio.run(main())
394
391
  """
395
392
  _response = await self._client_wrapper.httpx_client.request(
396
- "api/token",
397
- method="GET",
393
+ "api/token/",
394
+ method="POST",
398
395
  request_options=request_options,
399
396
  )
400
397
  try:
401
398
  if 200 <= _response.status_code < 300:
402
399
  return typing.cast(
403
- typing.List[ApiTokenResponse],
404
- parse_obj_as(
405
- type_=typing.List[ApiTokenResponse], # type: ignore
400
+ LseapiTokenCreate,
401
+ construct_type(
402
+ type_=LseapiTokenCreate, # type: ignore
406
403
  object_=_response.json(),
407
404
  ),
408
405
  )
@@ -411,19 +408,23 @@ class AsyncTokensClient:
411
408
  raise ApiError(status_code=_response.status_code, body=_response.text)
412
409
  raise ApiError(status_code=_response.status_code, body=_response_json)
413
410
 
414
- async def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> ApiTokenResponse:
411
+ async def blacklist(
412
+ self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None
413
+ ) -> typing.Dict[str, typing.Optional[typing.Any]]:
415
414
  """
416
- Create a new API token for the current user.
415
+ Adds a JWT refresh token to the blacklist, preventing it from being used to obtain new access tokens.
417
416
 
418
417
  Parameters
419
418
  ----------
419
+ refresh : str
420
+
420
421
  request_options : typing.Optional[RequestOptions]
421
422
  Request-specific configuration.
422
423
 
423
424
  Returns
424
425
  -------
425
- ApiTokenResponse
426
- Token created successfully
426
+ typing.Dict[str, typing.Optional[typing.Any]]
427
+
427
428
 
428
429
  Examples
429
430
  --------
@@ -437,25 +438,44 @@ class AsyncTokensClient:
437
438
 
438
439
 
439
440
  async def main() -> None:
440
- await client.tokens.create()
441
+ await client.tokens.blacklist(
442
+ refresh="refresh",
443
+ )
441
444
 
442
445
 
443
446
  asyncio.run(main())
444
447
  """
445
448
  _response = await self._client_wrapper.httpx_client.request(
446
- "api/token",
449
+ "api/token/blacklist/",
447
450
  method="POST",
451
+ json={
452
+ "refresh": refresh,
453
+ },
454
+ headers={
455
+ "content-type": "application/json",
456
+ },
448
457
  request_options=request_options,
458
+ omit=OMIT,
449
459
  )
450
460
  try:
451
461
  if 200 <= _response.status_code < 300:
452
462
  return typing.cast(
453
- ApiTokenResponse,
454
- parse_obj_as(
455
- type_=ApiTokenResponse, # type: ignore
463
+ typing.Dict[str, typing.Optional[typing.Any]],
464
+ construct_type(
465
+ type_=typing.Dict[str, typing.Optional[typing.Any]], # type: ignore
456
466
  object_=_response.json(),
457
467
  ),
458
468
  )
469
+ if _response.status_code == 404:
470
+ raise NotFoundError(
471
+ typing.cast(
472
+ typing.Optional[typing.Any],
473
+ construct_type(
474
+ type_=typing.Optional[typing.Any], # type: ignore
475
+ object_=_response.json(),
476
+ ),
477
+ )
478
+ )
459
479
  _response_json = _response.json()
460
480
  except JSONDecodeError:
461
481
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -463,22 +483,21 @@ class AsyncTokensClient:
463
483
 
464
484
  async def refresh(
465
485
  self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None
466
- ) -> AccessTokenResponse:
486
+ ) -> TokenRefreshResponse:
467
487
  """
468
488
  Get a new access token, using a refresh token.
469
489
 
470
490
  Parameters
471
491
  ----------
472
492
  refresh : str
473
- JWT refresh token
474
493
 
475
494
  request_options : typing.Optional[RequestOptions]
476
495
  Request-specific configuration.
477
496
 
478
497
  Returns
479
498
  -------
480
- AccessTokenResponse
481
- New access token created successfully
499
+ TokenRefreshResponse
500
+
482
501
 
483
502
  Examples
484
503
  --------
@@ -500,7 +519,7 @@ class AsyncTokensClient:
500
519
  asyncio.run(main())
501
520
  """
502
521
  _response = await self._client_wrapper.httpx_client.request(
503
- "api/token/refresh",
522
+ "api/token/refresh/",
504
523
  method="POST",
505
524
  json={
506
525
  "refresh": refresh,
@@ -514,22 +533,12 @@ class AsyncTokensClient:
514
533
  try:
515
534
  if 200 <= _response.status_code < 300:
516
535
  return typing.cast(
517
- AccessTokenResponse,
518
- parse_obj_as(
519
- type_=AccessTokenResponse, # type: ignore
536
+ TokenRefreshResponse,
537
+ construct_type(
538
+ type_=TokenRefreshResponse, # type: ignore
520
539
  object_=_response.json(),
521
540
  ),
522
541
  )
523
- if _response.status_code == 401:
524
- raise UnauthorizedError(
525
- typing.cast(
526
- typing.Optional[typing.Any],
527
- parse_obj_as(
528
- type_=typing.Optional[typing.Any], # type: ignore
529
- object_=_response.json(),
530
- ),
531
- )
532
- )
533
542
  _response_json = _response.json()
534
543
  except JSONDecodeError:
535
544
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -537,22 +546,21 @@ class AsyncTokensClient:
537
546
 
538
547
  async def rotate(
539
548
  self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None
540
- ) -> RotateTokenResponse:
549
+ ) -> TokenRotateResponse:
541
550
  """
542
- Blacklist existing refresh token, and get a new refresh token.
551
+ Creates a new JWT refresh token and blacklists the current one.
543
552
 
544
553
  Parameters
545
554
  ----------
546
555
  refresh : str
547
- JWT refresh token
548
556
 
549
557
  request_options : typing.Optional[RequestOptions]
550
558
  Request-specific configuration.
551
559
 
552
560
  Returns
553
561
  -------
554
- RotateTokenResponse
555
- Refresh token successfully rotated
562
+ TokenRotateResponse
563
+
556
564
 
557
565
  Examples
558
566
  --------
@@ -574,7 +582,7 @@ class AsyncTokensClient:
574
582
  asyncio.run(main())
575
583
  """
576
584
  _response = await self._client_wrapper.httpx_client.request(
577
- "api/token/rotate",
585
+ "api/token/rotate/",
578
586
  method="POST",
579
587
  json={
580
588
  "refresh": refresh,
@@ -588,9 +596,9 @@ class AsyncTokensClient:
588
596
  try:
589
597
  if 200 <= _response.status_code < 300:
590
598
  return typing.cast(
591
- RotateTokenResponse,
592
- parse_obj_as(
593
- type_=RotateTokenResponse, # type: ignore
599
+ TokenRotateResponse,
600
+ construct_type(
601
+ type_=TokenRotateResponse, # type: ignore
594
602
  object_=_response.json(),
595
603
  ),
596
604
  )
@@ -598,7 +606,7 @@ class AsyncTokensClient:
598
606
  raise BadRequestError(
599
607
  typing.cast(
600
608
  typing.Optional[typing.Any],
601
- parse_obj_as(
609
+ construct_type(
602
610
  type_=typing.Optional[typing.Any], # type: ignore
603
611
  object_=_response.json(),
604
612
  ),