label-studio-sdk 2.0.0__py3-none-any.whl → 2.0.2__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 (175) hide show
  1. label_studio_sdk/__init__.py +24 -0
  2. label_studio_sdk/actions/client.py +13 -13
  3. label_studio_sdk/actions/types/actions_list_response_item.py +3 -3
  4. label_studio_sdk/actions/types/actions_list_response_item_dialog.py +2 -2
  5. label_studio_sdk/annotations/client.py +441 -441
  6. label_studio_sdk/base_client.py +4 -0
  7. label_studio_sdk/billing/__init__.py +2 -0
  8. label_studio_sdk/billing/client.py +112 -0
  9. label_studio_sdk/comments/client.py +176 -176
  10. label_studio_sdk/export_storage/azure/client.py +274 -274
  11. label_studio_sdk/export_storage/gcs/client.py +263 -263
  12. label_studio_sdk/export_storage/local/client.py +206 -206
  13. label_studio_sdk/export_storage/redis/client.py +287 -287
  14. label_studio_sdk/export_storage/s3/client.py +347 -347
  15. label_studio_sdk/export_storage/s3s/client.py +678 -678
  16. label_studio_sdk/import_storage/azure/client.py +357 -357
  17. label_studio_sdk/import_storage/gcs/client.py +357 -357
  18. label_studio_sdk/import_storage/local/client.py +206 -206
  19. label_studio_sdk/import_storage/redis/client.py +309 -309
  20. label_studio_sdk/import_storage/s3/client.py +452 -452
  21. label_studio_sdk/import_storage/s3s/client.py +735 -735
  22. label_studio_sdk/jwt_settings/client.py +10 -10
  23. label_studio_sdk/ml/client.py +118 -118
  24. label_studio_sdk/ml/types/ml_list_model_versions_response.py +1 -1
  25. label_studio_sdk/model_providers/client.py +181 -181
  26. label_studio_sdk/organizations/members/client.py +348 -2
  27. label_studio_sdk/predictions/client.py +60 -60
  28. label_studio_sdk/projects/__init__.py +30 -1
  29. label_studio_sdk/projects/assignments/__init__.py +33 -0
  30. label_studio_sdk/projects/assignments/client.py +764 -0
  31. label_studio_sdk/projects/assignments/types/__init__.py +35 -0
  32. label_studio_sdk/projects/assignments/types/assignments_assign_request_type.py +5 -0
  33. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters.py +33 -0
  34. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_conjunction.py +5 -0
  35. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item.py +44 -0
  36. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item_filter.py +31 -0
  37. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item_operator.py +23 -0
  38. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item_value.py +7 -0
  39. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_selected_items.py +9 -0
  40. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_selected_items_excluded.py +29 -0
  41. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_selected_items_included.py +29 -0
  42. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_type.py +5 -0
  43. label_studio_sdk/projects/assignments/types/assignments_bulk_assign_response.py +22 -0
  44. label_studio_sdk/projects/assignments/types/assignments_update_request_type.py +5 -0
  45. label_studio_sdk/projects/client.py +441 -425
  46. label_studio_sdk/projects/exports/client.py +55 -55
  47. label_studio_sdk/projects/exports/types/exports_convert_response.py +1 -1
  48. label_studio_sdk/projects/stats/types/stats_iaa_response.py +5 -5
  49. label_studio_sdk/projects/types/projects_import_tasks_response.py +12 -12
  50. label_studio_sdk/prompts/client.py +211 -211
  51. label_studio_sdk/prompts/runs/client.py +33 -33
  52. label_studio_sdk/prompts/versions/client.py +72 -72
  53. label_studio_sdk/tasks/client.py +174 -174
  54. label_studio_sdk/types/__init__.py +22 -0
  55. label_studio_sdk/types/all_roles_project_list.py +98 -98
  56. label_studio_sdk/types/annotation.py +35 -35
  57. label_studio_sdk/types/annotation_request.py +27 -27
  58. label_studio_sdk/types/azure_blob_export_storage.py +29 -29
  59. label_studio_sdk/types/azure_blob_import_storage.py +33 -33
  60. label_studio_sdk/types/batch_failed_predictions.py +1 -1
  61. label_studio_sdk/types/billing_checks.py +39 -0
  62. label_studio_sdk/types/billing_flags.py +44 -0
  63. label_studio_sdk/types/billing_info_response.py +22 -0
  64. label_studio_sdk/types/blueprint_list.py +7 -8
  65. label_studio_sdk/types/child_filter.py +11 -10
  66. label_studio_sdk/types/comment.py +15 -15
  67. label_studio_sdk/types/comment_request.py +7 -8
  68. label_studio_sdk/types/comment_serializer_with_expanded_user.py +17 -18
  69. label_studio_sdk/types/converted_format.py +1 -1
  70. label_studio_sdk/types/converted_format_request.py +1 -1
  71. label_studio_sdk/types/count_limit.py +22 -0
  72. label_studio_sdk/types/export.py +8 -8
  73. label_studio_sdk/types/file_upload.py +3 -2
  74. label_studio_sdk/types/filter.py +10 -9
  75. label_studio_sdk/types/filter_group.py +4 -3
  76. label_studio_sdk/types/gcs_export_storage.py +23 -23
  77. label_studio_sdk/types/gcs_import_storage.py +27 -27
  78. label_studio_sdk/types/import_api_request.py +26 -26
  79. label_studio_sdk/types/inference_run_cost_estimate.py +10 -10
  80. label_studio_sdk/types/local_files_export_storage.py +23 -23
  81. label_studio_sdk/types/local_files_import_storage.py +26 -26
  82. label_studio_sdk/types/lse_annotation_filter_options.py +10 -10
  83. label_studio_sdk/types/lse_annotation_filter_options_request.py +10 -10
  84. label_studio_sdk/types/lse_export_create.py +12 -12
  85. label_studio_sdk/types/lse_fields.py +14 -14
  86. label_studio_sdk/types/lse_organization.py +17 -17
  87. label_studio_sdk/types/lse_organization_member_list.py +32 -0
  88. label_studio_sdk/types/lse_project_create.py +72 -72
  89. label_studio_sdk/types/lse_project_update.py +89 -89
  90. label_studio_sdk/types/lse_s3export_storage.py +46 -46
  91. label_studio_sdk/types/lse_s3export_storage_request.py +43 -43
  92. label_studio_sdk/types/lse_s3import_storage.py +53 -53
  93. label_studio_sdk/types/lse_s3import_storage_request.py +49 -49
  94. label_studio_sdk/types/lse_task.py +49 -49
  95. label_studio_sdk/types/lse_task_drafts_item.py +1 -1
  96. label_studio_sdk/types/lse_task_filter_options.py +14 -14
  97. label_studio_sdk/types/lse_task_filter_options_request.py +14 -14
  98. label_studio_sdk/types/lse_task_predictions_item.py +5 -5
  99. label_studio_sdk/types/lse_task_serializer_for_annotators.py +12 -12
  100. label_studio_sdk/types/lse_task_serializer_for_annotators_drafts_item.py +1 -1
  101. label_studio_sdk/types/lse_task_serializer_for_annotators_predictions_item.py +5 -5
  102. label_studio_sdk/types/lse_task_serializer_for_reviewers.py +49 -49
  103. label_studio_sdk/types/lse_task_serializer_for_reviewers_drafts_item.py +1 -1
  104. label_studio_sdk/types/lse_task_serializer_for_reviewers_predictions_item.py +5 -5
  105. label_studio_sdk/types/lse_user.py +13 -13
  106. label_studio_sdk/types/lse_user_api.py +11 -11
  107. label_studio_sdk/types/lse_user_organization_member_list.py +48 -0
  108. label_studio_sdk/types/lseapi_token_create.py +1 -1
  109. label_studio_sdk/types/lseapi_token_list.py +1 -1
  110. label_studio_sdk/types/lsejwt_settings.py +5 -5
  111. label_studio_sdk/types/ml_backend.py +27 -28
  112. label_studio_sdk/types/model_interface.py +12 -12
  113. label_studio_sdk/types/model_interface_request.py +7 -8
  114. label_studio_sdk/types/model_interface_serializer_get.py +13 -13
  115. label_studio_sdk/types/model_provider_connection.py +34 -34
  116. label_studio_sdk/types/model_provider_connection_request.py +15 -14
  117. label_studio_sdk/types/model_run.py +12 -12
  118. label_studio_sdk/types/organization_billing.py +1 -1
  119. label_studio_sdk/types/organization_id.py +2 -2
  120. label_studio_sdk/types/organization_invite.py +1 -1
  121. label_studio_sdk/types/organization_member.py +8 -9
  122. label_studio_sdk/types/organization_membership.py +2 -1
  123. label_studio_sdk/types/paginated_lse_organization_member_list_list.py +23 -0
  124. label_studio_sdk/types/pause.py +23 -23
  125. label_studio_sdk/types/prediction.py +21 -21
  126. label_studio_sdk/types/prediction_request.py +16 -16
  127. label_studio_sdk/types/project.py +72 -72
  128. label_studio_sdk/types/project_import.py +21 -21
  129. label_studio_sdk/types/prompts_status_enum.py +16 -0
  130. label_studio_sdk/types/redis_export_storage.py +34 -34
  131. label_studio_sdk/types/redis_import_storage.py +37 -37
  132. label_studio_sdk/types/refined_prompt_response.py +11 -11
  133. label_studio_sdk/types/review_settings.py +29 -30
  134. label_studio_sdk/types/review_settings_request.py +29 -30
  135. label_studio_sdk/types/role9e7enum.py +5 -0
  136. label_studio_sdk/types/s3export_storage.py +45 -45
  137. label_studio_sdk/types/s3import_storage.py +44 -44
  138. label_studio_sdk/types/selected_items_request.py +1 -1
  139. label_studio_sdk/types/serialization_options.py +10 -10
  140. label_studio_sdk/types/serialization_options_request.py +10 -10
  141. label_studio_sdk/types/task_assignment.py +43 -0
  142. label_studio_sdk/types/third_party_model_version.py +11 -11
  143. label_studio_sdk/types/third_party_model_version_request.py +6 -7
  144. label_studio_sdk/types/type_enum.py +5 -0
  145. label_studio_sdk/types/user_simple.py +3 -3
  146. label_studio_sdk/types/user_simple_request.py +1 -1
  147. label_studio_sdk/types/version_response.py +19 -20
  148. label_studio_sdk/types/view.py +8 -8
  149. label_studio_sdk/types/webhook.py +16 -16
  150. label_studio_sdk/types/webhook_serializer_for_update.py +16 -16
  151. label_studio_sdk/types/workspace.py +10 -11
  152. label_studio_sdk/users/client.py +160 -160
  153. label_studio_sdk/views/client.py +164 -164
  154. label_studio_sdk/webhooks/client.py +183 -183
  155. label_studio_sdk/webhooks/types/webhooks_info_response.py +32 -32
  156. label_studio_sdk/webhooks/types/webhooks_info_response_annotation_created.py +1 -1
  157. label_studio_sdk/webhooks/types/webhooks_info_response_annotation_updated.py +1 -1
  158. label_studio_sdk/webhooks/types/webhooks_info_response_annotations_created.py +1 -1
  159. label_studio_sdk/webhooks/types/webhooks_info_response_annotations_deleted.py +1 -1
  160. label_studio_sdk/webhooks/types/webhooks_info_response_label_link_created.py +1 -1
  161. label_studio_sdk/webhooks/types/webhooks_info_response_label_link_deleted.py +1 -1
  162. label_studio_sdk/webhooks/types/webhooks_info_response_label_link_updated.py +1 -1
  163. label_studio_sdk/webhooks/types/webhooks_info_response_project_created.py +1 -1
  164. label_studio_sdk/webhooks/types/webhooks_info_response_project_deleted.py +1 -1
  165. label_studio_sdk/webhooks/types/webhooks_info_response_project_updated.py +1 -1
  166. label_studio_sdk/webhooks/types/webhooks_info_response_review_created.py +1 -1
  167. label_studio_sdk/webhooks/types/webhooks_info_response_review_updated.py +1 -1
  168. label_studio_sdk/webhooks/types/webhooks_info_response_reviews_deleted.py +1 -1
  169. label_studio_sdk/webhooks/types/webhooks_info_response_tasks_created.py +1 -1
  170. label_studio_sdk/webhooks/types/webhooks_info_response_tasks_deleted.py +1 -1
  171. label_studio_sdk/workspaces/client.py +40 -40
  172. {label_studio_sdk-2.0.0.dist-info → label_studio_sdk-2.0.2.dist-info}/METADATA +73 -25
  173. {label_studio_sdk-2.0.0.dist-info → label_studio_sdk-2.0.2.dist-info}/RECORD +175 -146
  174. {label_studio_sdk-2.0.0.dist-info → label_studio_sdk-2.0.2.dist-info}/LICENSE +0 -0
  175. {label_studio_sdk-2.0.0.dist-info → label_studio_sdk-2.0.2.dist-info}/WHEEL +0 -0
