casedev 0.3.0__py3-none-any.whl → 0.4.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.
Files changed (145) hide show
  1. casedev/_client.py +275 -1
  2. casedev/_version.py +1 -1
  3. casedev/resources/__init__.py +98 -0
  4. casedev/resources/applications/__init__.py +33 -0
  5. casedev/resources/applications/applications.py +102 -0
  6. casedev/resources/applications/v1/__init__.py +61 -0
  7. casedev/resources/applications/v1/deployments.py +867 -0
  8. casedev/resources/applications/v1/projects.py +1377 -0
  9. casedev/resources/applications/v1/v1.py +166 -0
  10. casedev/resources/applications/v1/workflows.py +182 -0
  11. casedev/resources/compute/v1/__init__.py +28 -0
  12. casedev/resources/compute/v1/instance_types.py +145 -0
  13. casedev/resources/compute/v1/instances.py +448 -0
  14. casedev/resources/compute/v1/v1.py +64 -0
  15. casedev/resources/database/__init__.py +33 -0
  16. casedev/resources/database/database.py +102 -0
  17. casedev/resources/database/v1/__init__.py +33 -0
  18. casedev/resources/database/v1/projects.py +771 -0
  19. casedev/resources/database/v1/v1.py +175 -0
  20. casedev/resources/legal/__init__.py +33 -0
  21. casedev/resources/legal/legal.py +102 -0
  22. casedev/resources/legal/v1.py +924 -0
  23. casedev/resources/memory/__init__.py +33 -0
  24. casedev/resources/memory/memory.py +102 -0
  25. casedev/resources/memory/v1.py +1100 -0
  26. casedev/resources/privilege/__init__.py +33 -0
  27. casedev/resources/privilege/privilege.py +102 -0
  28. casedev/resources/privilege/v1.py +260 -0
  29. casedev/resources/superdoc/__init__.py +33 -0
  30. casedev/resources/superdoc/superdoc.py +102 -0
  31. casedev/resources/superdoc/v1.py +349 -0
  32. casedev/resources/translate/__init__.py +33 -0
  33. casedev/resources/translate/translate.py +102 -0
  34. casedev/resources/translate/v1.py +418 -0
  35. casedev/resources/vault/__init__.py +14 -0
  36. casedev/resources/vault/graphrag.py +91 -0
  37. casedev/resources/vault/multipart.py +549 -0
  38. casedev/resources/vault/objects.py +475 -5
  39. casedev/resources/vault/vault.py +262 -5
  40. casedev/types/__init__.py +4 -0
  41. casedev/types/applications/v1/__init__.py +20 -0
  42. casedev/types/applications/v1/deployment_cancel_params.py +14 -0
  43. casedev/types/applications/v1/deployment_create_params.py +20 -0
  44. casedev/types/applications/v1/deployment_get_logs_params.py +14 -0
  45. casedev/types/applications/v1/deployment_list_params.py +23 -0
  46. casedev/types/applications/v1/deployment_retrieve_params.py +17 -0
  47. casedev/types/applications/v1/deployment_stream_params.py +17 -0
  48. casedev/types/applications/v1/project_create_deployment_params.py +29 -0
  49. casedev/types/applications/v1/project_create_domain_params.py +17 -0
  50. casedev/types/applications/v1/project_create_env_params.py +27 -0
  51. casedev/types/applications/v1/project_create_params.py +53 -0
  52. casedev/types/applications/v1/project_delete_params.py +14 -0
  53. casedev/types/applications/v1/project_get_runtime_logs_params.py +12 -0
  54. casedev/types/applications/v1/project_list_deployments_params.py +18 -0
  55. casedev/types/applications/v1/project_list_env_params.py +12 -0
  56. casedev/types/applications/v1/project_list_response.py +45 -0
  57. casedev/types/applications/v1/workflow_get_status_params.py +14 -0
  58. casedev/types/compute/v1/__init__.py +6 -0
  59. casedev/types/compute/v1/instance_create_params.py +28 -0
  60. casedev/types/compute/v1/instance_create_response.py +35 -0
  61. casedev/types/compute/v1/instance_delete_response.py +23 -0
  62. casedev/types/compute/v1/instance_list_response.py +45 -0
  63. casedev/types/compute/v1/instance_retrieve_response.py +55 -0
  64. casedev/types/compute/v1/instance_type_list_response.py +46 -0
  65. casedev/types/database/__init__.py +5 -0
  66. casedev/types/database/v1/__init__.py +14 -0
  67. casedev/types/database/v1/project_create_branch_params.py +17 -0
  68. casedev/types/database/v1/project_create_branch_response.py +30 -0
  69. casedev/types/database/v1/project_create_params.py +27 -0
  70. casedev/types/database/v1/project_create_response.py +47 -0
  71. casedev/types/database/v1/project_delete_response.py +13 -0
  72. casedev/types/database/v1/project_get_connection_params.py +15 -0
  73. casedev/types/database/v1/project_get_connection_response.py +18 -0
  74. casedev/types/database/v1/project_list_branches_response.py +37 -0
  75. casedev/types/database/v1/project_list_response.py +64 -0
  76. casedev/types/database/v1/project_retrieve_response.py +100 -0
  77. casedev/types/database/v1_get_usage_response.py +116 -0
  78. casedev/types/legal/__init__.py +20 -0
  79. casedev/types/legal/v1_find_params.py +23 -0
  80. casedev/types/legal/v1_find_response.py +37 -0
  81. casedev/types/legal/v1_get_citations_from_url_params.py +12 -0
  82. casedev/types/legal/v1_get_citations_from_url_response.py +69 -0
  83. casedev/types/legal/v1_get_citations_params.py +16 -0
  84. casedev/types/legal/v1_get_citations_response.py +60 -0
  85. casedev/types/legal/v1_get_full_text_params.py +23 -0
  86. casedev/types/legal/v1_get_full_text_response.py +35 -0
  87. casedev/types/legal/v1_list_jurisdictions_params.py +12 -0
  88. casedev/types/legal/v1_list_jurisdictions_response.py +35 -0
  89. casedev/types/legal/v1_research_params.py +27 -0
  90. casedev/types/legal/v1_research_response.py +51 -0
  91. casedev/types/legal/v1_similar_params.py +25 -0
  92. casedev/types/legal/v1_similar_response.py +42 -0
  93. casedev/types/legal/v1_verify_params.py +16 -0
  94. casedev/types/legal/v1_verify_response.py +92 -0
  95. casedev/types/memory/__init__.py +14 -0
  96. casedev/types/memory/v1_create_params.py +69 -0
  97. casedev/types/memory/v1_create_response.py +23 -0
  98. casedev/types/memory/v1_delete_all_params.py +45 -0
  99. casedev/types/memory/v1_delete_all_response.py +12 -0
  100. casedev/types/memory/v1_delete_response.py +13 -0
  101. casedev/types/memory/v1_list_params.py +54 -0
  102. casedev/types/memory/v1_list_response.py +29 -0
  103. casedev/types/memory/v1_retrieve_response.py +23 -0
  104. casedev/types/memory/v1_search_params.py +54 -0
  105. casedev/types/memory/v1_search_response.py +61 -0
  106. casedev/types/privilege/__init__.py +6 -0
  107. casedev/types/privilege/v1_detect_params.py +34 -0
  108. casedev/types/privilege/v1_detect_response.py +41 -0
  109. casedev/types/superdoc/__init__.py +6 -0
  110. casedev/types/superdoc/v1_annotate_params.py +56 -0
  111. casedev/types/superdoc/v1_convert_params.py +23 -0
  112. casedev/types/translate/__init__.py +10 -0
  113. casedev/types/translate/v1_detect_params.py +18 -0
  114. casedev/types/translate/v1_detect_response.py +28 -0
  115. casedev/types/translate/v1_list_languages_params.py +18 -0
  116. casedev/types/translate/v1_list_languages_response.py +23 -0
  117. casedev/types/translate/v1_translate_params.py +30 -0
  118. casedev/types/translate/v1_translate_response.py +28 -0
  119. casedev/types/vault/__init__.py +14 -0
  120. casedev/types/vault/graphrag_process_object_response.py +45 -0
  121. casedev/types/vault/multipart_abort_params.py +15 -0
  122. casedev/types/vault/multipart_complete_params.py +26 -0
  123. casedev/types/vault/multipart_get_part_urls_params.py +24 -0
  124. casedev/types/vault/multipart_get_part_urls_response.py +19 -0
  125. casedev/types/vault/multipart_init_params.py +32 -0
  126. casedev/types/vault/multipart_init_response.py +23 -0
  127. casedev/types/vault/object_create_presigned_url_params.py +1 -1
  128. casedev/types/vault/object_delete_params.py +17 -0
  129. casedev/types/vault/object_delete_response.py +29 -0
  130. casedev/types/vault/object_get_ocr_words_params.py +28 -0
  131. casedev/types/vault/object_get_ocr_words_response.py +48 -0
  132. casedev/types/vault/object_get_summarize_job_response.py +40 -0
  133. casedev/types/vault/object_update_params.py +24 -0
  134. casedev/types/vault/object_update_response.py +39 -0
  135. casedev/types/vault_delete_params.py +17 -0
  136. casedev/types/vault_delete_response.py +30 -0
  137. casedev/types/vault_update_params.py +21 -0
  138. casedev/types/vault_update_response.py +60 -0
  139. casedev/types/vault_upload_params.py +1 -1
  140. {casedev-0.3.0.dist-info → casedev-0.4.0.dist-info}/METADATA +1 -1
  141. casedev-0.4.0.dist-info/RECORD +275 -0
  142. casedev-0.3.0.dist-info/RECORD +0 -150
  143. /casedev/types/{webhooks → applications}/__init__.py +0 -0
  144. {casedev-0.3.0.dist-info → casedev-0.4.0.dist-info}/WHEEL +0 -0
  145. {casedev-0.3.0.dist-info → casedev-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,41 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from ..._models import BaseModel
7
+
8
+ __all__ = ["V1DetectResponse", "Category"]
9
+
10
+
11
+ class Category(BaseModel):
12
+ confidence: Optional[float] = None
13
+ """Confidence for this category (0-1)"""
14
+
15
+ detected: Optional[bool] = None
16
+ """Whether this privilege type was detected"""
17
+
18
+ indicators: Optional[List[str]] = None
19
+ """Specific phrases or patterns found"""
20
+
21
+ rationale: Optional[str] = None
22
+ """Explanation of detection result"""
23
+
24
+ type: Optional[str] = None
25
+ """Privilege category"""
26
+
27
+
28
+ class V1DetectResponse(BaseModel):
29
+ categories: List[Category]
30
+
31
+ confidence: float
32
+ """Overall confidence score (0-1)"""
33
+
34
+ policy_rationale: str
35
+ """Policy-friendly explanation for privilege log"""
36
+
37
+ privileged: bool
38
+ """Whether any privilege was detected"""
39
+
40
+ recommendation: Literal["withhold", "redact", "produce", "review"]
41
+ """Recommended action for discovery"""
@@ -0,0 +1,6 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .v1_convert_params import V1ConvertParams as V1ConvertParams
6
+ from .v1_annotate_params import V1AnnotateParams as V1AnnotateParams
@@ -0,0 +1,56 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union, Iterable
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["V1AnnotateParams", "Document", "Field", "FieldOptions"]
9
+
10
+
11
+ class V1AnnotateParams(TypedDict, total=False):
12
+ document: Required[Document]
13
+ """Document source - provide either URL or base64"""
14
+
15
+ fields: Required[Iterable[Field]]
16
+ """Fields to populate in the template"""
17
+
18
+ output_format: Literal["docx", "pdf"]
19
+ """Output format for the annotated document"""
20
+
21
+
22
+ class Document(TypedDict, total=False):
23
+ """Document source - provide either URL or base64"""
24
+
25
+ base64: str
26
+ """Base64-encoded DOCX template"""
27
+
28
+ url: str
29
+ """URL to the DOCX template"""
30
+
31
+
32
+ class FieldOptions(TypedDict, total=False):
33
+ """Optional configuration (e.g., image dimensions)"""
34
+
35
+ height: float
36
+ """Image height in pixels"""
37
+
38
+ width: float
39
+ """Image width in pixels"""
40
+
41
+
42
+ class Field(TypedDict, total=False):
43
+ type: Required[Literal["text", "image", "date", "number"]]
44
+ """Field data type"""
45
+
46
+ value: Required[Union[str, float]]
47
+ """Value to populate"""
48
+
49
+ id: str
50
+ """Target field ID (for single field)"""
51
+
52
+ group: str
53
+ """Target field group (for multiple fields with same tag)"""
54
+
55
+ options: FieldOptions
56
+ """Optional configuration (e.g., image dimensions)"""
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["V1ConvertParams"]
10
+
11
+
12
+ class V1ConvertParams(TypedDict, total=False):
13
+ from_: Required[Annotated[Literal["docx", "md", "html"], PropertyInfo(alias="from")]]
14
+ """Source format of the document"""
15
+
16
+ document_base64: str
17
+ """Base64-encoded document content"""
18
+
19
+ document_url: str
20
+ """URL to the document to convert"""
21
+
22
+ to: Literal["pdf", "docx"]
23
+ """Target format for conversion"""
@@ -0,0 +1,10 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .v1_detect_params import V1DetectParams as V1DetectParams
6
+ from .v1_detect_response import V1DetectResponse as V1DetectResponse
7
+ from .v1_translate_params import V1TranslateParams as V1TranslateParams
8
+ from .v1_translate_response import V1TranslateResponse as V1TranslateResponse
9
+ from .v1_list_languages_params import V1ListLanguagesParams as V1ListLanguagesParams
10
+ from .v1_list_languages_response import V1ListLanguagesResponse as V1ListLanguagesResponse
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ from ..._types import SequenceNotStr
9
+
10
+ __all__ = ["V1DetectParams"]
11
+
12
+
13
+ class V1DetectParams(TypedDict, total=False):
14
+ q: Required[Union[str, SequenceNotStr[str]]]
15
+ """Text to detect language for.
16
+
17
+ Can be a single string or an array for batch detection.
18
+ """
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["V1DetectResponse", "Data", "DataDetection"]
10
+
11
+
12
+ class DataDetection(BaseModel):
13
+ confidence: Optional[float] = None
14
+ """Confidence score (0-1)"""
15
+
16
+ is_reliable: Optional[bool] = FieldInfo(alias="isReliable", default=None)
17
+ """Whether the detection is reliable"""
18
+
19
+ language: Optional[str] = None
20
+ """Detected language code (ISO 639-1)"""
21
+
22
+
23
+ class Data(BaseModel):
24
+ detections: Optional[List[List[DataDetection]]] = None
25
+
26
+
27
+ class V1DetectResponse(BaseModel):
28
+ data: Optional[Data] = None
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, TypedDict
6
+
7
+ __all__ = ["V1ListLanguagesParams"]
8
+
9
+
10
+ class V1ListLanguagesParams(TypedDict, total=False):
11
+ model: Literal["nmt", "base"]
12
+ """Translation model to check language support for"""
13
+
14
+ target: str
15
+ """
16
+ Target language code for translating language names (e.g., 'es' for Spanish
17
+ names)
18
+ """
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..._models import BaseModel
6
+
7
+ __all__ = ["V1ListLanguagesResponse", "Data", "DataLanguage"]
8
+
9
+
10
+ class DataLanguage(BaseModel):
11
+ language: Optional[str] = None
12
+ """Language code (ISO 639-1)"""
13
+
14
+ name: Optional[str] = None
15
+ """Language name (if target specified)"""
16
+
17
+
18
+ class Data(BaseModel):
19
+ languages: Optional[List[DataLanguage]] = None
20
+
21
+
22
+ class V1ListLanguagesResponse(BaseModel):
23
+ data: Optional[Data] = None
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Union
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from ..._types import SequenceNotStr
9
+
10
+ __all__ = ["V1TranslateParams"]
11
+
12
+
13
+ class V1TranslateParams(TypedDict, total=False):
14
+ q: Required[Union[str, SequenceNotStr[str]]]
15
+ """Text to translate. Can be a single string or an array for batch translation."""
16
+
17
+ target: Required[str]
18
+ """Target language code (ISO 639-1)"""
19
+
20
+ format: Literal["text", "html"]
21
+ """Format of the source text. Use 'html' to preserve HTML tags."""
22
+
23
+ model: Literal["nmt", "base"]
24
+ """Translation model.
25
+
26
+ 'nmt' (Neural Machine Translation) is recommended for quality.
27
+ """
28
+
29
+ source: str
30
+ """Source language code (ISO 639-1). If not specified, language is auto-detected."""
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["V1TranslateResponse", "Data", "DataTranslation"]
10
+
11
+
12
+ class DataTranslation(BaseModel):
13
+ detected_source_language: Optional[str] = FieldInfo(alias="detectedSourceLanguage", default=None)
14
+ """Detected source language (if source not specified)"""
15
+
16
+ model: Optional[str] = None
17
+ """Model used for translation"""
18
+
19
+ translated_text: Optional[str] = FieldInfo(alias="translatedText", default=None)
20
+ """Translated text"""
21
+
22
+
23
+ class Data(BaseModel):
24
+ translations: Optional[List[DataTranslation]] = None
25
+
26
+
27
+ class V1TranslateResponse(BaseModel):
28
+ data: Optional[Data] = None
@@ -2,11 +2,25 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from .object_delete_params import ObjectDeleteParams as ObjectDeleteParams
5
6
  from .object_list_response import ObjectListResponse as ObjectListResponse
7
+ from .object_update_params import ObjectUpdateParams as ObjectUpdateParams
8
+ from .multipart_init_params import MultipartInitParams as MultipartInitParams
6
9
  from .graphrag_init_response import GraphragInitResponse as GraphragInitResponse
10
+ from .multipart_abort_params import MultipartAbortParams as MultipartAbortParams
11
+ from .object_delete_response import ObjectDeleteResponse as ObjectDeleteResponse
12
+ from .object_update_response import ObjectUpdateResponse as ObjectUpdateResponse
13
+ from .multipart_init_response import MultipartInitResponse as MultipartInitResponse
7
14
  from .object_download_response import ObjectDownloadResponse as ObjectDownloadResponse
8
15
  from .object_get_text_response import ObjectGetTextResponse as ObjectGetTextResponse
9
16
  from .object_retrieve_response import ObjectRetrieveResponse as ObjectRetrieveResponse
17
+ from .multipart_complete_params import MultipartCompleteParams as MultipartCompleteParams
10
18
  from .graphrag_get_stats_response import GraphragGetStatsResponse as GraphragGetStatsResponse
19
+ from .object_get_ocr_words_params import ObjectGetOcrWordsParams as ObjectGetOcrWordsParams
20
+ from .object_get_ocr_words_response import ObjectGetOcrWordsResponse as ObjectGetOcrWordsResponse
21
+ from .multipart_get_part_urls_params import MultipartGetPartURLsParams as MultipartGetPartURLsParams
22
+ from .graphrag_process_object_response import GraphragProcessObjectResponse as GraphragProcessObjectResponse
23
+ from .multipart_get_part_urls_response import MultipartGetPartURLsResponse as MultipartGetPartURLsResponse
24
+ from .object_get_summarize_job_response import ObjectGetSummarizeJobResponse as ObjectGetSummarizeJobResponse
11
25
  from .object_create_presigned_url_params import ObjectCreatePresignedURLParams as ObjectCreatePresignedURLParams
12
26
  from .object_create_presigned_url_response import ObjectCreatePresignedURLResponse as ObjectCreatePresignedURLResponse
@@ -0,0 +1,45 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["GraphragProcessObjectResponse", "Stats"]
10
+
11
+
12
+ class Stats(BaseModel):
13
+ """Extraction statistics"""
14
+
15
+ community_count: Optional[int] = None
16
+
17
+ entity_count: Optional[int] = None
18
+
19
+ relationship_count: Optional[int] = None
20
+
21
+
22
+ class GraphragProcessObjectResponse(BaseModel):
23
+ communities: int
24
+ """Number of communities detected"""
25
+
26
+ entities: int
27
+ """Number of entities extracted"""
28
+
29
+ object_id: str = FieldInfo(alias="objectId")
30
+ """ID of the indexed object"""
31
+
32
+ relationships: int
33
+ """Number of relationships extracted"""
34
+
35
+ stats: Stats
36
+ """Extraction statistics"""
37
+
38
+ status: str
39
+ """Status from GraphRAG service"""
40
+
41
+ success: bool
42
+ """Whether indexing completed successfully"""
43
+
44
+ vault_id: str = FieldInfo(alias="vaultId")
45
+ """ID of the vault"""
@@ -0,0 +1,15 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["MultipartAbortParams"]
10
+
11
+
12
+ class MultipartAbortParams(TypedDict, total=False):
13
+ object_id: Required[Annotated[str, PropertyInfo(alias="objectId")]]
14
+
15
+ upload_id: Required[Annotated[str, PropertyInfo(alias="uploadId")]]
@@ -0,0 +1,26 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ..._utils import PropertyInfo
9
+
10
+ __all__ = ["MultipartCompleteParams", "Part"]
11
+
12
+
13
+ class MultipartCompleteParams(TypedDict, total=False):
14
+ object_id: Required[Annotated[str, PropertyInfo(alias="objectId")]]
15
+
16
+ parts: Required[Iterable[Part]]
17
+
18
+ size_bytes: Required[Annotated[int, PropertyInfo(alias="sizeBytes")]]
19
+
20
+ upload_id: Required[Annotated[str, PropertyInfo(alias="uploadId")]]
21
+
22
+
23
+ class Part(TypedDict, total=False):
24
+ etag: Required[str]
25
+
26
+ part_number: Required[Annotated[int, PropertyInfo(alias="partNumber")]]
@@ -0,0 +1,24 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ..._utils import PropertyInfo
9
+
10
+ __all__ = ["MultipartGetPartURLsParams", "Part"]
11
+
12
+
13
+ class MultipartGetPartURLsParams(TypedDict, total=False):
14
+ object_id: Required[Annotated[str, PropertyInfo(alias="objectId")]]
15
+
16
+ parts: Required[Iterable[Part]]
17
+
18
+ upload_id: Required[Annotated[str, PropertyInfo(alias="uploadId")]]
19
+
20
+
21
+ class Part(TypedDict, total=False):
22
+ part_number: Required[Annotated[int, PropertyInfo(alias="partNumber")]]
23
+
24
+ size_bytes: Required[Annotated[int, PropertyInfo(alias="sizeBytes")]]
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["MultipartGetPartURLsResponse", "URL"]
10
+
11
+
12
+ class URL(BaseModel):
13
+ part_number: Optional[int] = FieldInfo(alias="partNumber", default=None)
14
+
15
+ url: Optional[str] = None
16
+
17
+
18
+ class MultipartGetPartURLsResponse(BaseModel):
19
+ urls: Optional[List[URL]] = None
@@ -0,0 +1,32 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["MultipartInitParams"]
10
+
11
+
12
+ class MultipartInitParams(TypedDict, total=False):
13
+ content_type: Required[Annotated[str, PropertyInfo(alias="contentType")]]
14
+ """MIME type of the file"""
15
+
16
+ filename: Required[str]
17
+ """Name of the file to upload"""
18
+
19
+ size_bytes: Required[Annotated[int, PropertyInfo(alias="sizeBytes")]]
20
+ """File size in bytes (required, max 8GB)."""
21
+
22
+ auto_index: bool
23
+ """Whether to automatically process and index the file for search"""
24
+
25
+ metadata: object
26
+ """Additional metadata to associate with the file"""
27
+
28
+ part_size_bytes: Annotated[int, PropertyInfo(alias="partSizeBytes")]
29
+ """Multipart part size in bytes (min 5MB). Defaults to 64MB."""
30
+
31
+ path: str
32
+ """Optional folder path for hierarchy preservation"""
@@ -0,0 +1,23 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["MultipartInitResponse"]
10
+
11
+
12
+ class MultipartInitResponse(BaseModel):
13
+ next_step: Optional[str] = None
14
+
15
+ object_id: Optional[str] = FieldInfo(alias="objectId", default=None)
16
+
17
+ part_count: Optional[int] = FieldInfo(alias="partCount", default=None)
18
+
19
+ part_size_bytes: Optional[int] = FieldInfo(alias="partSizeBytes", default=None)
20
+
21
+ s3_key: Optional[str] = FieldInfo(alias="s3Key", default=None)
22
+
23
+ upload_id: Optional[str] = FieldInfo(alias="uploadId", default=None)
@@ -22,7 +22,7 @@ class ObjectCreatePresignedURLParams(TypedDict, total=False):
22
22
  """The S3 operation to generate URL for"""
23
23
 
24
24
  size_bytes: Annotated[int, PropertyInfo(alias="sizeBytes")]
25
- """File size in bytes (optional, max 500MB).
25
+ """File size in bytes (optional, max 5GB for single PUT uploads).
26
26
 
27
27
  When provided for PUT operations, enforces exact file size at S3 level.
28
28
  """
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Literal, Required, TypedDict
6
+
7
+ __all__ = ["ObjectDeleteParams"]
8
+
9
+
10
+ class ObjectDeleteParams(TypedDict, total=False):
11
+ id: Required[str]
12
+
13
+ force: Literal["true"]
14
+ """Force delete a stuck document that is still in 'processing' state.
15
+
16
+ Use this if a document got stuck during ingestion (e.g., OCR timeout).
17
+ """
@@ -0,0 +1,29 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from pydantic import Field as FieldInfo
6
+
7
+ from ..._models import BaseModel
8
+
9
+ __all__ = ["ObjectDeleteResponse", "DeletedObject"]
10
+
11
+
12
+ class DeletedObject(BaseModel):
13
+ id: Optional[str] = None
14
+ """Deleted object ID"""
15
+
16
+ filename: Optional[str] = None
17
+ """Original filename"""
18
+
19
+ size_bytes: Optional[int] = FieldInfo(alias="sizeBytes", default=None)
20
+ """Size of deleted file in bytes"""
21
+
22
+ vectors_deleted: Optional[int] = FieldInfo(alias="vectorsDeleted", default=None)
23
+ """Number of vectors deleted"""
24
+
25
+
26
+ class ObjectDeleteResponse(BaseModel):
27
+ deleted_object: Optional[DeletedObject] = FieldInfo(alias="deletedObject", default=None)
28
+
29
+ success: Optional[bool] = None
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["ObjectGetOcrWordsParams"]
10
+
11
+
12
+ class ObjectGetOcrWordsParams(TypedDict, total=False):
13
+ id: Required[str]
14
+
15
+ page: int
16
+ """Filter to a specific page number (1-indexed). If omitted, returns all pages."""
17
+
18
+ word_end: Annotated[int, PropertyInfo(alias="wordEnd")]
19
+ """Filter to words ending at this index (inclusive).
20
+
21
+ Useful for retrieving words for a specific chunk.
22
+ """
23
+
24
+ word_start: Annotated[int, PropertyInfo(alias="wordStart")]
25
+ """Filter to words starting at this index (inclusive).
26
+
27
+ Useful for retrieving words for a specific chunk.
28
+ """
@@ -0,0 +1,48 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Optional
4
+ from datetime import datetime
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from ..._models import BaseModel
9
+
10
+ __all__ = ["ObjectGetOcrWordsResponse", "Page", "PageWord"]
11
+
12
+
13
+ class PageWord(BaseModel):
14
+ bbox: Optional[List[float]] = None
15
+ """Bounding box [x0, y0, x1, y1] normalized to 0-1 range"""
16
+
17
+ confidence: Optional[float] = None
18
+ """OCR confidence score (0-1)"""
19
+
20
+ text: Optional[str] = None
21
+ """The word text"""
22
+
23
+ word_index: Optional[int] = FieldInfo(alias="wordIndex", default=None)
24
+ """Global word index across the entire document (0-based)"""
25
+
26
+
27
+ class Page(BaseModel):
28
+ page: Optional[int] = None
29
+ """Page number (1-indexed)"""
30
+
31
+ words: Optional[List[PageWord]] = None
32
+
33
+
34
+ class ObjectGetOcrWordsResponse(BaseModel):
35
+ created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
36
+ """When the OCR data was extracted"""
37
+
38
+ object_id: Optional[str] = FieldInfo(alias="objectId", default=None)
39
+ """The object ID"""
40
+
41
+ page_count: Optional[int] = FieldInfo(alias="pageCount", default=None)
42
+ """Total number of pages in the document"""
43
+
44
+ pages: Optional[List[Page]] = None
45
+ """Per-page word data with bounding boxes"""
46
+
47
+ total_words: Optional[int] = FieldInfo(alias="totalWords", default=None)
48
+ """Total number of words extracted from the document"""