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,53 @@
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 List, Iterable
6
+ from typing_extensions import Literal, Required, Annotated, TypedDict
7
+
8
+ from ...._utils import PropertyInfo
9
+
10
+ __all__ = ["ProjectCreateParams", "EnvironmentVariable"]
11
+
12
+
13
+ class ProjectCreateParams(TypedDict, total=False):
14
+ git_repo: Required[Annotated[str, PropertyInfo(alias="gitRepo")]]
15
+ """GitHub repository URL or "owner/repo" """
16
+
17
+ name: Required[str]
18
+ """Project name"""
19
+
20
+ build_command: Annotated[str, PropertyInfo(alias="buildCommand")]
21
+ """Custom build command"""
22
+
23
+ environment_variables: Annotated[Iterable[EnvironmentVariable], PropertyInfo(alias="environmentVariables")]
24
+ """Environment variables to set on the project"""
25
+
26
+ framework: str
27
+ """Framework (e.g., "nextjs", "remix", "astro")"""
28
+
29
+ git_branch: Annotated[str, PropertyInfo(alias="gitBranch")]
30
+ """Git branch to deploy"""
31
+
32
+ install_command: Annotated[str, PropertyInfo(alias="installCommand")]
33
+ """Custom install command"""
34
+
35
+ output_directory: Annotated[str, PropertyInfo(alias="outputDirectory")]
36
+ """Build output directory"""
37
+
38
+ root_directory: Annotated[str, PropertyInfo(alias="rootDirectory")]
39
+ """Root directory of the project"""
40
+
41
+
42
+ class EnvironmentVariable(TypedDict, total=False):
43
+ key: Required[str]
44
+ """Environment variable name"""
45
+
46
+ target: Required[List[Literal["production", "preview", "development"]]]
47
+ """Deployment targets for this variable"""
48
+
49
+ value: Required[str]
50
+ """Environment variable value"""
51
+
52
+ type: Literal["plain", "encrypted", "secret"]
53
+ """Variable type"""
@@ -0,0 +1,14 @@
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 Annotated, TypedDict
6
+
7
+ from ...._utils import PropertyInfo
8
+
9
+ __all__ = ["ProjectDeleteParams"]
10
+
11
+
12
+ class ProjectDeleteParams(TypedDict, total=False):
13
+ delete_from_hosting: Annotated[bool, PropertyInfo(alias="deleteFromHosting")]
14
+ """Also delete the project from hosting (default: true)"""
@@ -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 TypedDict
6
+
7
+ __all__ = ["ProjectGetRuntimeLogsParams"]
8
+
9
+
10
+ class ProjectGetRuntimeLogsParams(TypedDict, total=False):
11
+ limit: float
12
+ """Maximum number of logs to return"""
@@ -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__ = ["ProjectListDeploymentsParams"]
8
+
9
+
10
+ class ProjectListDeploymentsParams(TypedDict, total=False):
11
+ limit: float
12
+ """Maximum number of deployments to return"""
13
+
14
+ state: str
15
+ """Filter by deployment state"""
16
+
17
+ target: Literal["production", "staging"]
18
+ """Filter by deployment target"""
@@ -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 TypedDict
6
+
7
+ __all__ = ["ProjectListEnvParams"]
8
+
9
+
10
+ class ProjectListEnvParams(TypedDict, total=False):
11
+ decrypt: bool
12
+ """Whether to decrypt and return values (requires appropriate permissions)"""
@@ -0,0 +1,45 @@
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__ = ["ProjectListResponse", "Project", "ProjectDomain"]
10
+
11
+
12
+ class ProjectDomain(BaseModel):
13
+ id: Optional[str] = None
14
+
15
+ domain: Optional[str] = None
16
+
17
+ is_primary: Optional[bool] = FieldInfo(alias="isPrimary", default=None)
18
+
19
+ is_verified: Optional[bool] = FieldInfo(alias="isVerified", default=None)
20
+
21
+
22
+ class Project(BaseModel):
23
+ id: Optional[str] = None
24
+
25
+ created_at: Optional[str] = FieldInfo(alias="createdAt", default=None)
26
+
27
+ domains: Optional[List[ProjectDomain]] = None
28
+
29
+ framework: Optional[str] = None
30
+
31
+ git_branch: Optional[str] = FieldInfo(alias="gitBranch", default=None)
32
+
33
+ git_repo: Optional[str] = FieldInfo(alias="gitRepo", default=None)
34
+
35
+ name: Optional[str] = None
36
+
37
+ status: Optional[str] = None
38
+
39
+ updated_at: Optional[str] = FieldInfo(alias="updatedAt", default=None)
40
+
41
+ vercel_project_id: Optional[str] = FieldInfo(alias="vercelProjectId", default=None)
42
+
43
+
44
+ class ProjectListResponse(BaseModel):
45
+ projects: Optional[List[Project]] = None
@@ -0,0 +1,14 @@
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__ = ["WorkflowGetStatusParams"]
10
+
11
+
12
+ class WorkflowGetStatusParams(TypedDict, total=False):
13
+ project_id: Required[Annotated[str, PropertyInfo(alias="projectId")]]
14
+ """Project ID (for authorization)"""
@@ -5,13 +5,19 @@ from __future__ import annotations
5
5
  from .secret_list_params import SecretListParams as SecretListParams
