label-studio-sdk 2.0.5__py3-none-any.whl → 2.0.7__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 (92) hide show
  1. label_studio_sdk/__init__.py +70 -0
  2. label_studio_sdk/annotation_history/__init__.py +5 -0
  3. label_studio_sdk/annotation_history/client.py +415 -0
  4. label_studio_sdk/annotation_history/types/__init__.py +5 -0
  5. label_studio_sdk/annotation_history/types/annotation_history_delete_response.py +22 -0
  6. label_studio_sdk/annotation_reviews/__init__.py +2 -0
  7. label_studio_sdk/annotation_reviews/client.py +713 -0
  8. label_studio_sdk/base_client.py +20 -0
  9. label_studio_sdk/blueprints/__init__.py +2 -0
  10. label_studio_sdk/blueprints/client.py +272 -0
  11. label_studio_sdk/core/client_wrapper.py +2 -1
  12. label_studio_sdk/export_storage/__init__.py +2 -2
  13. label_studio_sdk/export_storage/azure_spi/__init__.py +2 -0
  14. label_studio_sdk/export_storage/azure_spi/client.py +1354 -0
  15. label_studio_sdk/export_storage/client.py +8 -0
  16. label_studio_sdk/export_storage/gcswif/__init__.py +2 -0
  17. label_studio_sdk/export_storage/gcswif/client.py +1376 -0
  18. label_studio_sdk/import_storage/__init__.py +2 -2
  19. label_studio_sdk/import_storage/azure_spi/__init__.py +2 -0
  20. label_studio_sdk/import_storage/azure_spi/client.py +1378 -0
  21. label_studio_sdk/import_storage/client.py +8 -0
  22. label_studio_sdk/import_storage/gcswif/__init__.py +2 -0
  23. label_studio_sdk/import_storage/gcswif/client.py +1400 -0
  24. label_studio_sdk/jwt_settings/client.py +10 -8
  25. label_studio_sdk/label_interface/control_tags.py +38 -0
  26. label_studio_sdk/label_interface/data_examples.json +10 -0
  27. label_studio_sdk/label_interface/interface.py +13 -0
  28. label_studio_sdk/label_interface/object_tags.py +9 -0
  29. label_studio_sdk/ml/client.py +124 -0
  30. label_studio_sdk/organizations/__init__.py +3 -2
  31. label_studio_sdk/organizations/client.py +536 -1
  32. label_studio_sdk/organizations/invites/__init__.py +2 -0
  33. label_studio_sdk/organizations/invites/client.py +368 -0
  34. label_studio_sdk/organizations/types/__init__.py +5 -0
  35. label_studio_sdk/organizations/types/patched_default_role_request_custom_scripts_editable_by.py +7 -0
  36. label_studio_sdk/project_templates/__init__.py +2 -0
  37. label_studio_sdk/project_templates/client.py +909 -0
  38. label_studio_sdk/projects/client.py +8 -0
  39. label_studio_sdk/projects/members/__init__.py +2 -2
  40. label_studio_sdk/projects/members/bulk/client.py +46 -2
  41. label_studio_sdk/projects/members/client.py +4 -0
  42. label_studio_sdk/projects/members/paginated/__init__.py +2 -0
  43. label_studio_sdk/projects/members/paginated/client.py +248 -0
  44. label_studio_sdk/session_policy/__init__.py +2 -0
  45. label_studio_sdk/session_policy/client.py +247 -0
  46. label_studio_sdk/tasks/client.py +371 -0
  47. label_studio_sdk/types/__init__.py +56 -0
  48. label_studio_sdk/types/action_enum.py +19 -0
  49. label_studio_sdk/types/all_roles_project_list.py +1 -1
  50. label_studio_sdk/types/annotation.py +7 -0
  51. label_studio_sdk/types/annotation_history.py +81 -0
  52. label_studio_sdk/types/annotation_history_action.py +7 -0
  53. label_studio_sdk/types/annotation_request.py +7 -0
  54. label_studio_sdk/types/annotation_review.py +61 -0
  55. label_studio_sdk/types/annotation_review_request.py +41 -0
  56. label_studio_sdk/types/azure_service_principal_export_storage.py +114 -0
  57. label_studio_sdk/types/azure_service_principal_export_storage_request.py +107 -0
  58. label_studio_sdk/types/azure_service_principal_import_storage.py +115 -0
  59. label_studio_sdk/types/azure_service_principal_import_storage_request.py +108 -0
  60. label_studio_sdk/types/blueprint.py +41 -0
  61. label_studio_sdk/types/default_role.py +75 -0
  62. label_studio_sdk/types/default_role_custom_scripts_editable_by.py +7 -0
  63. label_studio_sdk/types/gcswif_export_storage.py +119 -0
  64. label_studio_sdk/types/gcswif_export_storage_request.py +112 -0
  65. label_studio_sdk/types/gcswif_import_storage.py +120 -0
  66. label_studio_sdk/types/gcswif_import_storage_request.py +113 -0
  67. label_studio_sdk/types/lse_project.py +223 -0
  68. label_studio_sdk/types/lse_project_sampling.py +7 -0
  69. label_studio_sdk/types/lse_project_skip_queue.py +7 -0
  70. label_studio_sdk/types/lse_project_update.py +1 -0
  71. label_studio_sdk/types/lse_task.py +1 -0
  72. label_studio_sdk/types/lse_task_serializer_for_reviewers.py +1 -0
  73. label_studio_sdk/types/lsejwt_settings.py +1 -5
  74. label_studio_sdk/types/paginated_annotation_history_list.py +23 -0
  75. label_studio_sdk/types/paginated_lse_user_list.py +23 -0
  76. label_studio_sdk/types/paginated_paginated_project_member_list.py +23 -0
  77. label_studio_sdk/types/paginated_project_member.py +50 -0
  78. label_studio_sdk/types/project_member_bulk_assign_roles_request.py +21 -0
  79. label_studio_sdk/types/project_template.py +41 -0
  80. label_studio_sdk/types/project_template_request.py +38 -0
  81. label_studio_sdk/types/review_settings.py +5 -0
  82. label_studio_sdk/types/review_settings_request.py +5 -0
  83. label_studio_sdk/types/session_timeout_policy.py +31 -0
  84. label_studio_sdk/types/task_event.py +61 -0
  85. label_studio_sdk/workspaces/members/__init__.py +2 -2
  86. label_studio_sdk/workspaces/members/client.py +4 -0
  87. label_studio_sdk/workspaces/members/paginated/__init__.py +2 -0
  88. label_studio_sdk/workspaces/members/paginated/client.py +212 -0
  89. {label_studio_sdk-2.0.5.dist-info → label_studio_sdk-2.0.7.dist-info}/METADATA +2 -2
  90. {label_studio_sdk-2.0.5.dist-info → label_studio_sdk-2.0.7.dist-info}/RECORD +92 -36
  91. {label_studio_sdk-2.0.5.dist-info → label_studio_sdk-2.0.7.dist-info}/LICENSE +0 -0
  92. {label_studio_sdk-2.0.5.dist-info → label_studio_sdk-2.0.7.dist-info}/WHEEL +0 -0
