together 2.0.0a17__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 +7 -3
- together/lib/cli/api/endpoints/hardware.py +37 -6
- 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/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/models/__init__.py +5 -0
- together/types/{job_retrieve_response.py → models/upload_status_response.py} +3 -3
- {together-2.0.0a17.dist-info → together-2.0.0a18.dist-info}/METADATA +11 -14
- {together-2.0.0a17.dist-info → together-2.0.0a18.dist-info}/RECORD +55 -25
- together/resources/jobs.py +0 -214
- together/types/job_list_response.py +0 -47
- {together-2.0.0a17.dist-info → together-2.0.0a18.dist-info}/WHEEL +0 -0
- {together-2.0.0a17.dist-info → together-2.0.0a18.dist-info}/entry_points.txt +0 -0
- {together-2.0.0a17.dist-info → together-2.0.0a18.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import Dict, List, Optional
|
|
4
|
+
|
|
5
|
+
from ...._models import BaseModel
|
|
6
|
+
|
|
7
|
+
__all__ = ["QueueRetrieveResponse"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class QueueRetrieveResponse(BaseModel):
|
|
11
|
+
claimed_at: Optional[str] = None
|
|
12
|
+
|
|
13
|
+
created_at: Optional[str] = None
|
|
14
|
+
|
|
15
|
+
done_at: Optional[str] = None
|
|
16
|
+
|
|
17
|
+
info: Optional[Dict[str, object]] = None
|
|
18
|
+
|
|
19
|
+
inputs: Optional[Dict[str, object]] = None
|
|
20
|
+
|
|
21
|
+
model: Optional[str] = None
|
|
22
|
+
|
|
23
|
+
outputs: Optional[Dict[str, object]] = None
|
|
24
|
+
|
|
25
|
+
priority: Optional[int] = None
|
|
26
|
+
"""Additional fields for test compatibility"""
|
|
27
|
+
|
|
28
|
+
request_id: Optional[str] = None
|
|
29
|
+
|
|
30
|
+
retries: Optional[int] = None
|
|
31
|
+
|
|
32
|
+
status: Optional[str] = None
|
|
33
|
+
"""this should be the enum, but isn't for backwards compatability"""
|
|
34
|
+
|
|
35
|
+
warnings: Optional[List[str]] = None
|
|
@@ -0,0 +1,19 @@
|
|
|
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 Dict
|
|
6
|
+
from typing_extensions import Required, TypedDict
|
|
7
|
+
|
|
8
|
+
__all__ = ["QueueSubmitParams"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class QueueSubmitParams(TypedDict, total=False):
|
|
12
|
+
model: Required[str]
|
|
13
|
+
"""Required model identifier"""
|
|
14
|
+
|
|
15
|
+
payload: Required[Dict[str, object]]
|
|
16
|
+
|
|
17
|
+
info: Dict[str, object]
|
|
18
|
+
|
|
19
|
+
priority: int
|
|
@@ -0,0 +1,25 @@
|
|
|
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__ = ["QueueSubmitResponse", "Error"]
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Error(BaseModel):
|
|
13
|
+
code: Optional[str] = None
|
|
14
|
+
|
|
15
|
+
message: Optional[str] = None
|
|
16
|
+
|
|
17
|
+
param: Optional[str] = None
|
|
18
|
+
|
|
19
|
+
type: Optional[str] = None
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class QueueSubmitResponse(BaseModel):
|
|
23
|
+
error: Optional[Error] = None
|
|
24
|
+
|
|
25
|
+
request_id: Optional[str] = FieldInfo(alias="requestId", default=None)
|
|
@@ -0,0 +1,33 @@
|
|
|
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__ = ["Secret"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Secret(BaseModel):
|
|
11
|
+
id: Optional[str] = None
|
|
12
|
+
"""ID is the unique identifier for this secret"""
|
|
13
|
+
|
|
14
|
+
created_at: Optional[str] = None
|
|
15
|
+
"""CreatedAt is the ISO8601 timestamp when this secret was created"""
|
|
16
|
+
|
|
17
|
+
created_by: Optional[str] = None
|
|
18
|
+
"""CreatedBy is the identifier of the user who created this secret"""
|
|
19
|
+
|
|
20
|
+
description: Optional[str] = None
|
|
21
|
+
"""Description is a human-readable description of the secret's purpose"""
|
|
22
|
+
|
|
23
|
+
last_updated_by: Optional[str] = None
|
|
24
|
+
"""LastUpdatedBy is the identifier of the user who last updated this secret"""
|
|
25
|
+
|
|
26
|
+
name: Optional[str] = None
|
|
27
|
+
"""Name is the name/key of the secret"""
|
|
28
|
+
|
|
29
|
+
object: Optional[str] = None
|
|
30
|
+
"""Object is the type identifier for this response (always "secret")"""
|
|
31
|
+
|
|
32
|
+
updated_at: Optional[str] = None
|
|
33
|
+
"""UpdatedAt is the ISO8601 timestamp when this secret was last updated"""
|
|
@@ -0,0 +1,34 @@
|
|
|
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__ = ["SecretCreateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SecretCreateParams(TypedDict, total=False):
|
|
11
|
+
name: Required[str]
|
|
12
|
+
"""Name is the unique identifier for the secret.
|
|
13
|
+
|
|
14
|
+
Can contain alphanumeric characters, underscores, hyphens, forward slashes, and
|
|
15
|
+
periods (1-100 characters)
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
value: Required[str]
|
|
19
|
+
"""
|
|
20
|
+
Value is the sensitive data to store securely (e.g., API keys, passwords,
|
|
21
|
+
tokens). This value will be encrypted at rest
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
description: str
|
|
25
|
+
"""
|
|
26
|
+
Description is an optional human-readable description of the secret's purpose
|
|
27
|
+
(max 500 characters)
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
project_id: str
|
|
31
|
+
"""
|
|
32
|
+
ProjectID is ignored - the project is automatically determined from your
|
|
33
|
+
authentication
|
|
34
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from .secret import Secret
|
|
6
|
+
from ...._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["SecretListResponse"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class SecretListResponse(BaseModel):
|
|
12
|
+
data: Optional[List[Secret]] = None
|
|
13
|
+
"""Data is the array of secret items"""
|
|
14
|
+
|
|
15
|
+
object: Optional[str] = None
|
|
16
|
+
"""Object is the type identifier for this response (always "list")"""
|
|
@@ -0,0 +1,34 @@
|
|
|
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__ = ["SecretUpdateParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SecretUpdateParams(TypedDict, total=False):
|
|
11
|
+
description: str
|
|
12
|
+
"""
|
|
13
|
+
Description is an optional human-readable description of the secret's purpose
|
|
14
|
+
(max 500 characters)
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
name: str
|
|
18
|
+
"""Name is the new unique identifier for the secret.
|
|
19
|
+
|
|
20
|
+
Can contain alphanumeric characters, underscores, hyphens, forward slashes, and
|
|
21
|
+
periods (1-100 characters)
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
project_id: str
|
|
25
|
+
"""
|
|
26
|
+
ProjectID is ignored - the project is automatically determined from your
|
|
27
|
+
authentication
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
value: str
|
|
31
|
+
"""Value is the new sensitive data to store securely.
|
|
32
|
+
|
|
33
|
+
Updating this will replace the existing secret value
|
|
34
|
+
"""
|
|
@@ -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 typing_extensions import Literal
|
|
5
|
+
|
|
6
|
+
from ...._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["Volume", "Content"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Content(BaseModel):
|
|
12
|
+
"""Content specifies the content that will be preloaded to this volume"""
|
|
13
|
+
|
|
14
|
+
source_prefix: Optional[str] = None
|
|
15
|
+
"""
|
|
16
|
+
SourcePrefix is the file path prefix for the content to be preloaded into the
|
|
17
|
+
volume
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
type: Optional[Literal["files"]] = None
|
|
21
|
+
"""
|
|
22
|
+
Type is the content type (currently only "files" is supported which allows
|
|
23
|
+
preloading files uploaded via Files API into the volume)
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Volume(BaseModel):
|
|
28
|
+
id: Optional[str] = None
|
|
29
|
+
"""ID is the unique identifier for this volume"""
|
|
30
|
+
|
|
31
|
+
content: Optional[Content] = None
|
|
32
|
+
"""Content specifies the content that will be preloaded to this volume"""
|
|
33
|
+
|
|
34
|
+
created_at: Optional[str] = None
|
|
35
|
+
"""CreatedAt is the ISO8601 timestamp when this volume was created"""
|
|
36
|
+
|
|
37
|
+
name: Optional[str] = None
|
|
38
|
+
"""Name is the name of the volume"""
|
|
39
|
+
|
|
40
|
+
object: Optional[str] = None
|
|
41
|
+
"""Object is the type identifier for this response (always "volume")"""
|
|
42
|
+
|
|
43
|
+
type: Optional[Literal["readOnly"]] = None
|
|
44
|
+
"""Type is the volume type (e.g., "readOnly")"""
|
|
45
|
+
|
|
46
|
+
updated_at: Optional[str] = None
|
|
47
|
+
"""UpdatedAt is the ISO8601 timestamp when this volume was last updated"""
|
|
@@ -0,0 +1,34 @@
|
|
|
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__ = ["VolumeCreateParams", "Content"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class VolumeCreateParams(TypedDict, total=False):
|
|
11
|
+
content: Required[Content]
|
|
12
|
+
"""Content specifies the content configuration for this volume"""
|
|
13
|
+
|
|
14
|
+
name: Required[str]
|
|
15
|
+
"""Name is the unique identifier for the volume within the project"""
|
|
16
|
+
|
|
17
|
+
type: Required[Literal["readOnly"]]
|
|
18
|
+
"""Type is the volume type (currently only "readOnly" is supported)"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Content(TypedDict, total=False):
|
|
22
|
+
"""Content specifies the content configuration for this volume"""
|
|
23
|
+
|
|
24
|
+
source_prefix: str
|
|
25
|
+
"""
|
|
26
|
+
SourcePrefix is the file path prefix for the content to be preloaded into the
|
|
27
|
+
volume
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
type: Literal["files"]
|
|
31
|
+
"""
|
|
32
|
+
Type is the content type (currently only "files" is supported which allows
|
|
33
|
+
preloading files uploaded via Files API into the volume)
|
|
34
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from .volume import Volume
|
|
6
|
+
from ...._models import BaseModel
|
|
7
|
+
|
|
8
|
+
__all__ = ["VolumeListResponse"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class VolumeListResponse(BaseModel):
|
|
12
|
+
data: Optional[List[Volume]] = None
|
|
13
|
+
"""Data is the array of volume items"""
|
|
14
|
+
|
|
15
|
+
object: Optional[str] = None
|
|
16
|
+
"""Object is the type identifier for this response (always "list")"""
|
|
@@ -0,0 +1,34 @@
|
|
|
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__ = ["VolumeUpdateParams", "Content"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class VolumeUpdateParams(TypedDict, total=False):
|
|
11
|
+
content: Content
|
|
12
|
+
"""Content specifies the new content that will be preloaded to this volume"""
|
|
13
|
+
|
|
14
|
+
name: str
|
|
15
|
+
"""Name is the new unique identifier for the volume within the project"""
|
|
16
|
+
|
|
17
|
+
type: Literal["readOnly"]
|
|
18
|
+
"""Type is the new volume type (currently only "readOnly" is supported)"""
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Content(TypedDict, total=False):
|
|
22
|
+
"""Content specifies the new content that will be preloaded to this volume"""
|
|
23
|
+
|
|
24
|
+
source_prefix: str
|
|
25
|
+
"""
|
|
26
|
+
SourcePrefix is the file path prefix for the content to be preloaded into the
|
|
27
|
+
volume
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
type: Literal["files"]
|
|
31
|
+
"""
|
|
32
|
+
Type is the content type (currently only "files" is supported which allows
|
|
33
|
+
preloading files uploaded via Files API into the volume)
|
|
34
|
+
"""
|
|
@@ -0,0 +1,150 @@
|
|
|
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 Dict, Iterable
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from ..._types import SequenceNotStr
|
|
9
|
+
|
|
10
|
+
__all__ = ["JigDeployParams", "EnvironmentVariable", "Volume"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class JigDeployParams(TypedDict, total=False):
|
|
14
|
+
gpu_type: Required[Literal["h100-80gb", " a100-80gb"]]
|
|
15
|
+
"""GPUType specifies the GPU hardware to use (e.g., "h100-80gb")."""
|
|
16
|
+
|
|
17
|
+
image: Required[str]
|
|
18
|
+
"""Image is the container image to deploy from registry.together.ai."""
|
|
19
|
+
|
|
20
|
+
name: Required[str]
|
|
21
|
+
"""Name is the unique identifier for your deployment.
|
|
22
|
+
|
|
23
|
+
Must contain only alphanumeric characters, underscores, or hyphens (1-100
|
|
24
|
+
characters)
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
args: SequenceNotStr[str]
|
|
28
|
+
"""Args overrides the container's CMD.
|
|
29
|
+
|
|
30
|
+
Provide as an array of arguments (e.g., ["python", "app.py"])
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
autoscaling: Dict[str, str]
|
|
34
|
+
"""Autoscaling configuration as key-value pairs.
|
|
35
|
+
|
|
36
|
+
Example: {"metric": "QueueBacklogPerWorker", "target": "10"} to scale based on
|
|
37
|
+
queue backlog
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
command: SequenceNotStr[str]
|
|
41
|
+
"""Command overrides the container's ENTRYPOINT.
|
|
42
|
+
|
|
43
|
+
Provide as an array (e.g., ["/bin/sh", "-c"])
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
cpu: float
|
|
47
|
+
"""
|
|
48
|
+
CPU is the number of CPU cores to allocate per container instance (e.g., 0.1 =
|
|
49
|
+
100 milli cores)
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
description: str
|
|
53
|
+
"""Description is an optional human-readable description of your deployment"""
|
|
54
|
+
|
|
55
|
+
environment_variables: Iterable[EnvironmentVariable]
|
|
56
|
+
"""EnvironmentVariables is a list of environment variables to set in the container.
|
|
57
|
+
|
|
58
|
+
Each must have a name and either a value or value_from_secret
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
gpu_count: int
|
|
62
|
+
"""GPUCount is the number of GPUs to allocate per container instance.
|
|
63
|
+
|
|
64
|
+
Defaults to 0 if not specified
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
health_check_path: str
|
|
68
|
+
"""HealthCheckPath is the HTTP path for health checks (e.g., "/health").
|
|
69
|
+
|
|
70
|
+
If set, the platform will check this endpoint to determine container health
|
|
71
|
+
"""
|
|
72
|
+
|
|
73
|
+
max_replicas: int
|
|
74
|
+
"""
|
|
75
|
+
MaxReplicas is the maximum number of container instances that can be scaled up
|
|
76
|
+
to. If not set, will be set to MinReplicas
|
|
77
|
+
"""
|
|
78
|
+
|
|
79
|
+
memory: float
|
|
80
|
+
"""
|
|
81
|
+
Memory is the amount of RAM to allocate per container instance in GiB (e.g., 0.5
|
|
82
|
+
= 512MiB)
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
min_replicas: int
|
|
86
|
+
"""MinReplicas is the minimum number of container instances to run.
|
|
87
|
+
|
|
88
|
+
Defaults to 1 if not specified
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
port: int
|
|
92
|
+
"""
|
|
93
|
+
Port is the container port your application listens on (e.g., 8080 for web
|
|
94
|
+
servers). Required if your application serves traffic
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
storage: int
|
|
98
|
+
"""
|
|
99
|
+
Storage is the amount of ephemeral disk storage to allocate per container
|
|
100
|
+
instance (e.g., 10 = 10GiB)
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
termination_grace_period_seconds: int
|
|
104
|
+
"""
|
|
105
|
+
TerminationGracePeriodSeconds is the time in seconds to wait for graceful
|
|
106
|
+
shutdown before forcefully terminating the replica
|
|
107
|
+
"""
|
|
108
|
+
|
|
109
|
+
volumes: Iterable[Volume]
|
|
110
|
+
"""Volumes is a list of volume mounts to attach to the container.
|
|
111
|
+
|
|
112
|
+
Each mount must reference an existing volume by name
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
class EnvironmentVariable(TypedDict, total=False):
|
|
117
|
+
name: Required[str]
|
|
118
|
+
"""Name is the environment variable name (e.g., "DATABASE_URL").
|
|
119
|
+
|
|
120
|
+
Must start with a letter or underscore, followed by letters, numbers, or
|
|
121
|
+
underscores
|
|
122
|
+
"""
|
|
123
|
+
|
|
124
|
+
value: str
|
|
125
|
+
"""Value is the plain text value for the environment variable.
|
|
126
|
+
|
|
127
|
+
Use this for non-sensitive values. Either Value or ValueFromSecret must be set,
|
|
128
|
+
but not both
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
value_from_secret: str
|
|
132
|
+
"""ValueFromSecret references a secret by name or ID to use as the value.
|
|
133
|
+
|
|
134
|
+
Use this for sensitive values like API keys or passwords. Either Value or
|
|
135
|
+
ValueFromSecret must be set, but not both
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class Volume(TypedDict, total=False):
|
|
140
|
+
mount_path: Required[str]
|
|
141
|
+
"""
|
|
142
|
+
MountPath is the path in the container where the volume will be mounted (e.g.,
|
|
143
|
+
"/data")
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
name: Required[str]
|
|
147
|
+
"""Name is the name of the volume to mount.
|
|
148
|
+
|
|
149
|
+
Must reference an existing volume by name or ID
|
|
150
|
+
"""
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
+
from .deployment import Deployment
|
|
7
|
+
|
|
8
|
+
__all__ = ["JigListResponse"]
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class JigListResponse(BaseModel):
|
|
12
|
+
data: Optional[List[Deployment]] = None
|
|
13
|
+
"""Data is the array of deployment items"""
|
|
14
|
+
|
|
15
|
+
object: Optional[str] = None
|
|
16
|
+
"""Object is the type identifier for this response (always "list")"""
|
|
@@ -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__ = ["JigRetrieveLogsParams"]
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class JigRetrieveLogsParams(TypedDict, total=False):
|
|
11
|
+
follow: bool
|
|
12
|
+
"""Stream logs in real-time (ndjson format)"""
|
|
13
|
+
|
|
14
|
+
replica_id: str
|
|
15
|
+
"""Replica ID to filter logs"""
|
|
@@ -0,0 +1,141 @@
|
|
|
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 Dict, Iterable
|
|
6
|
+
from typing_extensions import Literal, Required, TypedDict
|
|
7
|
+
|
|
8
|
+
from ..._types import SequenceNotStr
|
|
9
|
+
|
|
10
|
+
__all__ = ["JigUpdateParams", "EnvironmentVariable", "Volume"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class JigUpdateParams(TypedDict, total=False):
|
|
14
|
+
args: SequenceNotStr[str]
|
|
15
|
+
"""Args overrides the container's CMD.
|
|
16
|
+
|
|
17
|
+
Provide as an array of arguments (e.g., ["python", "app.py"])
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
autoscaling: Dict[str, str]
|
|
21
|
+
"""Autoscaling configuration as key-value pairs.
|
|
22
|
+
|
|
23
|
+
Example: {"metric": "QueueBacklogPerWorker", "target": "10"} to scale based on
|
|
24
|
+
queue backlog
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
command: SequenceNotStr[str]
|
|
28
|
+
"""Command overrides the container's ENTRYPOINT.
|
|
29
|
+
|
|
30
|
+
Provide as an array (e.g., ["/bin/sh", "-c"])
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
cpu: float
|
|
34
|
+
"""
|
|
35
|
+
CPU is the number of CPU cores to allocate per container instance (e.g., 0.1 =
|
|
36
|
+
100 milli cores)
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
description: str
|
|
40
|
+
"""Description is an optional human-readable description of your deployment"""
|
|
41
|
+
|
|
42
|
+
environment_variables: Iterable[EnvironmentVariable]
|
|
43
|
+
"""EnvironmentVariables is a list of environment variables to set in the container.
|
|
44
|
+
|
|
45
|
+
This will replace all existing environment variables
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
gpu_count: int
|
|
49
|
+
"""GPUCount is the number of GPUs to allocate per container instance"""
|
|
50
|
+
|
|
51
|
+
gpu_type: Literal["h100-80gb", " a100-80gb"]
|
|
52
|
+
"""GPUType specifies the GPU hardware to use (e.g., "h100-80gb")"""
|
|
53
|
+
|
|
54
|
+
health_check_path: str
|
|
55
|
+
"""HealthCheckPath is the HTTP path for health checks (e.g., "/health").
|
|
56
|
+
|
|
57
|
+
Set to empty string to disable health checks
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
image: str
|
|
61
|
+
"""Image is the container image to deploy from registry.together.ai."""
|
|
62
|
+
|
|
63
|
+
max_replicas: int
|
|
64
|
+
"""MaxReplicas is the maximum number of replicas that can be scaled up to."""
|
|
65
|
+
|
|
66
|
+
memory: float
|
|
67
|
+
"""
|
|
68
|
+
Memory is the amount of RAM to allocate per container instance in GiB (e.g., 0.5
|
|
69
|
+
= 512MiB)
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
min_replicas: int
|
|
73
|
+
"""MinReplicas is the minimum number of replicas to run"""
|
|
74
|
+
|
|
75
|
+
name: str
|
|
76
|
+
"""Name is the new unique identifier for your deployment.
|
|
77
|
+
|
|
78
|
+
Must contain only alphanumeric characters, underscores, or hyphens (1-100
|
|
79
|
+
characters)
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
port: int
|
|
83
|
+
"""
|
|
84
|
+
Port is the container port your application listens on (e.g., 8080 for web
|
|
85
|
+
servers)
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
storage: int
|
|
89
|
+
"""
|
|
90
|
+
Storage is the amount of ephemeral disk storage to allocate per container
|
|
91
|
+
instance (e.g., 10 = 10GiB)
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
termination_grace_period_seconds: int
|
|
95
|
+
"""
|
|
96
|
+
TerminationGracePeriodSeconds is the time in seconds to wait for graceful
|
|
97
|
+
shutdown before forcefully terminating the replica
|
|
98
|
+
"""
|
|
99
|
+
|
|
100
|
+
volumes: Iterable[Volume]
|
|
101
|
+
"""Volumes is a list of volume mounts to attach to the container.
|
|
102
|
+
|
|
103
|
+
This will replace all existing volumes
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class EnvironmentVariable(TypedDict, total=False):
|
|
108
|
+
name: Required[str]
|
|
109
|
+
"""Name is the environment variable name (e.g., "DATABASE_URL").
|
|
110
|
+
|
|
111
|
+
Must start with a letter or underscore, followed by letters, numbers, or
|
|
112
|
+
underscores
|
|
113
|
+
"""
|
|
114
|
+
|
|
115
|
+
value: str
|
|
116
|
+
"""Value is the plain text value for the environment variable.
|
|
117
|
+
|
|
118
|
+
Use this for non-sensitive values. Either Value or ValueFromSecret must be set,
|
|
119
|
+
but not both
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
value_from_secret: str
|
|
123
|
+
"""ValueFromSecret references a secret by name or ID to use as the value.
|
|
124
|
+
|
|
125
|
+
Use this for sensitive values like API keys or passwords. Either Value or
|
|
126
|
+
ValueFromSecret must be set, but not both
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class Volume(TypedDict, total=False):
|
|
131
|
+
mount_path: Required[str]
|
|
132
|
+
"""
|
|
133
|
+
MountPath is the path in the container where the volume will be mounted (e.g.,
|
|
134
|
+
"/data")
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
name: Required[str]
|
|
138
|
+
"""Name is the name of the volume to mount.
|
|
139
|
+
|
|
140
|
+
Must reference an existing volume by name or ID
|
|
141
|
+
"""
|