together 2.0.0a16__py3-none-any.whl → 2.0.0a18__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.
- together/_base_client.py +5 -2
- together/_client.py +1 -39
- together/_compat.py +3 -3
- together/_utils/_json.py +35 -0
- together/_version.py +1 -1
- together/lib/cli/api/endpoints/create.py +14 -8
- together/lib/cli/api/endpoints/hardware.py +37 -6
- together/lib/cli/api/models/list.py +18 -14
- together/lib/cli/api/models/upload.py +5 -1
- together/resources/__init__.py +0 -14
- together/resources/beta/__init__.py +14 -0
- together/resources/beta/beta.py +32 -0
- together/resources/beta/clusters/clusters.py +12 -12
- together/resources/beta/clusters/storage.py +10 -10
- together/resources/beta/jig/__init__.py +61 -0
- together/resources/beta/jig/jig.py +1024 -0
- together/resources/beta/jig/queue.py +482 -0
- together/resources/beta/jig/secrets.py +548 -0
- together/resources/beta/jig/volumes.py +514 -0
- together/resources/chat/completions.py +10 -0
- together/resources/endpoints.py +2 -2
- together/resources/models/__init__.py +33 -0
- together/resources/{models.py → models/models.py} +41 -9
- together/resources/models/uploads.py +163 -0
- together/types/__init__.py +0 -2
- together/types/beta/__init__.py +6 -0
- together/types/beta/deployment.py +261 -0
- together/types/beta/deployment_logs.py +11 -0
- together/types/beta/jig/__init__.py +20 -0
- together/types/beta/jig/queue_cancel_params.py +13 -0
- together/types/beta/jig/queue_cancel_response.py +11 -0
- together/types/beta/jig/queue_metrics_params.py +12 -0
- together/types/beta/jig/queue_metrics_response.py +8 -0
- together/types/beta/jig/queue_retrieve_params.py +15 -0
- together/types/beta/jig/queue_retrieve_response.py +35 -0
- together/types/beta/jig/queue_submit_params.py +19 -0
- together/types/beta/jig/queue_submit_response.py +25 -0
- together/types/beta/jig/secret.py +33 -0
- together/types/beta/jig/secret_create_params.py +34 -0
- together/types/beta/jig/secret_list_response.py +16 -0
- together/types/beta/jig/secret_update_params.py +34 -0
- together/types/beta/jig/volume.py +47 -0
- together/types/beta/jig/volume_create_params.py +34 -0
- together/types/beta/jig/volume_list_response.py +16 -0
- together/types/beta/jig/volume_update_params.py +34 -0
- together/types/beta/jig_deploy_params.py +150 -0
- together/types/beta/jig_list_response.py +16 -0
- together/types/beta/jig_retrieve_logs_params.py +15 -0
- together/types/beta/jig_update_params.py +141 -0
- together/types/chat/completion_create_params.py +11 -0
- together/types/endpoint_create_params.py +1 -1
- together/types/models/__init__.py +5 -0
- together/types/{job_retrieve_response.py → models/upload_status_response.py} +3 -3
- {together-2.0.0a16.dist-info → together-2.0.0a18.dist-info}/METADATA +11 -14
- {together-2.0.0a16.dist-info → together-2.0.0a18.dist-info}/RECORD +58 -28
- together/resources/jobs.py +0 -214
- together/types/job_list_response.py +0 -47
- {together-2.0.0a16.dist-info → together-2.0.0a18.dist-info}/WHEEL +0 -0
- {together-2.0.0a16.dist-info → together-2.0.0a18.dist-info}/entry_points.txt +0 -0
- {together-2.0.0a16.dist-info → together-2.0.0a18.dist-info}/licenses/LICENSE +0 -0
|
@@ -6,25 +6,37 @@ from typing_extensions import Literal
|
|
|
6
6
|
|
|
7
7
|
import httpx
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
from ...types import model_list_params, model_upload_params
|
|
10
|
+
from .uploads import (
|
|
11
|
+
UploadsResource,
|
|
12
|
+
AsyncUploadsResource,
|
|
13
|
+
UploadsResourceWithRawResponse,
|
|
14
|
+
AsyncUploadsResourceWithRawResponse,
|
|
15
|
+
UploadsResourceWithStreamingResponse,
|
|
16
|
+
AsyncUploadsResourceWithStreamingResponse,
|
|
17
|
+
)
|
|
18
|
+
from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
|
|
19
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
20
|
+
from ..._compat import cached_property
|
|
21
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
22
|
+
from ..._response import (
|
|
15
23
|
to_raw_response_wrapper,
|
|
16
24
|
to_streamed_response_wrapper,
|
|
17
25
|
async_to_raw_response_wrapper,
|
|
18
26
|
async_to_streamed_response_wrapper,
|
|
19
27
|
)
|
|
20
|
-
from
|
|
21
|
-
from
|
|
22
|
-
from
|
|
28
|
+
from ..._base_client import make_request_options
|
|
29
|
+
from ...types.model_list_response import ModelListResponse
|
|
30
|
+
from ...types.model_upload_response import ModelUploadResponse
|
|
23
31
|
|
|
24
32
|
__all__ = ["ModelsResource", "AsyncModelsResource"]
|
|
25
33
|
|
|
26
34
|
|
|
27
35
|
class ModelsResource(SyncAPIResource):
|
|
36
|
+
@cached_property
|
|
37
|
+
def uploads(self) -> UploadsResource:
|
|
38
|
+
return UploadsResource(self._client)
|
|
39
|
+
|
|
28
40
|
@cached_property
|
|
29
41
|
def with_raw_response(self) -> ModelsResourceWithRawResponse:
|
|
30
42
|
"""
|
|
@@ -148,6 +160,10 @@ class ModelsResource(SyncAPIResource):
|
|
|
148
160
|
|
|
149
161
|
|
|
150
162
|
class AsyncModelsResource(AsyncAPIResource):
|
|
163
|
+
@cached_property
|
|
164
|
+
def uploads(self) -> AsyncUploadsResource:
|
|
165
|
+
return AsyncUploadsResource(self._client)
|
|
166
|
+
|
|
151
167
|
@cached_property
|
|
152
168
|
def with_raw_response(self) -> AsyncModelsResourceWithRawResponse:
|
|
153
169
|
"""
|
|
@@ -281,6 +297,10 @@ class ModelsResourceWithRawResponse:
|
|
|
281
297
|
models.upload,
|
|
282
298
|
)
|
|
283
299
|
|
|
300
|
+
@cached_property
|
|
301
|
+
def uploads(self) -> UploadsResourceWithRawResponse:
|
|
302
|
+
return UploadsResourceWithRawResponse(self._models.uploads)
|
|
303
|
+
|
|
284
304
|
|
|
285
305
|
class AsyncModelsResourceWithRawResponse:
|
|
286
306
|
def __init__(self, models: AsyncModelsResource) -> None:
|
|
@@ -293,6 +313,10 @@ class AsyncModelsResourceWithRawResponse:
|
|
|
293
313
|
models.upload,
|
|
294
314
|
)
|
|
295
315
|
|
|
316
|
+
@cached_property
|
|
317
|
+
def uploads(self) -> AsyncUploadsResourceWithRawResponse:
|
|
318
|
+
return AsyncUploadsResourceWithRawResponse(self._models.uploads)
|
|
319
|
+
|
|
296
320
|
|
|
297
321
|
class ModelsResourceWithStreamingResponse:
|
|
298
322
|
def __init__(self, models: ModelsResource) -> None:
|
|
@@ -305,6 +329,10 @@ class ModelsResourceWithStreamingResponse:
|
|
|
305
329
|
models.upload,
|
|
306
330
|
)
|
|
307
331
|
|
|
332
|
+
@cached_property
|
|
333
|
+
def uploads(self) -> UploadsResourceWithStreamingResponse:
|
|
334
|
+
return UploadsResourceWithStreamingResponse(self._models.uploads)
|
|
335
|
+
|
|
308
336
|
|
|
309
337
|
class AsyncModelsResourceWithStreamingResponse:
|
|
310
338
|
def __init__(self, models: AsyncModelsResource) -> None:
|
|
@@ -316,3 +344,7 @@ class AsyncModelsResourceWithStreamingResponse:
|
|
|
316
344
|
self.upload = async_to_streamed_response_wrapper(
|
|
317
345
|
models.upload,
|
|
318
346
|
)
|
|
347
|
+
|
|
348
|
+
@cached_property
|
|
349
|
+
def uploads(self) -> AsyncUploadsResourceWithStreamingResponse:
|
|
350
|
+
return AsyncUploadsResourceWithStreamingResponse(self._models.uploads)
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ..._types import Body, Query, Headers, NotGiven, not_given
|
|
8
|
+
from ..._compat import cached_property
|
|
9
|
+
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
10
|
+
from ..._response import (
|
|
11
|
+
to_raw_response_wrapper,
|
|
12
|
+
to_streamed_response_wrapper,
|
|
13
|
+
async_to_raw_response_wrapper,
|
|
14
|
+
async_to_streamed_response_wrapper,
|
|
15
|
+
)
|
|
16
|
+
from ..._base_client import make_request_options
|
|
17
|
+
from ...types.models.upload_status_response import UploadStatusResponse
|
|
18
|
+
|
|
19
|
+
__all__ = ["UploadsResource", "AsyncUploadsResource"]
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class UploadsResource(SyncAPIResource):
|
|
23
|
+
@cached_property
|
|
24
|
+
def with_raw_response(self) -> UploadsResourceWithRawResponse:
|
|
25
|
+
"""
|
|
26
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
27
|
+
the raw response object instead of the parsed content.
|
|
28
|
+
|
|
29
|
+
For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
|
|
30
|
+
"""
|
|
31
|
+
return UploadsResourceWithRawResponse(self)
|
|
32
|
+
|
|
33
|
+
@cached_property
|
|
34
|
+
def with_streaming_response(self) -> UploadsResourceWithStreamingResponse:
|
|
35
|
+
"""
|
|
36
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
37
|
+
|
|
38
|
+
For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
|
|
39
|
+
"""
|
|
40
|
+
return UploadsResourceWithStreamingResponse(self)
|
|
41
|
+
|
|
42
|
+
def status(
|
|
43
|
+
self,
|
|
44
|
+
job_id: str,
|
|
45
|
+
*,
|
|
46
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
47
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
48
|
+
extra_headers: Headers | None = None,
|
|
49
|
+
extra_query: Query | None = None,
|
|
50
|
+
extra_body: Body | None = None,
|
|
51
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
52
|
+
) -> UploadStatusResponse:
|
|
53
|
+
"""
|
|
54
|
+
Get the status of a specific job
|
|
55
|
+
|
|
56
|
+
Args:
|
|
57
|
+
extra_headers: Send extra headers
|
|
58
|
+
|
|
59
|
+
extra_query: Add additional query parameters to the request
|
|
60
|
+
|
|
61
|
+
extra_body: Add additional JSON properties to the request
|
|
62
|
+
|
|
63
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
64
|
+
"""
|
|
65
|
+
if not job_id:
|
|
66
|
+
raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}")
|
|
67
|
+
return self._get(
|
|
68
|
+
f"/jobs/{job_id}",
|
|
69
|
+
options=make_request_options(
|
|
70
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
71
|
+
),
|
|
72
|
+
cast_to=UploadStatusResponse,
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class AsyncUploadsResource(AsyncAPIResource):
|
|
77
|
+
@cached_property
|
|
78
|
+
def with_raw_response(self) -> AsyncUploadsResourceWithRawResponse:
|
|
79
|
+
"""
|
|
80
|
+
This property can be used as a prefix for any HTTP method call to return
|
|
81
|
+
the raw response object instead of the parsed content.
|
|
82
|
+
|
|
83
|
+
For more information, see https://www.github.com/togethercomputer/together-py#accessing-raw-response-data-eg-headers
|
|
84
|
+
"""
|
|
85
|
+
return AsyncUploadsResourceWithRawResponse(self)
|
|
86
|
+
|
|
87
|
+
@cached_property
|
|
88
|
+
def with_streaming_response(self) -> AsyncUploadsResourceWithStreamingResponse:
|
|
89
|
+
"""
|
|
90
|
+
An alternative to `.with_raw_response` that doesn't eagerly read the response body.
|
|
91
|
+
|
|
92
|
+
For more information, see https://www.github.com/togethercomputer/together-py#with_streaming_response
|
|
93
|
+
"""
|
|
94
|
+
return AsyncUploadsResourceWithStreamingResponse(self)
|
|
95
|
+
|
|
96
|
+
async def status(
|
|
97
|
+
self,
|
|
98
|
+
job_id: str,
|
|
99
|
+
*,
|
|
100
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
101
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
102
|
+
extra_headers: Headers | None = None,
|
|
103
|
+
extra_query: Query | None = None,
|
|
104
|
+
extra_body: Body | None = None,
|
|
105
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
106
|
+
) -> UploadStatusResponse:
|
|
107
|
+
"""
|
|
108
|
+
Get the status of a specific job
|
|
109
|
+
|
|
110
|
+
Args:
|
|
111
|
+
extra_headers: Send extra headers
|
|
112
|
+
|
|
113
|
+
extra_query: Add additional query parameters to the request
|
|
114
|
+
|
|
115
|
+
extra_body: Add additional JSON properties to the request
|
|
116
|
+
|
|
117
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
118
|
+
"""
|
|
119
|
+
if not job_id:
|
|
120
|
+
raise ValueError(f"Expected a non-empty value for `job_id` but received {job_id!r}")
|
|
121
|
+
return await self._get(
|
|
122
|
+
f"/jobs/{job_id}",
|
|
123
|
+
options=make_request_options(
|
|
124
|
+
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
125
|
+
),
|
|
126
|
+
cast_to=UploadStatusResponse,
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class UploadsResourceWithRawResponse:
|
|
131
|
+
def __init__(self, uploads: UploadsResource) -> None:
|
|
132
|
+
self._uploads = uploads
|
|
133
|
+
|
|
134
|
+
self.status = to_raw_response_wrapper(
|
|
135
|
+
uploads.status,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class AsyncUploadsResourceWithRawResponse:
|
|
140
|
+
def __init__(self, uploads: AsyncUploadsResource) -> None:
|
|
141
|
+
self._uploads = uploads
|
|
142
|
+
|
|
143
|
+
self.status = async_to_raw_response_wrapper(
|
|
144
|
+
uploads.status,
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
class UploadsResourceWithStreamingResponse:
|
|
149
|
+
def __init__(self, uploads: UploadsResource) -> None:
|
|
150
|
+
self._uploads = uploads
|
|
151
|
+
|
|
152
|
+
self.status = to_streamed_response_wrapper(
|
|
153
|
+
uploads.status,
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
class AsyncUploadsResourceWithStreamingResponse:
|
|
158
|
+
def __init__(self, uploads: AsyncUploadsResource) -> None:
|
|
159
|
+
self._uploads = uploads
|
|
160
|
+
|
|
161
|
+
self.status = async_to_streamed_response_wrapper(
|
|
162
|
+
uploads.status,
|
|
163
|
+
)
|
together/types/__init__.py
CHANGED
|
@@ -25,7 +25,6 @@ from .eval_list_params import EvalListParams as EvalListParams
|
|
|
25
25
|
from .execute_response import ExecuteResponse as ExecuteResponse
|
|
26
26
|
from .autoscaling_param import AutoscalingParam as AutoscalingParam
|
|
27
27
|
from .finetune_response import FinetuneResponse as FinetuneResponse
|
|
28
|
-
from .job_list_response import JobListResponse as JobListResponse
|
|
29
28
|
from .model_list_params import ModelListParams as ModelListParams
|
|
30
29
|
from .tool_choice_param import ToolChoiceParam as ToolChoiceParam
|
|
31
30
|
from .dedicated_endpoint import DedicatedEndpoint as DedicatedEndpoint
|
|
@@ -45,7 +44,6 @@ from .hardware_list_params import HardwareListParams as HardwareListParams
|
|
|
45
44
|
from .rerank_create_params import RerankCreateParams as RerankCreateParams
|
|
46
45
|
from .batch_create_response import BatchCreateResponse as BatchCreateResponse
|
|
47
46
|
from .image_generate_params import ImageGenerateParams as ImageGenerateParams
|
|
48
|
-
from .job_retrieve_response import JobRetrieveResponse as JobRetrieveResponse
|
|
49
47
|
from .model_upload_response import ModelUploadResponse as ModelUploadResponse
|
|
50
48
|
from .endpoint_create_params import EndpointCreateParams as EndpointCreateParams
|
|
51
49
|
from .endpoint_list_response import EndpointListResponse as EndpointListResponse
|
together/types/beta/__init__.py
CHANGED
|
@@ -3,8 +3,14 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from .cluster import Cluster as Cluster
|
|
6
|
+
from .deployment import Deployment as Deployment
|
|
7
|
+
from .deployment_logs import DeploymentLogs as DeploymentLogs
|
|
8
|
+
from .jig_deploy_params import JigDeployParams as JigDeployParams
|
|
9
|
+
from .jig_list_response import JigListResponse as JigListResponse
|
|
10
|
+
from .jig_update_params import JigUpdateParams as JigUpdateParams
|
|
6
11
|
from .cluster_create_params import ClusterCreateParams as ClusterCreateParams
|
|
7
12
|
from .cluster_list_response import ClusterListResponse as ClusterListResponse
|
|
8
13
|
from .cluster_update_params import ClusterUpdateParams as ClusterUpdateParams
|
|
9
14
|
from .cluster_delete_response import ClusterDeleteResponse as ClusterDeleteResponse
|
|
15
|
+
from .jig_retrieve_logs_params import JigRetrieveLogsParams as JigRetrieveLogsParams
|
|
10
16
|
from .cluster_list_regions_response import ClusterListRegionsResponse as ClusterListRegionsResponse
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, List, Optional
|
|
4
|
+
from typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from pydantic import Field as FieldInfo
|
|
7
|
+
|
|
8
|
+
from ..._models import BaseModel
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"Deployment",
|
|
12
|
+
"EnvironmentVariable",
|
|
13
|
+
"ReplicaEvents",
|
|
14
|
+
"ReplicaEventsContainerStatus",
|
|
15
|
+
"ReplicaEventsEvent",
|
|
16
|
+
"Volume",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class EnvironmentVariable(BaseModel):
|
|
21
|
+
name: str
|
|
22
|
+
"""Name is the environment variable name (e.g., "DATABASE_URL").
|
|
23
|
+
|
|
24
|
+
Must start with a letter or underscore, followed by letters, numbers, or
|
|
25
|
+
underscores
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
value: Optional[str] = None
|
|
29
|
+
"""Value is the plain text value for the environment variable.
|
|
30
|
+
|
|
31
|
+
Use this for non-sensitive values. Either Value or ValueFromSecret must be set,
|
|
32
|
+
but not both
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
value_from_secret: Optional[str] = None
|
|
36
|
+
"""ValueFromSecret references a secret by name or ID to use as the value.
|
|
37
|
+
|
|
38
|
+
Use this for sensitive values like API keys or passwords. Either Value or
|
|
39
|
+
ValueFromSecret must be set, but not both
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ReplicaEventsContainerStatus(BaseModel):
|
|
44
|
+
"""
|
|
45
|
+
ContainerStatus provides detailed status information about the container within this replica
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
finished_at: Optional[str] = FieldInfo(alias="finishedAt", default=None)
|
|
49
|
+
"""
|
|
50
|
+
FinishedAt is the timestamp when the container finished execution (if
|
|
51
|
+
terminated)
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
message: Optional[str] = None
|
|
55
|
+
"""
|
|
56
|
+
Message provides a human-readable message with details about the container's
|
|
57
|
+
status
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
name: Optional[str] = None
|
|
61
|
+
"""Name is the name of the container"""
|
|
62
|
+
|
|
63
|
+
reason: Optional[str] = None
|
|
64
|
+
"""
|
|
65
|
+
Reason provides a brief machine-readable reason for the container's current
|
|
66
|
+
status
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
started_at: Optional[str] = FieldInfo(alias="startedAt", default=None)
|
|
70
|
+
"""StartedAt is the timestamp when the container started execution"""
|
|
71
|
+
|
|
72
|
+
status: Optional[str] = None
|
|
73
|
+
"""
|
|
74
|
+
Status is the current state of the container (e.g., "Running", "Terminated",
|
|
75
|
+
"Waiting")
|
|
76
|
+
"""
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
class ReplicaEventsEvent(BaseModel):
|
|
80
|
+
action: Optional[str] = None
|
|
81
|
+
"""Action is the action taken or reported by this event"""
|
|
82
|
+
|
|
83
|
+
count: Optional[int] = None
|
|
84
|
+
"""Count is the number of times this event has occurred"""
|
|
85
|
+
|
|
86
|
+
first_seen: Optional[str] = None
|
|
87
|
+
"""FirstSeen is the timestamp when this event was first observed"""
|
|
88
|
+
|
|
89
|
+
last_seen: Optional[str] = None
|
|
90
|
+
"""LastSeen is the timestamp when this event was last observed"""
|
|
91
|
+
|
|
92
|
+
message: Optional[str] = None
|
|
93
|
+
"""Message is a human-readable description of the event"""
|
|
94
|
+
|
|
95
|
+
reason: Optional[str] = None
|
|
96
|
+
"""
|
|
97
|
+
Reason is a brief machine-readable reason for this event (e.g., "Pulling",
|
|
98
|
+
"Started", "Failed")
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class ReplicaEvents(BaseModel):
|
|
103
|
+
container_status: Optional[ReplicaEventsContainerStatus] = None
|
|
104
|
+
"""
|
|
105
|
+
ContainerStatus provides detailed status information about the container within
|
|
106
|
+
this replica
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
events: Optional[List[ReplicaEventsEvent]] = None
|
|
110
|
+
"""
|
|
111
|
+
Events is a list of Kubernetes events related to this replica for
|
|
112
|
+
troubleshooting
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
replica_completed_at: Optional[str] = None
|
|
116
|
+
"""ReplicaCompletedAt is the timestamp when the replica finished execution"""
|
|
117
|
+
|
|
118
|
+
replica_marked_for_termination_at: Optional[str] = None
|
|
119
|
+
"""
|
|
120
|
+
ReplicaMarkedForTerminationAt is the timestamp when the replica was marked for
|
|
121
|
+
termination
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
replica_ready_since: Optional[str] = None
|
|
125
|
+
"""
|
|
126
|
+
ReplicaReadySince is the timestamp when the replica became ready to serve
|
|
127
|
+
traffic
|
|
128
|
+
"""
|
|
129
|
+
|
|
130
|
+
replica_running_since: Optional[str] = None
|
|
131
|
+
"""ReplicaRunningSince is the timestamp when the replica entered the running state"""
|
|
132
|
+
|
|
133
|
+
replica_started_at: Optional[str] = None
|
|
134
|
+
"""ReplicaStartedAt is the timestamp when the replica was created"""
|
|
135
|
+
|
|
136
|
+
replica_status: Optional[str] = None
|
|
137
|
+
"""
|
|
138
|
+
ReplicaStatus is the current status of the replica (e.g., "Running", "Pending",
|
|
139
|
+
"Failed")
|
|
140
|
+
"""
|
|
141
|
+
|
|
142
|
+
replica_status_message: Optional[str] = None
|
|
143
|
+
"""
|
|
144
|
+
ReplicaStatusMessage provides a human-readable message explaining the replica's
|
|
145
|
+
status
|
|
146
|
+
"""
|
|
147
|
+
|
|
148
|
+
replica_status_reason: Optional[str] = None
|
|
149
|
+
"""
|
|
150
|
+
ReplicaStatusReason provides a brief machine-readable reason for the replica's
|
|
151
|
+
status
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
scheduled_on_cluster: Optional[str] = None
|
|
155
|
+
"""ScheduledOnCluster identifies which cluster this replica is scheduled on"""
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
class Volume(BaseModel):
|
|
159
|
+
mount_path: str
|
|
160
|
+
"""
|
|
161
|
+
MountPath is the path in the container where the volume will be mounted (e.g.,
|
|
162
|
+
"/data")
|
|
163
|
+
"""
|
|
164
|
+
|
|
165
|
+
name: str
|
|
166
|
+
"""Name is the name of the volume to mount.
|
|
167
|
+
|
|
168
|
+
Must reference an existing volume by name or ID
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class Deployment(BaseModel):
|
|
173
|
+
id: Optional[str] = None
|
|
174
|
+
"""ID is the unique identifier of the deployment"""
|
|
175
|
+
|
|
176
|
+
args: Optional[List[str]] = None
|
|
177
|
+
"""Args are the arguments passed to the container's command"""
|
|
178
|
+
|
|
179
|
+
autoscaling: Optional[Dict[str, str]] = None
|
|
180
|
+
"""Autoscaling contains autoscaling configuration parameters for this deployment"""
|
|
181
|
+
|
|
182
|
+
command: Optional[List[str]] = None
|
|
183
|
+
"""Command is the entrypoint command run in the container"""
|
|
184
|
+
|
|
185
|
+
cpu: Optional[float] = None
|
|
186
|
+
"""
|
|
187
|
+
CPU is the amount of CPU resource allocated to each replica in cores (fractional
|
|
188
|
+
value is allowed)
|
|
189
|
+
"""
|
|
190
|
+
|
|
191
|
+
created_at: Optional[str] = None
|
|
192
|
+
"""CreatedAt is the ISO8601 timestamp when this deployment was created"""
|
|
193
|
+
|
|
194
|
+
description: Optional[str] = None
|
|
195
|
+
"""
|
|
196
|
+
Description provides a human-readable explanation of the deployment's purpose or
|
|
197
|
+
content
|
|
198
|
+
"""
|
|
199
|
+
|
|
200
|
+
desired_replicas: Optional[int] = None
|
|
201
|
+
"""DesiredReplicas is the number of replicas that the orchestrator is targeting"""
|
|
202
|
+
|
|
203
|
+
environment_variables: Optional[List[EnvironmentVariable]] = None
|
|
204
|
+
"""EnvironmentVariables is a list of environment variables set in the container"""
|
|
205
|
+
|
|
206
|
+
gpu_count: Optional[int] = None
|
|
207
|
+
"""GPUCount is the number of GPUs allocated to each replica in this deployment"""
|
|
208
|
+
|
|
209
|
+
gpu_type: Optional[Literal["h100-80gb", " a100-80gb"]] = None
|
|
210
|
+
"""GPUType specifies the type of GPU requested (if any) for this deployment"""
|
|
211
|
+
|
|
212
|
+
health_check_path: Optional[str] = None
|
|
213
|
+
"""HealthCheckPath is the HTTP path used for health checks of the application"""
|
|
214
|
+
|
|
215
|
+
image: Optional[str] = None
|
|
216
|
+
"""Image specifies the container image used for this deployment"""
|
|
217
|
+
|
|
218
|
+
max_replicas: Optional[int] = None
|
|
219
|
+
"""MaxReplicas is the maximum number of replicas to run for this deployment"""
|
|
220
|
+
|
|
221
|
+
memory: Optional[float] = None
|
|
222
|
+
"""
|
|
223
|
+
Memory is the amount of memory allocated to each replica in GiB (fractional
|
|
224
|
+
value is allowed)
|
|
225
|
+
"""
|
|
226
|
+
|
|
227
|
+
min_replicas: Optional[int] = None
|
|
228
|
+
"""MinReplicas is the minimum number of replicas to run for this deployment"""
|
|
229
|
+
|
|
230
|
+
name: Optional[str] = None
|
|
231
|
+
"""Name is the name of the deployment"""
|
|
232
|
+
|
|
233
|
+
object: Optional[str] = None
|
|
234
|
+
"""Object is the type identifier for this response (always "deployment")"""
|
|
235
|
+
|
|
236
|
+
port: Optional[int] = None
|
|
237
|
+
"""Port is the container port that the deployment exposes"""
|
|
238
|
+
|
|
239
|
+
ready_replicas: Optional[int] = None
|
|
240
|
+
"""ReadyReplicas is the current number of replicas that are in the Ready state"""
|
|
241
|
+
|
|
242
|
+
replica_events: Optional[Dict[str, ReplicaEvents]] = None
|
|
243
|
+
"""ReplicaEvents is a mapping of replica names or IDs to their status events"""
|
|
244
|
+
|
|
245
|
+
status: Optional[Literal["Updating", "Scaling", "Ready", "Failed"]] = None
|
|
246
|
+
"""
|
|
247
|
+
Status represents the overall status of the deployment (e.g., Updating, Scaling,
|
|
248
|
+
Ready, Failed)
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
storage: Optional[int] = None
|
|
252
|
+
"""
|
|
253
|
+
Storage is the amount of storage (in MB or units as defined by the platform)
|
|
254
|
+
allocated to each replica
|
|
255
|
+
"""
|
|
256
|
+
|
|
257
|
+
updated_at: Optional[str] = None
|
|
258
|
+
"""UpdatedAt is the ISO8601 timestamp when this deployment was last updated"""
|
|
259
|
+
|
|
260
|
+
volumes: Optional[List[Volume]] = None
|
|
261
|
+
"""Volumes is a list of volume mounts for this deployment"""
|
|
@@ -0,0 +1,11 @@
|
|
|
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__ = ["DeploymentLogs"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DeploymentLogs(BaseModel):
|
|
11
|
+
lines: Optional[List[str]] = None
|
|
@@ -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 .secret import Secret as Secret
|
|
6
|
+
from .volume import Volume as Volume
|
|
7
|
+
from .queue_cancel_params import QueueCancelParams as QueueCancelParams
|
|
8
|
+
from .queue_submit_params import QueueSubmitParams as QueueSubmitParams
|
|
9
|
+
from .queue_metrics_params import QueueMetricsParams as QueueMetricsParams
|
|
10
|
+
from .secret_create_params import SecretCreateParams as SecretCreateParams
|
|
11
|
+
from .secret_list_response import SecretListResponse as SecretListResponse
|
|
12
|
+
from .secret_update_params import SecretUpdateParams as SecretUpdateParams
|
|
13
|
+
from .volume_create_params import VolumeCreateParams as VolumeCreateParams
|
|
14
|
+
from .volume_list_response import VolumeListResponse as VolumeListResponse
|
|
15
|
+
from .volume_update_params import VolumeUpdateParams as VolumeUpdateParams
|
|
16
|
+
from .queue_cancel_response import QueueCancelResponse as QueueCancelResponse
|
|
17
|
+
from .queue_retrieve_params import QueueRetrieveParams as QueueRetrieveParams
|
|
18
|
+
from .queue_submit_response import QueueSubmitResponse as QueueSubmitResponse
|
|
19
|
+
from .queue_metrics_response import QueueMetricsResponse as QueueMetricsResponse
|
|
20
|
+
from .queue_retrieve_response import QueueRetrieveResponse as QueueRetrieveResponse
|
|
@@ -0,0 +1,13 @@
|
|
|
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__ = ["QueueCancelParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class QueueCancelParams(TypedDict, total=False):
|
|
11
|
+
model: Required[str]
|
|
12
|
+
|
|
13
|
+
request_id: Required[str]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from ...._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["QueueCancelResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class QueueCancelResponse(BaseModel):
|
|
11
|
+
status: Optional[str] = None
|
|
@@ -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__ = ["QueueMetricsParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class QueueMetricsParams(TypedDict, total=False):
|
|
11
|
+
model: Required[str]
|
|
12
|
+
"""Model name to get metrics for"""
|
|
@@ -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, TypedDict
|
|
6
|
+
|
|
7
|
+
__all__ = ["QueueRetrieveParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class QueueRetrieveParams(TypedDict, total=False):
|
|
11
|
+
model: Required[str]
|
|
12
|
+
"""Model name"""
|
|
13
|
+
|
|
14
|
+
request_id: Required[str]
|
|
15
|
+
"""Request ID"""
|