@@ -0,0 +1,120 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ import pydantic
6
+ import datetime as dt
7
+ from .status_c5a_enum import StatusC5AEnum
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
+
10
+
11
+ class GcswifImportStorage(UncheckedBaseModel):
12
+ bucket: typing.Optional[str] = pydantic.Field(default=None)
13
+ """
14
+ GCS bucket name
15
+ """
16
+
17
+ created_at: dt.datetime = pydantic.Field()
18
+ """
19
+ Creation time
20
+ """
21
+
22
+ description: typing.Optional[str] = pydantic.Field(default=None)
23
+ """
24
+ Cloud storage description
25
+ """
26
+
27
+ google_application_credentials: typing.Optional[str] = pydantic.Field(default=None)
28
+ """
29
+ The content of GOOGLE_APPLICATION_CREDENTIALS json file
30
+ """
31
+
32
+ google_project_id: typing.Optional[str] = pydantic.Field(default=None)
33
+ """
34
+ Google project ID
35
+ """
36
+
37
+ google_project_number: typing.Optional[str] = pydantic.Field(default=None)
38
+ """
39
+ Google project number
40
+ """
41
+
42
+ google_service_account_email: typing.Optional[str] = pydantic.Field(default=None)
43
+ """
44
+ Google service account email
45
+ """
46
+
47
+ google_wif_pool_id: typing.Optional[str] = pydantic.Field(default=None)
48
+ """
49
+ Google WIF pool ID
50
+ """
51
+
52
+ google_wif_provider_id: typing.Optional[str] = pydantic.Field(default=None)
53
+ """
54
+ Google WIF provider ID
55
+ """
56
+
57
+ id: int
58
+ last_sync: typing.Optional[dt.datetime] = pydantic.Field(default=None)
59
+ """
60
+ Last sync finished time
61
+ """
62
+
63
+ last_sync_count: typing.Optional[int] = pydantic.Field(default=None)
64
+ """
65
+ Count of tasks synced last time
66
+ """
67
+
68
+ last_sync_job: typing.Optional[str] = pydantic.Field(default=None)
69
+ """
70
+ Last sync job ID
71
+ """
72
+
73
+ meta: typing.Optional[typing.Optional[typing.Any]] = None
74
+ prefix: typing.Optional[str] = pydantic.Field(default=None)
75
+ """
76
+ GCS bucket prefix
77
+ """
78
+
79
+ presign: typing.Optional[bool] = None
80
+ presign_ttl: typing.Optional[int] = pydantic.Field(default=None)
81
+ """
82
+ Presigned URLs TTL (in minutes)
83
+ """
84
+
85
+ project: int = pydantic.Field()
86
+ """
87
+ A unique integer value identifying this project.
88
+ """
89
+
90
+ regex_filter: typing.Optional[str] = pydantic.Field(default=None)
91
+ """
92
+ Cloud storage regex for filtering objects
93
+ """
94
+
95
+ status: typing.Optional[StatusC5AEnum] = None
96
+ synchronizable: typing.Optional[bool] = None
97
+ title: typing.Optional[str] = pydantic.Field(default=None)
98
+ """
99
+ Cloud storage title
100
+ """
101
+
102
+ traceback: typing.Optional[str] = pydantic.Field(default=None)
103
+ """
104
+ Traceback report for the last failed sync
105
+ """
106
+
107
+ type: str
108
+ use_blob_urls: typing.Optional[bool] = pydantic.Field(default=None)
109
+ """
110
+ Interpret objects as BLOBs and generate URLs
111
+ """
112
+
113
+ if IS_PYDANTIC_V2:
114
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
115
+ else:
116
+
117
+ class Config:
118
+ frozen = True
119
+ smart_union = True
120
+ extra = pydantic.Extra.allow
@@ -0,0 +1,113 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ import pydantic
6
+ import datetime as dt
7
+ from .status_c5a_enum import StatusC5AEnum
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
+
10
+
11
+ class GcswifImportStorageRequest(UncheckedBaseModel):
12
+ bucket: typing.Optional[str] = pydantic.Field(default=None)
13
+ """
14
+ GCS bucket name
15
+ """
16
+
17
+ description: typing.Optional[str] = pydantic.Field(default=None)
18
+ """
19
+ Cloud storage description
20
+ """
21
+
22
+ google_application_credentials: typing.Optional[str] = pydantic.Field(default=None)
23
+ """
24
+ The content of GOOGLE_APPLICATION_CREDENTIALS json file
25
+ """
26
+
27
+ google_project_id: typing.Optional[str] = pydantic.Field(default=None)
28
+ """
29
+ Google project ID
30
+ """
31
+
32
+ google_project_number: typing.Optional[str] = pydantic.Field(default=None)
33
+ """
34
+ Google project number
35
+ """
36
+
37
+ google_service_account_email: typing.Optional[str] = pydantic.Field(default=None)
38
+ """
39
+ Google service account email
40
+ """
41
+
42
+ google_wif_pool_id: typing.Optional[str] = pydantic.Field(default=None)
43
+ """
44
+ Google WIF pool ID
45
+ """
46
+
47
+ google_wif_provider_id: typing.Optional[str] = pydantic.Field(default=None)
48
+ """
49
+ Google WIF provider ID
50
+ """
51
+
52
+ last_sync: typing.Optional[dt.datetime] = pydantic.Field(default=None)
53
+ """
54
+ Last sync finished time
55
+ """
56
+
57
+ last_sync_count: typing.Optional[int] = pydantic.Field(default=None)
58
+ """
59
+ Count of tasks synced last time
60
+ """
61
+
62
+ last_sync_job: typing.Optional[str] = pydantic.Field(default=None)
63
+ """
64
+ Last sync job ID
65
+ """
66
+
67
+ meta: typing.Optional[typing.Optional[typing.Any]] = None
68
+ prefix: typing.Optional[str] = pydantic.Field(default=None)
69
+ """
70
+ GCS bucket prefix
71
+ """
72
+
73
+ presign: typing.Optional[bool] = None
74
+ presign_ttl: typing.Optional[int] = pydantic.Field(default=None)
75
+ """
76
+ Presigned URLs TTL (in minutes)
77
+ """
78
+
79
+ project: int = pydantic.Field()
80
+ """
81
+ A unique integer value identifying this project.
82
+ """
83
+
84
+ regex_filter: typing.Optional[str] = pydantic.Field(default=None)
85
+ """
86
+ Cloud storage regex for filtering objects
87
+ """
88
+
89
+ status: typing.Optional[StatusC5AEnum] = None
90
+ synchronizable: typing.Optional[bool] = None
91
+ title: typing.Optional[str] = pydantic.Field(default=None)
92
+ """
93
+ Cloud storage title
94
+ """
95
+
96
+ traceback: typing.Optional[str] = pydantic.Field(default=None)
97
+ """
98
+ Traceback report for the last failed sync
99
+ """
100
+
101
+ use_blob_urls: typing.Optional[bool] = pydantic.Field(default=None)
102
+ """
103
+ Interpret objects as BLOBs and generate URLs
104
+ """
105
+
106
+ if IS_PYDANTIC_V2:
107
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
108
+ else:
109
+
110
+ class Config:
111
+ frozen = True
112
+ smart_union = True
113
+ extra = pydantic.Extra.allow
@@ -0,0 +1,223 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ from .assignment_settings import AssignmentSettings
6
+ import pydantic
7
+ import datetime as dt
8
+ from .user_simple import UserSimple
9
+ from .review_settings import ReviewSettings
10
+ from .lse_project_sampling import LseProjectSampling
11
+ from .lse_project_skip_queue import LseProjectSkipQueue
12
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
13
+
14
+
15
+ class LseProject(UncheckedBaseModel):
16
+ """
17
+ Serializer get numbers from project queryset annotation,
18
+ make sure, that you use correct one(Project.objects.with_counts())
19
+ """
20
+
21
+ annotation_limit_count: typing.Optional[int] = None
22
+ annotation_limit_percent: typing.Optional[str] = None
23
+ annotator_evaluation_minimum_score: typing.Optional[str] = None
24
+ annotator_evaluation_minimum_tasks: typing.Optional[int] = None
25
+ assignment_settings: AssignmentSettings
26
+ color: typing.Optional[str] = None
27
+ comment_classification_config: typing.Optional[str] = None
28
+ config_has_control_tags: bool = pydantic.Field()
29
+ """
30
+ Flag to detect is project ready for labeling
31
+ """
32
+
33
+ config_suitable_for_bulk_annotation: bool = pydantic.Field()
34
+ """
35
+ Flag to detect is project ready for bulk annotation
36
+ """
37
+
38
+ control_weights: typing.Optional[typing.Optional[typing.Any]] = None
39
+ created_at: dt.datetime
40
+ created_by: typing.Optional[UserSimple] = pydantic.Field(default=None)
41
+ """
42
+ Project owner
43
+ """
44
+
45
+ custom_script: typing.Optional[str] = None
46
+ custom_task_lock_ttl: typing.Optional[int] = pydantic.Field(default=None)
47
+ """
48
+ TTL in seconds for task reservations, on new and existing tasks
49
+ """
50
+
51
+ data_types: typing.Optional[typing.Any] = None
52
+ description: typing.Optional[str] = pydantic.Field(default=None)
53
+ """
54
+ Project description
55
+ """
56
+
57
+ duplication_done: typing.Optional[bool] = None
58
+ duplication_status: typing.Optional[str] = None
59
+ enable_empty_annotation: typing.Optional[bool] = pydantic.Field(default=None)
60
+ """
61
+ Allow annotators to submit empty annotations
62
+ """
63
+
64
+ evaluate_predictions_automatically: typing.Optional[bool] = pydantic.Field(default=None)
65
+ """
66
+ Retrieve and display predictions when loading a task
67
+ """
68
+
69
+ expert_instruction: typing.Optional[str] = pydantic.Field(default=None)
70
+ """
71
+ Labeling instructions in HTML format
72
+ """
73
+
74
+ finished_task_number: int = pydantic.Field()
75
+ """
76
+ Finished tasks
77
+ """
78
+
79
+ ground_truth_number: int = pydantic.Field()
80
+ """
81
+ Honeypot annotation number in project
82
+ """
83
+
84
+ id: int
85
+ is_draft: typing.Optional[bool] = pydantic.Field(default=None)
86
+ """
87
+ Whether or not the project is in the middle of being created
88
+ """
89
+
90
+ is_published: typing.Optional[bool] = pydantic.Field(default=None)
91
+ """
92
+ Whether or not the project is published to annotators
93
+ """
94
+
95
+ label_config: typing.Optional[str] = pydantic.Field(default=None)
96
+ """
97
+ Label config in XML format. See more about it in documentation
98
+ """
99
+
100
+ maximum_annotations: typing.Optional[int] = pydantic.Field(default=None)
101
+ """
102
+ Maximum number of annotations for one task. If the number of annotations per task is equal or greater to this value, the task is completed (is_labeled=True)
103
+ """
104
+
105
+ members: str
106
+ members_count: int
107
+ min_annotations_to_start_training: typing.Optional[int] = pydantic.Field(default=None)
108
+ """
109
+ Minimum number of completed tasks after which model training is started
110
+ """
111
+
112
+ model_version: typing.Optional[str] = pydantic.Field(default=None)
113
+ """
114
+ Machine learning model version
115
+ """
116
+
117
+ num_tasks_with_annotations: int = pydantic.Field()
118
+ """
119
+ Tasks with annotations count
120
+ """
121
+
122
+ organization: typing.Optional[int] = None
123
+ overlap_cohort_percentage: typing.Optional[int] = None
124
+ parsed_label_config: typing.Optional[typing.Any] = None
125
+ pause_on_failed_annotator_evaluation: typing.Optional[bool] = None
126
+ pinned_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
127
+ """
128
+ Pinned date and time
129
+ """
130
+
131
+ prompts: str
132
+ queue_done: str
133
+ queue_left: str
134
+ queue_total: str
135
+ require_comment_on_skip: typing.Optional[bool] = None
136
+ reveal_preannotations_interactively: typing.Optional[bool] = pydantic.Field(default=None)
137
+ """
138
+ Reveal pre-annotations interactively
139
+ """
140
+
141
+ review_settings: ReviewSettings
142
+ reviewer_queue_total: str
143
+ sampling: typing.Optional[LseProjectSampling] = None
144
+ show_annotation_history: typing.Optional[bool] = pydantic.Field(default=None)
145
+ """
146
+ Show annotation history to annotator
147
+ """
148
+
149
+ show_collab_predictions: typing.Optional[bool] = pydantic.Field(default=None)
150
+ """
151
+ If set, the annotator can view model predictions
152
+ """
153
+
154
+ show_ground_truth_first: typing.Optional[bool] = None
155
+ show_instruction: typing.Optional[bool] = pydantic.Field(default=None)
156
+ """
157
+ Show instructions to the annotator before they start
158
+ """
159
+
160
+ show_overlap_first: typing.Optional[bool] = None
161
+ show_skip_button: typing.Optional[bool] = pydantic.Field(default=None)
162
+ """
163
+ Show a skip button in interface and allow annotators to skip the task
164
+ """
165
+
166
+ show_unused_data_columns_to_annotators: typing.Optional[bool] = None
167
+ skip_queue: typing.Optional[LseProjectSkipQueue] = None
168
+ skipped_annotations_number: int = pydantic.Field()
169
+ """
170
+ Skipped by collaborators annotation number in project
171
+ """
172
+
173
+ start_training_on_annotation_update: bool = pydantic.Field()
174
+ """
175
+ Start model training after any annotations are submitted or updated
176
+ """
177
+
178
+ task_data_login: typing.Optional[str] = pydantic.Field(default=None)
179
+ """
180
+ Task data credentials: login
181
+ """
182
+
183
+ task_data_password: typing.Optional[str] = pydantic.Field(default=None)
184
+ """
185
+ Task data credentials: password
186
+ """
187
+
188
+ task_number: int = pydantic.Field()
189
+ """
190
+ Total task number in project
191
+ """
192
+
193
+ title: typing.Optional[str] = pydantic.Field(default=None)
194
+ """
195
+ Project name. Must be between 3 and 50 characters long.
196
+ """
197
+
198
+ total_annotations_number: int = pydantic.Field()
199
+ """
200
+ Total annotations number in project including skipped_annotations_number and ground_truth_number.
201
+ """
202
+
203
+ total_predictions_number: int = pydantic.Field()
204
+ """
205
+ Total predictions number in project including skipped_annotations_number, ground_truth_number, and useful_annotation_number.
206
+ """
207
+
208
+ useful_annotation_number: int = pydantic.Field()
209
+ """
210
+ Useful annotation number in project not including skipped_annotations_number and ground_truth_number. Total annotations = annotation_number + skipped_annotations_number + ground_truth_number
211
+ """
212
+
213
+ workspace: str
214
+ workspace_title: str
215
+
216
+ if IS_PYDANTIC_V2:
217
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
218
+ else:
219
+
220
+ class Config:
221
+ frozen = True
222
+ smart_union = True
223
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from .sampling_enum import SamplingEnum
5
+ from .null_enum import NullEnum
6
+
7
+ LseProjectSampling = typing.Union[SamplingEnum, NullEnum]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from .skip_queue_enum import SkipQueueEnum
5
+ from .null_enum import NullEnum
6
+
7
+ LseProjectSkipQueue = typing.Union[SkipQueueEnum, NullEnum]
@@ -156,6 +156,7 @@ class LseProjectUpdate(UncheckedBaseModel):
156
156
  Show a skip button in interface and allow annotators to skip the task
