python-openarch-api 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1380 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: openarch-api.yaml
3
+
4
+ from __future__ import annotations
5
+
6
+ from datetime import datetime
7
+ from enum import Enum
8
+ from typing import Annotated, Any
9
+
10
+ from pydantic import BaseModel, ConfigDict, Field
11
+
12
+
13
+ class CopyCommand(BaseModel):
14
+ """
15
+ Represents Copy API's HTTP Post body.
16
+ """
17
+
18
+ model_config = ConfigDict(
19
+ populate_by_name=True,
20
+ )
21
+ name: str
22
+ """
23
+ Name of the document after copying. Example: "name": "Copied file name"
24
+ """
25
+ target_parent_id: Annotated[str, Field(alias="targetParentId")]
26
+ """
27
+ Target parent id where the document will be copied. Example: "targetParentId": "097d50d7-f839-440a-b72c-f2a51ea214b7"
28
+ """
29
+
30
+
31
+ class ExternalUserRelationsSecurityPolicyUser(BaseModel):
32
+ """
33
+ User for the External User Relations Security Policy data
34
+ """
35
+
36
+ model_config = ConfigDict(
37
+ populate_by_name=True,
38
+ )
39
+ id: str
40
+ relations: dict[str, list[str]]
41
+
42
+
43
+ class FalseAsNullEnum(Enum):
44
+ STORE = "STORE"
45
+ REST = "REST"
46
+ INDEX = "INDEX"
47
+
48
+
49
+ class NotOutputEnum(Enum):
50
+ STORE = "STORE"
51
+ REST = "REST"
52
+ INDEX = "INDEX"
53
+
54
+
55
+ class Source(Enum):
56
+ COMPUTED = "COMPUTED"
57
+ QUERY_VIRTUAL = "QUERY_VIRTUAL"
58
+
59
+
60
+ class FieldCharacteristics(BaseModel):
61
+ """
62
+ Repository-managed access, query and output behavior for a field.
63
+ """
64
+
65
+ model_config = ConfigDict(
66
+ populate_by_name=True,
67
+ )
68
+ false_as_null: Annotated[
69
+ list[FalseAsNullEnum] | None, Field(alias="falseAsNull")
70
+ ] = None
71
+ no_auto_checkout: Annotated[bool | None, Field(alias="noAutoCheckout")] = None
72
+ not_output: Annotated[list[NotOutputEnum] | None, Field(alias="notOutput")] = None
73
+ not_projectable: Annotated[bool | None, Field(alias="notProjectable")] = None
74
+ not_queryable: Annotated[bool | None, Field(alias="notQueryable")] = None
75
+ read_permission: Annotated[str | None, Field(alias="readPermission")] = None
76
+ source: Source | None = None
77
+ system_owned: Annotated[bool | None, Field(alias="systemOwned")] = None
78
+ version_write_permission: Annotated[
79
+ str | None, Field(alias="versionWritePermission")
80
+ ] = None
81
+ write_permission: Annotated[str | None, Field(alias="writePermission")] = None
82
+
83
+
84
+ class Group(BaseModel):
85
+ """
86
+ Represents a group.
87
+ """
88
+
89
+ model_config = ConfigDict(
90
+ populate_by_name=True,
91
+ )
92
+ id: str | None = None
93
+ """
94
+ UUID of the group.
95
+ """
96
+ name: str | None = None
97
+ """
98
+ Name of the group.
99
+ """
100
+
101
+
102
+ class ImageLocation(BaseModel):
103
+ model_config = ConfigDict(
104
+ populate_by_name=True,
105
+ )
106
+ bottom: int | None = None
107
+ left: int | None = None
108
+ right: int | None = None
109
+ top: int | None = None
110
+
111
+
112
+ class ListEffectivePermissionsPerUserDTO(BaseModel):
113
+ model_config = ConfigDict(
114
+ populate_by_name=True,
115
+ )
116
+ user_id: Annotated[str | None, Field(alias="userId")] = None
117
+ user_permissions: Annotated[list[str] | None, Field(alias="userPermissions")] = None
118
+
119
+
120
+ class MixinType(BaseModel):
121
+ """
122
+ Represents a mixin.
123
+ """
124
+
125
+ model_config = ConfigDict(
126
+ populate_by_name=True,
127
+ )
128
+ no_per_document_query: Annotated[bool | None, Field(alias="noPerDocumentQuery")] = (
129
+ None
130
+ )
131
+ project_id: Annotated[str | None, Field(alias="projectId")] = None
132
+ schemas: list[str] | None = None
133
+
134
+
135
+ class MoveCommand(BaseModel):
136
+ """
137
+ Represents the Move API's HTTP Post body.
138
+ """
139
+
140
+ model_config = ConfigDict(
141
+ populate_by_name=True,
142
+ )
143
+ target_parent_id: Annotated[str, Field(alias="targetParentId")]
144
+ """
145
+ Target parent id where the document will be moved. Example: "targetParentId": "097d50d7-f839-440a-b72c-f2a51ea214b7"
146
+ """
147
+
148
+
149
+ class NamedQuery(BaseModel):
150
+ """
151
+ Represents a query referencing a pre-defined named query definition by name.
152
+ """
153
+
154
+ model_config = ConfigDict(
155
+ populate_by_name=True,
156
+ )
157
+ limit: Annotated[int | None, Field(examples=[100])] = 10
158
+ """
159
+ Max number of documents retrieved by the given query.
160
+ """
161
+ offset: Annotated[int | None, Field(examples=[0])] = 0
162
+ """
163
+ The initial document offset; for pagination support.
164
+ """
165
+ parameters: dict[str, Any] | None = None
166
+ query_name: Annotated[str | None, Field(alias="queryName")] = None
167
+ """
168
+ Name of the query.
169
+ """
170
+ repository_id: Annotated[str | None, Field(alias="repositoryId")] = "default"
171
+ """
172
+ The id of the internal repository.
173
+ """
174
+ search_after: Annotated[str | None, Field(alias="searchAfter")] = None
175
+ """
176
+ Opaque cursor token for efficient pagination. Use the nextSearchAfter value from a previous response. When provided, offset is ignored.
177
+ """
178
+ selected_quick_filters: Annotated[
179
+ list[str] | None,
180
+ Field(
181
+ alias="selectedQuickFilters",
182
+ examples=[
183
+ "exclude documents that are not article: mydc_nature != 'article'"
184
+ ],
185
+ ),
186
+ ] = None
187
+ """
188
+ List of filters to be applied to the result.
189
+ """
190
+ sort: Annotated[list[str] | None, Field(examples=[["sys_title"]])] = None
191
+ """
192
+ List of fields used to sort the result.
193
+ """
194
+ track_total_count: Annotated[bool | None, Field(alias="trackTotalCount")] = None
195
+ """
196
+ If true, the total count of documents retrieved by the query will be computed.
197
+ """
198
+ track_total_count_up_to: Annotated[
199
+ int | None, Field(alias="trackTotalCountUpTo", examples=[100])
200
+ ] = None
201
+ """
202
+ Max number of documents to count. This can be set to -1 to remove the limit but it will be expensive on large indexes.
203
+ """
204
+
205
+
206
+ class PredicateParameter(BaseModel):
207
+ """
208
+ Represents an advanced query predicate parameter definition.
209
+ """
210
+
211
+ model_config = ConfigDict(
212
+ populate_by_name=True,
213
+ )
214
+ default_value: Annotated[dict[str, Any] | None, Field(alias="defaultValue")] = None
215
+ name: str | None = None
216
+
217
+
218
+ class PrimaryType(BaseModel):
219
+ """
220
+ Represents a primary type.
221
+ """
222
+
223
+ model_config = ConfigDict(
224
+ populate_by_name=True,
225
+ )
226
+ extends: str | None = None
227
+ mixins: list[str] | None = None
228
+ project_id: Annotated[str | None, Field(alias="projectId")] = None
229
+ schemas: list[str] | None = None
230
+ special: Annotated[bool | None, Field(deprecated=True)] = None
231
+ """
232
+ Deprecated: the special flag is obsolete and will be removed in a future version.
233
+ """
234
+ subtypes: list[str] | None = None
235
+
236
+
237
+ class QuerySyntax(Enum):
238
+ """
239
+ The syntax the query is expressed in; absent for the default hxql syntax.
240
+ """
241
+
242
+ HXQL = "hxql"
243
+ EXPR = "expr"
244
+
245
+
246
+ class QuickFilter(BaseModel):
247
+ """
248
+ Represents an advanced query quick filter definition.
249
+ """
250
+
251
+ model_config = ConfigDict(
252
+ populate_by_name=True,
253
+ )
254
+ clause: str | None = None
255
+ name: str | None = None
256
+ sort: list[str] | None = None
257
+
258
+
259
+ class StackTraceItem(BaseModel):
260
+ model_config = ConfigDict(
261
+ populate_by_name=True,
262
+ )
263
+ class_loader_name: Annotated[str | None, Field(alias="classLoaderName")] = None
264
+ class_name: Annotated[str | None, Field(alias="className")] = None
265
+ file_name: Annotated[str | None, Field(alias="fileName")] = None
266
+ line_number: Annotated[int | None, Field(alias="lineNumber")] = None
267
+ method_name: Annotated[str | None, Field(alias="methodName")] = None
268
+ module_name: Annotated[str | None, Field(alias="moduleName")] = None
269
+ module_version: Annotated[str | None, Field(alias="moduleVersion")] = None
270
+ native_method: Annotated[bool | None, Field(alias="nativeMethod")] = None
271
+
272
+
273
+ class SuppressedItem(BaseModel):
274
+ model_config = ConfigDict(
275
+ populate_by_name=True,
276
+ )
277
+ localized_message: Annotated[str | None, Field(alias="localizedMessage")] = None
278
+ message: str | None = None
279
+ stack_trace: Annotated[list[StackTraceItem] | None, Field(alias="stackTrace")] = (
280
+ None
281
+ )
282
+
283
+
284
+ class Cause(BaseModel):
285
+ model_config = ConfigDict(
286
+ populate_by_name=True,
287
+ )
288
+ localized_message: Annotated[str | None, Field(alias="localizedMessage")] = None
289
+ message: str | None = None
290
+ stack_trace: Annotated[list[StackTraceItem] | None, Field(alias="stackTrace")] = (
291
+ None
292
+ )
293
+ suppressed: list[SuppressedItem] | None = None
294
+
295
+
296
+ class SuppressedItem1(BaseModel):
297
+ model_config = ConfigDict(
298
+ populate_by_name=True,
299
+ )
300
+ localized_message: Annotated[str | None, Field(alias="localizedMessage")] = None
301
+ message: str | None = None
302
+ stack_trace: Annotated[list[StackTraceItem] | None, Field(alias="stackTrace")] = (
303
+ None
304
+ )
305
+
306
+
307
+ class Exception(BaseModel):
308
+ model_config = ConfigDict(
309
+ populate_by_name=True,
310
+ )
311
+ cause: Cause | None = None
312
+ localized_message: Annotated[str | None, Field(alias="localizedMessage")] = None
313
+ message: str | None = None
314
+ stack_trace: Annotated[list[StackTraceItem] | None, Field(alias="stackTrace")] = (
315
+ None
316
+ )
317
+ suppressed: list[SuppressedItem1] | None = None
318
+
319
+
320
+ class RepositoryErrorResponse(BaseModel):
321
+ model_config = ConfigDict(
322
+ populate_by_name=True,
323
+ )
324
+ entity_type: Annotated[str | None, Field(alias="entity-type")] = None
325
+ exception: Exception | None = None
326
+ message: str | None = None
327
+ stack_trace: Annotated[list[StackTraceItem] | None, Field(alias="stackTrace")] = (
328
+ None
329
+ )
330
+ status: int | None = None
331
+
332
+
333
+ class Resolver(BaseModel):
334
+ """
335
+ Represents a resolver. Beyond "name" and "validation", the properties are resolver-specific parameters, e.g. "vocabulary", "repository", "store" or "type".
336
+ """
337
+
338
+ model_config = ConfigDict(
339
+ populate_by_name=True,
340
+ )
341
+ name: str | None = None
342
+ repository: str | None = None
343
+ store: str | None = None
344
+ type: str | None = None
345
+ validation: bool | None = None
346
+ vocabulary: str | None = None
347
+
348
+
349
+ class SecurityPolicyConfig(BaseModel):
350
+ """
351
+ Configuration for a Security Policy
352
+ """
353
+
354
+ model_config = ConfigDict(
355
+ populate_by_name=True,
356
+ )
357
+ content_types: Annotated[list[str] | None, Field(alias="contentTypes")] = None
358
+ engine: str | None = None
359
+ expression: str | None = None
360
+ mixin: str | None = None
361
+ permissions: list[str] | None = None
362
+ project_id: Annotated[str | None, Field(alias="projectId")] = None
363
+ relations: list[str] | None = None
364
+ user_attribute: Annotated[str | None, Field(alias="userAttribute")] = None
365
+
366
+
367
+ class SpreadSheetLocation(BaseModel):
368
+ model_config = ConfigDict(
369
+ populate_by_name=True,
370
+ )
371
+ column: int | None = None
372
+ row: int | None = None
373
+ sheet: str | None = None
374
+
375
+
376
+ class Status(Enum):
377
+ """
378
+ The current status of the application of the ACE rule.
379
+ """
380
+
381
+ PENDING = "PENDING"
382
+ EFFECTIVE = "EFFECTIVE"
383
+ ARCHIVED = "ARCHIVED"
384
+
385
+
386
+ class StringTermsBucket(BaseModel):
387
+ """
388
+ The list of aggregation buckets computed for the query.
389
+ """
390
+
391
+ model_config = ConfigDict(
392
+ populate_by_name=True,
393
+ )
394
+
395
+
396
+ class TextLocation(BaseModel):
397
+ model_config = ConfigDict(
398
+ populate_by_name=True,
399
+ )
400
+ page: int | None = None
401
+ paragraph: int | None = None
402
+
403
+
404
+ class AttachStatus(Enum):
405
+ """
406
+ Status of the blob attachment phase.
407
+ """
408
+
409
+ PENDING = "PENDING"
410
+ PROCESSING = "PROCESSING"
411
+ READY = "READY"
412
+ ERROR = "ERROR"
413
+
414
+
415
+ class Status1(Enum):
416
+ """
417
+ Status of the upload.
418
+ """
419
+
420
+ INCOMPLETE = "INCOMPLETE"
421
+ PROCESSING = "PROCESSING"
422
+ READY = "READY"
423
+ ERROR = "ERROR"
424
+
425
+
426
+ class Upload(BaseModel):
427
+ """
428
+ UploadAPI response object
429
+ """
430
+
431
+ model_config = ConfigDict(
432
+ populate_by_name=True,
433
+ )
434
+ attach_doc_id: Annotated[str | None, Field(alias="attachDocId")] = None
435
+ """
436
+ Id of the document to which the blob has been attached. Available when attachStatus is READY.
437
+ """
438
+ attach_status: Annotated[AttachStatus | None, Field(alias="attachStatus")] = None
439
+ """
440
+ Status of the blob attachment phase.
441
+ """
442
+ chunk_count: Annotated[int | None, Field(alias="chunkCount")] = None
443
+ """
444
+ Number of chunks uploaded.
445
+ """
446
+ chunk_indexes: Annotated[list[int] | None, Field(alias="chunkIndexes")] = None
447
+ """
448
+ The chunks that compose the Upload.
449
+ """
450
+ chunks_completed: Annotated[bool | None, Field(alias="chunksCompleted")] = None
451
+ """
452
+ True if the number of loaded chunks is equals to the number of chunks size.
453
+ """
454
+ encoding: Annotated[str | None, Field(examples=["UTF-8"])] = None
455
+ """
456
+ Encoding of the content.
457
+ """
458
+ file_name: Annotated[str | None, Field(alias="fileName")] = None
459
+ """
460
+ Name of the associated file of the upload.
461
+ """
462
+ file_size: Annotated[int | None, Field(alias="fileSize")] = None
463
+ """
464
+ File size in bytes; -1 is returned if the size in unknown.
465
+ """
466
+ has_content: Annotated[bool | None, Field(alias="hasContent")] = None
467
+ """
468
+ If the upload has associated content is true
469
+ """
470
+ id: str | None = None
471
+ """
472
+ Upload identifier.
473
+ """
474
+ mime_type: Annotated[
475
+ str | None, Field(alias="mimeType", examples=["plain/text"])
476
+ ] = None
477
+ """
478
+ Mime type of the content.
479
+ """
480
+ partial_file_size: Annotated[int | None, Field(alias="partialFileSize")] = None
481
+ """
482
+ Partial size in bytes. Amount of bytes for all uploaded chunks.
483
+ """
484
+ properties: dict[str, dict[str, Any]] | None = None
485
+ status: Annotated[Status1 | None, Field(examples=["INCOMPLETE"])] = None
486
+ """
487
+ Status of the upload.
488
+ """
489
+
490
+
491
+ class UploadFileInfo(BaseModel):
492
+ """
493
+ Represents an uploaded file.
494
+ """
495
+
496
+ model_config = ConfigDict(
497
+ populate_by_name=True,
498
+ )
499
+ file_key: Annotated[str | None, Field(alias="fileKey")] = None
500
+ """
501
+ file key
502
+ """
503
+ file_name: Annotated[
504
+ str | None, Field(alias="fileName", examples=["myFile.txt"])
505
+ ] = None
506
+ """
507
+ file name
508
+ """
509
+ mime_type: Annotated[
510
+ str | None, Field(alias="mimeType", examples=["text/plain"])
511
+ ] = None
512
+ """
513
+ mimeType
514
+ """
515
+
516
+
517
+ class User(BaseModel):
518
+ """
519
+ Represents a user.
520
+ """
521
+
522
+ model_config = ConfigDict(
523
+ populate_by_name=True,
524
+ )
525
+ email: str | None = None
526
+ """
527
+ Email address of the user.
528
+ """
529
+ first_name: Annotated[str | None, Field(alias="firstName")] = None
530
+ """
531
+ First name of the user.
532
+ """
533
+ id: str | None = None
534
+ """
535
+ UUID of the user.
536
+ """
537
+ last_name: Annotated[str | None, Field(alias="lastName")] = None
538
+ """
539
+ Last name of the user.
540
+ """
541
+ properties: dict[str, dict[str, Any]] | None = None
542
+ username: str | None = None
543
+ """
544
+ Login username of the user.
545
+ """
546
+
547
+
548
+ class VectorQuery(BaseModel):
549
+ """
550
+ Represents a vector search query.
551
+ """
552
+
553
+ model_config = ConfigDict(
554
+ populate_by_name=True,
555
+ )
556
+ chunk_fts: Annotated[str | None, Field(alias="chunkFTS")] = None
557
+ """
558
+ An optional space-separated list of terms to search for in the chunk.
559
+ """
560
+ embedding_type: Annotated[str | None, Field(alias="embeddingType")] = "*"
561
+ """
562
+ A wildcard query for the embedding type.
563
+ """
564
+ limit: Annotated[int | None, Field(examples=[100])] = 10
565
+ """
566
+ Max number of embeddings retrieved by the given query.
567
+ """
568
+ offset: Annotated[int | None, Field(examples=[0])] = 0
569
+ """
570
+ The initial embedding offset; for pagination support.
571
+ """
572
+ query: Annotated[str | None, Field(examples=["SELECT * FROM SysContent"])] = (
573
+ "SELECT * FROM SysContent"
574
+ )
575
+ """
576
+ The query used to filter the embeddings by the corresponding document, in the syntax given by the syntax field.
577
+ """
578
+ repository_id: Annotated[str | None, Field(alias="repositoryId")] = "default"
579
+ """
580
+ The id of the internal repository.
581
+ """
582
+ syntax: QuerySyntax | None = None
583
+ track_total_count: Annotated[bool | None, Field(alias="trackTotalCount")] = False
584
+ """
585
+ If true, the total count of embeddings retrieved by the query will be computed.
586
+ """
587
+ track_total_count_up_to: Annotated[
588
+ int | None, Field(alias="trackTotalCountUpTo", examples=[100])
589
+ ] = None
590
+ """
591
+ Max number of embeddings to count. This can be set to -1 to remove the limit but it will be expensive on large indexes.
592
+ """
593
+ vector: list[float]
594
+ """
595
+ The vector to search for.
596
+ """
597
+
598
+
599
+ class VideoLocation(BaseModel):
600
+ model_config = ConfigDict(
601
+ populate_by_name=True,
602
+ )
603
+ end: float | None = None
604
+ start: float | None = None
605
+
606
+
607
+ class Vocabulary(BaseModel):
608
+ """
609
+ Represents a Vocabulary
610
+ """
611
+
612
+ model_config = ConfigDict(
613
+ populate_by_name=True,
614
+ )
615
+ sysvocab_id: str | None = None
616
+
617
+
618
+ class VocabularyEntry(BaseModel):
619
+ """
620
+ Represents a VocabularyEntry.
621
+ """
622
+
623
+ model_config = ConfigDict(
624
+ populate_by_name=True,
625
+ )
626
+ sysvocab_id: str | None = None
627
+ sysvocab_key: str | None = None
628
+ sysvocab_label: str | None = None
629
+
630
+
631
+ class VocabularyEntryRequest(BaseModel):
632
+ """
633
+ Represents a request to create VocabularyEntry.
634
+ """
635
+
636
+ model_config = ConfigDict(
637
+ populate_by_name=True,
638
+ )
639
+ sysvocab_key: str | None = None
640
+ sysvocab_label: str | None = None
641
+
642
+
643
+ class VocabularyId(BaseModel):
644
+ """
645
+ Represents a Vocabulary ID
646
+ """
647
+
648
+ model_config = ConfigDict(
649
+ populate_by_name=True,
650
+ )
651
+ sysvocab_id: str | None = None
652
+
653
+
654
+ class ACE(BaseModel):
655
+ """
656
+ REST representation of ACEs.
657
+ """
658
+
659
+ model_config = ConfigDict(
660
+ populate_by_name=True,
661
+ )
662
+ begin: datetime | None = None
663
+ """
664
+ The date and time when the ACE rule starts being applied.
665
+ """
666
+ creator: str | None = None
667
+ """
668
+ Name of the user who created the ACE.
669
+ """
670
+ end: datetime | None = None
671
+ """
672
+ The date and time when the ACE rule stops being applied.
673
+ """
674
+ granted: bool | None = None
675
+ """
676
+ True/false indicator of whether the specified permission has been granted to the ACE members.
677
+ """
678
+ group: Group | None = None
679
+ permission: str | None = None
680
+ """
681
+ The permission assigned to members of the ACE.
682
+ """
683
+ status: Status | None = None
684
+ user: User | None = None
685
+
686
+
687
+ class Constraint(BaseModel):
688
+ """
689
+ Represents a constraint.
690
+ """
691
+
692
+ model_config = ConfigDict(
693
+ populate_by_name=True,
694
+ )
695
+ enumeration: list[dict[str, Any]] | None = None
696
+ max_exclusive: Annotated[dict[str, Any] | None, Field(alias="maxExclusive")] = None
697
+ max_inclusive: Annotated[dict[str, Any] | None, Field(alias="maxInclusive")] = None
698
+ max_length: Annotated[int | None, Field(alias="maxLength")] = None
699
+ min_exclusive: Annotated[dict[str, Any] | None, Field(alias="minExclusive")] = None
700
+ min_inclusive: Annotated[dict[str, Any] | None, Field(alias="minInclusive")] = None
701
+ min_length: Annotated[int | None, Field(alias="minLength")] = None
702
+ nullable: bool | None = None
703
+ pattern: str | None = None
704
+ resolver: Resolver | None = None
705
+
706
+
707
+ class Document(BaseModel):
708
+ """
709
+ Represents a document.
710
+ """
711
+
712
+ model_config = ConfigDict(
713
+ extra="allow",
714
+ populate_by_name=True,
715
+ )
716
+ sys_acl: list[ACE] | None = None
717
+ """
718
+ A list of associations between a user (or group of users) and the permissions that are granted or denied.
719
+
720
+ Only included in responses when the user has the `ManageSecurity` permission.
721
+
722
+ """
723
+ sys_ancestor_ids: Annotated[list[str] | None, Field(alias="sys_ancestorIds")] = None
724
+ """
725
+ List of UUIDs of the document's ancestors.
726
+ """
727
+ sys_change_token: Annotated[str | None, Field(alias="sys_changeToken")] = None
728
+ """
729
+ String bundle of the generation and the user generation, as `"<generation>-<userGeneration>"`.
730
+
731
+ **Note:** This is a computed property, kept for clients that expect a single opaque change token. New code should use `sys_gen` and `sys_ugen` directly.
732
+
733
+ """
734
+ sys_contributors: list[User] | None = None
735
+ """
736
+ List of users who created or modified the document.
737
+ """
738
+ sys_created: datetime | None = None
739
+ """
740
+ The date and time when the document was created.
741
+ """
742
+ sys_creator: User | None = None
743
+ sys_description: str | None = None
744
+ """
745
+ Description of the document.
746
+ """
747
+ sys_effective_acl: Annotated[list[ACE] | None, Field(alias="sys_effectiveAcl")] = (
748
+ None
749
+ )
750
+ """
751
+ A list of associations between a user (or group of users) and the permissions that are granted or denied, including those inherited from the document's ancestors.
752
+
753
+ Only included in responses when the user has the `ManageSecurity` permission.
754
+
755
+ """
756
+ sys_effective_permissions: Annotated[
757
+ list[str] | None, Field(alias="sys_effectivePermissions")
758
+ ] = None
759
+ sys_fulltext_binary: Annotated[str | None, Field(alias="sys_fulltextBinary")] = None
760
+ """
761
+ The full text extracted from blobs of the current document.
762
+ """
763
+ sys_gen: int | None = None
764
+ """
765
+ The generation of the document.
766
+
767
+ **Note:** The generation is incremented on each update (system or not) to the document.
768
+
769
+ """
770
+ sys_id: str | None = None
771
+ """
772
+ UUID of the document.
773
+
774
+ **Note:** When included in request bodies for document creation, the sys_id element can be set to match one in an external system, ensuring unicity.
775
+ Character restrictions include the following:
776
+ * 200 characters maximum
777
+ * Characters must be -, _, ., or alphanumeric.
778
+
779
+ """
780
+ sys_is_folderish: Annotated[bool | None, Field(alias="sys_isFolderish")] = None
781
+ """
782
+ True/false indicator of whether the document contains the SysFolderish mixin.
783
+ """
784
+ sys_is_trashed: Annotated[bool | None, Field(alias="sys_isTrashed")] = None
785
+ """
786
+ True when the document is trashed; omitted otherwise.
787
+ """
788
+ sys_last_contributor: Annotated[User | None, Field(alias="sys_lastContributor")] = (
789
+ None
790
+ )
791
+ sys_lifecycle_state: Annotated[str | None, Field(alias="sys_lifecycleState")] = None
792
+ """
793
+ The lifecycle state of the document.
794
+ """
795
+ sys_lock_created: Annotated[datetime | None, Field(alias="sys_lockCreated")] = None
796
+ """
797
+ The date and time when the document was locked by a user.
798
+ """
799
+ sys_lock_owner: Annotated[User | None, Field(alias="sys_lockOwner")] = None
800
+ sys_mixin_types: Annotated[list[str] | None, Field(alias="sys_mixinTypes")] = None
801
+ """
802
+ Restricted list of the document mixins.
803
+
804
+ **Note:** Restrictions include the following:
805
+ * SysFolderish facet is never seen on document instances (only seen on the type).
806
+ * In HXQL queries, sys_mixinTypes can only be used with the =, < >, IN, and NOT IN operators.
807
+
808
+ """
809
+ sys_modified: datetime | None = None
810
+ """
811
+ The date and time when the document was last modified.
812
+ """
813
+ sys_name: str | None = None
814
+ """
815
+ The name of the document.
816
+
817
+ **Note:** Can be up to 100 characters.
818
+
819
+ """
820
+ sys_parent_id: Annotated[str | None, Field(alias="sys_parentId")] = None
821
+ """
822
+ UUID of the document's parent.
823
+ """
824
+ sys_parent_path: Annotated[str | None, Field(alias="sys_parentPath")] = None
825
+ """
826
+ The path to the document's parent in the repository.
827
+ """
828
+ sys_path: str | None = None
829
+ """
830
+ The path to the document in the repository.
831
+
832
+ **Note:** Computed from the sys_name of the document's ancestors. Cannot be used in all HXQL query contexts.
833
+
834
+ """
835
+ sys_path_depth: Annotated[int | None, Field(alias="sys_pathDepth")] = None
836
+ """
837
+ The number of folder levels deep into the repository the document is located.
838
+ """
839
+ sys_pos: int | None = None
840
+ """
841
+ The position of the document within its parent.
842
+
843
+ **Note:** Value is NULL in unordered folders.
844
+
845
+ """
846
+ sys_primary_type: Annotated[str, Field(alias="sys_primaryType")]
847
+ """
848
+ The document type of the document.
849
+
850
+ **Note:** Required in request bodies for document creation.
851
+
852
+ """
853
+ sys_racl: list[str] | None = None
854
+ """
855
+ The denormalized list of principals that can read the document.
856
+
857
+ Only included in responses when the user has the `ManageSecurity` permission.
858
+
859
+ """
860
+ sys_repository: str | None = None
861
+ """
862
+ Name of the repository where the document resides.
863
+ """
864
+ sys_secpol: list[str] | None = None
865
+ """
866
+ Names of the security policies associated with the document.
867
+
868
+ Only included in responses when the user has the `ManageSecurity` permission.
869
+
870
+ """
871
+ sys_title: str | None = None
872
+ """
873
+ The title of the document.
874
+ """
875
+ sys_ugen: int | None = None
876
+ """
877
+ The user generation of the document.
878
+
879
+ **Note:** The user generation is incremented on each client update to the document.
880
+
881
+ """
882
+ sysgov_has_legal_hold: Annotated[
883
+ bool | None, Field(alias="sysgov_hasLegalHold")
884
+ ] = None
885
+ """
886
+ True/false indicator of whether the document contains the legal hold schema.
887
+ """
888
+ sysgov_is_record: Annotated[bool | None, Field(alias="sysgov_isRecord")] = None
889
+ """
890
+ True/false indicator of whether the document is a record.
891
+ """
892
+ sysgov_retain_until: Annotated[
893
+ datetime | None, Field(alias="sysgov_retainUntil")
894
+ ] = None
895
+ """
896
+ The date until which the document should be retained.
897
+ """
898
+
899
+
900
+ class DocumentAncestors(BaseModel):
901
+ """
902
+ Represents a document's ancestors list.
903
+ """
904
+
905
+ model_config = ConfigDict(
906
+ populate_by_name=True,
907
+ )
908
+ ancestors: list[Document] | None = None
909
+
910
+
911
+ class ExternalUserRelationsSecurityPolicyRelations(BaseModel):
912
+ """
913
+ Configuration for the External User Relations Security Policy relations data
914
+ """
915
+
916
+ model_config = ConfigDict(
917
+ populate_by_name=True,
918
+ )
919
+ users: list[ExternalUserRelationsSecurityPolicyUser] | None = None
920
+
921
+
922
+ class FieldModel(BaseModel):
923
+ """
924
+ Represents a field.
925
+ """
926
+
927
+ model_config = ConfigDict(
928
+ populate_by_name=True,
929
+ )
930
+ constraints: Constraint | None = None
931
+ default: Annotated[str | None, Field(deprecated=True)] = None
932
+ """
933
+ Deprecated: default values are not supported and this property will be removed in a future version.
934
+ """
935
+ extends: str | None = None
936
+ """
937
+ Name of the referenced type, when the field also declares constraints, a default value or a nested type.
938
+ """
939
+ fields: dict[str, FieldModel] | None = None
940
+ full_text_indexed: Annotated[bool | None, Field(alias="fullTextIndexed")] = None
941
+ list: FieldModel | None = None
942
+ managed: FieldCharacteristics | None = None
943
+ project_id: Annotated[str | None, Field(alias="projectId")] = None
944
+ type: str | None = None
945
+ """
946
+ Name of the referenced type, when the field declares nothing else.
947
+ """
948
+
949
+
950
+ class ListEffectiveACLPerUserDTO(BaseModel):
951
+ model_config = ConfigDict(
952
+ populate_by_name=True,
953
+ )
954
+ user_acl: Annotated[list[ACE] | None, Field(alias="userAcl")] = None
955
+ user_id: Annotated[str | None, Field(alias="userId")] = None
956
+
957
+
958
+ class ListEffectivePermissionsDTO(BaseModel):
959
+ model_config = ConfigDict(
960
+ populate_by_name=True,
961
+ )
962
+ full_effective_permissions: Annotated[
963
+ list[ListEffectivePermissionsPerUserDTO] | None,
964
+ Field(alias="fullEffectivePermissions"),
965
+ ] = None
966
+ sys_id: str | None = None
967
+
968
+
969
+ class LocationModel(BaseModel):
970
+ """
971
+ Location the vector is derived from within the original document. For example this could be the page and paragraph number or coordinates of a bounding box.
972
+ """
973
+
974
+ model_config = ConfigDict(
975
+ populate_by_name=True,
976
+ )
977
+ position: ImageLocation | None = None
978
+ spreadsheet: SpreadSheetLocation | None = None
979
+ text: TextLocation | None = None
980
+ timestamp: VideoLocation | None = None
981
+
982
+
983
+ class Predicate(BaseModel):
984
+ """
985
+ Represents an advanced query predicate definition.
986
+ """
987
+
988
+ model_config = ConfigDict(
989
+ populate_by_name=True,
990
+ )
991
+ operator: str | None = None
992
+ parameters: list[PredicateParameter] | None = None
993
+ search_parameter: Annotated[str | None, Field(alias="searchParameter")] = None
994
+
995
+
996
+ class Query(BaseModel):
997
+ """
998
+ Represents a query.
999
+ """
1000
+
1001
+ model_config = ConfigDict(
1002
+ populate_by_name=True,
1003
+ )
1004
+ limit: Annotated[int | None, Field(examples=[100])] = 10
1005
+ """
1006
+ Max number of documents retrieved by the given query.
1007
+ """
1008
+ offset: Annotated[int | None, Field(examples=[0])] = 0
1009
+ """
1010
+ The initial document offset; for pagination support.
1011
+ """
1012
+ query: Annotated[str | None, Field(examples=["SELECT * FROM SysContent"])] = None
1013
+ """
1014
+ The query, in the syntax given by the syntax field.
1015
+ """
1016
+ repository_id: Annotated[str | None, Field(alias="repositoryId")] = "default"
1017
+ """
1018
+ The id of the internal repository.
1019
+ """
1020
+ search_after: Annotated[str | None, Field(alias="searchAfter")] = None
1021
+ """
1022
+ Opaque cursor token for efficient pagination. Use the nextSearchAfter value from a previous response. When provided, offset is ignored.
1023
+ """
1024
+ sort: Annotated[list[str] | None, Field(examples=[["sys_title"]])] = None
1025
+ """
1026
+ List of fields used to sort the result.
1027
+ """
1028
+ syntax: QuerySyntax | None = None
1029
+ track_total_count: Annotated[bool | None, Field(alias="trackTotalCount")] = None
1030
+ """
1031
+ If true, the total count of documents retrieved by the query will be computed.
1032
+ """
1033
+ track_total_count_up_to: Annotated[
1034
+ int | None, Field(alias="trackTotalCountUpTo", examples=[100])
1035
+ ] = None
1036
+ """
1037
+ Max number of documents to count. This can be set to -1 to remove the limit but it will be expensive on large indexes.
1038
+ """
1039
+
1040
+
1041
+ class QueryResult(BaseModel):
1042
+ """
1043
+ Represents a query result.
1044
+ """
1045
+
1046
+ model_config = ConfigDict(
1047
+ populate_by_name=True,
1048
+ )
1049
+ aggregations_buckets: Annotated[
1050
+ list[StringTermsBucket] | None, Field(alias="aggregationsBuckets")
1051
+ ] = None
1052
+ """
1053
+ The list of aggregation buckets computed for the query.
1054
+ """
1055
+ count: int | None = None
1056
+ documents: list[Document] | None = None
1057
+ """
1058
+ The list of retrieved documents by the given query.
1059
+ """
1060
+ limit: Annotated[int | None, Field(examples=[100])] = 0
1061
+ """
1062
+ Max number of documents retrieved by the given query.
1063
+ """
1064
+ offset: Annotated[int | None, Field(examples=[0])] = 0
1065
+ """
1066
+ Actual document offset; for pagination support.
1067
+ """
1068
+ query: Annotated[str | None, Field(examples=["SELECT * FROM SysContent"])] = None
1069
+ """
1070
+ The query, in the syntax it was expressed in.
1071
+ """
1072
+ repository_id: Annotated[str | None, Field(alias="repositoryId")] = "default"
1073
+ """
1074
+ The id of the internal repository.
1075
+ """
1076
+ syntax: QuerySyntax | None = None
1077
+ total_count: Annotated[int | None, Field(alias="totalCount")] = None
1078
+ """
1079
+ The total number of documents that match the query: is approximated if trackTotalCount is set to false.
1080
+ """
1081
+ total_count_is_truncated: Annotated[
1082
+ bool | None, Field(alias="totalCountIsTruncated")
1083
+ ] = None
1084
+ """
1085
+ If true the total count of the query was truncated.
1086
+ """
1087
+ track_total_count: Annotated[bool | None, Field(alias="trackTotalCount")] = None
1088
+ """
1089
+ If true the total count of the query was computed.
1090
+ """
1091
+
1092
+
1093
+ class Schema(BaseModel):
1094
+ """
1095
+ Represents a schema.
1096
+ """
1097
+
1098
+ model_config = ConfigDict(
1099
+ populate_by_name=True,
1100
+ )
1101
+ fields: dict[str, FieldModel] | None = None
1102
+ prefix: str | None = None
1103
+ """
1104
+ Field name prefix. Read-only: it is derived from the field names.
1105
+ """
1106
+ project_id: Annotated[str | None, Field(alias="projectId")] = None
1107
+ version_writable: Annotated[bool | None, Field(alias="versionWritable")] = None
1108
+
1109
+
1110
+ class SecurityPolicies(BaseModel):
1111
+ """
1112
+ Represents the security policies and their version.
1113
+ """
1114
+
1115
+ model_config = ConfigDict(
1116
+ populate_by_name=True,
1117
+ )
1118
+ policies: dict[str, SecurityPolicyConfig] | None = None
1119
+ version: int | None = None
1120
+ """
1121
+ Optimistic-locking version, present on the v2 API only.
1122
+ """
1123
+
1124
+
1125
+ class TermsAggregationsQuery(BaseModel):
1126
+ """
1127
+ Represents a terms aggregations query.
1128
+ """
1129
+
1130
+ model_config = ConfigDict(
1131
+ populate_by_name=True,
1132
+ )
1133
+ limit: Annotated[int | None, Field(examples=[100])] = 10
1134
+ """
1135
+ Max number of aggregation buckets retrieved by the given query.
1136
+ """
1137
+ query: Query
1138
+ search_term: Annotated[str | None, Field(alias="searchTerm")] = None
1139
+ """
1140
+ The search term to filter the terms aggregation results.
1141
+ """
1142
+ terms_aggregation_property: Annotated[str, Field(alias="termsAggregationProperty")]
1143
+ """
1144
+ The property containing the array of keys to run the terms aggregation on.
1145
+ """
1146
+
1147
+
1148
+ class Type(BaseModel):
1149
+ """
1150
+ Represents a type.
1151
+ """
1152
+
1153
+ model_config = ConfigDict(
1154
+ populate_by_name=True,
1155
+ )
1156
+ constraints: Constraint | None = None
1157
+ extends: str | None = None
1158
+ fields: dict[str, FieldModel] | None = None
1159
+ list: FieldModel | None = None
1160
+ project_id: Annotated[str | None, Field(alias="projectId")] = None
1161
+
1162
+
1163
+ class WhereClause(BaseModel):
1164
+ """
1165
+ Represents an advanced query where clause definition.
1166
+ """
1167
+
1168
+ model_config = ConfigDict(
1169
+ populate_by_name=True,
1170
+ )
1171
+ predicates: list[Predicate] | None = None
1172
+ query: Annotated[str | None, Field(examples=["SELECT * FROM SysContent"])] = None
1173
+ """
1174
+ The query, in the syntax given by the syntax field. An hxql query provides the statement the request selects from, an expr query only filters it.
1175
+ """
1176
+ syntax: QuerySyntax | None = None
1177
+
1178
+
1179
+ class AdvancedQuery(BaseModel):
1180
+ """
1181
+ Represents an advanced query.
1182
+ """
1183
+
1184
+ model_config = ConfigDict(
1185
+ populate_by_name=True,
1186
+ )
1187
+ limit: Annotated[int | None, Field(examples=[100])] = 10
1188
+ """
1189
+ Max number of documents retrieved by the given query.
1190
+ """
1191
+ offset: Annotated[int | None, Field(examples=[0])] = 0
1192
+ """
1193
+ The initial document offset; for pagination support.
1194
+ """
1195
+ parameters: dict[str, dict[str, Any]] | None = None
1196
+ query: Annotated[str | None, Field(examples=["SELECT * FROM SysContent"])] = None
1197
+ """
1198
+ The query, in the syntax given by the syntax field.
1199
+ """
1200
+ quick_filter_clauses: Annotated[
1201
+ list[str] | None,
1202
+ Field(
1203
+ alias="quickFilterClauses",
1204
+ examples=[
1205
+ "exclude documents that are not article: mydc_nature != 'article'"
1206
+ ],
1207
+ ),
1208
+ ] = None
1209
+ """
1210
+ List of filters to be applied to the result.
1211
+ """
1212
+ repository_id: Annotated[str | None, Field(alias="repositoryId")] = "default"
1213
+ """
1214
+ The id of the internal repository
1215
+ """
1216
+ search_after: Annotated[str | None, Field(alias="searchAfter")] = None
1217
+ """
1218
+ Opaque cursor token for efficient pagination. Use the nextSearchAfter value from a previous response. When provided, offset is ignored.
1219
+ """
1220
+ sort: Annotated[list[str] | None, Field(examples=[["sys_title"]])] = None
1221
+ """
1222
+ List of fields used to sort the result.
1223
+ """
1224
+ syntax: QuerySyntax | None = None
1225
+ track_total_count: Annotated[bool | None, Field(alias="trackTotalCount")] = None
1226
+ """
1227
+ If true, the total count of documents retrieved by the query will be computed.
1228
+ """
1229
+ track_total_count_up_to: Annotated[
1230
+ int | None, Field(alias="trackTotalCountUpTo", examples=[100])
1231
+ ] = None
1232
+ """
1233
+ Max number of documents to count. This can be set to -1 to remove the limit but it will be expensive on large indexes.
1234
+ """
1235
+ where_clause_definition: Annotated[
1236
+ WhereClause | None, Field(alias="whereClauseDefinition")
1237
+ ] = None
1238
+
1239
+
1240
+ class Embedding(BaseModel):
1241
+ """
1242
+ Represents the Embedding API's HTTP Post body.
1243
+ """
1244
+
1245
+ model_config = ConfigDict(
1246
+ populate_by_name=True,
1247
+ )
1248
+ sysembed_blobref: str | None = None
1249
+ """
1250
+ Blob label for embeddings.
1251
+ """
1252
+ sysembed_doc_id: Annotated[str, Field(alias="sysembed_docId")]
1253
+ """
1254
+ The unique identifier for the document the embedding is associated with.
1255
+ """
1256
+ sysembed_id: str
1257
+ """
1258
+ The unique identifier for the embedding.
1259
+ """
1260
+ sysembed_location: LocationModel | None = None
1261
+ sysembed_score: float | None = None
1262
+ """
1263
+ A score representing the relevance of the hit
1264
+ """
1265
+ sysembed_text: str
1266
+ """
1267
+ Text label for the vector or the original chunk for text embeddings.
1268
+ """
1269
+ sysembed_type: Annotated[str, Field(max_length=256)]
1270
+ """
1271
+ A label for the embedding type (used to ensure semantic queries are against vectors of the same type).
1272
+ """
1273
+ sysembed_vector: list[float]
1274
+ """
1275
+ The vector as a list of floating point numbers.
1276
+ """
1277
+
1278
+
1279
+ class ListEffectiveACLDTO(BaseModel):
1280
+ model_config = ConfigDict(
1281
+ populate_by_name=True,
1282
+ )
1283
+ full_effective_acl: Annotated[
1284
+ list[ListEffectiveACLPerUserDTO] | None, Field(alias="fullEffectiveACL")
1285
+ ] = None
1286
+ sys_id: str | None = None
1287
+
1288
+
1289
+ class Model(BaseModel):
1290
+ """
1291
+ Represents a model.
1292
+ """
1293
+
1294
+ model_config = ConfigDict(
1295
+ populate_by_name=True,
1296
+ )
1297
+ mixin_types: Annotated[dict[str, MixinType] | None, Field(alias="mixinTypes")] = (
1298
+ None
1299
+ )
1300
+ primary_types: Annotated[
1301
+ dict[str, PrimaryType] | None, Field(alias="primaryTypes")
1302
+ ] = None
1303
+ schemas: dict[str, Schema] | None = None
1304
+ types: dict[str, Type] | None = None
1305
+ version: int | None = None
1306
+ """
1307
+ Optimistic-locking version, present on the v2 API only.
1308
+ """
1309
+
1310
+
1311
+ class NamedQueryDefinition(BaseModel):
1312
+ """
1313
+ Represents a named query definition.
1314
+ """
1315
+
1316
+ model_config = ConfigDict(
1317
+ populate_by_name=True,
1318
+ )
1319
+ aliases: list[str] | None = None
1320
+ name: str | None = None
1321
+ quick_filters: Annotated[list[QuickFilter] | None, Field(alias="quickFilters")] = (
1322
+ None
1323
+ )
1324
+ sort: list[str] | None = None
1325
+ where_clause_definition: Annotated[
1326
+ WhereClause | None, Field(alias="whereClauseDefinition")
1327
+ ] = None
1328
+
1329
+
1330
+ class VectorSearchResult(BaseModel):
1331
+ """
1332
+ The results of a vector search query.
1333
+ """
1334
+
1335
+ model_config = ConfigDict(
1336
+ populate_by_name=True,
1337
+ )
1338
+ count: int | None = None
1339
+ embeddings: list[Embedding] | None = None
1340
+ """
1341
+ The list of retrieved embeddings.
1342
+ """
1343
+ limit: Annotated[int | None, Field(examples=[100])] = 0
1344
+ """
1345
+ Max number of embeddings retrieved by the given query.
1346
+ """
1347
+ offset: Annotated[int | None, Field(examples=[0])] = 0
1348
+ """
1349
+ Actual embedding offset; for pagination support.
1350
+ """
1351
+ query: Annotated[str | None, Field(examples=["SELECT * FROM SysContent"])] = None
1352
+ """
1353
+ The query, in the syntax it was expressed in.
1354
+ """
1355
+ repository_id: Annotated[str | None, Field(alias="repositoryId")] = "default"
1356
+ """
1357
+ The id of the internal repository.
1358
+ """
1359
+ syntax: QuerySyntax | None = None
1360
+ total_count: Annotated[int | None, Field(alias="totalCount")] = None
1361
+ """
1362
+ The total number of embeddings that match the query: is approximated if trackTotalCount is set to false.
1363
+ """
1364
+ total_count_is_truncated: Annotated[
1365
+ bool | None, Field(alias="totalCountIsTruncated")
1366
+ ] = None
1367
+ """
1368
+ If true the total count of the query was truncated.
1369
+ """
1370
+ track_total_count: Annotated[bool | None, Field(alias="trackTotalCount")] = None
1371
+ """
1372
+ If true the total count of the query was computed.
1373
+ """
1374
+ vector: list[float] | None = None
1375
+ """
1376
+ The supplied vector
1377
+ """
1378
+
1379
+
1380
+ FieldModel.model_rebuild()