From 92c775aeb089f455120de1d10919a0f7c22e8cf2 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Fri, 5 Dec 2025 18:49:39 +0000
Subject: [PATCH 01/11] SDK regeneration
---
reference.md | 48 +++++++++++++++
src/label_studio_sdk/projects/client.py | 60 +++++++++++++++++++
.../types/all_roles_project_list.py | 15 +++++
src/label_studio_sdk/types/lse_project.py | 15 +++++
.../types/lse_project_create.py | 15 +++++
.../types/lse_project_response.py | 15 +++++
.../types/lse_project_update.py | 15 +++++
src/label_studio_sdk/types/project.py | 15 +++++
8 files changed, 198 insertions(+)
diff --git a/reference.md b/reference.md
index 07e752e59..baaec58ca 100644
--- a/reference.md
+++ b/reference.md
@@ -8961,6 +8961,22 @@ client.projects.create()
-
+**annotator_evaluation_enabled:** `typing.Optional[bool]` — Enable annotator evaluation for the project
+
+
+
+
+
+-
+
+**annotator_evaluation_onboarding_tasks:** `typing.Optional[int]` — Number of onboarding tasks for annotator evaluation
+
+
+
+
+
+-
+
**color:** `typing.Optional[str]`
@@ -9121,6 +9137,14 @@ client.projects.create()
-
+**show_ground_truth_always:** `typing.Optional[bool]` — When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+
+
+
+
+
+-
+
**show_ground_truth_first:** `typing.Optional[bool]` — Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -9583,6 +9607,14 @@ client.projects.update(
-
+**annotator_evaluation_enabled:** `typing.Optional[bool]` — Enable annotator evaluation for the project
+
+
+
+
+
+-
+
**annotator_evaluation_minimum_score:** `typing.Optional[str]`
@@ -9599,6 +9631,14 @@ client.projects.update(
-
+**annotator_evaluation_onboarding_tasks:** `typing.Optional[int]` — Number of onboarding tasks for annotator evaluation
+
+
+
+
+
+-
+
**assignment_settings:** `typing.Optional[AssignmentSettingsRequest]`
@@ -9823,6 +9863,14 @@ client.projects.update(
-
+**show_ground_truth_always:** `typing.Optional[bool]` — When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+
+
+
+
+
+-
+
**show_ground_truth_first:** `typing.Optional[bool]` — Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/projects/client.py b/src/label_studio_sdk/projects/client.py
index 272d48837..4546e139e 100644
--- a/src/label_studio_sdk/projects/client.py
+++ b/src/label_studio_sdk/projects/client.py
@@ -191,6 +191,8 @@ def list(
def create(
self,
*,
+ annotator_evaluation_enabled: typing.Optional[bool] = OMIT,
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = OMIT,
color: typing.Optional[str] = OMIT,
control_weights: typing.Optional[typing.Optional[typing.Any]] = OMIT,
created_by: typing.Optional[UserSimpleRequest] = OMIT,
@@ -211,6 +213,7 @@ def create(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
+ show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -227,6 +230,12 @@ def create(
Parameters
----------
+ annotator_evaluation_enabled : typing.Optional[bool]
+ Enable annotator evaluation for the project
+
+ annotator_evaluation_onboarding_tasks : typing.Optional[int]
+ Number of onboarding tasks for annotator evaluation
+
color : typing.Optional[str]
control_weights : typing.Optional[typing.Optional[typing.Any]]
@@ -283,6 +292,9 @@ def create(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
+ show_ground_truth_always : typing.Optional[bool]
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -328,6 +340,8 @@ def create(
"api/projects/",
method="POST",
json={
+ "annotator_evaluation_enabled": annotator_evaluation_enabled,
+ "annotator_evaluation_onboarding_tasks": annotator_evaluation_onboarding_tasks,
"color": color,
"control_weights": control_weights,
"created_by": convert_and_respect_annotation_metadata(
@@ -350,6 +364,7 @@ def create(
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
+ "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
@@ -583,8 +598,10 @@ def update(
agreement_threshold: typing.Optional[str] = OMIT,
annotation_limit_count: typing.Optional[int] = OMIT,
annotation_limit_percent: typing.Optional[str] = OMIT,
+ annotator_evaluation_enabled: typing.Optional[bool] = OMIT,
annotator_evaluation_minimum_score: typing.Optional[str] = OMIT,
annotator_evaluation_minimum_tasks: typing.Optional[int] = OMIT,
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = OMIT,
assignment_settings: typing.Optional[AssignmentSettingsRequest] = OMIT,
color: typing.Optional[str] = OMIT,
comment_classification_config: typing.Optional[str] = OMIT,
@@ -613,6 +630,7 @@ def update(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
+ show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -642,10 +660,16 @@ def update(
annotation_limit_percent : typing.Optional[str]
+ annotator_evaluation_enabled : typing.Optional[bool]
+ Enable annotator evaluation for the project
+
annotator_evaluation_minimum_score : typing.Optional[str]
annotator_evaluation_minimum_tasks : typing.Optional[int]
+ annotator_evaluation_onboarding_tasks : typing.Optional[int]
+ Number of onboarding tasks for annotator evaluation
+
assignment_settings : typing.Optional[AssignmentSettingsRequest]
color : typing.Optional[str]
@@ -720,6 +744,9 @@ def update(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
+ show_ground_truth_always : typing.Optional[bool]
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -775,8 +802,10 @@ def update(
"agreement_threshold": agreement_threshold,
"annotation_limit_count": annotation_limit_count,
"annotation_limit_percent": annotation_limit_percent,
+ "annotator_evaluation_enabled": annotator_evaluation_enabled,
"annotator_evaluation_minimum_score": annotator_evaluation_minimum_score,
"annotator_evaluation_minimum_tasks": annotator_evaluation_minimum_tasks,
+ "annotator_evaluation_onboarding_tasks": annotator_evaluation_onboarding_tasks,
"assignment_settings": convert_and_respect_annotation_metadata(
object_=assignment_settings, annotation=AssignmentSettingsRequest, direction="write"
),
@@ -811,6 +840,7 @@ def update(
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
+ "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
@@ -1398,6 +1428,8 @@ async def main() -> None:
async def create(
self,
*,
+ annotator_evaluation_enabled: typing.Optional[bool] = OMIT,
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = OMIT,
color: typing.Optional[str] = OMIT,
control_weights: typing.Optional[typing.Optional[typing.Any]] = OMIT,
created_by: typing.Optional[UserSimpleRequest] = OMIT,
@@ -1418,6 +1450,7 @@ async def create(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
+ show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -1434,6 +1467,12 @@ async def create(
Parameters
----------
+ annotator_evaluation_enabled : typing.Optional[bool]
+ Enable annotator evaluation for the project
+
+ annotator_evaluation_onboarding_tasks : typing.Optional[int]
+ Number of onboarding tasks for annotator evaluation
+
color : typing.Optional[str]
control_weights : typing.Optional[typing.Optional[typing.Any]]
@@ -1490,6 +1529,9 @@ async def create(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
+ show_ground_truth_always : typing.Optional[bool]
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -1543,6 +1585,8 @@ async def main() -> None:
"api/projects/",
method="POST",
json={
+ "annotator_evaluation_enabled": annotator_evaluation_enabled,
+ "annotator_evaluation_onboarding_tasks": annotator_evaluation_onboarding_tasks,
"color": color,
"control_weights": control_weights,
"created_by": convert_and_respect_annotation_metadata(
@@ -1565,6 +1609,7 @@ async def main() -> None:
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
+ "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
@@ -1822,8 +1867,10 @@ async def update(
agreement_threshold: typing.Optional[str] = OMIT,
annotation_limit_count: typing.Optional[int] = OMIT,
annotation_limit_percent: typing.Optional[str] = OMIT,
+ annotator_evaluation_enabled: typing.Optional[bool] = OMIT,
annotator_evaluation_minimum_score: typing.Optional[str] = OMIT,
annotator_evaluation_minimum_tasks: typing.Optional[int] = OMIT,
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = OMIT,
assignment_settings: typing.Optional[AssignmentSettingsRequest] = OMIT,
color: typing.Optional[str] = OMIT,
comment_classification_config: typing.Optional[str] = OMIT,
@@ -1852,6 +1899,7 @@ async def update(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
+ show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -1881,10 +1929,16 @@ async def update(
annotation_limit_percent : typing.Optional[str]
+ annotator_evaluation_enabled : typing.Optional[bool]
+ Enable annotator evaluation for the project
+
annotator_evaluation_minimum_score : typing.Optional[str]
annotator_evaluation_minimum_tasks : typing.Optional[int]
+ annotator_evaluation_onboarding_tasks : typing.Optional[int]
+ Number of onboarding tasks for annotator evaluation
+
assignment_settings : typing.Optional[AssignmentSettingsRequest]
color : typing.Optional[str]
@@ -1959,6 +2013,9 @@ async def update(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
+ show_ground_truth_always : typing.Optional[bool]
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -2022,8 +2079,10 @@ async def main() -> None:
"agreement_threshold": agreement_threshold,
"annotation_limit_count": annotation_limit_count,
"annotation_limit_percent": annotation_limit_percent,
+ "annotator_evaluation_enabled": annotator_evaluation_enabled,
"annotator_evaluation_minimum_score": annotator_evaluation_minimum_score,
"annotator_evaluation_minimum_tasks": annotator_evaluation_minimum_tasks,
+ "annotator_evaluation_onboarding_tasks": annotator_evaluation_onboarding_tasks,
"assignment_settings": convert_and_respect_annotation_metadata(
object_=assignment_settings, annotation=AssignmentSettingsRequest, direction="write"
),
@@ -2058,6 +2117,7 @@ async def main() -> None:
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
+ "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
diff --git a/src/label_studio_sdk/types/all_roles_project_list.py b/src/label_studio_sdk/types/all_roles_project_list.py
index 04ed1a05a..3b198bae6 100644
--- a/src/label_studio_sdk/types/all_roles_project_list.py
+++ b/src/label_studio_sdk/types/all_roles_project_list.py
@@ -27,8 +27,18 @@ class AllRolesProjectList(UncheckedBaseModel):
allow_stream: typing.Optional[bool] = None
annotation_limit_count: typing.Optional[int] = None
annotation_limit_percent: typing.Optional[str] = None
+ annotator_evaluation_enabled: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Enable annotator evaluation for the project
+ """
+
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Number of onboarding tasks for annotator evaluation
+ """
+
assignment_settings: AssignmentSettings
blueprints: typing.Optional[typing.List[BlueprintList]] = None
color: typing.Optional[str] = None
@@ -169,6 +179,11 @@ class AllRolesProjectList(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
+ show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+ """
+
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project.py b/src/label_studio_sdk/types/lse_project.py
index c86b0e725..4c87a9d25 100644
--- a/src/label_studio_sdk/types/lse_project.py
+++ b/src/label_studio_sdk/types/lse_project.py
@@ -25,8 +25,18 @@ class LseProject(UncheckedBaseModel):
annotation_limit_count: typing.Optional[int] = None
annotation_limit_percent: typing.Optional[str] = None
+ annotator_evaluation_enabled: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Enable annotator evaluation for the project
+ """
+
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Number of onboarding tasks for annotator evaluation
+ """
+
assignment_settings: AssignmentSettings
color: typing.Optional[str] = None
comment_classification_config: typing.Optional[str] = None
@@ -165,6 +175,11 @@ class LseProject(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
+ show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+ """
+
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project_create.py b/src/label_studio_sdk/types/lse_project_create.py
index 3b87a7c0b..8e09c9549 100644
--- a/src/label_studio_sdk/types/lse_project_create.py
+++ b/src/label_studio_sdk/types/lse_project_create.py
@@ -16,6 +16,16 @@ class LseProjectCreate(UncheckedBaseModel):
make sure, that you use correct one(Project.objects.with_counts())
"""
+ annotator_evaluation_enabled: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Enable annotator evaluation for the project
+ """
+
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Number of onboarding tasks for annotator evaluation
+ """
+
color: typing.Optional[str] = None
config_has_control_tags: typing.Optional[bool] = pydantic.Field(default=None)
"""
@@ -134,6 +144,11 @@ class LseProjectCreate(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
+ show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+ """
+
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project_response.py b/src/label_studio_sdk/types/lse_project_response.py
index e94f6c5c7..bb50c80d9 100644
--- a/src/label_studio_sdk/types/lse_project_response.py
+++ b/src/label_studio_sdk/types/lse_project_response.py
@@ -25,8 +25,18 @@ class LseProjectResponse(UncheckedBaseModel):
allow_stream: typing.Optional[bool] = None
annotation_limit_count: typing.Optional[int] = None
annotation_limit_percent: typing.Optional[str] = None
+ annotator_evaluation_enabled: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Enable annotator evaluation for the project
+ """
+
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Number of onboarding tasks for annotator evaluation
+ """
+
assignment_settings: AssignmentSettings
color: typing.Optional[str] = None
comment_classification_config: typing.Optional[str] = None
@@ -169,6 +179,11 @@ class LseProjectResponse(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
+ show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+ """
+
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project_update.py b/src/label_studio_sdk/types/lse_project_update.py
index 6b8c4a875..4928e5623 100644
--- a/src/label_studio_sdk/types/lse_project_update.py
+++ b/src/label_studio_sdk/types/lse_project_update.py
@@ -25,8 +25,18 @@ class LseProjectUpdate(UncheckedBaseModel):
annotation_limit_count: typing.Optional[int] = None
annotation_limit_percent: typing.Optional[str] = None
+ annotator_evaluation_enabled: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Enable annotator evaluation for the project
+ """
+
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Number of onboarding tasks for annotator evaluation
+ """
+
assignment_settings: AssignmentSettings
color: typing.Optional[str] = None
comment_classification_config: typing.Optional[str] = None
@@ -162,6 +172,11 @@ class LseProjectUpdate(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
+ show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+ """
+
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/project.py b/src/label_studio_sdk/types/project.py
index 933f45364..76de12957 100644
--- a/src/label_studio_sdk/types/project.py
+++ b/src/label_studio_sdk/types/project.py
@@ -16,6 +16,16 @@ class Project(UncheckedBaseModel):
make sure, that you use correct one(Project.objects.with_counts())
"""
+ annotator_evaluation_enabled: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ Enable annotator evaluation for the project
+ """
+
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
+ """
+ Number of onboarding tasks for annotator evaluation
+ """
+
color: typing.Optional[str] = None
config_has_control_tags: typing.Optional[bool] = pydantic.Field(default=None)
"""
@@ -134,6 +144,11 @@ class Project(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
+ show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
+ """
+ When enabled, ground truth tasks will be shown to all annotators regardless of overlap
+ """
+
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
From a4d603fc48ee9ddb632b35cb4c3a55fb73ec55be Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Fri, 5 Dec 2025 18:53:13 +0000
Subject: [PATCH 02/11] SDK regeneration
From 36011f32cfdcf21be69a479957c0a1e013ed4306 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Fri, 5 Dec 2025 19:47:50 +0000
Subject: [PATCH 03/11] SDK regeneration
---
reference.md | 2 +-
src/label_studio_sdk/projects/client.py | 2 --
src/label_studio_sdk/types/all_roles_project_list.py | 6 +-----
src/label_studio_sdk/types/lse_project.py | 6 +-----
src/label_studio_sdk/types/lse_project_response.py | 6 +-----
src/label_studio_sdk/types/lse_project_update.py | 6 +-----
6 files changed, 5 insertions(+), 23 deletions(-)
diff --git a/reference.md b/reference.md
index baaec58ca..704cf3e39 100644
--- a/reference.md
+++ b/reference.md
@@ -9631,7 +9631,7 @@ client.projects.update(
-
-**annotator_evaluation_onboarding_tasks:** `typing.Optional[int]` — Number of onboarding tasks for annotator evaluation
+**annotator_evaluation_onboarding_tasks:** `typing.Optional[int]`
diff --git a/src/label_studio_sdk/projects/client.py b/src/label_studio_sdk/projects/client.py
index 4546e139e..7634d7397 100644
--- a/src/label_studio_sdk/projects/client.py
+++ b/src/label_studio_sdk/projects/client.py
@@ -668,7 +668,6 @@ def update(
annotator_evaluation_minimum_tasks : typing.Optional[int]
annotator_evaluation_onboarding_tasks : typing.Optional[int]
- Number of onboarding tasks for annotator evaluation
assignment_settings : typing.Optional[AssignmentSettingsRequest]
@@ -1937,7 +1936,6 @@ async def update(
annotator_evaluation_minimum_tasks : typing.Optional[int]
annotator_evaluation_onboarding_tasks : typing.Optional[int]
- Number of onboarding tasks for annotator evaluation
assignment_settings : typing.Optional[AssignmentSettingsRequest]
diff --git a/src/label_studio_sdk/types/all_roles_project_list.py b/src/label_studio_sdk/types/all_roles_project_list.py
index 3b198bae6..60764a527 100644
--- a/src/label_studio_sdk/types/all_roles_project_list.py
+++ b/src/label_studio_sdk/types/all_roles_project_list.py
@@ -34,11 +34,7 @@ class AllRolesProjectList(UncheckedBaseModel):
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
- """
- Number of onboarding tasks for annotator evaluation
- """
-
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = None
assignment_settings: AssignmentSettings
blueprints: typing.Optional[typing.List[BlueprintList]] = None
color: typing.Optional[str] = None
diff --git a/src/label_studio_sdk/types/lse_project.py b/src/label_studio_sdk/types/lse_project.py
index 4c87a9d25..26876f1c7 100644
--- a/src/label_studio_sdk/types/lse_project.py
+++ b/src/label_studio_sdk/types/lse_project.py
@@ -32,11 +32,7 @@ class LseProject(UncheckedBaseModel):
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
- """
- Number of onboarding tasks for annotator evaluation
- """
-
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = None
assignment_settings: AssignmentSettings
color: typing.Optional[str] = None
comment_classification_config: typing.Optional[str] = None
diff --git a/src/label_studio_sdk/types/lse_project_response.py b/src/label_studio_sdk/types/lse_project_response.py
index bb50c80d9..c31f87907 100644
--- a/src/label_studio_sdk/types/lse_project_response.py
+++ b/src/label_studio_sdk/types/lse_project_response.py
@@ -32,11 +32,7 @@ class LseProjectResponse(UncheckedBaseModel):
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
- """
- Number of onboarding tasks for annotator evaluation
- """
-
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = None
assignment_settings: AssignmentSettings
color: typing.Optional[str] = None
comment_classification_config: typing.Optional[str] = None
diff --git a/src/label_studio_sdk/types/lse_project_update.py b/src/label_studio_sdk/types/lse_project_update.py
index 4928e5623..375276b4c 100644
--- a/src/label_studio_sdk/types/lse_project_update.py
+++ b/src/label_studio_sdk/types/lse_project_update.py
@@ -32,11 +32,7 @@ class LseProjectUpdate(UncheckedBaseModel):
annotator_evaluation_minimum_score: typing.Optional[str] = None
annotator_evaluation_minimum_tasks: typing.Optional[int] = None
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
- """
- Number of onboarding tasks for annotator evaluation
- """
-
+ annotator_evaluation_onboarding_tasks: typing.Optional[int] = None
assignment_settings: AssignmentSettings
color: typing.Optional[str] = None
comment_classification_config: typing.Optional[str] = None
From cd6c6d98845167a0fbf636b374de38f805925f7e Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Fri, 5 Dec 2025 19:51:02 +0000
Subject: [PATCH 04/11] SDK regeneration
---
reference.md | 24 ---------------
src/label_studio_sdk/projects/client.py | 30 -------------------
.../types/all_roles_project_list.py | 5 ----
src/label_studio_sdk/types/lse_project.py | 5 ----
.../types/lse_project_create.py | 10 -------
.../types/lse_project_response.py | 5 ----
.../types/lse_project_update.py | 5 ----
src/label_studio_sdk/types/project.py | 10 -------
8 files changed, 94 deletions(-)
diff --git a/reference.md b/reference.md
index 704cf3e39..7916f9e9a 100644
--- a/reference.md
+++ b/reference.md
@@ -8969,14 +8969,6 @@ client.projects.create()
-
-**annotator_evaluation_onboarding_tasks:** `typing.Optional[int]` — Number of onboarding tasks for annotator evaluation
-
-
-
-
-
--
-
**color:** `typing.Optional[str]`
@@ -9137,14 +9129,6 @@ client.projects.create()
-
-**show_ground_truth_always:** `typing.Optional[bool]` — When enabled, ground truth tasks will be shown to all annotators regardless of overlap
-
-
-
-
-
--
-
**show_ground_truth_first:** `typing.Optional[bool]` — Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -9863,14 +9847,6 @@ client.projects.update(
-
-**show_ground_truth_always:** `typing.Optional[bool]` — When enabled, ground truth tasks will be shown to all annotators regardless of overlap
-
-
-
-
-
--
-
**show_ground_truth_first:** `typing.Optional[bool]` — Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/projects/client.py b/src/label_studio_sdk/projects/client.py
index 7634d7397..a71c65bd4 100644
--- a/src/label_studio_sdk/projects/client.py
+++ b/src/label_studio_sdk/projects/client.py
@@ -192,7 +192,6 @@ def create(
self,
*,
annotator_evaluation_enabled: typing.Optional[bool] = OMIT,
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = OMIT,
color: typing.Optional[str] = OMIT,
control_weights: typing.Optional[typing.Optional[typing.Any]] = OMIT,
created_by: typing.Optional[UserSimpleRequest] = OMIT,
@@ -213,7 +212,6 @@ def create(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
- show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -233,9 +231,6 @@ def create(
annotator_evaluation_enabled : typing.Optional[bool]
Enable annotator evaluation for the project
- annotator_evaluation_onboarding_tasks : typing.Optional[int]
- Number of onboarding tasks for annotator evaluation
-
color : typing.Optional[str]
control_weights : typing.Optional[typing.Optional[typing.Any]]
@@ -292,9 +287,6 @@ def create(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
- show_ground_truth_always : typing.Optional[bool]
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
-
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -341,7 +333,6 @@ def create(
method="POST",
json={
"annotator_evaluation_enabled": annotator_evaluation_enabled,
- "annotator_evaluation_onboarding_tasks": annotator_evaluation_onboarding_tasks,
"color": color,
"control_weights": control_weights,
"created_by": convert_and_respect_annotation_metadata(
@@ -364,7 +355,6 @@ def create(
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
- "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
@@ -630,7 +620,6 @@ def update(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
- show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -743,9 +732,6 @@ def update(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
- show_ground_truth_always : typing.Optional[bool]
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
-
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -839,7 +825,6 @@ def update(
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
- "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
@@ -1428,7 +1413,6 @@ async def create(
self,
*,
annotator_evaluation_enabled: typing.Optional[bool] = OMIT,
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = OMIT,
color: typing.Optional[str] = OMIT,
control_weights: typing.Optional[typing.Optional[typing.Any]] = OMIT,
created_by: typing.Optional[UserSimpleRequest] = OMIT,
@@ -1449,7 +1433,6 @@ async def create(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
- show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -1469,9 +1452,6 @@ async def create(
annotator_evaluation_enabled : typing.Optional[bool]
Enable annotator evaluation for the project
- annotator_evaluation_onboarding_tasks : typing.Optional[int]
- Number of onboarding tasks for annotator evaluation
-
color : typing.Optional[str]
control_weights : typing.Optional[typing.Optional[typing.Any]]
@@ -1528,9 +1508,6 @@ async def create(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
- show_ground_truth_always : typing.Optional[bool]
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
-
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -1585,7 +1562,6 @@ async def main() -> None:
method="POST",
json={
"annotator_evaluation_enabled": annotator_evaluation_enabled,
- "annotator_evaluation_onboarding_tasks": annotator_evaluation_onboarding_tasks,
"color": color,
"control_weights": control_weights,
"created_by": convert_and_respect_annotation_metadata(
@@ -1608,7 +1584,6 @@ async def main() -> None:
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
- "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
@@ -1898,7 +1873,6 @@ async def update(
sampling: typing.Optional[SamplingDe5Enum] = OMIT,
show_annotation_history: typing.Optional[bool] = OMIT,
show_collab_predictions: typing.Optional[bool] = OMIT,
- show_ground_truth_always: typing.Optional[bool] = OMIT,
show_ground_truth_first: typing.Optional[bool] = OMIT,
show_instruction: typing.Optional[bool] = OMIT,
show_overlap_first: typing.Optional[bool] = OMIT,
@@ -2011,9 +1985,6 @@ async def update(
show_collab_predictions : typing.Optional[bool]
If set, the annotator can view model predictions
- show_ground_truth_always : typing.Optional[bool]
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
-
show_ground_truth_first : typing.Optional[bool]
Onboarding mode (true): show ground truth tasks first in the labeling stream
@@ -2115,7 +2086,6 @@ async def main() -> None:
"sampling": sampling,
"show_annotation_history": show_annotation_history,
"show_collab_predictions": show_collab_predictions,
- "show_ground_truth_always": show_ground_truth_always,
"show_ground_truth_first": show_ground_truth_first,
"show_instruction": show_instruction,
"show_overlap_first": show_overlap_first,
diff --git a/src/label_studio_sdk/types/all_roles_project_list.py b/src/label_studio_sdk/types/all_roles_project_list.py
index 60764a527..ffe9b8a7c 100644
--- a/src/label_studio_sdk/types/all_roles_project_list.py
+++ b/src/label_studio_sdk/types/all_roles_project_list.py
@@ -175,11 +175,6 @@ class AllRolesProjectList(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
- show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
- """
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
- """
-
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project.py b/src/label_studio_sdk/types/lse_project.py
index 26876f1c7..def5c5c35 100644
--- a/src/label_studio_sdk/types/lse_project.py
+++ b/src/label_studio_sdk/types/lse_project.py
@@ -171,11 +171,6 @@ class LseProject(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
- show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
- """
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
- """
-
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project_create.py b/src/label_studio_sdk/types/lse_project_create.py
index 8e09c9549..2affab93d 100644
--- a/src/label_studio_sdk/types/lse_project_create.py
+++ b/src/label_studio_sdk/types/lse_project_create.py
@@ -21,11 +21,6 @@ class LseProjectCreate(UncheckedBaseModel):
Enable annotator evaluation for the project
"""
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
- """
- Number of onboarding tasks for annotator evaluation
- """
-
color: typing.Optional[str] = None
config_has_control_tags: typing.Optional[bool] = pydantic.Field(default=None)
"""
@@ -144,11 +139,6 @@ class LseProjectCreate(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
- show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
- """
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
- """
-
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project_response.py b/src/label_studio_sdk/types/lse_project_response.py
index c31f87907..a8901eeb0 100644
--- a/src/label_studio_sdk/types/lse_project_response.py
+++ b/src/label_studio_sdk/types/lse_project_response.py
@@ -175,11 +175,6 @@ class LseProjectResponse(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
- show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
- """
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
- """
-
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/lse_project_update.py b/src/label_studio_sdk/types/lse_project_update.py
index 375276b4c..1270b75b1 100644
--- a/src/label_studio_sdk/types/lse_project_update.py
+++ b/src/label_studio_sdk/types/lse_project_update.py
@@ -168,11 +168,6 @@ class LseProjectUpdate(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
- show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
- """
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
- """
-
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
diff --git a/src/label_studio_sdk/types/project.py b/src/label_studio_sdk/types/project.py
index 76de12957..79a54f837 100644
--- a/src/label_studio_sdk/types/project.py
+++ b/src/label_studio_sdk/types/project.py
@@ -21,11 +21,6 @@ class Project(UncheckedBaseModel):
Enable annotator evaluation for the project
"""
- annotator_evaluation_onboarding_tasks: typing.Optional[int] = pydantic.Field(default=None)
- """
- Number of onboarding tasks for annotator evaluation
- """
-
color: typing.Optional[str] = None
config_has_control_tags: typing.Optional[bool] = pydantic.Field(default=None)
"""
@@ -144,11 +139,6 @@ class Project(UncheckedBaseModel):
If set, the annotator can view model predictions
"""
- show_ground_truth_always: typing.Optional[bool] = pydantic.Field(default=None)
- """
- When enabled, ground truth tasks will be shown to all annotators regardless of overlap
- """
-
show_ground_truth_first: typing.Optional[bool] = pydantic.Field(default=None)
"""
Onboarding mode (true): show ground truth tasks first in the labeling stream
From f3856927a45d83b655045b35f042af84e7d91b6c Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Mon, 8 Dec 2025 22:17:27 +0000
Subject: [PATCH 05/11] SDK regeneration
---
poetry.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index c1236e1c3..f04f6c249 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -2358,13 +2358,13 @@ files = [
[[package]]
name = "urllib3"
-version = "2.6.0"
+version = "2.6.1"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=3.9"
files = [
- {file = "urllib3-2.6.0-py3-none-any.whl", hash = "sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f"},
- {file = "urllib3-2.6.0.tar.gz", hash = "sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1"},
+ {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"},
+ {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"},
]
[package.extras]
From ec55c3a7d9dbdc5c5df7fe64db03539a86612ef0 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Mon, 8 Dec 2025 22:42:00 +0000
Subject: [PATCH 06/11] SDK regeneration
---
src/label_studio_sdk/types/lse_task_serializer_for_annotators.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/label_studio_sdk/types/lse_task_serializer_for_annotators.py b/src/label_studio_sdk/types/lse_task_serializer_for_annotators.py
index cf3554c4e..322f8e3fc 100644
--- a/src/label_studio_sdk/types/lse_task_serializer_for_annotators.py
+++ b/src/label_studio_sdk/types/lse_task_serializer_for_annotators.py
@@ -42,6 +42,7 @@ class LseTaskSerializerForAnnotators(UncheckedBaseModel):
predictions_results: typing.Optional[str] = None
predictions_score: typing.Optional[float] = None
reviews_rejected: typing.Optional[int] = None
+ state: typing.Optional[str] = None
total_annotations: typing.Optional[int] = None
total_predictions: typing.Optional[int] = None
unresolved_comment_count: typing.Optional[str] = None
From 350e218a71ae2ea899e2362bee66aa32f6f595d0 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Wed, 10 Dec 2025 13:52:16 +0000
Subject: [PATCH 07/11] SDK regeneration
---
reference.md | 6 +++---
src/label_studio_sdk/projects/metrics/__init__.py | 4 ++--
.../projects/metrics/custom/__init__.py | 4 ++--
src/label_studio_sdk/projects/metrics/custom/client.py | 10 ++++++++--
.../projects/metrics/custom/types/__init__.py | 3 ++-
.../metrics/custom/types/get_lambda_custom_response.py | 7 ++++++-
.../custom/types/get_lambda_custom_response_status.py | 7 +++++++
7 files changed, 30 insertions(+), 11 deletions(-)
create mode 100644 src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response_status.py
diff --git a/reference.md b/reference.md
index 7916f9e9a..0337c20fc 100644
--- a/reference.md
+++ b/reference.md
@@ -34505,7 +34505,7 @@ client.projects.metrics.custom.update_lambda(
-
-**code:** `str`
+**code:** `str` — The Python code for the custom metric function.
@@ -34513,7 +34513,7 @@ client.projects.metrics.custom.update_lambda(
-
-**region:** `typing.Optional[str]`
+**region:** `typing.Optional[str]` — The AWS region for the Lambda function. Uses default if not provided.
@@ -34521,7 +34521,7 @@ client.projects.metrics.custom.update_lambda(
-
-**role:** `typing.Optional[str]`
+**role:** `typing.Optional[str]` — The AWS IAM role ARN for the Lambda function. Uses default if not provided.
diff --git a/src/label_studio_sdk/projects/metrics/__init__.py b/src/label_studio_sdk/projects/metrics/__init__.py
index b06bfde71..3983367f4 100644
--- a/src/label_studio_sdk/projects/metrics/__init__.py
+++ b/src/label_studio_sdk/projects/metrics/__init__.py
@@ -1,6 +1,6 @@
# This file was auto-generated by Fern from our API Definition.
from . import custom
-from .custom import GetLambdaCustomResponse
+from .custom import GetLambdaCustomResponse, GetLambdaCustomResponseStatus
-__all__ = ["GetLambdaCustomResponse", "custom"]
+__all__ = ["GetLambdaCustomResponse", "GetLambdaCustomResponseStatus", "custom"]
diff --git a/src/label_studio_sdk/projects/metrics/custom/__init__.py b/src/label_studio_sdk/projects/metrics/custom/__init__.py
index 637939f55..7993779b3 100644
--- a/src/label_studio_sdk/projects/metrics/custom/__init__.py
+++ b/src/label_studio_sdk/projects/metrics/custom/__init__.py
@@ -1,5 +1,5 @@
# This file was auto-generated by Fern from our API Definition.
-from .types import GetLambdaCustomResponse
+from .types import GetLambdaCustomResponse, GetLambdaCustomResponseStatus
-__all__ = ["GetLambdaCustomResponse"]
+__all__ = ["GetLambdaCustomResponse", "GetLambdaCustomResponseStatus"]
diff --git a/src/label_studio_sdk/projects/metrics/custom/client.py b/src/label_studio_sdk/projects/metrics/custom/client.py
index f5084f438..849aaca53 100644
--- a/src/label_studio_sdk/projects/metrics/custom/client.py
+++ b/src/label_studio_sdk/projects/metrics/custom/client.py
@@ -41,7 +41,7 @@ def get_lambda(
Returns
-------
GetLambdaCustomResponse
- Lambda code
+ Lambda code and deployment status
Examples
--------
@@ -96,10 +96,13 @@ def update_lambda(
id : int
code : str
+ The Python code for the custom metric function.
region : typing.Optional[str]
+ The AWS region for the Lambda function. Uses default if not provided.
role : typing.Optional[str]
+ The AWS IAM role ARN for the Lambda function. Uses default if not provided.
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
@@ -308,7 +311,7 @@ async def get_lambda(
Returns
-------
GetLambdaCustomResponse
- Lambda code
+ Lambda code and deployment status
Examples
--------
@@ -371,10 +374,13 @@ async def update_lambda(
id : int
code : str
+ The Python code for the custom metric function.
region : typing.Optional[str]
+ The AWS region for the Lambda function. Uses default if not provided.
role : typing.Optional[str]
+ The AWS IAM role ARN for the Lambda function. Uses default if not provided.
request_options : typing.Optional[RequestOptions]
Request-specific configuration.
diff --git a/src/label_studio_sdk/projects/metrics/custom/types/__init__.py b/src/label_studio_sdk/projects/metrics/custom/types/__init__.py
index e1c63e19b..8f7d6c9d6 100644
--- a/src/label_studio_sdk/projects/metrics/custom/types/__init__.py
+++ b/src/label_studio_sdk/projects/metrics/custom/types/__init__.py
@@ -1,5 +1,6 @@
# This file was auto-generated by Fern from our API Definition.
from .get_lambda_custom_response import GetLambdaCustomResponse
+from .get_lambda_custom_response_status import GetLambdaCustomResponseStatus
-__all__ = ["GetLambdaCustomResponse"]
+__all__ = ["GetLambdaCustomResponse", "GetLambdaCustomResponseStatus"]
diff --git a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
index 49ef70695..a1b774567 100644
--- a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
+++ b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
@@ -1,13 +1,18 @@
# This file was auto-generated by Fern from our API Definition.
from .....core.unchecked_base_model import UncheckedBaseModel
+from .get_lambda_custom_response_status import GetLambdaCustomResponseStatus
+import pydantic
from .....core.pydantic_utilities import IS_PYDANTIC_V2
import typing
-import pydantic
class GetLambdaCustomResponse(UncheckedBaseModel):
code: str
+ status: GetLambdaCustomResponseStatus = pydantic.Field()
+ """
+ Deployment status of the Lambda function
+ """
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
diff --git a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response_status.py b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response_status.py
new file mode 100644
index 000000000..9f6e39734
--- /dev/null
+++ b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response_status.py
@@ -0,0 +1,7 @@
+# This file was auto-generated by Fern from our API Definition.
+
+import typing
+
+GetLambdaCustomResponseStatus = typing.Union[
+ typing.Literal["NotDeployed", "Active", "Pending", "Inactive", "Failed", "NotFound", "Error"], typing.Any
+]
From e26e81f389c85675ef0071b244e4abd5e1affc3d Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Thu, 11 Dec 2025 19:31:07 +0000
Subject: [PATCH 08/11] SDK regeneration
---
poetry.lock | 6 +++---
.../metrics/custom/types/get_lambda_custom_response.py | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index f04f6c249..0068ad397 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -2358,13 +2358,13 @@ files = [
[[package]]
name = "urllib3"
-version = "2.6.1"
+version = "2.6.2"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=3.9"
files = [
- {file = "urllib3-2.6.1-py3-none-any.whl", hash = "sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"},
- {file = "urllib3-2.6.1.tar.gz", hash = "sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f"},
+ {file = "urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd"},
+ {file = "urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797"},
]
[package.extras]
diff --git a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
index a1b774567..296b76804 100644
--- a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
+++ b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
@@ -11,7 +11,7 @@ class GetLambdaCustomResponse(UncheckedBaseModel):
code: str
status: GetLambdaCustomResponseStatus = pydantic.Field()
"""
- Deployment status of the Lambda function
+ Deployment status of the Lambda function.
"""
if IS_PYDANTIC_V2:
From c0a1a5b50feb9b058c30ec98192a0c908910a68e Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Thu, 11 Dec 2025 19:33:56 +0000
Subject: [PATCH 09/11] SDK regeneration
---
.../projects/metrics/custom/types/get_lambda_custom_response.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
index 296b76804..a1b774567 100644
--- a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
+++ b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
@@ -11,7 +11,7 @@ class GetLambdaCustomResponse(UncheckedBaseModel):
code: str
status: GetLambdaCustomResponseStatus = pydantic.Field()
"""
- Deployment status of the Lambda function.
+ Deployment status of the Lambda function
"""
if IS_PYDANTIC_V2:
From a3dd96f5c5e53f01c3d4be9ea0bbbff9aeaf482e Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Thu, 11 Dec 2025 19:39:15 +0000
Subject: [PATCH 10/11] SDK regeneration
---
.../projects/metrics/custom/types/get_lambda_custom_response.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
index a1b774567..296b76804 100644
--- a/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
+++ b/src/label_studio_sdk/projects/metrics/custom/types/get_lambda_custom_response.py
@@ -11,7 +11,7 @@ class GetLambdaCustomResponse(UncheckedBaseModel):
code: str
status: GetLambdaCustomResponseStatus = pydantic.Field()
"""
- Deployment status of the Lambda function
+ Deployment status of the Lambda function.
"""
if IS_PYDANTIC_V2:
From b0001d22d9ade6aa5dedeabdaa2bf57ffa3feb85 Mon Sep 17 00:00:00 2001
From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com>
Date: Thu, 11 Dec 2025 19:42:01 +0000
Subject: [PATCH 11/11] SDK regeneration