157
157
  """
158
158
 
159
+ show_unused_data_columns_to_annotators: typing.Optional[bool] = None
159
160
  skip_queue: typing.Optional[LseProjectUpdateSkipQueue] = None
160
161
  skipped_annotations_number: int = pydantic.Field()
161
162
  """
@@ -15,6 +15,7 @@ class LseTask(UncheckedBaseModel):
15
15
  """
16
16
 
17
17
  agreement: str
18
+ agreement_selected: str
18
19
  annotations: str
19
20
  annotations_ids: str
20
21
  annotations_results: str
@@ -15,6 +15,7 @@ class LseTaskSerializerForReviewers(UncheckedBaseModel):
15
15
  """
16
16
 
17
17
  agreement: str
18
+ agreement_selected: str
18
19
  annotations: str
19
20
  annotations_ids: str
20
21
  annotations_results: str
@@ -7,11 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
7
 
8
8
 
9
9
  class LsejwtSettings(UncheckedBaseModel):
10
- api_token_ttl_days: typing.Optional[int] = pydantic.Field(default=None)
11
- """
12
- Number of days before JWT API tokens expire
13
- """
14
-
10
+ api_token_ttl_days: int
15
11
  api_tokens_enabled: typing.Optional[bool] = pydantic.Field(default=None)