@@ -8,9 +8,9 @@ from ..core.unchecked_base_model import construct_type
8
8
  from json.decoder import JSONDecodeError
9
9
  from ..core.api_error import ApiError
10
10
  from ..types.actions_enum import ActionsEnum
11
+ from .types.webhooks_info_response import WebhooksInfoResponse
11
12
  from ..core.jsonable_encoder import jsonable_encoder
12
13
  from ..types.webhook_serializer_for_update import WebhookSerializerForUpdate
13
- from .types.webhooks_info_response import WebhooksInfoResponse
14
14
  from ..core.client_wrapper import AsyncClientWrapper
15
15
 
16
16
  # this is used as the default value for optional parameters
@@ -75,12 +75,12 @@ class WebhooksClient:
75
75
  self,
76
76
  *,
77
77
  url: str,
78
- project: typing.Optional[int] = OMIT,
79
- send_payload: typing.Optional[bool] = OMIT,
80
- send_for_all_actions: typing.Optional[bool] = OMIT,
78
+ actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
81
79
  headers: typing.Optional[typing.Optional[typing.Any]] = OMIT,
82
80
  is_active: typing.Optional[bool] = OMIT,
83
- actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
81
+ project: typing.Optional[int] = OMIT,
82
+ send_for_all_actions: typing.Optional[bool] = OMIT,
83
+ send_payload: typing.Optional[bool] = OMIT,
84
84
  request_options: typing.Optional[RequestOptions] = None,
