platform-api-python-client 4.9.7__py3-none-any.whl → 4.13.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.
- platform_api_python_client/__init__.py +2 -4
- platform_api_python_client/api/external_api.py +12 -793
- platform_api_python_client/api_client.py +1 -1
- platform_api_python_client/configuration.py +1 -1
- platform_api_python_client/models/__init__.py +1 -3
- platform_api_python_client/models/create_inference_v3_deployment_request.py +15 -2
- platform_api_python_client/models/create_job_deployment_request.py +10 -1
- platform_api_python_client/models/get_inference_v3_deployment_response.py +15 -2
- platform_api_python_client/models/get_job_deployment_response.py +17 -1
- platform_api_python_client/models/hardware_instance_response.py +1 -15
- platform_api_python_client/models/metric.py +1 -0
- platform_api_python_client/models/{api_key_request.py → metrics_config.py} +18 -8
- {platform_api_python_client-4.9.7.dist-info → platform_api_python_client-4.13.0.dist-info}/METADATA +1 -1
- {platform_api_python_client-4.9.7.dist-info → platform_api_python_client-4.13.0.dist-info}/RECORD +16 -18
- platform_api_python_client/models/api_key_response.py +0 -92
- platform_api_python_client/models/list_api_key_response.py +0 -95
- {platform_api_python_client-4.9.7.dist-info → platform_api_python_client-4.13.0.dist-info}/WHEEL +0 -0
- {platform_api_python_client-4.9.7.dist-info → platform_api_python_client-4.13.0.dist-info}/top_level.txt +0 -0
|
@@ -90,7 +90,7 @@ class ApiClient:
|
|
|
90
90
|
self.default_headers[header_name] = header_value
|
|
91
91
|
self.cookie = cookie
|
|
92
92
|
# Set default User-Agent.
|
|
93
|
-
self.user_agent = 'OpenAPI-Generator/4.
|
|
93
|
+
self.user_agent = 'OpenAPI-Generator/4.13.0/python'
|
|
94
94
|
self.client_side_validation = configuration.client_side_validation
|
|
95
95
|
|
|
96
96
|
def __enter__(self):
|
|
@@ -392,7 +392,7 @@ class Configuration:
|
|
|
392
392
|
"OS: {env}\n"\
|
|
393
393
|
"Python Version: {pyversion}\n"\
|
|
394
394
|
"Version of the API: 0.1.0\n"\
|
|
395
|
-
"SDK Package Version: 4.
|
|
395
|
+
"SDK Package Version: 4.13.0".\
|
|
396
396
|
format(env=sys.platform, pyversion=sys.version)
|
|
397
397
|
|
|
398
398
|
def get_host_settings(self):
|
|
@@ -14,8 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
# import models into model package
|
|
17
|
-
from platform_api_python_client.models.api_key_request import APIKeyRequest
|
|
18
|
-
from platform_api_python_client.models.api_key_response import APIKeyResponse
|
|
19
17
|
from platform_api_python_client.models.backend_protocol import BackendProtocol
|
|
20
18
|
from platform_api_python_client.models.c_serve_recipe_perf import CServeRecipePerf
|
|
21
19
|
from platform_api_python_client.models.c_serve_recipe_response import CServeRecipeResponse
|
|
@@ -63,7 +61,6 @@ from platform_api_python_client.models.http_validation_error import HTTPValidati
|
|
|
63
61
|
from platform_api_python_client.models.hardware_instance_response import HardwareInstanceResponse
|
|
64
62
|
from platform_api_python_client.models.image_pull_secret_credentials import ImagePullSecretCredentials
|
|
65
63
|
from platform_api_python_client.models.invite_user_request import InviteUserRequest
|
|
66
|
-
from platform_api_python_client.models.list_api_key_response import ListAPIKeyResponse
|
|
67
64
|
from platform_api_python_client.models.list_c_serve_recipe_response import ListCServeRecipeResponse
|
|
68
65
|
from platform_api_python_client.models.list_cluster_capacity_response import ListClusterCapacityResponse
|
|
69
66
|
from platform_api_python_client.models.list_daily_bill_response import ListDailyBillResponse
|
|
@@ -74,6 +71,7 @@ from platform_api_python_client.models.list_hardware_instance_response import Li
|
|
|
74
71
|
from platform_api_python_client.models.list_prebuilt_image_response import ListPrebuiltImageResponse
|
|
75
72
|
from platform_api_python_client.models.list_user_vault_items_response import ListUserVaultItemsResponse
|
|
76
73
|
from platform_api_python_client.models.metric import Metric
|
|
74
|
+
from platform_api_python_client.models.metrics_config import MetricsConfig
|
|
77
75
|
from platform_api_python_client.models.pod_details import PodDetails
|
|
78
76
|
from platform_api_python_client.models.pod_status import PodStatus
|
|
79
77
|
from platform_api_python_client.models.prebuilt_image_response import PrebuiltImageResponse
|
|
@@ -23,6 +23,7 @@ from typing_extensions import Annotated
|
|
|
23
23
|
from platform_api_python_client.models.backend_protocol import BackendProtocol
|
|
24
24
|
from platform_api_python_client.models.config_file_mount import ConfigFileMount
|
|
25
25
|
from platform_api_python_client.models.image_pull_secret_credentials import ImagePullSecretCredentials
|
|
26
|
+
from platform_api_python_client.models.metrics_config import MetricsConfig
|
|
26
27
|
from typing import Optional, Set
|
|
27
28
|
from typing_extensions import Self
|
|
28
29
|
|
|
@@ -52,9 +53,11 @@ class CreateInferenceV3DeploymentRequest(BaseModel):
|
|
|
52
53
|
hf_token: Optional[StrictStr] = None
|
|
53
54
|
backend_protocol: Optional[BackendProtocol] = None
|
|
54
55
|
enable_logging: Optional[StrictBool] = False
|
|
56
|
+
enable_node_model_cache: Optional[StrictBool] = False
|
|
55
57
|
session_affinity: Optional[StrictBool] = Field(default=False, description="Enable best-effort sticky routing via the `X-Session-Id` request header. Requests carrying the same header value land on the same pod, improving KV cache reuse for agentic workloads. Requests without the header are routed at random. Affinity is NOT durable: scaling, rollouts, restarts, or readiness-probe transitions will remap sessions to different pods. Do not use for irreplaceable in-pod state.")
|
|
56
58
|
config_file: Optional[ConfigFileMount] = None
|
|
57
|
-
|
|
59
|
+
metrics: Optional[MetricsConfig] = None
|
|
60
|
+
__properties: ClassVar[List[str]] = ["max_surge", "max_unavailable", "name", "cluster_id", "hardware_instance_id", "user_annotations", "image_url", "image_pull_secret_credentials", "port", "min_replicas", "max_replicas", "initial_replicas", "concurrency", "cooldown_period", "healthcheck", "env_vars", "command", "endpoint_bearer_token", "endpoint_certificate_authority", "hf_token", "backend_protocol", "enable_logging", "enable_node_model_cache", "session_affinity", "config_file", "metrics"]
|
|
58
61
|
|
|
59
62
|
@field_validator('name')
|
|
60
63
|
def name_validate_regular_expression(cls, value):
|
|
@@ -108,6 +111,9 @@ class CreateInferenceV3DeploymentRequest(BaseModel):
|
|
|
108
111
|
# override the default output from pydantic by calling `to_dict()` of config_file
|
|
109
112
|
if self.config_file:
|
|
110
113
|
_dict['config_file'] = self.config_file.to_dict()
|
|
114
|
+
# override the default output from pydantic by calling `to_dict()` of metrics
|
|
115
|
+
if self.metrics:
|
|
116
|
+
_dict['metrics'] = self.metrics.to_dict()
|
|
111
117
|
# set to None if max_surge (nullable) is None
|
|
112
118
|
# and model_fields_set contains the field
|
|
113
119
|
if self.max_surge is None and "max_surge" in self.model_fields_set:
|
|
@@ -178,6 +184,11 @@ class CreateInferenceV3DeploymentRequest(BaseModel):
|
|
|
178
184
|
if self.config_file is None and "config_file" in self.model_fields_set:
|
|
179
185
|
_dict['config_file'] = None
|
|
180
186
|
|
|
187
|
+
# set to None if metrics (nullable) is None
|
|
188
|
+
# and model_fields_set contains the field
|
|
189
|
+
if self.metrics is None and "metrics" in self.model_fields_set:
|
|
190
|
+
_dict['metrics'] = None
|
|
191
|
+
|
|
181
192
|
return _dict
|
|
182
193
|
|
|
183
194
|
@classmethod
|
|
@@ -212,8 +223,10 @@ class CreateInferenceV3DeploymentRequest(BaseModel):
|
|
|
212
223
|
"hf_token": obj.get("hf_token"),
|
|
213
224
|
"backend_protocol": obj.get("backend_protocol"),
|
|
214
225
|
"enable_logging": obj.get("enable_logging") if obj.get("enable_logging") is not None else False,
|
|
226
|
+
"enable_node_model_cache": obj.get("enable_node_model_cache") if obj.get("enable_node_model_cache") is not None else False,
|
|
215
227
|
"session_affinity": obj.get("session_affinity") if obj.get("session_affinity") is not None else False,
|
|
216
|
-
"config_file": ConfigFileMount.from_dict(obj["config_file"]) if obj.get("config_file") is not None else None
|
|
228
|
+
"config_file": ConfigFileMount.from_dict(obj["config_file"]) if obj.get("config_file") is not None else None,
|
|
229
|
+
"metrics": MetricsConfig.from_dict(obj["metrics"]) if obj.get("metrics") is not None else None
|
|
217
230
|
})
|
|
218
231
|
return _obj
|
|
219
232
|
|
|
@@ -38,8 +38,10 @@ class CreateJobDeploymentRequest(BaseModel):
|
|
|
38
38
|
command: Optional[StrictStr] = None
|
|
39
39
|
completions: Optional[StrictInt] = 1
|
|
40
40
|
parallelism: Optional[StrictInt] = 1
|
|
41
|
+
backoff_limit: Optional[StrictInt] = 3
|
|
42
|
+
active_deadline_seconds: Optional[StrictInt] = None
|
|
41
43
|
enable_logging: Optional[StrictBool] = True
|
|
42
|
-
__properties: ClassVar[List[str]] = ["name", "cluster_id", "hardware_instance_id", "user_annotations", "image_url", "image_pull_secret_credentials", "env_vars", "command", "completions", "parallelism", "enable_logging"]
|
|
44
|
+
__properties: ClassVar[List[str]] = ["name", "cluster_id", "hardware_instance_id", "user_annotations", "image_url", "image_pull_secret_credentials", "env_vars", "command", "completions", "parallelism", "backoff_limit", "active_deadline_seconds", "enable_logging"]
|
|
43
45
|
|
|
44
46
|
@field_validator('name')
|
|
45
47
|
def name_validate_regular_expression(cls, value):
|
|
@@ -110,6 +112,11 @@ class CreateJobDeploymentRequest(BaseModel):
|
|
|
110
112
|
if self.command is None and "command" in self.model_fields_set:
|
|
111
113
|
_dict['command'] = None
|
|
112
114
|
|
|
115
|
+
# set to None if active_deadline_seconds (nullable) is None
|
|
116
|
+
# and model_fields_set contains the field
|
|
117
|
+
if self.active_deadline_seconds is None and "active_deadline_seconds" in self.model_fields_set:
|
|
118
|
+
_dict['active_deadline_seconds'] = None
|
|
119
|
+
|
|
113
120
|
return _dict
|
|
114
121
|
|
|
115
122
|
@classmethod
|
|
@@ -132,6 +139,8 @@ class CreateJobDeploymentRequest(BaseModel):
|
|
|
132
139
|
"command": obj.get("command"),
|
|
133
140
|
"completions": obj.get("completions") if obj.get("completions") is not None else 1,
|
|
134
141
|
"parallelism": obj.get("parallelism") if obj.get("parallelism") is not None else 1,
|
|
142
|
+
"backoff_limit": obj.get("backoff_limit") if obj.get("backoff_limit") is not None else 3,
|
|
143
|
+
"active_deadline_seconds": obj.get("active_deadline_seconds"),
|
|
135
144
|
"enable_logging": obj.get("enable_logging") if obj.get("enable_logging") is not None else True
|
|
136
145
|
})
|
|
137
146
|
return _obj
|
|
@@ -25,6 +25,7 @@ from platform_api_python_client.models.config_file_mount import ConfigFileMount
|
|
|
25
25
|
from platform_api_python_client.models.deployment_status import DeploymentStatus
|
|
26
26
|
from platform_api_python_client.models.deployment_type import DeploymentType
|
|
27
27
|
from platform_api_python_client.models.image_pull_secret_credentials import ImagePullSecretCredentials
|
|
28
|
+
from platform_api_python_client.models.metrics_config import MetricsConfig
|
|
28
29
|
from typing import Optional, Set
|
|
29
30
|
from typing_extensions import Self
|
|
30
31
|
|
|
@@ -60,9 +61,11 @@ class GetInferenceV3DeploymentResponse(BaseModel):
|
|
|
60
61
|
image_pull_secret_credentials: Optional[ImagePullSecretCredentials] = None
|
|
61
62
|
backend_protocol: Optional[BackendProtocol] = None
|
|
62
63
|
enable_logging: Optional[StrictBool] = True
|
|
64
|
+
enable_node_model_cache: Optional[StrictBool] = False
|
|
63
65
|
session_affinity: Optional[StrictBool] = Field(default=False, description="Enable best-effort sticky routing via the `X-Session-Id` request header. Requests carrying the same header value land on the same pod, improving KV cache reuse for agentic workloads. Requests without the header are routed at random. Affinity is NOT durable: scaling, rollouts, restarts, or readiness-probe transitions will remap sessions to different pods. Do not use for irreplaceable in-pod state.")
|
|
64
66
|
config_file: Optional[ConfigFileMount] = None
|
|
65
|
-
|
|
67
|
+
metrics: Optional[MetricsConfig] = None
|
|
68
|
+
__properties: ClassVar[List[str]] = ["creator_email", "cluster_id", "id", "name", "endpoint_url", "image_url", "type", "status", "created_at", "hardware_instance_id", "revision_number", "user_annotations", "container_port", "min_replicas", "max_replicas", "initial_replicas", "concurrency", "cooldown_period", "healthcheck", "endpoint_certificate_authority", "endpoint_bearer_token", "env_vars", "command", "command_args", "original_command", "image_pull_secret_credentials", "backend_protocol", "enable_logging", "enable_node_model_cache", "session_affinity", "config_file", "metrics"]
|
|
66
69
|
|
|
67
70
|
model_config = ConfigDict(
|
|
68
71
|
populate_by_name=True,
|
|
@@ -109,6 +112,9 @@ class GetInferenceV3DeploymentResponse(BaseModel):
|
|
|
109
112
|
# override the default output from pydantic by calling `to_dict()` of config_file
|
|
110
113
|
if self.config_file:
|
|
111
114
|
_dict['config_file'] = self.config_file.to_dict()
|
|
115
|
+
# override the default output from pydantic by calling `to_dict()` of metrics
|
|
116
|
+
if self.metrics:
|
|
117
|
+
_dict['metrics'] = self.metrics.to_dict()
|
|
112
118
|
# set to None if image_url (nullable) is None
|
|
113
119
|
# and model_fields_set contains the field
|
|
114
120
|
if self.image_url is None and "image_url" in self.model_fields_set:
|
|
@@ -174,6 +180,11 @@ class GetInferenceV3DeploymentResponse(BaseModel):
|
|
|
174
180
|
if self.config_file is None and "config_file" in self.model_fields_set:
|
|
175
181
|
_dict['config_file'] = None
|
|
176
182
|
|
|
183
|
+
# set to None if metrics (nullable) is None
|
|
184
|
+
# and model_fields_set contains the field
|
|
185
|
+
if self.metrics is None and "metrics" in self.model_fields_set:
|
|
186
|
+
_dict['metrics'] = None
|
|
187
|
+
|
|
177
188
|
return _dict
|
|
178
189
|
|
|
179
190
|
@classmethod
|
|
@@ -214,8 +225,10 @@ class GetInferenceV3DeploymentResponse(BaseModel):
|
|
|
214
225
|
"image_pull_secret_credentials": ImagePullSecretCredentials.from_dict(obj["image_pull_secret_credentials"]) if obj.get("image_pull_secret_credentials") is not None else None,
|
|
215
226
|
"backend_protocol": obj.get("backend_protocol"),
|
|
216
227
|
"enable_logging": obj.get("enable_logging") if obj.get("enable_logging") is not None else True,
|
|
228
|
+
"enable_node_model_cache": obj.get("enable_node_model_cache") if obj.get("enable_node_model_cache") is not None else False,
|
|
217
229
|
"session_affinity": obj.get("session_affinity") if obj.get("session_affinity") is not None else False,
|
|
218
|
-
"config_file": ConfigFileMount.from_dict(obj["config_file"]) if obj.get("config_file") is not None else None
|
|
230
|
+
"config_file": ConfigFileMount.from_dict(obj["config_file"]) if obj.get("config_file") is not None else None,
|
|
231
|
+
"metrics": MetricsConfig.from_dict(obj["metrics"]) if obj.get("metrics") is not None else None
|
|
219
232
|
})
|
|
220
233
|
return _obj
|
|
221
234
|
|
|
@@ -45,11 +45,14 @@ class GetJobDeploymentResponse(BaseModel):
|
|
|
45
45
|
env_vars: Optional[Dict[str, StrictStr]] = None
|
|
46
46
|
command: Optional[List[StrictStr]] = None
|
|
47
47
|
args: Optional[List[StrictStr]] = None
|
|
48
|
+
original_command: Optional[StrictStr] = None
|
|
48
49
|
completions: Optional[StrictInt] = 1
|
|
49
50
|
parallelism: Optional[StrictInt] = 1
|
|
51
|
+
backoff_limit: Optional[StrictInt] = 3
|
|
52
|
+
active_deadline_seconds: Optional[StrictInt] = None
|
|
50
53
|
image_pull_secret_credentials: Optional[ImagePullSecretCredentials] = None
|
|
51
54
|
enable_logging: Optional[StrictBool] = True
|
|
52
|
-
__properties: ClassVar[List[str]] = ["creator_email", "cluster_id", "id", "name", "endpoint_url", "image_url", "type", "status", "created_at", "hardware_instance_id", "revision_number", "user_annotations", "env_vars", "command", "args", "completions", "parallelism", "image_pull_secret_credentials", "enable_logging"]
|
|
55
|
+
__properties: ClassVar[List[str]] = ["creator_email", "cluster_id", "id", "name", "endpoint_url", "image_url", "type", "status", "created_at", "hardware_instance_id", "revision_number", "user_annotations", "env_vars", "command", "args", "original_command", "completions", "parallelism", "backoff_limit", "active_deadline_seconds", "image_pull_secret_credentials", "enable_logging"]
|
|
53
56
|
|
|
54
57
|
model_config = ConfigDict(
|
|
55
58
|
populate_by_name=True,
|
|
@@ -118,6 +121,16 @@ class GetJobDeploymentResponse(BaseModel):
|
|
|
118
121
|
if self.args is None and "args" in self.model_fields_set:
|
|
119
122
|
_dict['args'] = None
|
|
120
123
|
|
|
124
|
+
# set to None if original_command (nullable) is None
|
|
125
|
+
# and model_fields_set contains the field
|
|
126
|
+
if self.original_command is None and "original_command" in self.model_fields_set:
|
|
127
|
+
_dict['original_command'] = None
|
|
128
|
+
|
|
129
|
+
# set to None if active_deadline_seconds (nullable) is None
|
|
130
|
+
# and model_fields_set contains the field
|
|
131
|
+
if self.active_deadline_seconds is None and "active_deadline_seconds" in self.model_fields_set:
|
|
132
|
+
_dict['active_deadline_seconds'] = None
|
|
133
|
+
|
|
121
134
|
# set to None if image_pull_secret_credentials (nullable) is None
|
|
122
135
|
# and model_fields_set contains the field
|
|
123
136
|
if self.image_pull_secret_credentials is None and "image_pull_secret_credentials" in self.model_fields_set:
|
|
@@ -150,8 +163,11 @@ class GetJobDeploymentResponse(BaseModel):
|
|
|
150
163
|
"env_vars": obj.get("env_vars"),
|
|
151
164
|
"command": obj.get("command"),
|
|
152
165
|
"args": obj.get("args"),
|
|
166
|
+
"original_command": obj.get("original_command"),
|
|
153
167
|
"completions": obj.get("completions") if obj.get("completions") is not None else 1,
|
|
154
168
|
"parallelism": obj.get("parallelism") if obj.get("parallelism") is not None else 1,
|
|
169
|
+
"backoff_limit": obj.get("backoff_limit") if obj.get("backoff_limit") is not None else 3,
|
|
170
|
+
"active_deadline_seconds": obj.get("active_deadline_seconds"),
|
|
155
171
|
"image_pull_secret_credentials": ImagePullSecretCredentials.from_dict(obj["image_pull_secret_credentials"]) if obj.get("image_pull_secret_credentials") is not None else None,
|
|
156
172
|
"enable_logging": obj.get("enable_logging") if obj.get("enable_logging") is not None else True
|
|
157
173
|
})
|
|
@@ -34,10 +34,8 @@ class HardwareInstanceResponse(BaseModel):
|
|
|
34
34
|
memory: StrictInt
|
|
35
35
|
cost_per_hr: StrictInt
|
|
36
36
|
cluster_id: StrictInt
|
|
37
|
-
provider: Optional[StrictStr] = None
|
|
38
|
-
num_accelerators: Optional[StrictInt] = None
|
|
39
37
|
accelerator_memory: Optional[StrictInt] = None
|
|
40
|
-
__properties: ClassVar[List[str]] = ["id", "name", "gpu_type", "num_gpu", "cpu", "memory", "cost_per_hr", "cluster_id", "
|
|
38
|
+
__properties: ClassVar[List[str]] = ["id", "name", "gpu_type", "num_gpu", "cpu", "memory", "cost_per_hr", "cluster_id", "accelerator_memory"]
|
|
41
39
|
|
|
42
40
|
model_config = ConfigDict(
|
|
43
41
|
populate_by_name=True,
|
|
@@ -78,16 +76,6 @@ class HardwareInstanceResponse(BaseModel):
|
|
|
78
76
|
exclude=excluded_fields,
|
|
79
77
|
exclude_none=True,
|
|
80
78
|
)
|
|
81
|
-
# set to None if provider (nullable) is None
|
|
82
|
-
# and model_fields_set contains the field
|
|
83
|
-
if self.provider is None and "provider" in self.model_fields_set:
|
|
84
|
-
_dict['provider'] = None
|
|
85
|
-
|
|
86
|
-
# set to None if num_accelerators (nullable) is None
|
|
87
|
-
# and model_fields_set contains the field
|
|
88
|
-
if self.num_accelerators is None and "num_accelerators" in self.model_fields_set:
|
|
89
|
-
_dict['num_accelerators'] = None
|
|
90
|
-
|
|
91
79
|
# set to None if accelerator_memory (nullable) is None
|
|
92
80
|
# and model_fields_set contains the field
|
|
93
81
|
if self.accelerator_memory is None and "accelerator_memory" in self.model_fields_set:
|
|
@@ -113,8 +101,6 @@ class HardwareInstanceResponse(BaseModel):
|
|
|
113
101
|
"memory": obj.get("memory"),
|
|
114
102
|
"cost_per_hr": obj.get("cost_per_hr"),
|
|
115
103
|
"cluster_id": obj.get("cluster_id"),
|
|
116
|
-
"provider": obj.get("provider"),
|
|
117
|
-
"num_accelerators": obj.get("num_accelerators"),
|
|
118
104
|
"accelerator_memory": obj.get("accelerator_memory")
|
|
119
105
|
})
|
|
120
106
|
return _obj
|
|
@@ -17,17 +17,26 @@ import pprint
|
|
|
17
17
|
import re # noqa: F401
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
|
-
from pydantic import BaseModel, ConfigDict,
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
|
21
21
|
from typing import Any, ClassVar, Dict, List
|
|
22
|
+
from typing_extensions import Annotated
|
|
22
23
|
from typing import Optional, Set
|
|
23
24
|
from typing_extensions import Self
|
|
24
25
|
|
|
25
|
-
class
|
|
26
|
+
class MetricsConfig(BaseModel):
|
|
26
27
|
"""
|
|
27
|
-
|
|
28
|
+
User-application Prometheus metrics endpoint. Atomic: both `port` and `path` must be supplied together. To omit the endpoint entirely, leave the parent request's `metrics` field unset — `CreateInferenceV3DeploymentRequest.fill_metrics_defaults` substitutes a `container_port` + `/metrics` bundle before persistence.
|
|
28
29
|
""" # noqa: E501
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
port: Annotated[int, Field(le=65535, strict=True, ge=1)]
|
|
31
|
+
path: Annotated[str, Field(strict=True)]
|
|
32
|
+
__properties: ClassVar[List[str]] = ["port", "path"]
|
|
33
|
+
|
|
34
|
+
@field_validator('path')
|
|
35
|
+
def path_validate_regular_expression(cls, value):
|
|
36
|
+
"""Validates the regular expression"""
|
|
37
|
+
if not re.match(r"^\/[^\s?#]*$", value):
|
|
38
|
+
raise ValueError(r"must validate the regular expression /^\/[^\s?#]*$/")
|
|
39
|
+
return value
|
|
31
40
|
|
|
32
41
|
model_config = ConfigDict(
|
|
33
42
|
populate_by_name=True,
|
|
@@ -47,7 +56,7 @@ class APIKeyRequest(BaseModel):
|
|
|
47
56
|
|
|
48
57
|
@classmethod
|
|
49
58
|
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
50
|
-
"""Create an instance of
|
|
59
|
+
"""Create an instance of MetricsConfig from a JSON string"""
|
|
51
60
|
return cls.from_dict(json.loads(json_str))
|
|
52
61
|
|
|
53
62
|
def to_dict(self) -> Dict[str, Any]:
|
|
@@ -72,7 +81,7 @@ class APIKeyRequest(BaseModel):
|
|
|
72
81
|
|
|
73
82
|
@classmethod
|
|
74
83
|
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
75
|
-
"""Create an instance of
|
|
84
|
+
"""Create an instance of MetricsConfig from a dict"""
|
|
76
85
|
if obj is None:
|
|
77
86
|
return None
|
|
78
87
|
|
|
@@ -80,7 +89,8 @@ class APIKeyRequest(BaseModel):
|
|
|
80
89
|
return cls.model_validate(obj)
|
|
81
90
|
|
|
82
91
|
_obj = cls.model_validate({
|
|
83
|
-
"
|
|
92
|
+
"port": obj.get("port"),
|
|
93
|
+
"path": obj.get("path")
|
|
84
94
|
})
|
|
85
95
|
return _obj
|
|
86
96
|
|
{platform_api_python_client-4.9.7.dist-info → platform_api_python_client-4.13.0.dist-info}/RECORD
RENAMED
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
platform_api_python_client/__init__.py,sha256=
|
|
2
|
-
platform_api_python_client/api_client.py,sha256=
|
|
1
|
+
platform_api_python_client/__init__.py,sha256=jOofejouPkiLQMYuUHgQPLUNhSoJVN2WFbgyZn0J6kw,7915
|
|
2
|
+
platform_api_python_client/api_client.py,sha256=liNLfrKcOCuEAChtw3vZg3ISOZGQX18jHr6qwQJxHR4,27554
|
|
3
3
|
platform_api_python_client/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
|
|
4
|
-
platform_api_python_client/configuration.py,sha256=
|
|
4
|
+
platform_api_python_client/configuration.py,sha256=bxq19g3BoVflPnXoWrvbYYmESoYBqCSvdvic2CgWk58,15336
|
|
5
5
|
platform_api_python_client/exceptions.py,sha256=SgBMBmRBD5JyEJj5ZiSQRbiOs4IVPOFZMGKX_fhPd58,5986
|
|
6
6
|
platform_api_python_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
platform_api_python_client/rest.py,sha256=U514C8b2RXn4u0w7VpOFXeSaArP6_wuMCf8-G5xCbyk,9438
|
|
8
8
|
platform_api_python_client/api/__init__.py,sha256=8FSPlQzadbgpFR5KYbpbN0DgPRWqOZkfooMstj2XcHg,116
|
|
9
|
-
platform_api_python_client/api/external_api.py,sha256=
|
|
10
|
-
platform_api_python_client/models/__init__.py,sha256
|
|
11
|
-
platform_api_python_client/models/api_key_request.py,sha256=p4bkyCVMkcyyx72ZQnfRMC65wwb2DT4qT6QKYaaO7rA,2482
|
|
12
|
-
platform_api_python_client/models/api_key_response.py,sha256=7yr2p-Y_KAMZ9RomPR7AlOJK20RlZz4IZJHBKyrI3ww,2661
|
|
9
|
+
platform_api_python_client/api/external_api.py,sha256=tE-texLfKTffLvuMA2dKFH0XKAlOjoMwDijHMsjm4FU,478745
|
|
10
|
+
platform_api_python_client/models/__init__.py,sha256=BYGiblGUzZDS5FAYzDz1n0CIDpsyl4Z4OQFdpcFjso8,7194
|
|
13
11
|
platform_api_python_client/models/backend_protocol.py,sha256=o0t9wUHBBCBHB_Dvqcossc9X9gT_7yjikvAA6NBHnjs,764
|
|
14
12
|
platform_api_python_client/models/c_serve_recipe_perf.py,sha256=x23e783A-Pj-2socL4mlN2RgjHPtbJB_fJYhVmn9z08,3262
|
|
15
13
|
platform_api_python_client/models/c_serve_recipe_response.py,sha256=NUAnNbshCSnpru8e7AzSAGOQhJpj4BXSNT964oDBYa0,3584
|
|
@@ -24,8 +22,8 @@ platform_api_python_client/models/create_compute_deployment_request.py,sha256=yO
|
|
|
24
22
|
platform_api_python_client/models/create_compute_deployment_response.py,sha256=RZLbCr7WpiMufWX7xmka1HNjBXnOi2GUE4gPuc5zpak,3200
|
|
25
23
|
platform_api_python_client/models/create_inference_deployment_request.py,sha256=YNPRKEeYOiXdZdwR7AAu7ZAnw8DypiqOTtdu9OaLrqE,6481
|
|
26
24
|
platform_api_python_client/models/create_inference_deployment_response.py,sha256=iYHJMG7ke5DJqvmaBsrPDYa1CwBNBnACwYEo2-0wVyE,2780
|
|
27
|
-
platform_api_python_client/models/create_inference_v3_deployment_request.py,sha256=
|
|
28
|
-
platform_api_python_client/models/create_job_deployment_request.py,sha256=
|
|
25
|
+
platform_api_python_client/models/create_inference_v3_deployment_request.py,sha256=49glKM3KoaSFtY5ovWohFN6k0g-fSL7ZVyX3XIRHloQ,11392
|
|
26
|
+
platform_api_python_client/models/create_job_deployment_request.py,sha256=Z2QROjdPM6b2tjyt0CJeFgaV-sn6saKl8jvxmrPjhJg,6328
|
|
29
27
|
platform_api_python_client/models/create_job_deployment_response.py,sha256=1ObJIUdA4IR2ztQws8NMF3T9G8BfTEvqj7t9abtmIro,2756
|
|
30
28
|
platform_api_python_client/models/create_organization_request.py,sha256=2p0TnpMk_mOfMkhUL-k6ShZMoC146QFBdY8l47bx4i8,2530
|
|
31
29
|
platform_api_python_client/models/create_organization_response.py,sha256=a0jU9v0OiuB2oWbS9eTRFOtXtIxNLHDIcaLY88GNEb8,2591
|
|
@@ -50,14 +48,13 @@ platform_api_python_client/models/get_deployment_response.py,sha256=ubyD-CAgKZk4
|
|
|
50
48
|
platform_api_python_client/models/get_deployment_revision_response.py,sha256=jTx_G8JCeKbgwmbylM3uiPNtGoCPpwjN5KMkFuC9BS8,3778
|
|
51
49
|
platform_api_python_client/models/get_deployment_usage_response.py,sha256=RnEJqDaIFVjuHVU26EScvLICK9tDVFj6hQh_U0yMBdg,3031
|
|
52
50
|
platform_api_python_client/models/get_inference_deployment_response.py,sha256=_Lz_hJS8Cw_NDeR5KD_o3nBcUG4X3_OiXGiT9cn0tJ0,7482
|
|
53
|
-
platform_api_python_client/models/get_inference_v3_deployment_response.py,sha256=
|
|
54
|
-
platform_api_python_client/models/get_job_deployment_response.py,sha256=
|
|
51
|
+
platform_api_python_client/models/get_inference_v3_deployment_response.py,sha256=NzRT_gez5Pra5GiV5HCoqReQUfitXJr_TaESPZSFqmo,11581
|
|
52
|
+
platform_api_python_client/models/get_job_deployment_response.py,sha256=oWh9DN9HUH-VS_QyivD4FSx1KTjZNDHuJJMyaLgZYRs,7602
|
|
55
53
|
platform_api_python_client/models/gpu_type_capacity.py,sha256=KdNy4RJB8JIstVTiB4qsY-MAK7nHsKVTGe-kTMwz_XA,3101
|
|
56
|
-
platform_api_python_client/models/hardware_instance_response.py,sha256=
|
|
54
|
+
platform_api_python_client/models/hardware_instance_response.py,sha256=e4KF3_MZJjDbFB5hNytaoW3Qws3-dfqwi1uSg8nA6ig,3471
|
|
57
55
|
platform_api_python_client/models/http_validation_error.py,sha256=LCSb4Ct_DLOMGFoHLmzwRqUE0jeprHfuTeFgIEF0guk,3030
|
|
58
56
|
platform_api_python_client/models/image_pull_secret_credentials.py,sha256=WYekYs3xTZj63EmKSw25ThkDzq9I7fgAnTdw5q1Gciw,2631
|
|
59
57
|
platform_api_python_client/models/invite_user_request.py,sha256=uiFLP5GClTnf-p_z3OaH1-f5FUB3FX2tLtf4-pZkeoY,2502
|
|
60
|
-
platform_api_python_client/models/list_api_key_response.py,sha256=tXUlTP-SBqJS41nbpOELwhO3klgCZTe3NIB2Gw0sK5g,3008
|
|
61
58
|
platform_api_python_client/models/list_c_serve_recipe_response.py,sha256=nqObDS3naOIcLZCBtD4Ff2nm94S-iwoLulySmWx1zRw,3057
|
|
62
59
|
platform_api_python_client/models/list_cluster_capacity_response.py,sha256=BuTYR-9rXVPIp2PaHqkLlzytyiwk9ULDU-GJ8lIMC-4,3122
|
|
63
60
|
platform_api_python_client/models/list_daily_bill_response.py,sha256=52uvjXcTVt3wV9pptL2dAs7RsgmAlZTFj6GZ0YKcw8I,3032
|
|
@@ -67,7 +64,8 @@ platform_api_python_client/models/list_get_deployment_response.py,sha256=sS8uE7L
|
|
|
67
64
|
platform_api_python_client/models/list_hardware_instance_response.py,sha256=26BbCJvHhzX-YY1PDfk7vNVaWTladJ_F7xnhSfHuobY,3088
|
|
68
65
|
platform_api_python_client/models/list_prebuilt_image_response.py,sha256=o7W89S1KPn74b4Hbeo6eRmQBqMqSMfytwOpogZ7o3Iw,3064
|
|
69
66
|
platform_api_python_client/models/list_user_vault_items_response.py,sha256=7lQ1fBnERqv4mI_RcIBe42MDvYwon_LjRRFTzD-HsMQ,3036
|
|
70
|
-
platform_api_python_client/models/metric.py,sha256=
|
|
67
|
+
platform_api_python_client/models/metric.py,sha256=83HrRBZwnepSCyjbx0S61_geYb2HiImWlfzaZS-1xF8,1255
|
|
68
|
+
platform_api_python_client/models/metrics_config.py,sha256=ssB0yIfMIj2wWUnYgYw9vWfi12Z_BhkvXwNGTg2IHfE,3257
|
|
71
69
|
platform_api_python_client/models/pod_details.py,sha256=JRNnE3fpCdmrMfbsFxEYtYo17McX040hNU99EZ2f90o,3569
|
|
72
70
|
platform_api_python_client/models/pod_status.py,sha256=KKYclyyn66pHrk56D8JD698qqM_j7V6SVPcuTSIfS88,1120
|
|
73
71
|
platform_api_python_client/models/prebuilt_image_response.py,sha256=dnvVsxrLNOpQhQgT8YePMwXmMx-8lEpImVK2oU4dsUk,3248
|
|
@@ -82,7 +80,7 @@ platform_api_python_client/models/user_vault_type.py,sha256=omgXu7ipt_j_0IK1mCIb
|
|
|
82
80
|
platform_api_python_client/models/validation_error.py,sha256=bAAvyr7kxTVi7Xo-A-7sY64959W_7PISLgJjWBc_Q3k,3122
|
|
83
81
|
platform_api_python_client/models/validation_error_loc_inner.py,sha256=_ossVs2HphEeptkKNGz_38WRQBvVHRPg00bhnE6imfs,4899
|
|
84
82
|
platform_api_python_client/models/vault_scope.py,sha256=n_B1F_wYcabdVaW35o-kF8evyzEqMMMD3nWxRArYGAM,747
|
|
85
|
-
platform_api_python_client-4.
|
|
86
|
-
platform_api_python_client-4.
|
|
87
|
-
platform_api_python_client-4.
|
|
88
|
-
platform_api_python_client-4.
|
|
83
|
+
platform_api_python_client-4.13.0.dist-info/METADATA,sha256=hTznlq01K6VkoO0JYvLXnEZqzJt39tsn8X9is9He-tk,695
|
|
84
|
+
platform_api_python_client-4.13.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
85
|
+
platform_api_python_client-4.13.0.dist-info/top_level.txt,sha256=yy_3qpZ0HjJKg8tednSa1a2fNj8p5CIw_sAR71ZZz2Q,27
|
|
86
|
+
platform_api_python_client-4.13.0.dist-info/RECORD,,
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
|
|
3
|
-
"""
|
|
4
|
-
Platform External API
|
|
5
|
-
|
|
6
|
-
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
-
|
|
8
|
-
The version of the OpenAPI document: 0.1.0
|
|
9
|
-
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
-
|
|
11
|
-
Do not edit the class manually.
|
|
12
|
-
""" # noqa: E501
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
from __future__ import annotations
|
|
16
|
-
import pprint
|
|
17
|
-
import re # noqa: F401
|
|
18
|
-
import json
|
|
19
|
-
|
|
20
|
-
from datetime import datetime
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
22
|
-
from typing import Any, ClassVar, Dict, List
|
|
23
|
-
from typing import Optional, Set
|
|
24
|
-
from typing_extensions import Self
|
|
25
|
-
|
|
26
|
-
class APIKeyResponse(BaseModel):
|
|
27
|
-
"""
|
|
28
|
-
APIKeyResponse
|
|
29
|
-
""" # noqa: E501
|
|
30
|
-
name: StrictStr
|
|
31
|
-
id: StrictStr
|
|
32
|
-
created_at: datetime
|
|
33
|
-
__properties: ClassVar[List[str]] = ["name", "id", "created_at"]
|
|
34
|
-
|
|
35
|
-
model_config = ConfigDict(
|
|
36
|
-
populate_by_name=True,
|
|
37
|
-
validate_assignment=True,
|
|
38
|
-
protected_namespaces=(),
|
|
39
|
-
)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
def to_str(self) -> str:
|
|
43
|
-
"""Returns the string representation of the model using alias"""
|
|
44
|
-
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
-
|
|
46
|
-
def to_json(self) -> str:
|
|
47
|
-
"""Returns the JSON representation of the model using alias"""
|
|
48
|
-
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
-
return json.dumps(self.to_dict())
|
|
50
|
-
|
|
51
|
-
@classmethod
|
|
52
|
-
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
-
"""Create an instance of APIKeyResponse from a JSON string"""
|
|
54
|
-
return cls.from_dict(json.loads(json_str))
|
|
55
|
-
|
|
56
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
-
"""Return the dictionary representation of the model using alias.
|
|
58
|
-
|
|
59
|
-
This has the following differences from calling pydantic's
|
|
60
|
-
`self.model_dump(by_alias=True)`:
|
|
61
|
-
|
|
62
|
-
* `None` is only added to the output dict for nullable fields that
|
|
63
|
-
were set at model initialization. Other fields with value `None`
|
|
64
|
-
are ignored.
|
|
65
|
-
"""
|
|
66
|
-
excluded_fields: Set[str] = set([
|
|
67
|
-
])
|
|
68
|
-
|
|
69
|
-
_dict = self.model_dump(
|
|
70
|
-
by_alias=True,
|
|
71
|
-
exclude=excluded_fields,
|
|
72
|
-
exclude_none=True,
|
|
73
|
-
)
|
|
74
|
-
return _dict
|
|
75
|
-
|
|
76
|
-
@classmethod
|
|
77
|
-
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
78
|
-
"""Create an instance of APIKeyResponse from a dict"""
|
|
79
|
-
if obj is None:
|
|
80
|
-
return None
|
|
81
|
-
|
|
82
|
-
if not isinstance(obj, dict):
|
|
83
|
-
return cls.model_validate(obj)
|
|
84
|
-
|
|
85
|
-
_obj = cls.model_validate({
|
|
86
|
-
"name": obj.get("name"),
|
|
87
|
-
"id": obj.get("id"),
|
|
88
|
-
"created_at": obj.get("created_at")
|
|
89
|
-
})
|
|
90
|
-
return _obj
|
|
91
|
-
|
|
92
|
-
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# coding: utf-8
|
|
2
|
-
|
|
3
|
-
"""
|
|
4
|
-
Platform External API
|
|
5
|
-
|
|
6
|
-
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
-
|
|
8
|
-
The version of the OpenAPI document: 0.1.0
|
|
9
|
-
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
-
|
|
11
|
-
Do not edit the class manually.
|
|
12
|
-
""" # noqa: E501
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
from __future__ import annotations
|
|
16
|
-
import pprint
|
|
17
|
-
import re # noqa: F401
|
|
18
|
-
import json
|
|
19
|
-
|
|
20
|
-
from pydantic import BaseModel, ConfigDict
|
|
21
|
-
from typing import Any, ClassVar, Dict, List
|
|
22
|
-
from platform_api_python_client.models.api_key_response import APIKeyResponse
|
|
23
|
-
from typing import Optional, Set
|
|
24
|
-
from typing_extensions import Self
|
|
25
|
-
|
|
26
|
-
class ListAPIKeyResponse(BaseModel):
|
|
27
|
-
"""
|
|
28
|
-
ListAPIKeyResponse
|
|
29
|
-
""" # noqa: E501
|
|
30
|
-
results: List[APIKeyResponse]
|
|
31
|
-
__properties: ClassVar[List[str]] = ["results"]
|
|
32
|
-
|
|
33
|
-
model_config = ConfigDict(
|
|
34
|
-
populate_by_name=True,
|
|
35
|
-
validate_assignment=True,
|
|
36
|
-
protected_namespaces=(),
|
|
37
|
-
)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
def to_str(self) -> str:
|
|
41
|
-
"""Returns the string representation of the model using alias"""
|
|
42
|
-
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
-
|
|
44
|
-
def to_json(self) -> str:
|
|
45
|
-
"""Returns the JSON representation of the model using alias"""
|
|
46
|
-
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
-
return json.dumps(self.to_dict())
|
|
48
|
-
|
|
49
|
-
@classmethod
|
|
50
|
-
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
-
"""Create an instance of ListAPIKeyResponse from a JSON string"""
|
|
52
|
-
return cls.from_dict(json.loads(json_str))
|
|
53
|
-
|
|
54
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
-
"""Return the dictionary representation of the model using alias.
|
|
56
|
-
|
|
57
|
-
This has the following differences from calling pydantic's
|
|
58
|
-
`self.model_dump(by_alias=True)`:
|
|
59
|
-
|
|
60
|
-
* `None` is only added to the output dict for nullable fields that
|
|
61
|
-
were set at model initialization. Other fields with value `None`
|
|
62
|
-
are ignored.
|
|
63
|
-
"""
|
|
64
|
-
excluded_fields: Set[str] = set([
|
|
65
|
-
])
|
|
66
|
-
|
|
67
|
-
_dict = self.model_dump(
|
|
68
|
-
by_alias=True,
|
|
69
|
-
exclude=excluded_fields,
|
|
70
|
-
exclude_none=True,
|
|
71
|
-
)
|
|
72
|
-
# override the default output from pydantic by calling `to_dict()` of each item in results (list)
|
|
73
|
-
_items = []
|
|
74
|
-
if self.results:
|
|
75
|
-
for _item_results in self.results:
|
|
76
|
-
if _item_results:
|
|
77
|
-
_items.append(_item_results.to_dict())
|
|
78
|
-
_dict['results'] = _items
|
|
79
|
-
return _dict
|
|
80
|
-
|
|
81
|
-
@classmethod
|
|
82
|
-
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
83
|
-
"""Create an instance of ListAPIKeyResponse from a dict"""
|
|
84
|
-
if obj is None:
|
|
85
|
-
return None
|
|
86
|
-
|
|
87
|
-
if not isinstance(obj, dict):
|
|
88
|
-
return cls.model_validate(obj)
|
|
89
|
-
|
|
90
|
-
_obj = cls.model_validate({
|
|
91
|
-
"results": [APIKeyResponse.from_dict(_item) for _item in obj["results"]] if obj.get("results") is not None else None
|
|
92
|
-
})
|
|
93
|
-
return _obj
|
|
94
|
-
|
|
95
|
-
|
{platform_api_python_client-4.9.7.dist-info → platform_api_python_client-4.13.0.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|