6
6
  from .secret_create_params import SecretCreateParams as SecretCreateParams
7
7
  from .secret_list_response import SecretListResponse as SecretListResponse
8
+ from .instance_create_params import InstanceCreateParams as InstanceCreateParams
9
+ from .instance_list_response import InstanceListResponse as InstanceListResponse
8
10
  from .secret_create_response import SecretCreateResponse as SecretCreateResponse
11
+ from .instance_create_response import InstanceCreateResponse as InstanceCreateResponse
12
+ from .instance_delete_response import InstanceDeleteResponse as InstanceDeleteResponse
9
13
  from .environment_create_params import EnvironmentCreateParams as EnvironmentCreateParams
10
14
  from .environment_list_response import EnvironmentListResponse as EnvironmentListResponse
15
+ from .instance_retrieve_response import InstanceRetrieveResponse as InstanceRetrieveResponse
11
16
  from .secret_delete_group_params import SecretDeleteGroupParams as SecretDeleteGroupParams
12
17
  from .secret_update_group_params import SecretUpdateGroupParams as SecretUpdateGroupParams
13
18
  from .environment_create_response import EnvironmentCreateResponse as EnvironmentCreateResponse
14
19
  from .environment_delete_response import EnvironmentDeleteResponse as EnvironmentDeleteResponse
20
+ from .instance_type_list_response import InstanceTypeListResponse as InstanceTypeListResponse
15
21
  from .secret_delete_group_response import SecretDeleteGroupResponse as SecretDeleteGroupResponse
16
22
  from .secret_retrieve_group_params import SecretRetrieveGroupParams as SecretRetrieveGroupParams
17
23
  from .secret_update_group_response import SecretUpdateGroupResponse as SecretUpdateGroupResponse