85
85
  ) -> Webhook:
86
86
  """
@@ -91,20 +91,20 @@ class WebhooksClient:
91
91
  url : str
92
92
  URL of webhook
93
93
 
94
- project : typing.Optional[int]
95
-
96
- send_payload : typing.Optional[bool]
97
- If value is False send only action
98
-
99
- send_for_all_actions : typing.Optional[bool]
100
- If value is False - used only for actions from WebhookAction
94
+ actions : typing.Optional[typing.Sequence[ActionsEnum]]
101
95
 
102
96
  headers : typing.Optional[typing.Optional[typing.Any]]
103
97
 
104
98
  is_active : typing.Optional[bool]
105
99
  If value is False the webhook is disabled
106
100
 
107
- actions : typing.Optional[typing.Sequence[ActionsEnum]]
101
+ project : typing.Optional[int]
102
+
103
+ send_for_all_actions : typing.Optional[bool]
104
+ If value is False - used only for actions from WebhookAction
105
+
106
+ send_payload : typing.Optional[bool]
107
+ If value is False send only action
108
108
 
109
109
  request_options : typing.Optional[RequestOptions]
110
110
  Request-specific configuration.
@@ -129,13 +129,13 @@ class WebhooksClient:
129
129
  "api/webhooks/",
130
130
  method="POST",
131
131
  json={
132
- "project": project,
133
- "url": url,
134
- "send_payload": send_payload,
135
- "send_for_all_actions": send_for_all_actions,
132
+ "actions": actions,
136
133
  "headers": headers,
137
134
  "is_active": is_active,
138
- "actions": actions,
135
+ "project": project,
136
+ "send_for_all_actions": send_for_all_actions,
137
+ "send_payload": send_payload,
138
+ "url": url,
139
139
  },
140
140
  headers={
141
141
  "content-type": "application/json",
@@ -157,6 +157,59 @@ class WebhooksClient:
157
157
  raise ApiError(status_code=_response.status_code, body=_response.text)
158
158
  raise ApiError(status_code=_response.status_code, body=_response_json)
159
159
 
160
+ def info(
161
+ self,
162
+ *,
163
+ organization_only: typing.Optional[bool] = None,
164
+ request_options: typing.Optional[RequestOptions] = None,
165
+ ) -> WebhooksInfoResponse:
166
+ """
167
+ Get descriptions of all available webhook actions to set up webhooks.
168
+
169
+ Parameters
170
+ ----------
171
+ organization_only : typing.Optional[bool]
172
+ organization-only or not
173
+
174
+ request_options : typing.Optional[RequestOptions]
175
+ Request-specific configuration.
176
+
177
+ Returns
178
+ -------
179
+ WebhooksInfoResponse
180
+ Object with webhook action descriptions.
181
+
182
+ Examples
183
+ --------
184
+ from label_studio_sdk import LabelStudio
185
+
186
+ client = LabelStudio(
187
+ api_key="YOUR_API_KEY",
188
+ )
189
+ client.webhooks.info()
190
+ """
191
+ _response = self._client_wrapper.httpx_client.request(
192
+ "api/webhooks/info/",
193
+ method="GET",
194
+ params={
195
+ "organization-only": organization_only,
196
+ },
197
+ request_options=request_options,
198
+ )
199
+ try:
200
+ if 200 <= _response.status_code < 300:
201
+ return typing.cast(
202
+ WebhooksInfoResponse,
203
+ construct_type(
204
+ type_=WebhooksInfoResponse, # type: ignore
205
+ object_=_response.json(),
206
+ ),
207
+ )
208
+ _response_json = _response.json()
209
+ except JSONDecodeError:
210
+ raise ApiError(status_code=_response.status_code, body=_response.text)
211
+ raise ApiError(status_code=_response.status_code, body=_response_json)
212
+
160
213
  def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> Webhook:
161
214
  """
162
215
  Parameters
@@ -242,12 +295,12 @@ class WebhooksClient:
242
295
  self,
243
296
  id: int,
244
297
  *,
245
- url: typing.Optional[str] = OMIT,
246
- send_payload: typing.Optional[bool] = OMIT,
247
- send_for_all_actions: typing.Optional[bool] = OMIT,
298
+ actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
248
299
  headers: typing.Optional[typing.Optional[typing.Any]] = OMIT,
249
300
  is_active: typing.Optional[bool] = OMIT,
250
- actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
301
+ send_for_all_actions: typing.Optional[bool] = OMIT,
302
+ send_payload: typing.Optional[bool] = OMIT,
303
+ url: typing.Optional[str] = OMIT,
251
304
  request_options: typing.Optional[RequestOptions] = None,
252
305
  ) -> WebhookSerializerForUpdate:
253
306
  """
@@ -255,21 +308,21 @@ class WebhooksClient:
255
308
  ----------
256
309
  id : int
257
310
 
258
- url : typing.Optional[str]
259
- URL of webhook
260
-
261
- send_payload : typing.Optional[bool]
262
- If value is False send only action
263
-
264
- send_for_all_actions : typing.Optional[bool]
265
- If value is False - used only for actions from WebhookAction
311
+ actions : typing.Optional[typing.Sequence[ActionsEnum]]
266
312
 
267
313
  headers : typing.Optional[typing.Optional[typing.Any]]
268
314
 
269
315
  is_active : typing.Optional[bool]
270
316
  If value is False the webhook is disabled
271
317
 
272
- actions : typing.Optional[typing.Sequence[ActionsEnum]]
318
+ send_for_all_actions : typing.Optional[bool]
319
+ If value is False - used only for actions from WebhookAction
320
+
321
+ send_payload : typing.Optional[bool]
322
+ If value is False send only action
323
+
324
+ url : typing.Optional[str]
325
+ URL of webhook
273
326
 
274
327
  request_options : typing.Optional[RequestOptions]
275
328
  Request-specific configuration.
@@ -294,12 +347,12 @@ class WebhooksClient:
294
347
  f"api/webhooks/{jsonable_encoder(id)}/",
295
348
  method="PATCH",
296
349
  json={
297
- "url": url,
298
- "send_payload": send_payload,
299
- "send_for_all_actions": send_for_all_actions,
350
+ "actions": actions,
300
351
  "headers": headers,
301
352
  "is_active": is_active,
302
- "actions": actions,
353
+ "send_for_all_actions": send_for_all_actions,
354
+ "send_payload": send_payload,
355
+ "url": url,
303
356
  },
304
357
  headers={
305
358
  "content-type": "application/json",
@@ -321,59 +374,6 @@ class WebhooksClient:
321
374
  raise ApiError(status_code=_response.status_code, body=_response.text)
322
375
  raise ApiError(status_code=_response.status_code, body=_response_json)
323
376
 
324
- def info(
325
- self,
326
- *,
327
- organization_only: typing.Optional[bool] = None,
328
- request_options: typing.Optional[RequestOptions] = None,
329
- ) -> WebhooksInfoResponse:
330
- """
331
- Get descriptions of all available webhook actions to set up webhooks.
332
-
333
- Parameters
334
- ----------
335
- organization_only : typing.Optional[bool]
336
- organization-only or not
337
-
338
- request_options : typing.Optional[RequestOptions]
339
- Request-specific configuration.
340
-
341
- Returns
342
- -------
343
- WebhooksInfoResponse
344
- Object with webhook action descriptions.
345
-
346
- Examples
347
- --------
348
- from label_studio_sdk import LabelStudio
349
-
350
- client = LabelStudio(
351
- api_key="YOUR_API_KEY",
352
- )
353
- client.webhooks.info()
354
- """
355
- _response = self._client_wrapper.httpx_client.request(
356
- "api/webhooks/info/",
357
- method="GET",
358
- params={
359
- "organization-only": organization_only,
360
- },
361
- request_options=request_options,
362
- )
363
- try:
364
- if 200 <= _response.status_code < 300:
365
- return typing.cast(
366
- WebhooksInfoResponse,
367
- construct_type(
368
- type_=WebhooksInfoResponse, # type: ignore
369
- object_=_response.json(),
370
- ),
371
- )
372
- _response_json = _response.json()
373
- except JSONDecodeError:
374
- raise ApiError(status_code=_response.status_code, body=_response.text)
375
- raise ApiError(status_code=_response.status_code, body=_response_json)
376
-
377
377
 
378
378
  class AsyncWebhooksClient:
379
379
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -441,12 +441,12 @@ class AsyncWebhooksClient:
441
441
  self,
442
442
  *,
443
443
  url: str,
444
- project: typing.Optional[int] = OMIT,
445
- send_payload: typing.Optional[bool] = OMIT,
446
- send_for_all_actions: typing.Optional[bool] = OMIT,
444
+ actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
447
445
  headers: typing.Optional[typing.Optional[typing.Any]] = OMIT,
448
446
  is_active: typing.Optional[bool] = OMIT,
449
- actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
447
+ project: typing.Optional[int] = OMIT,
448
+ send_for_all_actions: typing.Optional[bool] = OMIT,
449
+ send_payload: typing.Optional[bool] = OMIT,
450
450
  request_options: typing.Optional[RequestOptions] = None,
451
451
  ) -> Webhook:
452
452
  """
