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.
- label_studio_sdk/__init__.py +325 -180
- label_studio_sdk/actions/__init__.py +4 -0
- label_studio_sdk/actions/client.py +46 -10
- label_studio_sdk/actions/types/__init__.py +4 -0
- label_studio_sdk/actions/types/actions_create_request_filters.py +2 -2
- label_studio_sdk/actions/types/actions_create_request_filters_items_item.py +2 -2
- label_studio_sdk/actions/types/actions_create_request_id.py +7 -7
- label_studio_sdk/actions/types/actions_create_request_selected_items_excluded.py +2 -2
- label_studio_sdk/actions/types/actions_create_request_selected_items_included.py +2 -2
- label_studio_sdk/actions/types/actions_list_response_item.py +25 -0
- label_studio_sdk/actions/types/actions_list_response_item_dialog.py +22 -0
- label_studio_sdk/annotations/__init__.py +2 -2
- label_studio_sdk/annotations/client.py +379 -243
- label_studio_sdk/annotations/types/__init__.py +4 -2
- label_studio_sdk/annotations/types/annotation_bulk_serializer_with_selected_items_request_last_action.py +7 -0
- label_studio_sdk/annotations/types/annotations_create_bulk_response_item.py +8 -5
- label_studio_sdk/base_client.py +28 -24
- label_studio_sdk/comments/client.py +378 -140
- label_studio_sdk/converter/README.md +207 -0
- label_studio_sdk/converter/imports/coco.py +132 -23
- label_studio_sdk/core/__init__.py +4 -0
- label_studio_sdk/core/unchecked_base_model.py +305 -0
- label_studio_sdk/environment.py +1 -1
- label_studio_sdk/errors/__init__.py +10 -1
- label_studio_sdk/errors/forbidden_error.py +9 -0
- label_studio_sdk/errors/method_not_allowed_error.py +9 -0
- label_studio_sdk/export_storage/__init__.py +1 -24
- label_studio_sdk/export_storage/azure/__init__.py +0 -3
- label_studio_sdk/export_storage/azure/client.py +231 -273
- label_studio_sdk/export_storage/client.py +5 -5
- label_studio_sdk/export_storage/gcs/__init__.py +0 -3
- label_studio_sdk/export_storage/gcs/client.py +231 -273
- label_studio_sdk/export_storage/local/__init__.py +0 -3
- label_studio_sdk/export_storage/local/client.py +211 -253
- label_studio_sdk/export_storage/redis/__init__.py +0 -3
- label_studio_sdk/export_storage/redis/client.py +239 -281
- label_studio_sdk/export_storage/s3/__init__.py +0 -3
- label_studio_sdk/export_storage/s3/client.py +254 -296
- label_studio_sdk/export_storage/s3s/client.py +694 -210
- label_studio_sdk/export_storage/types/export_storage_list_types_response_item.py +2 -2
- label_studio_sdk/files/client.py +52 -71
- label_studio_sdk/import_storage/__init__.py +1 -24
- label_studio_sdk/import_storage/azure/__init__.py +0 -3
- label_studio_sdk/import_storage/azure/client.py +249 -299
- label_studio_sdk/import_storage/client.py +5 -5
- label_studio_sdk/import_storage/gcs/__init__.py +0 -3
- label_studio_sdk/import_storage/gcs/client.py +249 -299
- label_studio_sdk/import_storage/local/__init__.py +0 -3
- label_studio_sdk/import_storage/local/client.py +211 -257
- label_studio_sdk/import_storage/redis/__init__.py +0 -3
- label_studio_sdk/import_storage/redis/client.py +239 -285
- label_studio_sdk/import_storage/s3/__init__.py +0 -3
- label_studio_sdk/import_storage/s3/client.py +274 -324
- label_studio_sdk/import_storage/s3s/client.py +728 -434
- label_studio_sdk/import_storage/types/import_storage_list_types_response_item.py +2 -2
- label_studio_sdk/jwt_settings/client.py +56 -58
- label_studio_sdk/label_interface/control_tags.py +48 -8
- label_studio_sdk/label_interface/interface.py +261 -56
- label_studio_sdk/ml/__init__.py +2 -16
- label_studio_sdk/ml/client.py +196 -179
- label_studio_sdk/ml/types/__init__.py +2 -12
- label_studio_sdk/ml/types/ml_list_model_versions_response.py +20 -0
- label_studio_sdk/model_providers/__init__.py +3 -0
- label_studio_sdk/model_providers/client.py +280 -228
- label_studio_sdk/model_providers/types/__init__.py +5 -0
- label_studio_sdk/{prompts/types/prompts_batch_predictions_response.py → model_providers/types/model_providers_list_model_provider_choices_response.py} +3 -3
- label_studio_sdk/organizations/__init__.py +5 -0
- label_studio_sdk/organizations/client.py +331 -0
- label_studio_sdk/organizations/members/__init__.py +2 -0
- label_studio_sdk/organizations/members/client.py +290 -0
- label_studio_sdk/predictions/client.py +29 -77
- label_studio_sdk/projects/__init__.py +18 -9
- label_studio_sdk/projects/client.py +905 -414
- label_studio_sdk/projects/exports/__init__.py +2 -2
- label_studio_sdk/projects/exports/client.py +336 -396
- label_studio_sdk/projects/exports/client_ext.py +30 -30
- label_studio_sdk/projects/exports/types/__init__.py +1 -2
- label_studio_sdk/projects/exports/types/exports_convert_response.py +5 -9
- label_studio_sdk/projects/pauses/client.py +114 -105
- label_studio_sdk/projects/stats/__init__.py +5 -0
- label_studio_sdk/projects/stats/client.py +175 -0
- label_studio_sdk/projects/stats/types/__init__.py +8 -0
- label_studio_sdk/projects/stats/types/stats_iaa_response.py +44 -0
- label_studio_sdk/projects/stats/types/stats_iaa_response_common_tasks.py +7 -0
- label_studio_sdk/projects/stats/types/stats_iaa_response_iaa.py +5 -0
- label_studio_sdk/{types/base_task_file_upload.py → projects/stats/types/stats_iaa_response_std.py} +1 -1
- label_studio_sdk/projects/types/__init__.py +10 -6
- label_studio_sdk/projects/types/lse_project_create_request_sampling.py +7 -0
- label_studio_sdk/projects/types/lse_project_create_request_skip_queue.py +7 -0
- label_studio_sdk/projects/types/patched_lse_project_update_request_sampling.py +7 -0
- label_studio_sdk/projects/types/patched_lse_project_update_request_skip_queue.py +7 -0
- label_studio_sdk/{prompts/types/prompts_batch_failed_predictions_response.py → projects/types/projects_duplicate_response.py} +8 -5
- label_studio_sdk/projects/types/projects_import_tasks_response.py +2 -2
- label_studio_sdk/projects/types/projects_list_request_filter.py +1 -1
- label_studio_sdk/prompts/__init__.py +4 -10
- label_studio_sdk/prompts/client.py +511 -442
- label_studio_sdk/prompts/indicators/__init__.py +3 -0
- label_studio_sdk/prompts/indicators/client.py +47 -49
- label_studio_sdk/prompts/indicators/types/__init__.py +5 -0
- label_studio_sdk/{types/key_indicator_value.py → prompts/indicators/types/indicators_list_response_item.py} +3 -3
- label_studio_sdk/prompts/runs/client.py +113 -135
- label_studio_sdk/prompts/types/__init__.py +2 -12
- label_studio_sdk/prompts/types/prompts_compatible_projects_request_project_type.py +7 -0
- label_studio_sdk/prompts/versions/client.py +372 -312
- label_studio_sdk/tasks/__init__.py +2 -2
- label_studio_sdk/tasks/client.py +514 -213
- label_studio_sdk/tasks/types/__init__.py +1 -2
- label_studio_sdk/tokens/client.py +160 -152
- label_studio_sdk/tokens/client_ext.py +3 -3
- label_studio_sdk/types/__init__.py +258 -142
- label_studio_sdk/{webhooks/types/webhooks_update_request_actions_item.py → types/actions_enum.py} +4 -1
- label_studio_sdk/types/all_roles_project_list.py +197 -0
- label_studio_sdk/types/all_roles_project_list_sampling.py +7 -0
- label_studio_sdk/types/all_roles_project_list_skip_queue.py +7 -0
- label_studio_sdk/types/annotated_enum.py +5 -0
- label_studio_sdk/types/annotation.py +24 -10
- label_studio_sdk/types/annotation_last_action.py +3 -15
- label_studio_sdk/types/{annotations_dm_field.py → annotation_request.py} +21 -30
- label_studio_sdk/types/annotation_request_last_action.py +7 -0
- label_studio_sdk/types/assignment_settings.py +31 -0
- label_studio_sdk/types/assignment_settings_label_stream_task_distribution.py +7 -0
- label_studio_sdk/types/assignment_settings_request.py +32 -0
- label_studio_sdk/types/assignment_settings_request_label_stream_task_distribution.py +7 -0
- label_studio_sdk/types/{key_indicators_item_additional_kpis_item.py → associated_project.py} +9 -6
- label_studio_sdk/types/auth_method_enum.py +5 -0
- label_studio_sdk/types/azure_blob_export_storage.py +8 -12
- label_studio_sdk/types/azure_blob_import_storage.py +8 -12
- label_studio_sdk/types/{prompt_associated_projects_item_id.py → batch_failed_predictions.py} +4 -4
- label_studio_sdk/types/{access_token_response.py → batch_predictions.py} +6 -8
- label_studio_sdk/types/blank_enum.py +5 -0
- label_studio_sdk/types/{key_indicators_item_extra_kpis_item.py → blueprint_list.py} +12 -6
- label_studio_sdk/types/budget_reset_period_enum.py +5 -0
- label_studio_sdk/types/child_filter.py +44 -0
- label_studio_sdk/types/comment.py +39 -14
- label_studio_sdk/types/comment_request.py +32 -0
- label_studio_sdk/types/comment_serializer_with_expanded_user.py +53 -0
- label_studio_sdk/types/converted_format.py +5 -5
- label_studio_sdk/types/{api_token_response.py → converted_format_request.py} +8 -15
- label_studio_sdk/types/custom_scripts_editable_by_enum.py +5 -0
- label_studio_sdk/types/default_role_enum.py +5 -0
- label_studio_sdk/types/edition_enum.py +5 -0
- label_studio_sdk/types/export.py +7 -7
- label_studio_sdk/types/file_upload.py +5 -5
- label_studio_sdk/types/filter.py +9 -6
- label_studio_sdk/types/filter_group.py +3 -3
- label_studio_sdk/types/finished_enum.py +5 -0
- label_studio_sdk/types/gcs_export_storage.py +8 -12
- label_studio_sdk/types/gcs_import_storage.py +8 -12
- label_studio_sdk/types/{rotate_token_response.py → hotkeys.py} +5 -8
- label_studio_sdk/types/{base_task.py → import_api_request.py} +11 -34
- label_studio_sdk/types/inference_run_cost_estimate.py +2 -2
- label_studio_sdk/types/label_stream_task_distribution_enum.py +5 -0
- label_studio_sdk/types/{annotations_dm_field_last_action.py → last_action_enum.py} +1 -1
- label_studio_sdk/types/local_files_export_storage.py +8 -12
- label_studio_sdk/types/local_files_import_storage.py +8 -12
- label_studio_sdk/types/{annotation_filter_options.py → lse_annotation_filter_options.py} +12 -2
- label_studio_sdk/types/lse_annotation_filter_options_request.py +42 -0
- label_studio_sdk/types/lse_annotation_filter_options_request_reviewed.py +7 -0
- label_studio_sdk/types/lse_annotation_filter_options_reviewed.py +7 -0
- label_studio_sdk/types/{export_snapshot.py → lse_export_create.py} +11 -11
- label_studio_sdk/types/lse_fields.py +49 -0
- label_studio_sdk/types/lse_fields_onboarding_state.py +8 -0
- label_studio_sdk/types/lse_fields_trial_role.py +8 -0
- label_studio_sdk/types/lse_key_indicator_value.py +35 -0
- label_studio_sdk/types/lse_organization.py +57 -0
- label_studio_sdk/types/lse_organization_custom_scripts_editable_by.py +7 -0
- label_studio_sdk/types/lse_project_create.py +196 -0
- label_studio_sdk/types/lse_project_create_sampling.py +7 -0
- label_studio_sdk/types/lse_project_create_skip_queue.py +7 -0
- label_studio_sdk/types/lse_project_update.py +215 -0
- label_studio_sdk/types/lse_project_update_sampling.py +7 -0
- label_studio_sdk/types/lse_project_update_skip_queue.py +7 -0
- label_studio_sdk/types/lse_s3export_storage.py +134 -0
- label_studio_sdk/{import_storage/s3/types/s3create_response.py → types/lse_s3export_storage_request.py} +47 -21
- label_studio_sdk/{import_storage/s3/types/s3update_response.py → types/lse_s3import_storage.py} +60 -21
- label_studio_sdk/types/{s3s_import_storage.py → lse_s3import_storage_request.py} +32 -21
- label_studio_sdk/types/lse_task.py +117 -0
- label_studio_sdk/types/{data_manager_task_serializer_drafts_item.py → lse_task_drafts_item.py} +2 -2
- label_studio_sdk/types/lse_task_filter_options.py +63 -0
- label_studio_sdk/types/lse_task_filter_options_annotated.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_finished.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request.py +63 -0
- label_studio_sdk/types/lse_task_filter_options_request_annotated.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request_finished.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request_reviewed.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_request_skipped.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_reviewed.py +7 -0
- label_studio_sdk/types/lse_task_filter_options_skipped.py +7 -0
- label_studio_sdk/types/{data_manager_task_serializer_predictions_item.py → lse_task_predictions_item.py} +4 -5
- label_studio_sdk/types/lse_task_serializer_for_annotators.py +54 -0
- label_studio_sdk/types/lse_task_serializer_for_annotators_drafts_item.py +22 -0
- label_studio_sdk/types/lse_task_serializer_for_annotators_predictions_item.py +28 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers.py +117 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers_drafts_item.py +22 -0
- label_studio_sdk/types/lse_task_serializer_for_reviewers_predictions_item.py +28 -0
- label_studio_sdk/types/lse_user.py +49 -0
- label_studio_sdk/types/{base_user.py → lse_user_api.py} +17 -6
- label_studio_sdk/types/lseapi_token_create.py +21 -0
- label_studio_sdk/types/lseapi_token_list.py +21 -0
- label_studio_sdk/types/lsejwt_settings.py +32 -0
- label_studio_sdk/types/maybe_expanded_comment.py +7 -0
- label_studio_sdk/types/ml_backend.py +16 -17
- label_studio_sdk/types/mode_enum.py +5 -0
- label_studio_sdk/types/model_interface.py +44 -0
- label_studio_sdk/types/model_interface_request.py +40 -0
- label_studio_sdk/types/model_interface_serializer_get.py +45 -0
- label_studio_sdk/types/model_provider_connection.py +48 -17
- label_studio_sdk/types/model_provider_connection_budget_reset_period.py +3 -1
- label_studio_sdk/types/model_provider_connection_request.py +71 -0
- label_studio_sdk/types/model_run.py +40 -0
- label_studio_sdk/types/{inference_run_status.py → model_run_status_enum.py} +1 -1
- label_studio_sdk/types/null_enum.py +3 -0
- label_studio_sdk/types/onboarding_state_enum.py +7 -0
- label_studio_sdk/types/organization_billing.py +20 -0
- label_studio_sdk/types/organization_id.py +28 -0
- label_studio_sdk/types/organization_invite.py +20 -0
- label_studio_sdk/types/organization_member.py +37 -0
- label_studio_sdk/types/organization_membership.py +24 -0
- label_studio_sdk/{projects/types/projects_list_response.py → types/paginated_all_roles_project_list_list.py} +5 -5
- label_studio_sdk/types/{jwt_settings_response.py → paginated_role_based_task_list.py} +11 -9
- label_studio_sdk/types/pause.py +55 -14
- label_studio_sdk/types/pause_request.py +41 -0
- label_studio_sdk/types/prediction.py +7 -11
- label_studio_sdk/types/prediction_request.py +56 -0
- label_studio_sdk/types/project.py +32 -39
- label_studio_sdk/types/project_import.py +12 -13
- label_studio_sdk/types/project_label_config.py +2 -2
- label_studio_sdk/types/project_label_config_request.py +22 -0
- label_studio_sdk/types/project_sampling.py +3 -3
- label_studio_sdk/types/project_skip_queue.py +3 -1
- label_studio_sdk/types/project_subset_enum.py +5 -0
- label_studio_sdk/types/{prompt_version_provider.py → provider_enum.py} +1 -1
- label_studio_sdk/types/reason_enum.py +7 -0
- label_studio_sdk/types/redis_export_storage.py +8 -12
- label_studio_sdk/types/redis_import_storage.py +8 -12
- label_studio_sdk/types/refined_prompt_response.py +5 -6
- label_studio_sdk/types/requeue_rejected_tasks_mode_enum.py +5 -0
- label_studio_sdk/types/review_criteria_enum.py +5 -0
- label_studio_sdk/types/review_settings.py +80 -0
- label_studio_sdk/types/review_settings_request.py +80 -0
- label_studio_sdk/types/review_settings_request_requeue_rejected_tasks_mode.py +8 -0
- label_studio_sdk/types/review_settings_request_review_criteria.py +7 -0
- label_studio_sdk/types/review_settings_requeue_rejected_tasks_mode.py +8 -0
- label_studio_sdk/types/review_settings_review_criteria.py +7 -0
- label_studio_sdk/types/reviewed_enum.py +5 -0
- label_studio_sdk/types/role_based_task.py +8 -0
- label_studio_sdk/types/s3export_storage.py +8 -12
- label_studio_sdk/types/s3import_storage.py +8 -12
- label_studio_sdk/types/sampling_enum.py +7 -0
- label_studio_sdk/types/scope_enum.py +5 -0
- label_studio_sdk/types/selected_items_request.py +23 -0
- label_studio_sdk/types/serialization_option.py +2 -6
- label_studio_sdk/types/serialization_option_request.py +22 -0
- label_studio_sdk/types/serialization_options.py +17 -5
- label_studio_sdk/types/serialization_options_request.py +47 -0
- label_studio_sdk/types/skill_name_enum.py +5 -0
- label_studio_sdk/types/skip_queue_enum.py +5 -0
- label_studio_sdk/types/skipped_enum.py +5 -0
- label_studio_sdk/types/state_enum.py +5 -0
- label_studio_sdk/types/status7bf_enum.py +5 -0
- label_studio_sdk/types/{azure_blob_import_storage_status.py → status_c5a_enum.py} +2 -2
- label_studio_sdk/types/third_party_model_version.py +65 -0
- label_studio_sdk/types/third_party_model_version_request.py +54 -0
- label_studio_sdk/types/token_refresh_response.py +19 -0
- label_studio_sdk/types/token_rotate_response.py +19 -0
- label_studio_sdk/types/trial_role_enum.py +16 -0
- label_studio_sdk/types/user_simple.py +8 -5
- label_studio_sdk/types/user_simple_request.py +28 -0
- label_studio_sdk/types/version_response.py +49 -0
- label_studio_sdk/types/view.py +8 -15
- label_studio_sdk/types/webhook.py +9 -13
- label_studio_sdk/types/webhook_serializer_for_update.py +15 -13
- label_studio_sdk/types/workspace.py +14 -34
- label_studio_sdk/types/workspace_member_create.py +27 -0
- label_studio_sdk/types/workspace_member_list.py +24 -0
- label_studio_sdk/users/client.py +604 -87
- label_studio_sdk/users/types/users_get_token_response.py +4 -11
- label_studio_sdk/users/types/users_reset_token_response.py +4 -11
- label_studio_sdk/versions/__init__.py +0 -3
- label_studio_sdk/versions/client.py +14 -14
- label_studio_sdk/views/client.py +227 -141
- label_studio_sdk/views/types/views_create_request_data.py +2 -2
- label_studio_sdk/views/types/views_create_request_data_filters.py +2 -2
- label_studio_sdk/views/types/views_create_request_data_filters_items_item.py +2 -2
- label_studio_sdk/views/types/views_update_request_data.py +2 -2
- label_studio_sdk/views/types/views_update_request_data_filters.py +2 -2
- label_studio_sdk/views/types/views_update_request_data_filters_items_item.py +2 -2
- label_studio_sdk/webhooks/__init__.py +36 -2
- label_studio_sdk/webhooks/client.py +173 -367
- label_studio_sdk/webhooks/types/__init__.py +34 -2
- label_studio_sdk/webhooks/types/webhooks_info_response.py +80 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotation_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotation_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotations_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_annotations_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_project_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_project_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_project_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_review_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_review_updated.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_reviews_deleted.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_tasks_created.py +24 -0
- label_studio_sdk/webhooks/types/webhooks_info_response_tasks_deleted.py +24 -0
- label_studio_sdk/workspaces/__init__.py +1 -2
- label_studio_sdk/workspaces/client.py +97 -117
- label_studio_sdk/workspaces/members/__init__.py +0 -3
- label_studio_sdk/workspaces/members/client.py +65 -81
- {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/METADATA +1 -1
- label_studio_sdk-2.0.0.dist-info/RECORD +424 -0
- {label_studio_sdk-1.0.20.dist-info → label_studio_sdk-2.0.0.dist-info}/WHEEL +1 -1
- label_studio_sdk/annotations/types/annotations_create_bulk_request_selected_items.py +0 -34
- label_studio_sdk/export_storage/azure/types/__init__.py +0 -6
- label_studio_sdk/export_storage/azure/types/azure_create_response.py +0 -57
- label_studio_sdk/export_storage/azure/types/azure_update_response.py +0 -57
- label_studio_sdk/export_storage/gcs/types/__init__.py +0 -6
- label_studio_sdk/export_storage/gcs/types/gcs_create_response.py +0 -57
- label_studio_sdk/export_storage/gcs/types/gcs_update_response.py +0 -57
- label_studio_sdk/export_storage/local/types/__init__.py +0 -6
- label_studio_sdk/export_storage/local/types/local_create_response.py +0 -47
- label_studio_sdk/export_storage/local/types/local_update_response.py +0 -47
- label_studio_sdk/export_storage/redis/types/__init__.py +0 -6
- label_studio_sdk/export_storage/redis/types/redis_create_response.py +0 -62
- label_studio_sdk/export_storage/redis/types/redis_update_response.py +0 -62
- label_studio_sdk/export_storage/s3/types/__init__.py +0 -6
- label_studio_sdk/export_storage/s3/types/s3create_response.py +0 -81
- label_studio_sdk/export_storage/s3/types/s3update_response.py +0 -81
- label_studio_sdk/import_storage/azure/types/__init__.py +0 -6
- label_studio_sdk/import_storage/azure/types/azure_create_response.py +0 -72
- label_studio_sdk/import_storage/azure/types/azure_update_response.py +0 -72
- label_studio_sdk/import_storage/gcs/types/__init__.py +0 -6
- label_studio_sdk/import_storage/gcs/types/gcs_create_response.py +0 -72
- label_studio_sdk/import_storage/gcs/types/gcs_update_response.py +0 -72
- label_studio_sdk/import_storage/local/types/__init__.py +0 -6
- label_studio_sdk/import_storage/local/types/local_create_response.py +0 -47
- label_studio_sdk/import_storage/local/types/local_update_response.py +0 -47
- label_studio_sdk/import_storage/redis/types/__init__.py +0 -6
- label_studio_sdk/import_storage/redis/types/redis_create_response.py +0 -62
- label_studio_sdk/import_storage/redis/types/redis_update_response.py +0 -62
- label_studio_sdk/import_storage/s3/types/__init__.py +0 -6
- label_studio_sdk/ml/types/ml_create_response.py +0 -68
- label_studio_sdk/ml/types/ml_create_response_auth_method.py +0 -5
- label_studio_sdk/ml/types/ml_update_response.py +0 -68
- label_studio_sdk/ml/types/ml_update_response_auth_method.py +0 -5
- label_studio_sdk/projects/exports/types/exports_list_formats_response_item.py +0 -44
- label_studio_sdk/projects/types/projects_create_response.py +0 -91
- label_studio_sdk/projects/types/projects_update_response.py +0 -96
- label_studio_sdk/prompts/types/prompts_batch_failed_predictions_request_failed_predictions_item.py +0 -32
- label_studio_sdk/prompts/types/prompts_batch_predictions_request_results_item.py +0 -59
- label_studio_sdk/tasks/types/tasks_list_response.py +0 -38
- label_studio_sdk/types/annotation_completed_by.py +0 -6
- label_studio_sdk/types/azure_blob_export_storage_status.py +0 -7
- label_studio_sdk/types/base_task_updated_by.py +0 -7
- label_studio_sdk/types/comment_created_by.py +0 -5
- label_studio_sdk/types/converted_format_status.py +0 -5
- label_studio_sdk/types/data_manager_task_serializer.py +0 -118
- label_studio_sdk/types/data_manager_task_serializer_annotators_item.py +0 -5
- label_studio_sdk/types/data_manager_task_serializer_comment_authors_item.py +0 -5
- label_studio_sdk/types/data_manager_task_serializer_predictions_item_model_run.py +0 -5
- label_studio_sdk/types/export_format.py +0 -25
- label_studio_sdk/types/export_snapshot_status.py +0 -5
- label_studio_sdk/types/export_status.py +0 -5
- label_studio_sdk/types/gcs_export_storage_status.py +0 -7
- label_studio_sdk/types/gcs_import_storage_status.py +0 -7
- label_studio_sdk/types/inference_run.py +0 -34
- label_studio_sdk/types/inference_run_created_by.py +0 -5
- label_studio_sdk/types/inference_run_organization.py +0 -5
- label_studio_sdk/types/inference_run_project_subset.py +0 -5
- label_studio_sdk/types/key_indicators.py +0 -6
- label_studio_sdk/types/key_indicators_item.py +0 -41
- label_studio_sdk/types/local_files_export_storage_status.py +0 -7
- label_studio_sdk/types/local_files_import_storage_status.py +0 -7
- label_studio_sdk/types/ml_backend_auth_method.py +0 -5
- label_studio_sdk/types/ml_backend_state.py +0 -5
- label_studio_sdk/types/model_provider_connection_created_by.py +0 -5
- label_studio_sdk/types/model_provider_connection_organization.py +0 -5
- label_studio_sdk/types/model_provider_connection_provider.py +0 -7
- label_studio_sdk/types/model_provider_connection_scope.py +0 -5
- label_studio_sdk/types/pause_paused_by.py +0 -5
- label_studio_sdk/types/project_import_status.py +0 -5
- label_studio_sdk/types/prompt.py +0 -71
- label_studio_sdk/types/prompt_associated_projects_item.py +0 -6
- label_studio_sdk/types/prompt_created_by.py +0 -5
- label_studio_sdk/types/prompt_organization.py +0 -5
- label_studio_sdk/types/prompt_version.py +0 -32
- label_studio_sdk/types/prompt_version_created_by.py +0 -5
- label_studio_sdk/types/prompt_version_organization.py +0 -5
- label_studio_sdk/types/redis_export_storage_status.py +0 -7
- label_studio_sdk/types/redis_import_storage_status.py +0 -7
- label_studio_sdk/types/refined_prompt_response_refinement_status.py +0 -7
- label_studio_sdk/types/s3export_storage_status.py +0 -7
- label_studio_sdk/types/s3import_storage_status.py +0 -7
- label_studio_sdk/types/s3s_export_storage.py +0 -73
- label_studio_sdk/types/s3s_import_storage_status.py +0 -7
- label_studio_sdk/types/task.py +0 -156
- label_studio_sdk/types/task_annotators_item.py +0 -5
- label_studio_sdk/types/task_comment_authors_item.py +0 -5
- label_studio_sdk/types/task_filter_options.py +0 -39
- label_studio_sdk/types/webhook_actions_item.py +0 -21
- label_studio_sdk/types/webhook_serializer_for_update_actions_item.py +0 -21
- label_studio_sdk/versions/types/__init__.py +0 -6
- label_studio_sdk/versions/types/versions_get_response.py +0 -73
- label_studio_sdk/versions/types/versions_get_response_edition.py +0 -5
- label_studio_sdk/workspaces/members/types/__init__.py +0 -6
- label_studio_sdk/workspaces/members/types/members_create_response.py +0 -22
- label_studio_sdk/workspaces/members/types/members_list_response_item.py +0 -22
- label_studio_sdk-1.0.20.dist-info/RECORD +0 -374
- {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"
|
|
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 ..
|
|
7
|
-
from ..core.
|
|
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.
|
|
11
|
-
from ..
|
|
12
|
-
from ..
|
|
13
|
-
from ..types.
|
|
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
|
|
25
|
+
def list(
|
|
26
|
+
self, *, ordering: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None
|
|
27
|
+
) -> typing.List[LseapiTokenList]:
|
|
26
28
|
"""
|
|
27
|
-
|
|
29
|
+
List all API tokens for the current user.
|
|
28
30
|
|
|
29
31
|
Parameters
|
|
30
32
|
----------
|
|
31
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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.
|
|
49
|
-
refresh="refresh",
|
|
50
|
-
)
|
|
51
|
+
client.tokens.list()
|
|
51
52
|
"""
|
|
52
53
|
_response = self._client_wrapper.httpx_client.request(
|
|
53
|
-
"api/token/
|
|
54
|
-
method="
|
|
55
|
-
|
|
56
|
-
"
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
75
|
+
def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> LseapiTokenCreate:
|
|
83
76
|
"""
|
|
84
|
-
|
|
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
|
-
|
|
94
|
-
|
|
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.
|
|
96
|
+
client.tokens.create()
|
|
104
97
|
"""
|
|
105
98
|
_response = self._client_wrapper.httpx_client.request(
|
|
106
|
-
"api/token",
|
|
107
|
-
method="
|
|
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
|
-
|
|
114
|
-
|
|
115
|
-
type_=
|
|
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
|
|
117
|
+
def blacklist(
|
|
118
|
+
self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None
|
|
119
|
+
) -> typing.Dict[str, typing.Optional[typing.Any]]:
|
|
125
120
|
"""
|
|
126
|
-
|
|
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
|
-
|
|
136
|
-
|
|
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.
|
|
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
|
-
|
|
156
|
-
|
|
157
|
-
type_=
|
|
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) ->
|
|
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
|
-
|
|
181
|
-
|
|
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
|
-
|
|
210
|
-
|
|
211
|
-
type_=
|
|
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) ->
|
|
235
|
+
def rotate(self, *, refresh: str, request_options: typing.Optional[RequestOptions] = None) -> TokenRotateResponse:
|
|
231
236
|
"""
|
|
232
|
-
|
|
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
|
-
|
|
245
|
-
|
|
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
|
-
|
|
274
|
-
|
|
275
|
-
type_=
|
|
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
|
-
|
|
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
|
|
303
|
+
async def list(
|
|
304
|
+
self, *, ordering: typing.Optional[str] = None, request_options: typing.Optional[RequestOptions] = None
|
|
305
|
+
) -> typing.List[LseapiTokenList]:
|
|
300
306
|
"""
|
|
301
|
-
|
|
307
|
+
List all API tokens for the current user.
|
|
302
308
|
|
|
303
309
|
Parameters
|
|
304
310
|
----------
|
|
305
|
-
|
|
306
|
-
|
|
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
|
-
|
|
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.
|
|
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/
|
|
336
|
-
method="
|
|
337
|
-
|
|
338
|
-
"
|
|
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
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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
|
|
361
|
+
async def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> LseapiTokenCreate:
|
|
365
362
|
"""
|
|
366
|
-
|
|
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
|
-
|
|
376
|
-
|
|
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.
|
|
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="
|
|
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
|
-
|
|
404
|
-
|
|
405
|
-
type_=
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
426
|
-
|
|
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.
|
|
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
|
-
|
|
454
|
-
|
|
455
|
-
type_=
|
|
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
|
-
) ->
|
|
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
|
-
|
|
481
|
-
|
|
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
|
-
|
|
518
|
-
|
|
519
|
-
type_=
|
|
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
|
-
) ->
|
|
549
|
+
) -> TokenRotateResponse:
|
|
541
550
|
"""
|
|
542
|
-
|
|
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
|
-
|
|
555
|
-
|
|
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
|
-
|
|
592
|
-
|
|
593
|
-
type_=
|
|
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
|
-
|
|
609
|
+
construct_type(
|
|
602
610
|
type_=typing.Optional[typing.Any], # type: ignore
|
|
603
611
|
object_=_response.json(),
|
|
604
612
|
),
|