@@ -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 import Optional
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from ...._types import SequenceNotStr
9
+ from ...._utils import PropertyInfo
10
+
11
+ __all__ = ["InstanceCreateParams"]
12
+
13
+
14
+ class InstanceCreateParams(TypedDict, total=False):
15
+ instance_type: Required[Annotated[str, PropertyInfo(alias="instanceType")]]
16
+ """GPU type (e.g., 'gpu_1x_h100_sxm5')"""
17
+
18
+ name: Required[str]
19
+ """Instance name"""
20
+
21
+ region: Required[str]
22
+ """Region (e.g., 'us-west-1')"""
23
+
24
+ auto_shutdown_minutes: Annotated[Optional[int], PropertyInfo(alias="autoShutdownMinutes")]
25
+ """Auto-shutdown timer (null = never)"""
26
+
27
+ vault_ids: Annotated[SequenceNotStr[str], PropertyInfo(alias="vaultIds")]
28
+ """Vault IDs to mount"""
@@ -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__ = ["InstanceCreateResponse"]
10
+
11
+
12
+ class InstanceCreateResponse(BaseModel):
13
+ id: Optional[str] = None
14
+
15
+ auto_shutdown_minutes: Optional[int] = FieldInfo(alias="autoShutdownMinutes", default=None)
16
+
17
+ created_at: Optional[str] = FieldInfo(alias="createdAt", default=None)
18
+
19
+ gpu: Optional[str] = None
20
+
21
+ instance_type: Optional[str] = FieldInfo(alias="instanceType", default=None)
22
+
23
+ message: Optional[str] = None
24
+
25
+ name: Optional[str] = None
26
+
27
+ price_per_hour: Optional[str] = FieldInfo(alias="pricePerHour", default=None)
28
+
29
+ region: Optional[str] = None
30
+
31
+ specs: Optional[object] = None
32
+
33
+ status: Optional[str] = None
34
+
35
+ vaults: Optional[List[object]] = None
@@ -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__ = ["InstanceDeleteResponse"]
10
+
11
+
12
+ class InstanceDeleteResponse(BaseModel):
13
+ id: Optional[str] = None
14
+
15
+ message: Optional[str] = None
16
+
17
+ name: Optional[str] = None
18
+
19
+ status: Optional[str] = None
20
+
21
+ total_cost: Optional[str] = FieldInfo(alias="totalCost", default=None)
22
+
23
+ total_runtime_seconds: Optional[int] = FieldInfo(alias="totalRuntimeSeconds", default=None)
@@ -0,0 +1,45 @@
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__ = ["InstanceListResponse", "Instance"]
12
+
13
+
14
+ class Instance(BaseModel):
15
+ id: Optional[str] = None
16
+
17
+ auto_shutdown_minutes: Optional[int] = FieldInfo(alias="autoShutdownMinutes", default=None)
18
+
19
+ created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
20
+
21
+ gpu: Optional[str] = None
22
+
23
+ instance_type: Optional[str] = FieldInfo(alias="instanceType", default=None)
24
+
25
+ ip: Optional[str] = None
26
+
27
+ name: Optional[str] = None
28
+
29
+ price_per_hour: Optional[str] = FieldInfo(alias="pricePerHour", default=None)
30
+
31
+ region: Optional[str] = None
32
+
33
+ started_at: Optional[datetime] = FieldInfo(alias="startedAt", default=None)
34
+
35
+ status: Optional[Literal["booting", "running", "stopping", "stopped", "terminated", "failed"]] = None
36
+
37
+ total_cost: Optional[str] = FieldInfo(alias="totalCost", default=None)
38
+
39
+ total_runtime_seconds: Optional[int] = FieldInfo(alias="totalRuntimeSeconds", default=None)
40
+
41
+
42
+ class InstanceListResponse(BaseModel):
43
+ count: Optional[int] = None
44
+
45
+ instances: Optional[List[Instance]] = None
@@ -0,0 +1,55 @@
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__ = ["InstanceRetrieveResponse", "SSH"]
10
+
11
+
12
+ class SSH(BaseModel):
13
+ command: Optional[str] = None
14
+
15
+ host: Optional[str] = None
16
+
17
+ instructions: Optional[List[object]] = None
18
+
19
+ private_key: Optional[str] = FieldInfo(alias="privateKey", default=None)
20
+
21
+ user: Optional[str] = None
22
+
23
+
24
+ class InstanceRetrieveResponse(BaseModel):
25
+ id: Optional[str] = None
26
+
27
+ auto_shutdown_minutes: Optional[int] = FieldInfo(alias="autoShutdownMinutes", default=None)
28
+
29
+ created_at: Optional[str] = FieldInfo(alias="createdAt", default=None)
30
+
31
+ current_cost: Optional[str] = FieldInfo(alias="currentCost", default=None)
32
+
33
+ current_runtime_seconds: Optional[int] = FieldInfo(alias="currentRuntimeSeconds", default=None)
34
+
35
+ gpu: Optional[str] = None
36
+
37
+ instance_type: Optional[str] = FieldInfo(alias="instanceType", default=None)
38
+
39
+ ip: Optional[str] = None
40
+
41
+ name: Optional[str] = None
42
+
43
+ price_per_hour: Optional[str] = FieldInfo(alias="pricePerHour", default=None)
44
+
45
+ region: Optional[str] = None
46
+
47
+ specs: Optional[object] = None
48
+
49
+ ssh: Optional[SSH] = None
50
+
51
+ started_at: Optional[str] = FieldInfo(alias="startedAt", default=None)
52
+
53
+ status: Optional[str] = None
54
+
55
+ vault_mounts: Optional[object] = FieldInfo(alias="vaultMounts", default=None)
@@ -0,0 +1,46 @@
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__ = ["InstanceTypeListResponse", "InstanceType", "InstanceTypeSpecs"]
10
+
11
+
12
+ class InstanceTypeSpecs(BaseModel):
13
+ memory_gib: Optional[int] = FieldInfo(alias="memoryGib", default=None)
14
+ """RAM in GiB"""
15
+
16
+ storage_gib: Optional[int] = FieldInfo(alias="storageGib", default=None)
17
+ """Storage in GiB"""
18
+
19
+ vcpus: Optional[int] = None
20
+ """Number of vCPUs"""
21
+
22
+
23
+ class InstanceType(BaseModel):
24
+ description: Optional[str] = None
25
+ """Instance description"""
26
+
27
+ gpu: Optional[str] = None
28
+ """GPU model and count"""
29
+
30
+ name: Optional[str] = None
31
+ """Instance type identifier"""
32
+
33
+ price_per_hour: Optional[str] = FieldInfo(alias="pricePerHour", default=None)
34
+ """Price per hour (e.g. '$1.20')"""
35
+
36
+ regions_available: Optional[List[str]] = FieldInfo(alias="regionsAvailable", default=None)
37
+ """Available regions"""
38
+
39
+ specs: Optional[InstanceTypeSpecs] = None
40
+
41
+
42
+ class InstanceTypeListResponse(BaseModel):
43
+ count: int
44
+ """Total number of instance types"""
45
+
46
+ instance_types: List[InstanceType] = FieldInfo(alias="instanceTypes")
@@ -0,0 +1,5 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .v1_get_usage_response import V1GetUsageResponse as V1GetUsageResponse
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .project_create_params import ProjectCreateParams as ProjectCreateParams
6
+ from .project_list_response import ProjectListResponse as ProjectListResponse
7
+ from .project_create_response import ProjectCreateResponse as ProjectCreateResponse
8
+ from .project_delete_response import ProjectDeleteResponse as ProjectDeleteResponse
9
+ from .project_retrieve_response import ProjectRetrieveResponse as ProjectRetrieveResponse
10
+ from .project_create_branch_params import ProjectCreateBranchParams as ProjectCreateBranchParams
11
+ from .project_get_connection_params import ProjectGetConnectionParams as ProjectGetConnectionParams
12
+ from .project_create_branch_response import ProjectCreateBranchResponse as ProjectCreateBranchResponse
13
+ from .project_list_branches_response import ProjectListBranchesResponse as ProjectListBranchesResponse
14
+ from .project_get_connection_response import ProjectGetConnectionResponse as ProjectGetConnectionResponse
@@ -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 Required, Annotated, TypedDict
6
+
7
+ from ...._utils import PropertyInfo
8
+
9
+ __all__ = ["ProjectCreateBranchParams"]
10
+
11
+
12
+ class ProjectCreateBranchParams(TypedDict, total=False):
13
+ name: Required[str]
14
+ """Branch name (letters, numbers, hyphens, underscores only)"""
15
+
16
+ parent_branch_id: Annotated[str, PropertyInfo(alias="parentBranchId")]
17
+ """Parent branch ID to clone from (defaults to main branch)"""
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+ from datetime import datetime
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from ...._models import BaseModel
9
+
10
+ __all__ = ["ProjectCreateBranchResponse"]
11
+
12
+
13
+ class ProjectCreateBranchResponse(BaseModel):
14
+ id: str
15
+ """Branch ID"""
16
+
17
+ created_at: datetime = FieldInfo(alias="createdAt")
18
+ """Branch creation timestamp"""
19
+
20
+ is_default: bool = FieldInfo(alias="isDefault")
21
+ """Whether this is the default branch (always false for new branches)"""
22
+
23
+ name: str
24
+ """Branch name"""
25
+
26
+ parent_branch_id: Optional[str] = FieldInfo(alias="parentBranchId", default=None)
27
+ """Parent branch ID"""
28
+
29
+ status: str
30
+ """Branch status"""
@@ -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 Literal, Required, TypedDict
6
+
7
+ __all__ = ["ProjectCreateParams"]
8
+
9
+
10
+ class ProjectCreateParams(TypedDict, total=False):
11
+ name: Required[str]
12
+ """Project name (letters, numbers, hyphens, underscores only)"""
13
+
14
+ description: str
15
+ """Optional project description"""
16
+
17
+ region: Literal[
18
+ "aws-us-east-1",
19
+ "aws-us-east-2",
20
+ "aws-us-west-2",
21
+ "aws-eu-central-1",
22
+ "aws-eu-west-1",
23
+ "aws-eu-west-2",
24
+ "aws-ap-southeast-1",
25
+ "aws-ap-southeast-2",
26
+ ]
27
+ """AWS region for database deployment"""
@@ -0,0 +1,47 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import 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__ = ["ProjectCreateResponse", "DefaultBranch"]
12
+
13
+
14
+ class DefaultBranch(BaseModel):
15
+ """Default 'main' branch details"""
16
+
17
+ id: Optional[str] = None
18
+ """Branch ID"""
19
+
20
+ name: Optional[str] = None
21
+ """Branch name"""
22
+
23
+
24
+ class ProjectCreateResponse(BaseModel):
25
+ id: str
26
+ """Project ID"""
27
+
28
+ created_at: datetime = FieldInfo(alias="createdAt")
29
+ """Project creation timestamp"""
30
+
31
+ default_branch: DefaultBranch = FieldInfo(alias="defaultBranch")
32
+ """Default 'main' branch details"""
33
+
34
+ name: str
35
+ """Project name"""
36
+
37
+ pg_version: int = FieldInfo(alias="pgVersion")
38
+ """PostgreSQL major version"""
39
+
40
+ region: str
41
+ """AWS region"""
42
+
43
+ status: Literal["active", "suspended", "deleted"]
44
+ """Project status"""
45
+
46
+ description: Optional[str] = None
47
+ """Project description"""
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from ...._models import BaseModel
4
+
5
+ __all__ = ["ProjectDeleteResponse"]
6
+
7
+
8
+ class ProjectDeleteResponse(BaseModel):
9
+ message: str
10
+ """Confirmation message"""
11
+
12
+ success: bool
13
+ """Deletion success indicator"""
@@ -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 TypedDict
6
+
7
+ __all__ = ["ProjectGetConnectionParams"]
8
+
9
+
10
+ class ProjectGetConnectionParams(TypedDict, total=False):
11
+ branch: str
12
+ """Branch name (defaults to 'main')"""
13
+
14
+ pooled: bool
15
+ """Use pooled connection (PgBouncer)"""
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from pydantic import Field as FieldInfo
4
+
5
+ from ...._models import BaseModel
6
+
7
+ __all__ = ["ProjectGetConnectionResponse"]
8
+
9
+
10
+ class ProjectGetConnectionResponse(BaseModel):
11
+ branch: str
12
+ """Branch name for this connection"""
13
+
14
+ connection_uri: str = FieldInfo(alias="connectionUri")
15
+ """PostgreSQL connection string (includes credentials)"""
16
+
17
+ pooled: bool
18
+ """Whether this is a pooled connection"""
@@ -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
+ from datetime import datetime
5
+
6
+ from pydantic import Field as FieldInfo
7
+
8
+ from ...._models import BaseModel
9
+
10
+ __all__ = ["ProjectListBranchesResponse", "Branch"]
11
+
12
+
13
+ class Branch(BaseModel):
14
+ id: Optional[str] = None
15
+ """Branch ID"""
16
+
17
+ created_at: Optional[datetime] = FieldInfo(alias="createdAt", default=None)
18
+ """Branch creation timestamp"""
19
+
20
+ is_default: Optional[bool] = FieldInfo(alias="isDefault", default=None)
21
+ """Whether this is the default branch"""
22
+
23
+ name: Optional[str] = None
24
+ """Branch name"""
25
+
26
+ parent_branch_id: Optional[str] = FieldInfo(alias="parentBranchId", default=None)
27
+ """Parent branch ID (null for default branch)"""
28
+
29
+ status: Optional[str] = None
30
+ """Branch status"""
31
+
32
+ updated_at: Optional[datetime] = FieldInfo(alias="updatedAt", default=None)
33
+ """Branch last update timestamp"""
34
+
35
+
36
+ class ProjectListBranchesResponse(BaseModel):
37
+ branches: List[Branch]