@@ -457,20 +457,20 @@ class AsyncWebhooksClient:
457
457
  url : str
458
458
  URL of webhook
459
459
 
460
- project : typing.Optional[int]
461
-
462
- send_payload : typing.Optional[bool]
463
- If value is False send only action
464
-
465
- send_for_all_actions : typing.Optional[bool]
466
- If value is False - used only for actions from WebhookAction
460
+ actions : typing.Optional[typing.Sequence[ActionsEnum]]
467
461
 
468
462
  headers : typing.Optional[typing.Optional[typing.Any]]
469
463
 
470
464
  is_active : typing.Optional[bool]
471
465
  If value is False the webhook is disabled
472
466
 
473
- actions : typing.Optional[typing.Sequence[ActionsEnum]]
467
+ project : typing.Optional[int]
468
+
469
+ send_for_all_actions : typing.Optional[bool]
470
+ If value is False - used only for actions from WebhookAction
471
+
472
+ send_payload : typing.Optional[bool]
473
+ If value is False send only action
474
474
 
475
475
  request_options : typing.Optional[RequestOptions]
476
476
  Request-specific configuration.
@@ -503,13 +503,13 @@ class AsyncWebhooksClient:
503
503
  "api/webhooks/",
504
504
  method="POST",
505
505
  json={
506
- "project": project,
507
- "url": url,
508
- "send_payload": send_payload,
509
- "send_for_all_actions": send_for_all_actions,
506
+ "actions": actions,
510
507
  "headers": headers,
511
508
  "is_active": is_active,
512
- "actions": actions,
509
+ "project": project,
510
+ "send_for_all_actions": send_for_all_actions,
511
+ "send_payload": send_payload,
512
+ "url": url,
513
513
  },