16
12
  """
17
13
  Enable JWT API token authentication for this organization
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ from .annotation_history import AnnotationHistory
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class PaginatedAnnotationHistoryList(UncheckedBaseModel):
11
+ count: int
12
+ next: typing.Optional[str] = None
13
+ previous: typing.Optional[str] = None
14
+ results: typing.List[AnnotationHistory]
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ from .lse_user import LseUser
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class PaginatedLseUserList(UncheckedBaseModel):
11
+ count: int
12
+ next: typing.Optional[str] = None
13
+ previous: typing.Optional[str] = None
14
+ results: typing.List[LseUser]
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ from .paginated_project_member import PaginatedProjectMember
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class PaginatedPaginatedProjectMemberList(UncheckedBaseModel):
11
+ count: int
12
+ next: typing.Optional[str] = None
13
+ previous: typing.Optional[str] = None
14
+ results: typing.List[PaginatedProjectMember]
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -0,0 +1,50 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import typing
5
+ import pydantic
6
+ import datetime as dt
7
+ from .lse_fields import LseFields
8
+ from .organization_membership import OrganizationMembership
9
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
10
+
11
+
12
+ class PaginatedProjectMember(UncheckedBaseModel):
13
+ """
14
+ A ModelSerializer that takes additional arguments for
15
+ "fields", "omit" and "expand" in order to
16
+ control which fields are displayed, and whether to replace simple
17
+ values with complex, nested serializations
18
+ """
19
+
20
+ active_organization: typing.Optional[int] = None
21
+ active_organization_meta: str
22
+ allow_newsletters: typing.Optional[bool] = pydantic.Field(default=None)
23
+ """
24
+ Allow sending newsletters to user
25
+ """
26
+
27
+ avatar: str
28
+ custom_hotkeys: typing.Optional[typing.Optional[typing.Any]] = None
29
+ date_joined: typing.Optional[dt.datetime] = None
30
+ email: typing.Optional[str] = None
31
+ first_name: typing.Optional[str] = None
32
+ id: int
33
+ initials: str
34
+ last_activity: dt.datetime
35
+ last_name: typing.Optional[str] = None
36
+ lse_fields: LseFields
37
+ org_membership: typing.List[OrganizationMembership]
38
+ pause: str
39
+ phone: typing.Optional[str] = None
40
+ project_role: str
41
+ username: str
42
+
43
+ if IS_PYDANTIC_V2:
44
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
45
+ else:
46
+
47
+ class Config:
48
+ frozen = True
49
+ smart_union = True
50
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ from .role9e7enum import Role9E7Enum
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import typing
7
+ import pydantic
8
+
9
+
10
+ class ProjectMemberBulkAssignRolesRequest(UncheckedBaseModel):
11
+ role: Role9E7Enum
12
+ user_id: int
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow