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,64 @@
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
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from ...._models import BaseModel
10
+
11
+ __all__ = ["ProjectListResponse", "Project", "ProjectLinkedDeployment"]
12
+
13
+
14
+ class ProjectLinkedDeployment(BaseModel):
15
+ id: Optional[str] = None
16
+ """Deployment ID"""
17
+
18
+ name: Optional[str] = None
19
+ """Deployment name"""
20
+
21
+ type: Optional[Literal["thurgood", "compute"]] = None
22
+ """Type of deployment"""
23
+
24
+ url: Optional[str] = None
25
+ """Deployment URL (for Thurgood apps)"""
26
+
27
+
28
+ class Project(BaseModel):
29
+ id: Optional[str] = None
30
+ """Project ID"""
31
+
32
+ compute_time_seconds: Optional[float] = FieldInfo(alias="computeTimeSeconds", default=None)
33
+ """Total compute time consumed in seconds"""
34
+
35
+ created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
36
+ """Project creation timestamp"""
37
+
38
+ description: Optional[str] = None
39
+ """Project description"""
40
+
41
+ linked_deployments: Optional[List[ProjectLinkedDeployment]] = FieldInfo(alias="linkedDeployments", default=None)
42
+ """Linked application deployments using this database"""
43
+
44
+ name: Optional[str] = None
45
+ """Project name"""
46
+
47
+ pg_version: Optional[int] = FieldInfo(alias="pgVersion", default=None)
48
+ """PostgreSQL major version"""
49
+
50
+ region: Optional[str] = None
51
+ """AWS region where database is deployed"""
52
+
53
+ status: Optional[Literal["active", "suspended", "deleted"]] = None
54
+ """Current project status"""
55
+
56
+ storage_size_bytes: Optional[float] = FieldInfo(alias="storageSizeBytes", default=None)
57
+ """Current storage usage in bytes"""
58
+
59
+ updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None)
60
+ """Project last update timestamp"""
61
+
62
+
63
+ class ProjectListResponse(BaseModel):
64
+ projects: List[Project]
@@ -0,0 +1,100 @@
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
+ from typing_extensions import Literal
6
+
7
+ from pydantic import Field as FieldInfo
8
+
9
+ from ...._models import BaseModel
10
+
11
+ __all__ = ["ProjectRetrieveResponse", "Branch", "Database", "LinkedDeployment"]
12
+
13
+
14
+ class Branch(BaseModel):
15
+ id: Optional[str] = None
16
+ """Branch ID"""
17
+
18
+ created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
19
+ """Branch creation timestamp"""
20
+
21
+ is_default: Optional[bool] = FieldInfo(alias="isDefault", default=None)
22
+ """Whether this is the default branch"""
23
+
24
+ name: Optional[str] = None
25
+ """Branch name"""
26
+
27
+ status: Optional[str] = None
28
+ """Branch status"""
29
+
30
+
31
+ class Database(BaseModel):
32
+ id: Optional[str] = None
33
+ """Database ID"""
34
+
35
+ name: Optional[str] = None
36
+ """Database name"""
37
+
38
+ owner_name: Optional[str] = FieldInfo(alias="ownerName", default=None)
39
+ """Database owner role name"""
40
+
41
+
42
+ class LinkedDeployment(BaseModel):
43
+ id: Optional[str] = None
44
+ """Deployment ID"""
45
+
46
+ env_var_name: Optional[str] = FieldInfo(alias="envVarName", default=None)
47
+ """Environment variable name for connection string"""
48
+
49
+ name: Optional[str] = None
50
+ """Deployment name"""
51
+
52
+ type: Optional[Literal["thurgood", "compute"]] = None
53
+ """Deployment type"""
54
+
55
+ url: Optional[str] = None
56
+ """Deployment URL"""
57
+
58
+
59
+ class ProjectRetrieveResponse(BaseModel):
60
+ id: str
61
+ """Project ID"""
62
+
63
+ branches: List[Branch]
64
+ """All branches in this project"""
65
+
66
+ compute_time_seconds: float = FieldInfo(alias="computeTimeSeconds")
67
+ """Total compute time consumed in seconds"""
68
+
69
+ connection_host: str = FieldInfo(alias="connectionHost")
70
+ """Database connection hostname (masked for security)"""
71
+
72
+ created_at: datetime = FieldInfo(alias="createdAt")
73
+ """Project creation timestamp"""
74
+
75
+ databases: List[Database]
76
+ """Databases in the default branch"""
77
+
78
+ linked_deployments: List[LinkedDeployment] = FieldInfo(alias="linkedDeployments")
79
+ """Linked deployments using this database"""
80
+
81
+ name: str
82
+ """Project name"""
83
+
84
+ pg_version: int = FieldInfo(alias="pgVersion")
85
+ """PostgreSQL major version"""
86
+
87
+ region: str
88
+ """AWS region"""
89
+
90
+ status: Literal["active", "suspended", "deleted"]
91
+ """Project status"""
92
+
93
+ storage_size_bytes: float = FieldInfo(alias="storageSizeBytes")
94
+ """Current storage usage in bytes"""
95
+
96
+ updated_at: datetime = FieldInfo(alias="updatedAt")
97
+ """Project last update timestamp"""
98
+
99
+ description: Optional[str] = None
100
+ """Project description"""
@@ -0,0 +1,116 @@
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__ = ["V1GetUsageResponse", "Period", "Pricing", "Project", "ProjectCosts", "Totals"]
11
+
12
+
13
+ class Period(BaseModel):
14
+ end: Optional[datetime] = None
15
+ """End of the billing period"""
16
+
17
+ start: Optional[datetime] = None
18
+ """Start of the billing period"""
19
+
20
+
21
+ class Pricing(BaseModel):
22
+ """Current pricing rates"""
23
+
24
+ branch_per_month: Optional[float] = FieldInfo(alias="branchPerMonth", default=None)
25
+ """Cost per branch per month in dollars"""
26
+
27
+ compute_per_cu_hour: Optional[float] = FieldInfo(alias="computePerCuHour", default=None)
28
+ """Cost per compute unit hour in dollars"""
29
+
30
+ free_branches: Optional[int] = FieldInfo(alias="freeBranches", default=None)
31
+ """Number of free branches included"""
32
+
33
+ storage_per_gb_month: Optional[float] = FieldInfo(alias="storagePerGbMonth", default=None)
34
+ """Cost per GB of storage per month in dollars"""
35
+
36
+ transfer_per_gb: Optional[float] = FieldInfo(alias="transferPerGb", default=None)
37
+ """Cost per GB of data transfer in dollars"""
38
+
39
+
40
+ class ProjectCosts(BaseModel):
41
+ branches: Optional[str] = None
42
+
43
+ compute: Optional[str] = None
44
+
45
+ storage: Optional[str] = None
46
+
47
+ total: Optional[str] = None
48
+
49
+ transfer: Optional[str] = None
50
+
51
+
52
+ class Project(BaseModel):
53
+ id: Optional[str] = None
54
+
55
+ branch_count: Optional[int] = FieldInfo(alias="branchCount", default=None)
56
+
57
+ compute_cu_hours: Optional[float] = FieldInfo(alias="computeCuHours", default=None)
58
+
59
+ costs: Optional[ProjectCosts] = None
60
+
61
+ last_updated: Optional[datetime] = FieldInfo(alias="lastUpdated", default=None)
62
+
63
+ project_id: Optional[str] = FieldInfo(alias="projectId", default=None)
64
+
65
+ project_name: Optional[str] = FieldInfo(alias="projectName", default=None)
66
+
67
+ storage_gb_months: Optional[float] = FieldInfo(alias="storageGbMonths", default=None)
68
+
69
+ transfer_gb: Optional[float] = FieldInfo(alias="transferGb", default=None)
70
+
71
+
72
+ class Totals(BaseModel):
73
+ """Aggregated totals across all projects"""
74
+
75
+ branch_cost_dollars: Optional[str] = FieldInfo(alias="branchCostDollars", default=None)
76
+ """Total branch cost formatted as dollars"""
77
+
78
+ compute_cost_dollars: Optional[str] = FieldInfo(alias="computeCostDollars", default=None)
79
+ """Total compute cost formatted as dollars"""
80
+
81
+ compute_cu_hours: Optional[float] = FieldInfo(alias="computeCuHours", default=None)
82
+ """Total compute unit hours"""
83
+
84
+ storage_cost_dollars: Optional[str] = FieldInfo(alias="storageCostDollars", default=None)
85
+ """Total storage cost formatted as dollars"""
86
+
87
+ storage_gb_months: Optional[float] = FieldInfo(alias="storageGbMonths", default=None)
88
+ """Total storage in GB-months"""
89
+
90
+ total_branches: Optional[int] = FieldInfo(alias="totalBranches", default=None)
91
+ """Total number of branches"""
92
+
93
+ total_cost_dollars: Optional[str] = FieldInfo(alias="totalCostDollars", default=None)
94
+ """Total cost formatted as dollars"""
95
+
96
+ transfer_cost_dollars: Optional[str] = FieldInfo(alias="transferCostDollars", default=None)
97
+ """Total transfer cost formatted as dollars"""
98
+
99
+ transfer_gb: Optional[float] = FieldInfo(alias="transferGb", default=None)
100
+ """Total data transfer in GB"""
101
+
102
+
103
+ class V1GetUsageResponse(BaseModel):
104
+ period: Optional[Period] = None
105
+
106
+ pricing: Optional[Pricing] = None
107
+ """Current pricing rates"""
108
+
109
+ project_count: Optional[int] = FieldInfo(alias="projectCount", default=None)
110
+ """Total number of projects with usage"""
111
+
112
+ projects: Optional[List[Project]] = None
113
+ """Usage breakdown by project"""
114
+
115
+ totals: Optional[Totals] = None
116
+ """Aggregated totals across all projects"""
@@ -0,0 +1,20 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .v1_find_params import V1FindParams as V1FindParams
6
+ from .v1_find_response import V1FindResponse as V1FindResponse
7
+ from .v1_verify_params import V1VerifyParams as V1VerifyParams
8
+ from .v1_similar_params import V1SimilarParams as V1SimilarParams
9
+ from .v1_research_params import V1ResearchParams as V1ResearchParams
10
+ from .v1_verify_response import V1VerifyResponse as V1VerifyResponse
11
+ from .v1_similar_response import V1SimilarResponse as V1SimilarResponse
12
+ from .v1_research_response import V1ResearchResponse as V1ResearchResponse
13
+ from .v1_get_citations_params import V1GetCitationsParams as V1GetCitationsParams
14
+ from .v1_get_full_text_params import V1GetFullTextParams as V1GetFullTextParams
15
+ from .v1_get_citations_response import V1GetCitationsResponse as V1GetCitationsResponse
16
+ from .v1_get_full_text_response import V1GetFullTextResponse as V1GetFullTextResponse
17
+ from .v1_list_jurisdictions_params import V1ListJurisdictionsParams as V1ListJurisdictionsParams
18
+ from .v1_list_jurisdictions_response import V1ListJurisdictionsResponse as V1ListJurisdictionsResponse
19
+ from .v1_get_citations_from_url_params import V1GetCitationsFromURLParams as V1GetCitationsFromURLParams
20
+ from .v1_get_citations_from_url_response import V1GetCitationsFromURLResponse as V1GetCitationsFromURLResponse
@@ -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 Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["V1FindParams"]
10
+
11
+
12
+ class V1FindParams(TypedDict, total=False):
13
+ query: Required[str]
14
+ """Search query (e.g., "fair use copyright", "Miranda rights")"""
15
+
16
+ jurisdiction: str
17
+ """
18
+ Optional jurisdiction ID from resolveJurisdiction (e.g., "california",
19
+ "us-federal")
20
+ """
21
+
22
+ num_results: Annotated[int, PropertyInfo(alias="numResults")]
23
+ """Number of results 1-25 (default: 10)"""
@@ -0,0 +1,37 @@
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__ = ["V1FindResponse", "Candidate"]
8
+
9
+
10
+ class Candidate(BaseModel):
11
+ snippet: Optional[str] = None
12
+ """Text excerpt from the document"""
13
+
14
+ source: Optional[str] = None
15
+ """Domain of the source"""
16
+
17
+ title: Optional[str] = None
18
+ """Title of the document"""
19
+
20
+ url: Optional[str] = None
21
+ """URL of the legal source"""
22
+
23
+
24
+ class V1FindResponse(BaseModel):
25
+ candidates: Optional[List[Candidate]] = None
26
+
27
+ found: Optional[int] = None
28
+ """Number of candidates found"""
29
+
30
+ hint: Optional[str] = None
31
+ """Usage guidance"""
32
+
33
+ jurisdiction: Optional[str] = None
34
+ """Jurisdiction filter applied"""
35
+
36
+ query: Optional[str] = None
37
+ """Original search query"""
@@ -0,0 +1,12 @@
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, TypedDict
6
+
7
+ __all__ = ["V1GetCitationsFromURLParams"]
8
+
9
+
10
+ class V1GetCitationsFromURLParams(TypedDict, total=False):
11
+ url: Required[str]
12
+ """URL of the legal document to extract citations from"""
@@ -0,0 +1,69 @@
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__ = ["V1GetCitationsFromURLResponse", "Citations", "CitationsCase", "CitationsRegulation", "CitationsStatute"]
10
+
11
+
12
+ class CitationsCase(BaseModel):
13
+ citation: Optional[str] = None
14
+ """The citation string"""
15
+
16
+ count: Optional[int] = None
17
+ """Number of occurrences"""
18
+
19
+ type: Optional[str] = None
20
+ """Citation type (usReporter, federalReporter, etc.)"""
21
+
22
+
23
+ class CitationsRegulation(BaseModel):
24
+ citation: Optional[str] = None
25
+ """The citation string"""
26
+
27
+ count: Optional[int] = None
28
+ """Number of occurrences"""
29
+
30
+ type: Optional[str] = None
31
+ """Citation type (cfr)"""
32
+
33
+
34
+ class CitationsStatute(BaseModel):
35
+ citation: Optional[str] = None
36
+ """The citation string"""
37
+
38
+ count: Optional[int] = None
39
+ """Number of occurrences"""
40
+
41
+ type: Optional[str] = None
42
+ """Citation type (usc)"""
43
+
44
+
45
+ class Citations(BaseModel):
46
+ cases: Optional[List[CitationsCase]] = None
47
+
48
+ regulations: Optional[List[CitationsRegulation]] = None
49
+
50
+ statutes: Optional[List[CitationsStatute]] = None
51
+
52
+
53
+ class V1GetCitationsFromURLResponse(BaseModel):
54
+ citations: Optional[Citations] = None
55
+
56
+ external_links: Optional[List[str]] = FieldInfo(alias="externalLinks", default=None)
57
+ """External links found in the document"""
58
+
59
+ hint: Optional[str] = None
60
+ """Usage guidance"""
61
+
62
+ title: Optional[str] = None
63
+ """Document title"""
64
+
65
+ total_citations: Optional[int] = FieldInfo(alias="totalCitations", default=None)
66
+ """Total citations found"""
67
+
68
+ url: Optional[str] = None
69
+ """Source document URL"""
@@ -0,0 +1,16 @@
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, TypedDict
6
+
7
+ __all__ = ["V1GetCitationsParams"]
8
+
9
+
10
+ class V1GetCitationsParams(TypedDict, total=False):
11
+ text: Required[str]
12
+ """Text containing citations to extract.
13
+
14
+ Can be a single citation (e.g., "531 U.S. 98") or a full document with multiple
15
+ citations.
16
+ """
@@ -0,0 +1,60 @@
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__ = ["V1GetCitationsResponse", "Citation", "CitationComponents", "CitationSpan"]
10
+
11
+
12
+ class CitationComponents(BaseModel):
13
+ """Structured Bluebook components. Null if citation format is not recognized."""
14
+
15
+ case_name: Optional[str] = FieldInfo(alias="caseName", default=None)
16
+ """Case name, e.g., "Bush v. Gore" """
17
+
18
+ court: Optional[str] = None
19
+ """Court identifier"""
20
+
21
+ page: Optional[int] = None
22
+ """Starting page number"""
23
+
24
+ pin_cite: Optional[int] = FieldInfo(alias="pinCite", default=None)
25
+ """Pin cite (specific page)"""
26
+
27
+ reporter: Optional[str] = None
28
+ """Reporter abbreviation, e.g., "U.S." """
29
+
30
+ volume: Optional[int] = None
31
+ """Volume number"""
32
+
33
+ year: Optional[int] = None
34
+ """Decision year"""
35
+
36
+
37
+ class CitationSpan(BaseModel):
38
+ end: Optional[int] = None
39
+
40
+ start: Optional[int] = None
41
+
42
+
43
+ class Citation(BaseModel):
44
+ components: Optional[CitationComponents] = None
45
+ """Structured Bluebook components. Null if citation format is not recognized."""
46
+
47
+ found: Optional[bool] = None
48
+ """Whether citation was found in CourtListener database"""
49
+
50
+ normalized: Optional[str] = None
51
+ """Normalized citation string"""
52
+
53
+ original: Optional[str] = None
54
+ """Original citation as found in text"""
55
+
56
+ span: Optional[CitationSpan] = None
57
+
58
+
59
+ class V1GetCitationsResponse(BaseModel):
60
+ citations: Optional[List[Citation]] = None
@@ -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 Required, Annotated, TypedDict
6
+
7
+ from ..._utils import PropertyInfo
8
+
9
+ __all__ = ["V1GetFullTextParams"]
10
+
11
+
12
+ class V1GetFullTextParams(TypedDict, total=False):
13
+ url: Required[str]
14
+ """URL of the verified legal document"""
15
+
16
+ highlight_query: Annotated[str, PropertyInfo(alias="highlightQuery")]
17
+ """Optional query to extract relevant highlights (e.g., "What is the holding?")"""
18
+
19
+ max_characters: Annotated[int, PropertyInfo(alias="maxCharacters")]
20
+ """Maximum characters to return (default: 10000, max: 50000)"""
21
+
22
+ summary_query: Annotated[str, PropertyInfo(alias="summaryQuery")]
23
+ """Optional query for generating a summary (e.g., "Summarize the key ruling")"""
@@ -0,0 +1,35 @@
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__ = ["V1GetFullTextResponse"]
10
+
11
+
12
+ class V1GetFullTextResponse(BaseModel):
13
+ author: Optional[str] = None
14
+ """Author or court"""
15
+
16
+ character_count: Optional[int] = FieldInfo(alias="characterCount", default=None)
17
+ """Total characters in text"""
18
+
19
+ highlights: Optional[List[str]] = None
20
+ """Highlighted relevant passages"""
21
+
22
+ published_date: Optional[str] = FieldInfo(alias="publishedDate", default=None)
23
+ """Publication date"""
24
+
25
+ summary: Optional[str] = None
26
+ """AI-generated summary"""
27
+
28
+ text: Optional[str] = None
29
+ """Full document text"""
30
+
31
+ title: Optional[str] = None
32
+ """Document title"""
33
+
34
+ url: Optional[str] = None
35
+ """Document URL"""
@@ -0,0 +1,12 @@
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, TypedDict
6
+
7
+ __all__ = ["V1ListJurisdictionsParams"]
8
+
9
+
10
+ class V1ListJurisdictionsParams(TypedDict, total=False):
11
+ name: Required[str]
12
+ """Jurisdiction name (e.g., "California", "US Federal", "NY")"""
@@ -0,0 +1,35 @@
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__ = ["V1ListJurisdictionsResponse", "Jurisdiction"]
9
+
10
+
11
+ class Jurisdiction(BaseModel):
12
+ id: Optional[str] = None
13
+ """Jurisdiction ID to use in other endpoints"""
14
+
15
+ level: Optional[Literal["federal", "state", "county", "municipal"]] = None
16
+ """Jurisdiction level"""
17
+
18
+ name: Optional[str] = None
19
+ """Full jurisdiction name"""
20
+
21
+ state: Optional[str] = None
22
+ """State abbreviation (if applicable)"""
23
+
24
+
25
+ class V1ListJurisdictionsResponse(BaseModel):
26
+ found: Optional[int] = None
27
+ """Number of matching jurisdictions"""
28
+
29
+ hint: Optional[str] = None
30
+ """Usage guidance"""
31
+
32
+ jurisdictions: Optional[List[Jurisdiction]] = None
33
+
34
+ query: Optional[str] = None
35
+ """Original search query"""
@@ -0,0 +1,27 @@
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 ..._types import SequenceNotStr
8
+ from ..._utils import PropertyInfo
9
+
10
+ __all__ = ["V1ResearchParams"]
11
+
12
+
13
+ class V1ResearchParams(TypedDict, total=False):
14
+ query: Required[str]
15
+ """Primary search query"""
16
+
17
+ additional_queries: Annotated[SequenceNotStr[str], PropertyInfo(alias="additionalQueries")]
18
+ """
19
+ Additional query variations to search (e.g., different phrasings of the legal
20
+ issue)
21
+ """
22
+
23
+ jurisdiction: str
24
+ """Optional jurisdiction ID from resolveJurisdiction"""
25
+
26
+ num_results: Annotated[int, PropertyInfo(alias="numResults")]
27
+ """Number of results 1-25 (default: 10)"""