514
514
  headers={
515
515
  "content-type": "application/json",
@@ -531,6 +531,67 @@ class AsyncWebhooksClient:
531
531
  raise ApiError(status_code=_response.status_code, body=_response.text)
532
532
  raise ApiError(status_code=_response.status_code, body=_response_json)
533
533
 
534
+ async def info(
535
+ self,
536
+ *,
537
+ organization_only: typing.Optional[bool] = None,
538
+ request_options: typing.Optional[RequestOptions] = None,
539
+ ) -> WebhooksInfoResponse:
540
+ """
541
+ Get descriptions of all available webhook actions to set up webhooks.
542
+
543
+ Parameters
544
+ ----------
545
+ organization_only : typing.Optional[bool]
546
+ organization-only or not
547
+
548
+ request_options : typing.Optional[RequestOptions]
549
+ Request-specific configuration.
550
+
551
+ Returns
552
+ -------
553
+ WebhooksInfoResponse
554
+ Object with webhook action descriptions.
555
+
556
+ Examples
557
+ --------
558
+ import asyncio
559
+
560
+ from label_studio_sdk import AsyncLabelStudio
561
+
562
+ client = AsyncLabelStudio(
563
+ api_key="YOUR_API_KEY",
564
+ )
565
+
566
+
567
+ async def main() -> None:
568
+ await client.webhooks.info()
569
+
570
+
571
+ asyncio.run(main())
572
+ """
573
+ _response = await self._client_wrapper.httpx_client.request(
574
+ "api/webhooks/info/",
575
+ method="GET",
576
+ params={
577
+ "organization-only": organization_only,
578
+ },
579
+ request_options=request_options,
580
+ )
581
+ try:
582
+ if 200 <= _response.status_code < 300:
583
+ return typing.cast(
584
+ WebhooksInfoResponse,
585
+ construct_type(
586
+ type_=WebhooksInfoResponse, # type: ignore
587
+ object_=_response.json(),
588
+ ),
589
+ )
590
+ _response_json = _response.json()
591
+ except JSONDecodeError:
592
+ raise ApiError(status_code=_response.status_code, body=_response.text)
593
+ raise ApiError(status_code=_response.status_code, body=_response_json)
594
+
534
595
  async def get(self, id: int, *, request_options: typing.Optional[RequestOptions] = None) -> Webhook:
535
596
  """
536
597
  Parameters
@@ -632,12 +693,12 @@ class AsyncWebhooksClient:
632
693
  self,
633
694
  id: int,
634
695
  *,
635
- url: typing.Optional[str] = OMIT,
636
- send_payload: typing.Optional[bool] = OMIT,
637
- send_for_all_actions: typing.Optional[bool] = OMIT,
696
+ actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
638
697
  headers: typing.Optional[typing.Optional[typing.Any]] = OMIT,
639
698
  is_active: typing.Optional[bool] = OMIT,
640
- actions: typing.Optional[typing.Sequence[ActionsEnum]] = OMIT,
699
+ send_for_all_actions: typing.Optional[bool] = OMIT,
700
+ send_payload: typing.Optional[bool] = OMIT,
701
+ url: typing.Optional[str] = OMIT,
641
702
  request_options: typing.Optional[RequestOptions] = None,
642
703
  ) -> WebhookSerializerForUpdate:
643
704
  """
@@ -645,21 +706,21 @@ class AsyncWebhooksClient:
645
706
  ----------
646
707
  id : int
647
708
 
648
- url : typing.Optional[str]
649
- URL of webhook
650
-
651
- send_payload : typing.Optional[bool]
652
- If value is False send only action
653
-
654
- send_for_all_actions : typing.Optional[bool]
655
- If value is False - used only for actions from WebhookAction
709
+ actions : typing.Optional[typing.Sequence[ActionsEnum]]
656
710
 
657
711
  headers : typing.Optional[typing.Optional[typing.Any]]
658
712
 
659
713
  is_active : typing.Optional[bool]
660
714
  If value is False the webhook is disabled
661
715
 
662
- actions : typing.Optional[typing.Sequence[ActionsEnum]]
716
+ send_for_all_actions : typing.Optional[bool]
717
+ If value is False - used only for actions from WebhookAction
718
+
719
+ send_payload : typing.Optional[bool]
720
+ If value is False send only action
721
+
722
+ url : typing.Optional[str]
723
+ URL of webhook
663
724
 
664
725
  request_options : typing.Optional[RequestOptions]
665
726
  Request-specific configuration.
@@ -692,12 +753,12 @@ class AsyncWebhooksClient:
692
753
  f"api/webhooks/{jsonable_encoder(id)}/",
693
754
  method="PATCH",
694
755
  json={
695
- "url": url,
696
- "send_payload": send_payload,
697
- "send_for_all_actions": send_for_all_actions,
756
+ "actions": actions,
698
757
  "headers": headers,
699
758
  "is_active": is_active,
700
- "actions": actions,
759
+ "send_for_all_actions": send_for_all_actions,
760
+ "send_payload": send_payload,
761
+ "url": url,
701
762
  },
702
763
  headers={
703
764
  "content-type": "application/json",
@@ -718,64 +779,3 @@ class AsyncWebhooksClient:
718
779
  except JSONDecodeError:
719
780
  raise ApiError(status_code=_response.status_code, body=_response.text)
720
781
  raise ApiError(status_code=_response.status_code, body=_response_json)
721
-
722
- async def info(
723
- self,
724
- *,
725
- organization_only: typing.Optional[bool] = None,
726
- request_options: typing.Optional[RequestOptions] = None,
727
- ) -> WebhooksInfoResponse:
728
- """
729
- Get descriptions of all available webhook actions to set up webhooks.
730
-
731
- Parameters
732
- ----------
733
- organization_only : typing.Optional[bool]
734
- organization-only or not
735
-
736
- request_options : typing.Optional[RequestOptions]
737
- Request-specific configuration.
738
-
739
- Returns
740
- -------
741
- WebhooksInfoResponse
742
- Object with webhook action descriptions.
743
-
744
- Examples
745
- --------
746
- import asyncio
747
-
748
- from label_studio_sdk import AsyncLabelStudio
749
-
750
- client = AsyncLabelStudio(
751
- api_key="YOUR_API_KEY",
752
- )
753
-
754
-
755
- async def main() -> None:
756
- await client.webhooks.info()
757
-
758
-
759
- asyncio.run(main())
760
- """
761
- _response = await self._client_wrapper.httpx_client.request(
762
- "api/webhooks/info/",
763
- method="GET",
764
- params={
765
- "organization-only": organization_only,
766
- },
767
- request_options=request_options,
768
- )
769
- try:
770
- if 200 <= _response.status_code < 300:
771
- return typing.cast(
772
- WebhooksInfoResponse,
773
- construct_type(
774
- type_=WebhooksInfoResponse, # type: ignore
775
- object_=_response.json(),
776
- ),
777
- )
778
- _response_json = _response.json()
779
- except JSONDecodeError:
780
- raise ApiError(status_code=_response.status_code, body=_response.text)
781
- raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -3,62 +3,59 @@
3
3
  from ...core.unchecked_base_model import UncheckedBaseModel
4
4
  import typing_extensions
5
5
  import typing
6
- from .webhooks_info_response_project_created import WebhooksInfoResponseProjectCreated
6
+ from .webhooks_info_response_annotations_created import WebhooksInfoResponseAnnotationsCreated
7
7
  from ...core.serialization import FieldMetadata
8
- from .webhooks_info_response_project_updated import WebhooksInfoResponseProjectUpdated
9
- from .webhooks_info_response_project_deleted import WebhooksInfoResponseProjectDeleted
10
- from .webhooks_info_response_tasks_created import WebhooksInfoResponseTasksCreated
11
- from .webhooks_info_response_tasks_deleted import WebhooksInfoResponseTasksDeleted
8
+ from .webhooks_info_response_annotations_deleted import WebhooksInfoResponseAnnotationsDeleted
12
9
  from .webhooks_info_response_annotation_created import WebhooksInfoResponseAnnotationCreated
13
- from .webhooks_info_response_annotations_created import WebhooksInfoResponseAnnotationsCreated
14
10
  from .webhooks_info_response_annotation_updated import WebhooksInfoResponseAnnotationUpdated
15
- from .webhooks_info_response_annotations_deleted import WebhooksInfoResponseAnnotationsDeleted
16
11
  from .webhooks_info_response_label_link_created import WebhooksInfoResponseLabelLinkCreated
17
- from .webhooks_info_response_label_link_updated import WebhooksInfoResponseLabelLinkUpdated
18
12
  from .webhooks_info_response_label_link_deleted import WebhooksInfoResponseLabelLinkDeleted
13
+ from .webhooks_info_response_label_link_updated import WebhooksInfoResponseLabelLinkUpdated
14
+ from .webhooks_info_response_project_created import WebhooksInfoResponseProjectCreated
15
+ from .webhooks_info_response_project_deleted import WebhooksInfoResponseProjectDeleted
16
+ from .webhooks_info_response_project_updated import WebhooksInfoResponseProjectUpdated
17
+ from .webhooks_info_response_reviews_deleted import WebhooksInfoResponseReviewsDeleted
19
18
  from .webhooks_info_response_review_created import WebhooksInfoResponseReviewCreated
20
19
  from .webhooks_info_response_review_updated import WebhooksInfoResponseReviewUpdated
21
- from .webhooks_info_response_reviews_deleted import WebhooksInfoResponseReviewsDeleted
20
+ from .webhooks_info_response_tasks_created import WebhooksInfoResponseTasksCreated
21
+ from .webhooks_info_response_tasks_deleted import WebhooksInfoResponseTasksDeleted
22
22
  from ...core.pydantic_utilities import IS_PYDANTIC_V2
23
23
  import pydantic
24
24
 
25
25
 
26
26
  class WebhooksInfoResponse(UncheckedBaseModel):
27
- project_created: typing_extensions.Annotated[
28
- typing.Optional[WebhooksInfoResponseProjectCreated], FieldMetadata(alias="PROJECT_CREATED")
29
- ] = None
30
- project_updated: typing_extensions.Annotated[
31
- typing.Optional[WebhooksInfoResponseProjectUpdated], FieldMetadata(alias="PROJECT_UPDATED")
32
- ] = None
33
- project_deleted: typing_extensions.Annotated[
34
- typing.Optional[WebhooksInfoResponseProjectDeleted], FieldMetadata(alias="PROJECT_DELETED")
35
- ] = None
36
- tasks_created: typing_extensions.Annotated[
37
- typing.Optional[WebhooksInfoResponseTasksCreated], FieldMetadata(alias="TASKS_CREATED")
27
+ annotations_created: typing_extensions.Annotated[
28
+ typing.Optional[WebhooksInfoResponseAnnotationsCreated], FieldMetadata(alias="ANNOTATIONS_CREATED")
38
29
  ] = None
39
- tasks_deleted: typing_extensions.Annotated[
40
- typing.Optional[WebhooksInfoResponseTasksDeleted], FieldMetadata(alias="TASKS_DELETED")
30
+ annotations_deleted: typing_extensions.Annotated[
31
+ typing.Optional[WebhooksInfoResponseAnnotationsDeleted], FieldMetadata(alias="ANNOTATIONS_DELETED")
41
32
  ] = None
42
33
  annotation_created: typing_extensions.Annotated[
43
34
  typing.Optional[WebhooksInfoResponseAnnotationCreated], FieldMetadata(alias="ANNOTATION_CREATED")
44
35
  ] = None
45
- annotations_created: typing_extensions.Annotated[
46
- typing.Optional[WebhooksInfoResponseAnnotationsCreated], FieldMetadata(alias="ANNOTATIONS_CREATED")
47
- ] = None
48
36
  annotation_updated: typing_extensions.Annotated[
49
37
  typing.Optional[WebhooksInfoResponseAnnotationUpdated], FieldMetadata(alias="ANNOTATION_UPDATED")
50
38
  ] = None
51
- annotations_deleted: typing_extensions.Annotated[
52
- typing.Optional[WebhooksInfoResponseAnnotationsDeleted], FieldMetadata(alias="ANNOTATIONS_DELETED")
53
- ] = None
54
39
  label_link_created: typing_extensions.Annotated[
55
40
  typing.Optional[WebhooksInfoResponseLabelLinkCreated], FieldMetadata(alias="LABEL_LINK_CREATED")
56
41
  ] = None
42
+ label_link_deleted: typing_extensions.Annotated[
43
+ typing.Optional[WebhooksInfoResponseLabelLinkDeleted], FieldMetadata(alias="LABEL_LINK_DELETED")
44
+ ] = None
57
45
  label_link_updated: typing_extensions.Annotated[
58
46
  typing.Optional[WebhooksInfoResponseLabelLinkUpdated], FieldMetadata(alias="LABEL_LINK_UPDATED")
59
47
  ] = None
60
- label_link_deleted: typing_extensions.Annotated[
61
- typing.Optional[WebhooksInfoResponseLabelLinkDeleted], FieldMetadata(alias="LABEL_LINK_DELETED")
48
+ project_created: typing_extensions.Annotated[
49
+ typing.Optional[WebhooksInfoResponseProjectCreated], FieldMetadata(alias="PROJECT_CREATED")
50
+ ] = None
51
+ project_deleted: typing_extensions.Annotated[
52
+ typing.Optional[WebhooksInfoResponseProjectDeleted], FieldMetadata(alias="PROJECT_DELETED")
53
+ ] = None
54
+ project_updated: typing_extensions.Annotated[
55
+ typing.Optional[WebhooksInfoResponseProjectUpdated], FieldMetadata(alias="PROJECT_UPDATED")
56
+ ] = None
57
+ reviews_deleted: typing_extensions.Annotated[
58
+ typing.Optional[WebhooksInfoResponseReviewsDeleted], FieldMetadata(alias="REVIEWS_DELETED")
62
59
  ] = None
63
60
  review_created: typing_extensions.Annotated[
64
61
  typing.Optional[WebhooksInfoResponseReviewCreated], FieldMetadata(alias="REVIEW_CREATED")
@@ -66,8 +63,11 @@ class WebhooksInfoResponse(UncheckedBaseModel):
66
63
  review_updated: typing_extensions.Annotated[
67
64
  typing.Optional[WebhooksInfoResponseReviewUpdated], FieldMetadata(alias="REVIEW_UPDATED")
68
65
  ] = None
69
- reviews_deleted: typing_extensions.Annotated[
70
- typing.Optional[WebhooksInfoResponseReviewsDeleted], FieldMetadata(alias="REVIEWS_DELETED")
66
+ tasks_created: typing_extensions.Annotated[
67
+ typing.Optional[WebhooksInfoResponseTasksCreated], FieldMetadata(alias="TASKS_CREATED")
68
+ ] = None
69
+ tasks_deleted: typing_extensions.Annotated[
70
+ typing.Optional[WebhooksInfoResponseTasksDeleted], FieldMetadata(alias="TASKS_DELETED")
71
71
  ] = None
72
72
 
73
73
  if IS_PYDANTIC_V2:
@@ -9,9 +9,9 @@ import pydantic
9
9
 
10
10
 
11
11
  class WebhooksInfoResponseAnnotationCreated(UncheckedBaseModel):
12
- name: str
13
12
  description: str
14
13
  key: str
14
+ name: str
15
15
  organization_only: typing_extensions.Annotated[bool, FieldMetadata(alias="organization-only")]
16
16
 
17
17
  if IS_PYDANTIC_V2:
@@ -9,9 +9,9 @@ import pydantic
9
9
 
10
10
 
11
11
  class WebhooksInfoResponseAnnotationUpdated(UncheckedBaseModel):
12
- name: str
13
12
  description: str
14
13
  key: str
14
+ name: str
15
15
  organization_only: typing_extensions.Annotated[bool, FieldMetadata(alias="organization-only")]
16
16
 
17
17
  if IS_PYDANTIC_V2:
@@ -9,9 +9,9 @@ import pydantic
9
9
 
10
10
 
11
11
  class WebhooksInfoResponseAnnotationsCreated(UncheckedBaseModel):
12
- name: str
13
12
  description: str
14
13
  key: str
14
+ name: str
15
15
  organization_only: typing_extensions.Annotated[bool, FieldMetadata(alias="organization-only")]
16
16
 
17
17
  if IS_PYDANTIC_V2:
@@ -9,9 +9,9 @@ import pydantic
9
9
 
10
10
 
11
11
  class WebhooksInfoResponseAnnotationsDeleted(UncheckedBaseModel):
12
- name: str
13
12
  description: str
14
13
  key: str
14
+ name: str
15
15
  organization_only: typing_extensions.Annotated[bool, FieldMetadata(alias="organization-only")]
16
16
 
17
17
  if IS_PYDANTIC_V2:
@@ -9,9 +9,9 @@ import pydantic
9
9
 
10
10
 
11
11
  class WebhooksInfoResponseLabelLinkCreated(UncheckedBaseModel):
12
- name: str
13
12
  description: str
14
13
  key: str
14
+ name: str
15
15
  organization_only: typing_extensions.Annotated[bool, FieldMetadata(alias="organization-only")]
16
16
 
17
17
  if IS_PYDANTIC_V2: