label-studio-sdk 2.0.1__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.
- label_studio_sdk/__init__.py +4 -0
- label_studio_sdk/actions/client.py +13 -13
- label_studio_sdk/actions/types/actions_list_response_item.py +3 -3
- label_studio_sdk/actions/types/actions_list_response_item_dialog.py +2 -2
- label_studio_sdk/annotations/client.py +441 -441
- label_studio_sdk/comments/client.py +176 -176
- label_studio_sdk/export_storage/azure/client.py +274 -274
- label_studio_sdk/export_storage/gcs/client.py +263 -263
- label_studio_sdk/export_storage/local/client.py +206 -206
- label_studio_sdk/export_storage/redis/client.py +287 -287
- label_studio_sdk/export_storage/s3/client.py +347 -347
- label_studio_sdk/export_storage/s3s/client.py +678 -678
- label_studio_sdk/import_storage/azure/client.py +357 -357
- label_studio_sdk/import_storage/gcs/client.py +357 -357
- label_studio_sdk/import_storage/local/client.py +206 -206
- label_studio_sdk/import_storage/redis/client.py +309 -309
- label_studio_sdk/import_storage/s3/client.py +452 -452
- label_studio_sdk/import_storage/s3s/client.py +735 -735
- label_studio_sdk/jwt_settings/client.py +10 -10
- label_studio_sdk/ml/client.py +118 -118
- label_studio_sdk/ml/types/ml_list_model_versions_response.py +1 -1
- label_studio_sdk/model_providers/client.py +181 -181
- label_studio_sdk/organizations/members/client.py +8 -8
- label_studio_sdk/predictions/client.py +60 -60
- label_studio_sdk/projects/__init__.py +30 -1
- label_studio_sdk/projects/assignments/__init__.py +33 -0
- label_studio_sdk/projects/assignments/client.py +764 -0
- label_studio_sdk/projects/assignments/types/__init__.py +35 -0
- label_studio_sdk/projects/assignments/types/assignments_assign_request_type.py +5 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters.py +33 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_conjunction.py +5 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item.py +44 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item_filter.py +31 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item_operator.py +23 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_filters_items_item_value.py +7 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_selected_items.py +9 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_selected_items_excluded.py +29 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_selected_items_included.py +29 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_request_type.py +5 -0
- label_studio_sdk/projects/assignments/types/assignments_bulk_assign_response.py +22 -0
- label_studio_sdk/projects/assignments/types/assignments_update_request_type.py +5 -0
- label_studio_sdk/projects/client.py +441 -425
- label_studio_sdk/projects/exports/client.py +55 -55
- label_studio_sdk/projects/exports/types/exports_convert_response.py +1 -1
- label_studio_sdk/projects/stats/types/stats_iaa_response.py +5 -5
- label_studio_sdk/projects/types/projects_import_tasks_response.py +12 -12
- label_studio_sdk/prompts/client.py +211 -211
- label_studio_sdk/prompts/runs/client.py +33 -33
- label_studio_sdk/prompts/versions/client.py +72 -72
- label_studio_sdk/tasks/client.py +174 -174
- label_studio_sdk/types/__init__.py +4 -0
- label_studio_sdk/types/all_roles_project_list.py +94 -94
- label_studio_sdk/types/annotation.py +35 -35
- label_studio_sdk/types/annotation_request.py +27 -27
- label_studio_sdk/types/azure_blob_export_storage.py +29 -29
- label_studio_sdk/types/azure_blob_import_storage.py +33 -33
- label_studio_sdk/types/batch_failed_predictions.py +1 -1
- label_studio_sdk/types/billing_checks.py +14 -14
- label_studio_sdk/types/billing_flags.py +16 -16
- label_studio_sdk/types/blueprint_list.py +7 -8
- label_studio_sdk/types/child_filter.py +11 -10
- label_studio_sdk/types/comment.py +15 -15
- label_studio_sdk/types/comment_request.py +7 -8
- label_studio_sdk/types/comment_serializer_with_expanded_user.py +17 -18
- label_studio_sdk/types/converted_format.py +1 -1
- label_studio_sdk/types/converted_format_request.py +1 -1
- label_studio_sdk/types/export.py +8 -8
- label_studio_sdk/types/file_upload.py +3 -2
- label_studio_sdk/types/filter.py +10 -9
- label_studio_sdk/types/filter_group.py +4 -3
- label_studio_sdk/types/gcs_export_storage.py +23 -23
- label_studio_sdk/types/gcs_import_storage.py +27 -27
- label_studio_sdk/types/import_api_request.py +26 -26
- label_studio_sdk/types/inference_run_cost_estimate.py +10 -10
- label_studio_sdk/types/local_files_export_storage.py +23 -23
- label_studio_sdk/types/local_files_import_storage.py +26 -26
- label_studio_sdk/types/lse_annotation_filter_options.py +10 -10
- label_studio_sdk/types/lse_annotation_filter_options_request.py +10 -10
- label_studio_sdk/types/lse_export_create.py +12 -12
- label_studio_sdk/types/lse_fields.py +14 -14
- label_studio_sdk/types/lse_organization.py +17 -17
- label_studio_sdk/types/lse_organization_member_list.py +1 -1
- label_studio_sdk/types/lse_project_create.py +72 -72
- label_studio_sdk/types/lse_project_update.py +89 -89
- label_studio_sdk/types/lse_s3export_storage.py +46 -46
- label_studio_sdk/types/lse_s3export_storage_request.py +43 -43
- label_studio_sdk/types/lse_s3import_storage.py +53 -53
- label_studio_sdk/types/lse_s3import_storage_request.py +49 -49
- label_studio_sdk/types/lse_task.py +49 -49
- label_studio_sdk/types/lse_task_drafts_item.py +1 -1
- label_studio_sdk/types/lse_task_filter_options.py +14 -14
- label_studio_sdk/types/lse_task_filter_options_request.py +14 -14
- label_studio_sdk/types/lse_task_predictions_item.py +5 -5
- label_studio_sdk/types/lse_task_serializer_for_annotators.py +12 -12
- label_studio_sdk/types/lse_task_serializer_for_annotators_drafts_item.py +1 -1
- label_studio_sdk/types/lse_task_serializer_for_annotators_predictions_item.py +5 -5
- label_studio_sdk/types/lse_task_serializer_for_reviewers.py +49 -49
- label_studio_sdk/types/lse_task_serializer_for_reviewers_drafts_item.py +1 -1
- label_studio_sdk/types/lse_task_serializer_for_reviewers_predictions_item.py +5 -5
- label_studio_sdk/types/lse_user.py +13 -13
- label_studio_sdk/types/lse_user_api.py +11 -11
- label_studio_sdk/types/lse_user_organization_member_list.py +13 -13
- label_studio_sdk/types/lseapi_token_create.py +1 -1
- label_studio_sdk/types/lseapi_token_list.py +1 -1
- label_studio_sdk/types/lsejwt_settings.py +5 -5
- label_studio_sdk/types/ml_backend.py +27 -28
- label_studio_sdk/types/model_interface.py +12 -12
- label_studio_sdk/types/model_interface_request.py +7 -8
- label_studio_sdk/types/model_interface_serializer_get.py +13 -13
- label_studio_sdk/types/model_provider_connection.py +34 -34
- label_studio_sdk/types/model_provider_connection_request.py +15 -14
- label_studio_sdk/types/model_run.py +12 -12
- label_studio_sdk/types/organization_billing.py +1 -1
- label_studio_sdk/types/organization_id.py +2 -2
- label_studio_sdk/types/organization_invite.py +1 -1
- label_studio_sdk/types/organization_member.py +8 -9
- label_studio_sdk/types/organization_membership.py +2 -1
- label_studio_sdk/types/pause.py +23 -23
- label_studio_sdk/types/prediction.py +21 -21
- label_studio_sdk/types/prediction_request.py +16 -16
- label_studio_sdk/types/project.py +72 -72
- label_studio_sdk/types/project_import.py +21 -21
- label_studio_sdk/types/redis_export_storage.py +34 -34
- label_studio_sdk/types/redis_import_storage.py +37 -37
- label_studio_sdk/types/refined_prompt_response.py +11 -11
- label_studio_sdk/types/review_settings.py +29 -30
- label_studio_sdk/types/review_settings_request.py +29 -30
- label_studio_sdk/types/s3export_storage.py +45 -45
- label_studio_sdk/types/s3import_storage.py +44 -44
- label_studio_sdk/types/selected_items_request.py +1 -1
- label_studio_sdk/types/serialization_options.py +10 -10
- label_studio_sdk/types/serialization_options_request.py +10 -10
- label_studio_sdk/types/task_assignment.py +43 -0
- label_studio_sdk/types/third_party_model_version.py +11 -11
- label_studio_sdk/types/third_party_model_version_request.py +6 -7
- label_studio_sdk/types/type_enum.py +5 -0
- label_studio_sdk/types/user_simple.py +3 -3
- label_studio_sdk/types/user_simple_request.py +1 -1
- label_studio_sdk/types/version_response.py +19 -20
- label_studio_sdk/types/view.py +8 -8
- label_studio_sdk/types/webhook.py +16 -16
- label_studio_sdk/types/webhook_serializer_for_update.py +16 -16
- label_studio_sdk/types/workspace.py +10 -11
- label_studio_sdk/users/client.py +160 -160
- label_studio_sdk/views/client.py +164 -164
- label_studio_sdk/webhooks/client.py +183 -183
- label_studio_sdk/webhooks/types/webhooks_info_response.py +32 -32
- label_studio_sdk/webhooks/types/webhooks_info_response_annotation_created.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_annotation_updated.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_annotations_created.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_annotations_deleted.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_created.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_deleted.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_label_link_updated.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_project_created.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_project_deleted.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_project_updated.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_review_created.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_review_updated.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_reviews_deleted.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_tasks_created.py +1 -1
- label_studio_sdk/webhooks/types/webhooks_info_response_tasks_deleted.py +1 -1
- label_studio_sdk/workspaces/client.py +40 -40
- {label_studio_sdk-2.0.1.dist-info → label_studio_sdk-2.0.2.dist-info}/METADATA +1 -1
- {label_studio_sdk-2.0.1.dist-info → label_studio_sdk-2.0.2.dist-info}/RECORD +167 -149
- {label_studio_sdk-2.0.1.dist-info → label_studio_sdk-2.0.2.dist-info}/LICENSE +0 -0
- {label_studio_sdk-2.0.1.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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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 .
|
|
6
|
+
from .webhooks_info_response_annotations_created import WebhooksInfoResponseAnnotationsCreated
|
|
7
7
|
from ...core.serialization import FieldMetadata
|
|
8
|
-
from .
|
|
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 .
|
|
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
|
-
|
|
28
|
-
typing.Optional[
|
|
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
|
-
|
|
40
|
-
typing.Optional[
|
|
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
|
-
|
|
61
|
-
typing.Optional[
|
|
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
|
-
|
|
70
|
-
typing.Optional[
|
|
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:
|