yicloud-sdk-python 0.4.0__tar.gz → 0.4.2__tar.gz
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.
- {yicloud_sdk_python-0.4.0/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.4.2}/PKG-INFO +1 -1
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/pyproject.toml +1 -1
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/version.py +1 -1
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/__init__.py +1 -1
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/job/__init__.py +3 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/job/actions.py +32 -4
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/job/models.py +20 -5
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/__init__.py +30 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/actions.py +122 -2
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/models.py +150 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/actions.py +12 -8
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/models.py +2 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2/yicloud_sdk_python.egg-info}/PKG-INFO +1 -1
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/LICENSE +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/README.md +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/setup.cfg +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/auth/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/auth/credential.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/auth/sign.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/config.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/errs/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/log/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/log/logger.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/log/std.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/msgs/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/helps.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/retry/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/retry/retry.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/job/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/actions.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/models.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/__init__.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/client.py +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/SOURCES.txt +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/requires.txt +0 -0
- {yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/top_level.txt +0 -0
|
@@ -12,6 +12,7 @@ from .actions import (
|
|
|
12
12
|
edit_job,
|
|
13
13
|
batch_delete_jobs,
|
|
14
14
|
batch_stop_jobs,
|
|
15
|
+
stop_job,
|
|
15
16
|
stop_replica,
|
|
16
17
|
get_logs,
|
|
17
18
|
get_logs_volume,
|
|
@@ -25,6 +26,7 @@ from .actions import (
|
|
|
25
26
|
edit_job_async,
|
|
26
27
|
batch_delete_jobs_async,
|
|
27
28
|
batch_stop_jobs_async,
|
|
29
|
+
stop_job_async,
|
|
28
30
|
stop_replica_async,
|
|
29
31
|
get_logs_async,
|
|
30
32
|
get_logs_volume_async,
|
|
@@ -75,6 +77,7 @@ from .models import (
|
|
|
75
77
|
S3Config,
|
|
76
78
|
CreateJobReqS3Config,
|
|
77
79
|
CreateJobReqSelfHealConfig,
|
|
80
|
+
StopJobReq,
|
|
78
81
|
StopReplicaReq,
|
|
79
82
|
CreateJobReqTaskSpec,
|
|
80
83
|
TaskSpecResponse,
|
|
@@ -109,7 +109,7 @@ JobUid 可从 ListJobs / GetJob 接口返回的 Uid 字段获取。
|
|
|
109
109
|
|
|
110
110
|
def create_job(ctx: Optional[dict], req: models.CreateJobReq) -> models.CreateJobData:
|
|
111
111
|
"""创建 Job
|
|
112
|
-
|
|
112
|
+
创建新的训练任务,支持配置自愈选项、多任务规格和调度策略。创建前会校验租户状态与 SKU 余额,可能返回 1001012、1001013、1001014。
|
|
113
113
|
POST /job/v1alpha1/CreateJob
|
|
114
114
|
Action: CreateJob
|
|
115
115
|
|
|
@@ -124,7 +124,7 @@ def create_job(ctx: Optional[dict], req: models.CreateJobReq) -> models.CreateJo
|
|
|
124
124
|
|
|
125
125
|
async def create_job_async(ctx: Optional[dict], req: models.CreateJobReq) -> models.CreateJobData:
|
|
126
126
|
"""创建 Job(异步)
|
|
127
|
-
|
|
127
|
+
创建新的训练任务,支持配置自愈选项、多任务规格和调度策略。创建前会校验租户状态与 SKU 余额,可能返回 1001012、1001013、1001014。
|
|
128
128
|
POST /job/v1alpha1/CreateJob
|
|
129
129
|
Action: CreateJob
|
|
130
130
|
|
|
@@ -223,6 +223,34 @@ async def batch_stop_jobs_async(ctx: Optional[dict], req: models.BatchStopJobsRe
|
|
|
223
223
|
return rsp.get_typed_data()
|
|
224
224
|
|
|
225
225
|
|
|
226
|
+
def stop_job(ctx: Optional[dict], req: models.StopJobReq):
|
|
227
|
+
"""停止 Job
|
|
228
|
+
停止运行中的 Job
|
|
229
|
+
POST /job/v1alpha1/StopJob
|
|
230
|
+
Action: StopJob
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
Raises YiCloudException on error.
|
|
234
|
+
"""
|
|
235
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/StopJob"
|
|
236
|
+
rsp = msgs.Rsp[None].empty()
|
|
237
|
+
client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
async def stop_job_async(ctx: Optional[dict], req: models.StopJobReq):
|
|
241
|
+
"""停止 Job(异步)
|
|
242
|
+
停止运行中的 Job
|
|
243
|
+
POST /job/v1alpha1/StopJob
|
|
244
|
+
Action: StopJob
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
Raises YiCloudException on error.
|
|
248
|
+
"""
|
|
249
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/StopJob"
|
|
250
|
+
rsp = msgs.Rsp[None].empty()
|
|
251
|
+
await client.base.post_async(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
|
|
252
|
+
|
|
253
|
+
|
|
226
254
|
def stop_replica(ctx: Optional[dict], req: models.StopReplicaReq):
|
|
227
255
|
"""停止单个副本
|
|
228
256
|
停止指定的 Replica,参考 StopWorkspace 实现模式,通过 apiserver subresource 调用。
|
|
@@ -313,7 +341,7 @@ async def get_logs_volume_async(ctx: Optional[dict], req: models.GetLogsVolumeRe
|
|
|
313
341
|
|
|
314
342
|
def list_job_replicas(ctx: Optional[dict], req: models.ListJobReplicasReq) -> models.ListJobReplicasData:
|
|
315
343
|
"""获取副本列表
|
|
316
|
-
获取指定 Job
|
|
344
|
+
获取指定 Job 的副本列表,支持按副本状态过滤
|
|
317
345
|
GET /job/v1alpha1/ListJobReplicas
|
|
318
346
|
Action: ListJobReplicas
|
|
319
347
|
|
|
@@ -328,7 +356,7 @@ def list_job_replicas(ctx: Optional[dict], req: models.ListJobReplicasReq) -> mo
|
|
|
328
356
|
|
|
329
357
|
async def list_job_replicas_async(ctx: Optional[dict], req: models.ListJobReplicasReq) -> models.ListJobReplicasData:
|
|
330
358
|
"""获取副本列表(异步)
|
|
331
|
-
获取指定 Job
|
|
359
|
+
获取指定 Job 的副本列表,支持按副本状态过滤
|
|
332
360
|
GET /job/v1alpha1/ListJobReplicas
|
|
333
361
|
Action: ListJobReplicas
|
|
334
362
|
|
|
@@ -90,6 +90,7 @@ class CreateJobReq:
|
|
|
90
90
|
Name: str # Job 显示名称 json:"Name"
|
|
91
91
|
Project: str # 项目名称 json:"Project"
|
|
92
92
|
TaskSpecs: Dict[str, CreateJobReqTaskSpec] # 任务规格映射,key 为任务名(如 t0),value 为任务规格 json:"TaskSpecs"
|
|
93
|
+
ZoneId: str # 可用区(AZ),必填;RegionId 由网关通过 X-OGW-REGION-ID 请求头注入 json:"ZoneId"
|
|
93
94
|
AutoDeleteDuration: Optional[str] = None # 自动删除时间,如 24h json:"AutoDeleteDuration,omitempty"
|
|
94
95
|
BackoffLimit: Optional[int] = None # 重试次数限制 json:"BackoffLimit,omitempty"
|
|
95
96
|
Creator: Optional[str] = None # 创建者用户名 json:"Creator,omitempty"
|
|
@@ -168,6 +169,7 @@ class GetJobData:
|
|
|
168
169
|
Rank: Optional[int] = 0 # 排序排名(从 1 开始),仅 List 接口返回 json:"Rank,omitempty"
|
|
169
170
|
RealCreator: Optional[str] = "" # 实际创建者用户名(共享场景下与 Creator 不同) json:"RealCreator,omitempty"
|
|
170
171
|
RealCreatorId: Optional[str] = "" # 实际创建者用户 ID(共享场景下与 CreatorId 不同) json:"RealCreatorId,omitempty"
|
|
172
|
+
RegionId: Optional[str] = "" # 地域,从 RJob topology labels 读取;存量数据缺失时回填默认值 cn-shanghai json:"RegionId,omitempty"
|
|
171
173
|
S3Config: Optional[S3Config] = None # json:"S3Config,omitempty"
|
|
172
174
|
SKUPrivate: Optional[bool] = False # 是否使用私有机器 SKU json:"SKUPrivate,omitempty"
|
|
173
175
|
SKUPrivateProject: Optional[bool] = False # 是否为项目级私有 SKU json:"SKUPrivateProject,omitempty"
|
|
@@ -187,6 +189,7 @@ class GetJobData:
|
|
|
187
189
|
Uid: Optional[str] = "" # Job 唯一标识(UID) json:"Uid,omitempty"
|
|
188
190
|
UsePrivateMachine: Optional[bool] = False # 是否使用私有机器 json:"UsePrivateMachine,omitempty"
|
|
189
191
|
WaitTime: Optional[int] = 0 # 等待时间(秒),仅 List 接口返回 json:"WaitTime,omitempty"
|
|
192
|
+
ZoneId: Optional[str] = "" # 可用区,从 RJob topology labels 读取;存量数据缺失时回填默认值 cn-shanghai-b json:"ZoneId,omitempty"
|
|
190
193
|
|
|
191
194
|
@dataclass
|
|
192
195
|
class LogEntry:
|
|
@@ -269,8 +272,10 @@ class GetJobReplicaData:
|
|
|
269
272
|
NodeName: Optional[str] = "" # 运行节点名称 json:"NodeName,omitempty"
|
|
270
273
|
Phase: Optional[str] = None # SDK常量: PhasePending, PhaseStarting, PhaseRunning, PhaseScanning, PhaseSucceeded, PhaseFailed, PhaseRestarting, PhaseStopped, PhaseInqueue, PhaseSelfHealTriggered, PhaseSelfHealRunning, PhaseSelfHealSucceeded, PhaseSelfHealFailed json:"Phase,omitempty"
|
|
271
274
|
PodIP: Optional[str] = "" # Pod IP 地址 json:"PodIP,omitempty"
|
|
272
|
-
|
|
275
|
+
RegionId: Optional[str] = "" # 地域,从 Replica topology labels 读取;存量数据缺失时回填默认值 cn-shanghai json:"RegionId,omitempty"
|
|
276
|
+
ReplicaIndex: Optional[str] = "" # 副本序号 json:"ReplicaIndex,omitempty"
|
|
273
277
|
TaskType: Optional[str] = "" # 副本任务类型(如 worker) json:"TaskType,omitempty"
|
|
278
|
+
ZoneId: Optional[str] = "" # 可用区,从 Replica topology labels 读取;存量数据缺失时回填默认值 cn-shanghai-b json:"ZoneId,omitempty"
|
|
274
279
|
|
|
275
280
|
@dataclass
|
|
276
281
|
class BatchDeleteJobsReqResourceIdentifier:
|
|
@@ -312,13 +317,19 @@ class CreateJobReqS3Config:
|
|
|
312
317
|
|
|
313
318
|
@dataclass
|
|
314
319
|
class CreateJobReqSelfHealConfig:
|
|
315
|
-
AutoReplaceNode: Optional[bool] = None #
|
|
316
|
-
GracePeriodMinutes: Optional[int] = None #
|
|
317
|
-
LimitCount: Optional[int] = None #
|
|
320
|
+
AutoReplaceNode: Optional[bool] = None # 是否开启节点自愈(故障节点自动替换),默认关闭 json:"AutoReplaceNode,omitempty"
|
|
321
|
+
GracePeriodMinutes: Optional[int] = None # 介入等待时间(分钟),默认 15 分钟 json:"GracePeriodMinutes,omitempty"
|
|
322
|
+
LimitCount: Optional[int] = None # 最大重试次数,默认 5 次 json:"LimitCount,omitempty"
|
|
318
323
|
NotifyWebhook: Optional[str] = None # 自愈事件通知 Webhook URL(如飞书机器人) json:"NotifyWebhook,omitempty"
|
|
319
324
|
RetryScope: Optional[str] = None # SDK常量: RetryScopeRjob, RetryScopeTask json:"RetryScope,omitempty"
|
|
320
325
|
SelfHealEnabled: Optional[bool] = None # 是否开启自愈 json:"SelfHealEnabled,omitempty"
|
|
321
|
-
TerminationGracePeriodSeconds: Optional[int] = None #
|
|
326
|
+
TerminationGracePeriodSeconds: Optional[int] = None # 数据回收时间(秒),默认 300 秒 json:"TerminationGracePeriodSeconds,omitempty"
|
|
327
|
+
|
|
328
|
+
@dataclass
|
|
329
|
+
class StopJobReq:
|
|
330
|
+
JobId: str # Job 唯一标识 json:"JobId"
|
|
331
|
+
Project: str # 项目名称 json:"Project"
|
|
332
|
+
ZoneId: Optional[str] = None # 可用区(可选,当前服务端仅接收);RegionId 由网关通过 X-OGW-REGION-ID 请求头注入 json:"ZoneId,omitempty"
|
|
322
333
|
|
|
323
334
|
@dataclass
|
|
324
335
|
class StopReplicaReq:
|
|
@@ -367,11 +378,13 @@ class TaskSpecResponse:
|
|
|
367
378
|
MountGpfsVolumes: Optional[List[MountGpfsVolume]] = None # GPFS 挂载卷列表(结构化),由 MountGPFS 字符串解析而来 json:"MountGpfsVolumes,omitempty"
|
|
368
379
|
NegativeTags: Optional[List[str]] = None # 节点反亲和标签列表 json:"NegativeTags,omitempty"
|
|
369
380
|
PositiveTags: Optional[List[str]] = None # 节点亲和标签列表 json:"PositiveTags,omitempty"
|
|
381
|
+
RegionId: Optional[str] = "" # 地域,从 TaskSpec template labels 读取;缺失时回填默认值 cn-shanghai json:"RegionId,omitempty"
|
|
370
382
|
Replicas: Optional[int] = 0 # 副本数 json:"Replicas,omitempty"
|
|
371
383
|
RootfsSource: Optional[RootfsSourceResponse] = None # Rootfs 数据源配置 json:"RootfsSource,omitempty"
|
|
372
384
|
SKUId: Optional[str] = "" # SKU 规格标识,如 ai.c3m42.r1ir5 json:"SKUId,omitempty"
|
|
373
385
|
UpdatePolicy: Optional[str] = None # SDK常量: UpdatePolicyActive, UpdatePolicyBeforeRunning, UpdatePolicyNone json:"UpdatePolicy,omitempty"
|
|
374
386
|
Volumes: Optional[List[VolumeMount]] = None # 挂载存储卷列表 json:"Volumes,omitempty"
|
|
387
|
+
ZoneId: Optional[str] = "" # 可用区,从 TaskSpec template labels 读取;缺失时回填默认值 cn-shanghai-b json:"ZoneId,omitempty"
|
|
375
388
|
|
|
376
389
|
@dataclass
|
|
377
390
|
class TaskStatusCount:
|
|
@@ -445,10 +458,12 @@ class GetPrecheckStatusReq:
|
|
|
445
458
|
class ListJobReplicasReq:
|
|
446
459
|
JobId: str # Job 唯一标识 query:"JobId"
|
|
447
460
|
Project: str # 项目名称 query:"Project"
|
|
461
|
+
Phases: Optional[str] = None # 按副本状态过滤,多个状态使用逗号分隔;可选值为 Pending、Starting、Running、Stopped、Succeeded、Failed、Unknown query:"Phases,omitempty"
|
|
448
462
|
|
|
449
463
|
@dataclass
|
|
450
464
|
class ListJobsReq:
|
|
451
465
|
Project: str # 项目名称 query:"Project"
|
|
466
|
+
ZoneId: str # 可用区(AZ)过滤,如 cn-shanghai-b;RegionId 由网关通过 X-OGW-REGION-ID 请求头注入 query:"ZoneId"
|
|
452
467
|
Creators: Optional[str] = None # 创建者用户名,逗号分隔 query:"Creators,omitempty"
|
|
453
468
|
JobIds: Optional[str] = None # Job ID 列表,逗号分隔 query:"JobIds,omitempty"
|
|
454
469
|
JobNames: Optional[str] = None # Job 名称过滤(逗号分隔,支持模糊匹配) query:"JobNames,omitempty"
|
|
@@ -14,7 +14,11 @@ from .actions import (
|
|
|
14
14
|
get_prewarm_pool,
|
|
15
15
|
get_resource_stats,
|
|
16
16
|
get_sandbox,
|
|
17
|
+
get_sandbox_egress_policy,
|
|
17
18
|
get_sandbox_environment,
|
|
19
|
+
get_sandbox_logs_query_range,
|
|
20
|
+
get_sandbox_logs_volume_range,
|
|
21
|
+
list_environment_events,
|
|
18
22
|
list_prewarm_pool_events,
|
|
19
23
|
list_prewarm_pool_pods,
|
|
20
24
|
list_sandbox_environments,
|
|
@@ -33,7 +37,11 @@ from .actions import (
|
|
|
33
37
|
get_prewarm_pool_async,
|
|
34
38
|
get_resource_stats_async,
|
|
35
39
|
get_sandbox_async,
|
|
40
|
+
get_sandbox_egress_policy_async,
|
|
36
41
|
get_sandbox_environment_async,
|
|
42
|
+
get_sandbox_logs_query_range_async,
|
|
43
|
+
get_sandbox_logs_volume_range_async,
|
|
44
|
+
list_environment_events_async,
|
|
37
45
|
list_prewarm_pool_events_async,
|
|
38
46
|
list_prewarm_pool_pods_async,
|
|
39
47
|
list_sandbox_environments_async,
|
|
@@ -47,8 +55,10 @@ from .actions import (
|
|
|
47
55
|
|
|
48
56
|
# Re-export models
|
|
49
57
|
from .models import (
|
|
58
|
+
Action,
|
|
50
59
|
ActualMode,
|
|
51
60
|
AllocationMode,
|
|
61
|
+
DefaultAction,
|
|
52
62
|
Kind,
|
|
53
63
|
Level,
|
|
54
64
|
Mode,
|
|
@@ -64,6 +74,9 @@ from .models import (
|
|
|
64
74
|
CreateSandboxData,
|
|
65
75
|
CreateSandboxEnvironmentReq,
|
|
66
76
|
CreateSandboxReq,
|
|
77
|
+
EgressAlwaysRules,
|
|
78
|
+
EgressLogSkipRule,
|
|
79
|
+
EnvironmentEvent,
|
|
67
80
|
EnvironmentInstanceCounts,
|
|
68
81
|
EnvironmentResourceUsage,
|
|
69
82
|
Image,
|
|
@@ -73,12 +86,18 @@ from .models import (
|
|
|
73
86
|
CreateSandboxReqImageInput,
|
|
74
87
|
CreateSandboxEnvironmentReqImageInput,
|
|
75
88
|
GetInstanceStateStatsData,
|
|
89
|
+
ListEnvironmentEventsData,
|
|
76
90
|
ListPrewarmPoolEventsData,
|
|
77
91
|
ListPrewarmPoolPodsData,
|
|
78
92
|
ListSandboxEnvironmentsData,
|
|
79
93
|
ListSandboxProjectsData,
|
|
80
94
|
ListSandboxesData,
|
|
81
95
|
ModeInstanceStateCluster,
|
|
96
|
+
NetworkPolicy,
|
|
97
|
+
CreateSandboxReqNetworkPolicy,
|
|
98
|
+
NetworkRule,
|
|
99
|
+
CreateSandboxReqNetworkRule,
|
|
100
|
+
NodeCapacitySummary,
|
|
82
101
|
Port,
|
|
83
102
|
CreateSandboxReqPort,
|
|
84
103
|
CreateSandboxEnvironmentReqPort,
|
|
@@ -90,6 +109,7 @@ from .models import (
|
|
|
90
109
|
Resources,
|
|
91
110
|
CreateSandboxReqResources,
|
|
92
111
|
CreateSandboxEnvironmentReqResources,
|
|
112
|
+
GetSandboxEgressPolicyData,
|
|
93
113
|
SandboxEndpointInfo,
|
|
94
114
|
SandboxEndpoints,
|
|
95
115
|
DeleteSandboxEnvironmentReq,
|
|
@@ -97,6 +117,12 @@ from .models import (
|
|
|
97
117
|
DeleteSandboxReq,
|
|
98
118
|
StopSandboxReq,
|
|
99
119
|
GetSandboxData,
|
|
120
|
+
SandboxLogEntry,
|
|
121
|
+
SandboxLogVolumeDataPoint,
|
|
122
|
+
SandboxLogVolumeMetadata,
|
|
123
|
+
SandboxLogVolumeResult,
|
|
124
|
+
GetSandboxLogsQueryRangeData,
|
|
125
|
+
GetSandboxLogsVolumeRangeData,
|
|
100
126
|
StateStatus,
|
|
101
127
|
UpdateInstanceCapacityReq,
|
|
102
128
|
UpdatePrewarmSizeReq,
|
|
@@ -118,7 +144,11 @@ from .models import (
|
|
|
118
144
|
GetPrewarmPoolReq,
|
|
119
145
|
GetResourceStatsReq,
|
|
120
146
|
GetSandboxReq,
|
|
147
|
+
GetSandboxEgressPolicyReq,
|
|
121
148
|
GetSandboxEnvironmentReq,
|
|
149
|
+
GetSandboxLogsQueryRangeReq,
|
|
150
|
+
GetSandboxLogsVolumeRangeReq,
|
|
151
|
+
ListEnvironmentEventsReq,
|
|
122
152
|
ListPrewarmPoolEventsReq,
|
|
123
153
|
ListPrewarmPoolPodsReq,
|
|
124
154
|
ListSandboxEnvironmentsReq,
|
|
@@ -217,7 +217,7 @@ async def get_prewarm_pool_async(ctx: Optional[dict], req: models.GetPrewarmPool
|
|
|
217
217
|
|
|
218
218
|
def get_resource_stats(ctx: Optional[dict], req: models.GetResourceStatsReq) -> models.GetResourceStatsData:
|
|
219
219
|
"""资源统计
|
|
220
|
-
|
|
220
|
+
查询指定沙盒环境的 CPU、内存用量,并返回集群沙盒节点池的总量、已用量和真实可调度剩余容量。旧版后端未提供节点容量时不返回 Node。
|
|
221
221
|
GET /sandbox/v1alpha1/GetResourceStats
|
|
222
222
|
Action: GetResourceStats
|
|
223
223
|
|
|
@@ -232,7 +232,7 @@ def get_resource_stats(ctx: Optional[dict], req: models.GetResourceStatsReq) ->
|
|
|
232
232
|
|
|
233
233
|
async def get_resource_stats_async(ctx: Optional[dict], req: models.GetResourceStatsReq) -> models.GetResourceStatsData:
|
|
234
234
|
"""资源统计(异步)
|
|
235
|
-
|
|
235
|
+
查询指定沙盒环境的 CPU、内存用量,并返回集群沙盒节点池的总量、已用量和真实可调度剩余容量。旧版后端未提供节点容量时不返回 Node。
|
|
236
236
|
GET /sandbox/v1alpha1/GetResourceStats
|
|
237
237
|
Action: GetResourceStats
|
|
238
238
|
|
|
@@ -275,6 +275,36 @@ async def get_sandbox_async(ctx: Optional[dict], req: models.GetSandboxReq) -> m
|
|
|
275
275
|
return rsp.get_typed_data()
|
|
276
276
|
|
|
277
277
|
|
|
278
|
+
def get_sandbox_egress_policy(ctx: Optional[dict], req: models.GetSandboxEgressPolicyReq) -> models.GetSandboxEgressPolicyData:
|
|
279
|
+
"""实例出站策略
|
|
280
|
+
查询已启用 egress 的实例当前策略及平台规则;实例未启用 egress 或 sidecar 不可用时返回上游错误。
|
|
281
|
+
GET /sandbox/v1alpha1/GetSandboxEgressPolicy
|
|
282
|
+
Action: GetSandboxEgressPolicy
|
|
283
|
+
|
|
284
|
+
Returns GetSandboxEgressPolicyData on success.
|
|
285
|
+
Raises YiCloudException on error.
|
|
286
|
+
"""
|
|
287
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxEgressPolicy"
|
|
288
|
+
rsp = msgs.Rsp[models.GetSandboxEgressPolicyData]()
|
|
289
|
+
client.base.get(ctx, path, req, rsp)
|
|
290
|
+
return rsp.get_typed_data()
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
async def get_sandbox_egress_policy_async(ctx: Optional[dict], req: models.GetSandboxEgressPolicyReq) -> models.GetSandboxEgressPolicyData:
|
|
294
|
+
"""实例出站策略(异步)
|
|
295
|
+
查询已启用 egress 的实例当前策略及平台规则;实例未启用 egress 或 sidecar 不可用时返回上游错误。
|
|
296
|
+
GET /sandbox/v1alpha1/GetSandboxEgressPolicy
|
|
297
|
+
Action: GetSandboxEgressPolicy
|
|
298
|
+
|
|
299
|
+
Returns GetSandboxEgressPolicyData on success.
|
|
300
|
+
Raises YiCloudException on error.
|
|
301
|
+
"""
|
|
302
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxEgressPolicy"
|
|
303
|
+
rsp = msgs.Rsp[models.GetSandboxEgressPolicyData]()
|
|
304
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
305
|
+
return rsp.get_typed_data()
|
|
306
|
+
|
|
307
|
+
|
|
278
308
|
def get_sandbox_environment(ctx: Optional[dict], req: models.GetSandboxEnvironmentReq) -> models.GetSandboxEnvironmentData:
|
|
279
309
|
"""环境详情
|
|
280
310
|
查询单个沙盒环境详情。
|
|
@@ -305,6 +335,96 @@ async def get_sandbox_environment_async(ctx: Optional[dict], req: models.GetSand
|
|
|
305
335
|
return rsp.get_typed_data()
|
|
306
336
|
|
|
307
337
|
|
|
338
|
+
def get_sandbox_logs_query_range(ctx: Optional[dict], req: models.GetSandboxLogsQueryRangeReq) -> models.GetSandboxLogsQueryRangeData:
|
|
339
|
+
"""实例日志
|
|
340
|
+
查询指定沙盒实例的 Loki 日志;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
|
|
341
|
+
GET /sandbox/v1alpha1/GetSandboxLogsQueryRange
|
|
342
|
+
Action: GetSandboxLogsQueryRange
|
|
343
|
+
|
|
344
|
+
Returns GetSandboxLogsQueryRangeData on success.
|
|
345
|
+
Raises YiCloudException on error.
|
|
346
|
+
"""
|
|
347
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsQueryRange"
|
|
348
|
+
rsp = msgs.Rsp[models.GetSandboxLogsQueryRangeData]()
|
|
349
|
+
client.base.get(ctx, path, req, rsp)
|
|
350
|
+
return rsp.get_typed_data()
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
async def get_sandbox_logs_query_range_async(ctx: Optional[dict], req: models.GetSandboxLogsQueryRangeReq) -> models.GetSandboxLogsQueryRangeData:
|
|
354
|
+
"""实例日志(异步)
|
|
355
|
+
查询指定沙盒实例的 Loki 日志;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
|
|
356
|
+
GET /sandbox/v1alpha1/GetSandboxLogsQueryRange
|
|
357
|
+
Action: GetSandboxLogsQueryRange
|
|
358
|
+
|
|
359
|
+
Returns GetSandboxLogsQueryRangeData on success.
|
|
360
|
+
Raises YiCloudException on error.
|
|
361
|
+
"""
|
|
362
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsQueryRange"
|
|
363
|
+
rsp = msgs.Rsp[models.GetSandboxLogsQueryRangeData]()
|
|
364
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
365
|
+
return rsp.get_typed_data()
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
def get_sandbox_logs_volume_range(ctx: Optional[dict], req: models.GetSandboxLogsVolumeRangeReq) -> models.GetSandboxLogsVolumeRangeData:
|
|
369
|
+
"""实例日志量
|
|
370
|
+
查询指定沙盒实例的日志量时序分布;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
|
|
371
|
+
GET /sandbox/v1alpha1/GetSandboxLogsVolumeRange
|
|
372
|
+
Action: GetSandboxLogsVolumeRange
|
|
373
|
+
|
|
374
|
+
Returns GetSandboxLogsVolumeRangeData on success.
|
|
375
|
+
Raises YiCloudException on error.
|
|
376
|
+
"""
|
|
377
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsVolumeRange"
|
|
378
|
+
rsp = msgs.Rsp[models.GetSandboxLogsVolumeRangeData]()
|
|
379
|
+
client.base.get(ctx, path, req, rsp)
|
|
380
|
+
return rsp.get_typed_data()
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
async def get_sandbox_logs_volume_range_async(ctx: Optional[dict], req: models.GetSandboxLogsVolumeRangeReq) -> models.GetSandboxLogsVolumeRangeData:
|
|
384
|
+
"""实例日志量(异步)
|
|
385
|
+
查询指定沙盒实例的日志量时序分布;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
|
|
386
|
+
GET /sandbox/v1alpha1/GetSandboxLogsVolumeRange
|
|
387
|
+
Action: GetSandboxLogsVolumeRange
|
|
388
|
+
|
|
389
|
+
Returns GetSandboxLogsVolumeRangeData on success.
|
|
390
|
+
Raises YiCloudException on error.
|
|
391
|
+
"""
|
|
392
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsVolumeRange"
|
|
393
|
+
rsp = msgs.Rsp[models.GetSandboxLogsVolumeRangeData]()
|
|
394
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
395
|
+
return rsp.get_typed_data()
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
def list_environment_events(ctx: Optional[dict], req: models.ListEnvironmentEventsReq) -> models.ListEnvironmentEventsData:
|
|
399
|
+
"""环境事件
|
|
400
|
+
查询指定沙盒环境关联的实时 Kubernetes 事件;该接口不替代预热池历史事件查询。
|
|
401
|
+
GET /sandbox/v1alpha1/ListEnvironmentEvents
|
|
402
|
+
Action: ListEnvironmentEvents
|
|
403
|
+
|
|
404
|
+
Returns ListEnvironmentEventsData on success.
|
|
405
|
+
Raises YiCloudException on error.
|
|
406
|
+
"""
|
|
407
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListEnvironmentEvents"
|
|
408
|
+
rsp = msgs.Rsp[models.ListEnvironmentEventsData]()
|
|
409
|
+
client.base.get(ctx, path, req, rsp)
|
|
410
|
+
return rsp.get_typed_data()
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
async def list_environment_events_async(ctx: Optional[dict], req: models.ListEnvironmentEventsReq) -> models.ListEnvironmentEventsData:
|
|
414
|
+
"""环境事件(异步)
|
|
415
|
+
查询指定沙盒环境关联的实时 Kubernetes 事件;该接口不替代预热池历史事件查询。
|
|
416
|
+
GET /sandbox/v1alpha1/ListEnvironmentEvents
|
|
417
|
+
Action: ListEnvironmentEvents
|
|
418
|
+
|
|
419
|
+
Returns ListEnvironmentEventsData on success.
|
|
420
|
+
Raises YiCloudException on error.
|
|
421
|
+
"""
|
|
422
|
+
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListEnvironmentEvents"
|
|
423
|
+
rsp = msgs.Rsp[models.ListEnvironmentEventsData]()
|
|
424
|
+
await client.base.get_async(ctx, path, req, rsp)
|
|
425
|
+
return rsp.get_typed_data()
|
|
426
|
+
|
|
427
|
+
|
|
308
428
|
def list_prewarm_pool_events(ctx: Optional[dict], req: models.ListPrewarmPoolEventsReq) -> models.ListPrewarmPoolEventsData:
|
|
309
429
|
"""预热事件
|
|
310
430
|
查询指定沙盒环境的预热池事件历史。
|
|
@@ -4,6 +4,11 @@ from __future__ import annotations
|
|
|
4
4
|
from dataclasses import dataclass, field
|
|
5
5
|
from typing import Optional, List, Dict
|
|
6
6
|
|
|
7
|
+
# Action 枚举值
|
|
8
|
+
class Action:
|
|
9
|
+
ActionAllow = "allow"
|
|
10
|
+
ActionDeny = "deny"
|
|
11
|
+
|
|
7
12
|
# ActualMode 枚举值
|
|
8
13
|
class ActualMode:
|
|
9
14
|
ActualModePool = "pool"
|
|
@@ -14,6 +19,11 @@ class AllocationMode:
|
|
|
14
19
|
AllocationModePrewarm = "prewarm"
|
|
15
20
|
AllocationModeManual = "manual"
|
|
16
21
|
|
|
22
|
+
# DefaultAction 枚举值
|
|
23
|
+
class DefaultAction:
|
|
24
|
+
DefaultActionAllow = "allow"
|
|
25
|
+
DefaultActionDeny = "deny"
|
|
26
|
+
|
|
17
27
|
# Kind 枚举值
|
|
18
28
|
class Kind:
|
|
19
29
|
KindPool = "Pool"
|
|
@@ -137,11 +147,31 @@ class CreateSandboxReq:
|
|
|
137
147
|
Image: Optional[CreateSandboxReqImageInput] = None # Image 直接创建实例时使用的镜像配置;可使用 Uri,也可使用 Ref 并按需指定 Source 由 adapter 解析 registry host;Ref 和 Uri 必须二选一。 json:"Image,omitempty"
|
|
138
148
|
LifecycleMinutes: Optional[int] = None # LifecycleMinutes 实例生命周期,单位分钟。 json:"LifecycleMinutes,omitempty"
|
|
139
149
|
Name: Optional[str] = None # Name 沙盒实例名称。 json:"Name,omitempty"
|
|
150
|
+
NetworkPolicy: Optional[CreateSandboxReqNetworkPolicy] = None # NetworkPolicy 实例出站策略;传入(包括空对象)会冷启动,不使用预热实例。省略则不启用。 json:"NetworkPolicy,omitempty"
|
|
140
151
|
Ports: Optional[List[CreateSandboxReqPort]] = None # Ports 实例端口暴露配置。 json:"Ports,omitempty"
|
|
141
152
|
RequestTimeoutSeconds: Optional[int] = None # RequestTimeoutSeconds 单次请求超时时间,单位秒。 json:"RequestTimeoutSeconds,omitempty"
|
|
142
153
|
Resources: Optional[CreateSandboxReqResources] = None # Resources 直接创建实例时使用的资源规格。 json:"Resources,omitempty"
|
|
143
154
|
Volumes: Optional[List[CreateSandboxReqVolume]] = None # Volumes 实例挂载卷配置。 json:"Volumes,omitempty"
|
|
144
155
|
|
|
156
|
+
@dataclass
|
|
157
|
+
class EgressAlwaysRules:
|
|
158
|
+
Allow: Optional[List[NetworkRule]] = None # json:"Allow,omitempty"
|
|
159
|
+
Deny: Optional[List[NetworkRule]] = None # json:"Deny,omitempty"
|
|
160
|
+
LogSkip: Optional[List[EgressLogSkipRule]] = None # json:"LogSkip,omitempty"
|
|
161
|
+
|
|
162
|
+
@dataclass
|
|
163
|
+
class EgressLogSkipRule:
|
|
164
|
+
Target: Optional[str] = "" # json:"Target,omitempty"
|
|
165
|
+
|
|
166
|
+
@dataclass
|
|
167
|
+
class EnvironmentEvent:
|
|
168
|
+
Kind: Optional[str] = "" # Kind 关联 Kubernetes 对象类型。 json:"Kind,omitempty"
|
|
169
|
+
Level: Optional[str] = "" # Level Kubernetes Event 类型。 json:"Level,omitempty"
|
|
170
|
+
Message: Optional[str] = "" # Message 事件详情。 json:"Message,omitempty"
|
|
171
|
+
Name: Optional[str] = "" # Name 关联 Kubernetes 对象名称。 json:"Name,omitempty"
|
|
172
|
+
Reason: Optional[str] = "" # Reason 事件原因。 json:"Reason,omitempty"
|
|
173
|
+
Time: Optional[str] = "" # Time 事件发生时间。 json:"Time,omitempty"
|
|
174
|
+
|
|
145
175
|
@dataclass
|
|
146
176
|
class EnvironmentInstanceCounts:
|
|
147
177
|
Allocated: Optional[int] = 0 # Allocated 已分配实例数。 json:"Allocated,omitempty"
|
|
@@ -198,6 +228,13 @@ class GetInstanceStateStatsData:
|
|
|
198
228
|
Prewarm: Optional[ModeInstanceStateCluster] = None # Prewarm 预热实例状态统计。 json:"Prewarm,omitempty"
|
|
199
229
|
UsedPercentage: Optional[int] = 0 # UsedPercentage 容量使用百分比。 json:"UsedPercentage,omitempty"
|
|
200
230
|
|
|
231
|
+
@dataclass
|
|
232
|
+
class ListEnvironmentEventsData:
|
|
233
|
+
Items: Optional[List[EnvironmentEvent]] = None # Items 沙盒环境事件列表。 json:"Items,omitempty"
|
|
234
|
+
Limit: Optional[int] = 0 # Limit 本次响应对应的返回条数。 json:"Limit,omitempty"
|
|
235
|
+
Offset: Optional[int] = 0 # Offset 本次响应对应的偏移量。 json:"Offset,omitempty"
|
|
236
|
+
Total: Optional[int] = 0 # Total 符合条件的事件总数。 json:"Total,omitempty"
|
|
237
|
+
|
|
201
238
|
@dataclass
|
|
202
239
|
class ListPrewarmPoolEventsData:
|
|
203
240
|
Items: Optional[List[PrewarmPoolEvent]] = None # Items 预热池事件列表。 json:"Items,omitempty"
|
|
@@ -238,6 +275,38 @@ class ModeInstanceStateCluster:
|
|
|
238
275
|
Terminating: Optional[int] = 0 # Terminating 终止中的实例数。 json:"Terminating,omitempty"
|
|
239
276
|
Total: Optional[int] = 0 # Total 当前模式下实例总数。 json:"Total,omitempty"
|
|
240
277
|
|
|
278
|
+
@dataclass
|
|
279
|
+
class NetworkPolicy:
|
|
280
|
+
DefaultAction: Optional[str] = None # SDK常量: DefaultActionAllow, DefaultActionDeny json:"DefaultAction,omitempty"
|
|
281
|
+
Egress: Optional[List[NetworkRule]] = None # json:"Egress,omitempty"
|
|
282
|
+
|
|
283
|
+
@dataclass
|
|
284
|
+
class CreateSandboxReqNetworkPolicy:
|
|
285
|
+
DefaultAction: Optional[str] = None # SDK常量: DefaultActionAllow, DefaultActionDeny json:"DefaultAction,omitempty"
|
|
286
|
+
Egress: Optional[List[CreateSandboxReqNetworkRule]] = None # json:"Egress,omitempty"
|
|
287
|
+
|
|
288
|
+
@dataclass
|
|
289
|
+
class NetworkRule:
|
|
290
|
+
Action: str # SDK常量: ActionAllow, ActionDeny json:"Action"
|
|
291
|
+
Target: str # json:"Target"
|
|
292
|
+
|
|
293
|
+
@dataclass
|
|
294
|
+
class CreateSandboxReqNetworkRule:
|
|
295
|
+
Action: str # SDK常量: ActionAllow, ActionDeny json:"Action"
|
|
296
|
+
Target: str # json:"Target"
|
|
297
|
+
|
|
298
|
+
@dataclass
|
|
299
|
+
class NodeCapacitySummary:
|
|
300
|
+
TotalCpuCores: Optional[float] = 0.0 # TotalCpuCores 可调度节点 allocatable CPU 合计,单位核。 json:"TotalCpuCores,omitempty"
|
|
301
|
+
TotalMemGi: Optional[float] = 0.0 # TotalMemGi 可调度节点 allocatable 内存合计,单位 Gi。 json:"TotalMemGi,omitempty"
|
|
302
|
+
TotalPods: Optional[int] = 0 # TotalPods 可调度节点 allocatable Pod 数合计。 json:"TotalPods,omitempty"
|
|
303
|
+
UsableCpuCores: Optional[float] = 0.0 # UsableCpuCores 可调度节点真实剩余 CPU,单位核。 json:"UsableCpuCores,omitempty"
|
|
304
|
+
UsableMemGi: Optional[float] = 0.0 # UsableMemGi 可调度节点真实剩余内存,单位 Gi。 json:"UsableMemGi,omitempty"
|
|
305
|
+
UsablePods: Optional[int] = 0 # UsablePods 可调度节点真实剩余 Pod 数。 json:"UsablePods,omitempty"
|
|
306
|
+
UsedCpuCores: Optional[float] = 0.0 # UsedCpuCores 可调度节点已用 CPU,单位核。 json:"UsedCpuCores,omitempty"
|
|
307
|
+
UsedMemGi: Optional[float] = 0.0 # UsedMemGi 可调度节点已用内存,单位 Gi。 json:"UsedMemGi,omitempty"
|
|
308
|
+
UsedPods: Optional[int] = 0 # UsedPods 可调度节点已用 Pod 数。 json:"UsedPods,omitempty"
|
|
309
|
+
|
|
241
310
|
@dataclass
|
|
242
311
|
class Port:
|
|
243
312
|
ContainerPort: int # ContainerPort 容器内端口。 json:"ContainerPort"
|
|
@@ -299,6 +368,7 @@ class GetResourceStatsData:
|
|
|
299
368
|
CpuUsedCores: Optional[float] = 0.0 # CpuUsedCores 已使用 CPU 核数。 json:"CpuUsedCores,omitempty"
|
|
300
369
|
MemoryQuotaGi: Optional[float] = 0.0 # MemoryQuotaGi 内存配额,单位 Gi。 json:"MemoryQuotaGi,omitempty"
|
|
301
370
|
MemoryUsedGi: Optional[float] = 0.0 # MemoryUsedGi 已使用内存,单位 Gi。 json:"MemoryUsedGi,omitempty"
|
|
371
|
+
Node: Optional[NodeCapacitySummary] = None # Node 集群沙盒节点池容量;旧版后端未提供该数据时省略。 json:"Node,omitempty"
|
|
302
372
|
|
|
303
373
|
@dataclass
|
|
304
374
|
class Resources:
|
|
@@ -315,6 +385,14 @@ class CreateSandboxEnvironmentReqResources:
|
|
|
315
385
|
Cpu: str # Cpu CPU 资源规格,例如 1 或 8。 json:"Cpu"
|
|
316
386
|
Memory: str # Memory 内存资源规格,例如 2Gi 或 8Gi。 json:"Memory"
|
|
317
387
|
|
|
388
|
+
@dataclass
|
|
389
|
+
class GetSandboxEgressPolicyData:
|
|
390
|
+
AlwaysRules: Optional[EgressAlwaysRules] = None # json:"AlwaysRules,omitempty"
|
|
391
|
+
EnforcementMode: Optional[str] = "" # json:"EnforcementMode,omitempty"
|
|
392
|
+
Mode: Optional[str] = "" # json:"Mode,omitempty"
|
|
393
|
+
Policy: Optional[NetworkPolicy] = None # json:"Policy,omitempty"
|
|
394
|
+
Status: Optional[str] = "" # json:"Status,omitempty"
|
|
395
|
+
|
|
318
396
|
@dataclass
|
|
319
397
|
class SandboxEndpointInfo:
|
|
320
398
|
ExternalUrl: Optional[str] = "" # ExternalUrl 外部访问地址,可用性取决于网关和数据面配置。 json:"ExternalUrl,omitempty"
|
|
@@ -378,6 +456,7 @@ class GetSandboxData:
|
|
|
378
456
|
CreatedAt: Optional[str] = "" # CreatedAt 创建时间,RFC3339 格式。 json:"CreatedAt,omitempty"
|
|
379
457
|
CreatorId: Optional[str] = "" # CreatorId 创建人 ID。 json:"CreatorId,omitempty"
|
|
380
458
|
CreatorName: Optional[str] = "" # CreatorName 创建人名称。 json:"CreatorName,omitempty"
|
|
459
|
+
EgressEnabled: Optional[bool] = False # EgressEnabled 是否注入出站管控 sidecar;当前规则通过 GetSandboxEgressPolicy 查询。 json:"EgressEnabled,omitempty"
|
|
381
460
|
Endpoints: Optional[SandboxEndpoints] = None # Endpoints 沙盒端口访问入口信息。 json:"Endpoints,omitempty"
|
|
382
461
|
Entrypoint: Optional[List[str]] = None # Entrypoint 实例启动命令。 json:"Entrypoint,omitempty"
|
|
383
462
|
Env: Optional[Dict[str, str]] = None # Env 实例环境变量。 json:"Env,omitempty"
|
|
@@ -401,6 +480,36 @@ class GetSandboxData:
|
|
|
401
480
|
Type: Optional[str] = None # SDK常量: TypeCode, TypeBrowser, TypeDesktop, TypeCustom json:"Type,omitempty"
|
|
402
481
|
Volumes: Optional[List[Volume]] = None # Volumes 实例挂载卷配置。 json:"Volumes,omitempty"
|
|
403
482
|
|
|
483
|
+
@dataclass
|
|
484
|
+
class SandboxLogEntry:
|
|
485
|
+
Line: Optional[str] = "" # Line 日志正文。 json:"Line,omitempty"
|
|
486
|
+
Timestamp: Optional[str] = "" # Timestamp 日志时间戳,RFC3339 UTC;按日志实际精度保留小数秒。 json:"Timestamp,omitempty"
|
|
487
|
+
|
|
488
|
+
@dataclass
|
|
489
|
+
class SandboxLogVolumeDataPoint:
|
|
490
|
+
Count: Optional[str] = "" # Count 该时间点的日志量;使用字符串避免数值精度损失。 json:"Count,omitempty"
|
|
491
|
+
Timestamp: Optional[str] = "" # Timestamp 聚合时间点,秒级 RFC3339 UTC。 json:"Timestamp,omitempty"
|
|
492
|
+
|
|
493
|
+
@dataclass
|
|
494
|
+
class SandboxLogVolumeMetadata:
|
|
495
|
+
Step: Optional[int] = 0 # Step 聚合步长,单位秒。 json:"Step,omitempty"
|
|
496
|
+
|
|
497
|
+
@dataclass
|
|
498
|
+
class SandboxLogVolumeResult:
|
|
499
|
+
Metric: Optional[Dict[str, str]] = None # Metric Loki 聚合结果的标签集合。 json:"Metric,omitempty"
|
|
500
|
+
Values: Optional[List[SandboxLogVolumeDataPoint]] = None # Values 日志量时序数据点。 json:"Values,omitempty"
|
|
501
|
+
|
|
502
|
+
@dataclass
|
|
503
|
+
class GetSandboxLogsQueryRangeData:
|
|
504
|
+
Entries: Optional[List[SandboxLogEntry]] = None # Entries 时间范围内的日志记录。 json:"Entries,omitempty"
|
|
505
|
+
SandboxId: Optional[str] = "" # SandboxId 沙盒实例 ID。 json:"SandboxId,omitempty"
|
|
506
|
+
|
|
507
|
+
@dataclass
|
|
508
|
+
class GetSandboxLogsVolumeRangeData:
|
|
509
|
+
Metadata: Optional[SandboxLogVolumeMetadata] = None # Metadata 查询元数据。 json:"Metadata,omitempty"
|
|
510
|
+
Result: Optional[List[SandboxLogVolumeResult]] = None # Result 日志量时序结果。 json:"Result,omitempty"
|
|
511
|
+
SandboxId: Optional[str] = "" # SandboxId 沙盒实例 ID。 json:"SandboxId,omitempty"
|
|
512
|
+
|
|
404
513
|
@dataclass
|
|
405
514
|
class StateStatus:
|
|
406
515
|
LastTransitionAt: Optional[str] = "" # LastTransitionAt 最近一次状态变更时间,RFC3339 格式。 json:"LastTransitionAt,omitempty"
|
|
@@ -522,11 +631,52 @@ class GetSandboxReq:
|
|
|
522
631
|
ProjectName: str # 项目 namespace query:"ProjectName"
|
|
523
632
|
SandboxId: str # 沙盒实例 ID query:"SandboxId"
|
|
524
633
|
|
|
634
|
+
@dataclass
|
|
635
|
+
class GetSandboxEgressPolicyReq:
|
|
636
|
+
ProjectName: str # 项目 namespace query:"ProjectName"
|
|
637
|
+
SandboxId: str # 沙盒实例 ID query:"SandboxId"
|
|
638
|
+
|
|
525
639
|
@dataclass
|
|
526
640
|
class GetSandboxEnvironmentReq:
|
|
527
641
|
EnvironmentId: str # 沙盒环境 ID query:"EnvironmentId"
|
|
528
642
|
ProjectName: str # 项目 namespace query:"ProjectName"
|
|
529
643
|
|
|
644
|
+
@dataclass
|
|
645
|
+
class GetSandboxLogsQueryRangeReq:
|
|
646
|
+
ProjectName: str # 项目 namespace query:"ProjectName"
|
|
647
|
+
SandboxId: str # 沙盒实例 ID query:"SandboxId"
|
|
648
|
+
StartTime: int # 查询起始时间,Unix 秒整数 query:"StartTime"
|
|
649
|
+
CaseSensitive: Optional[bool] = None # 关键词匹配是否区分大小写 query:"CaseSensitive,omitempty"
|
|
650
|
+
Cluster: Optional[str] = None # Loki 集群标签;不传时使用 brainbox 默认配置 query:"Cluster,omitempty"
|
|
651
|
+
Direction: Optional[str] = None # 查询方向 query:"Direction,omitempty"
|
|
652
|
+
EndTime: Optional[int] = None # 查询结束时间,Unix 秒整数;不传时使用 brainbox 当前时间 query:"EndTime,omitempty"
|
|
653
|
+
Keyword: Optional[str] = None # 日志关键词 query:"Keyword,omitempty"
|
|
654
|
+
Limit: Optional[int] = None # 最大返回条数 query:"Limit,omitempty"
|
|
655
|
+
Regex: Optional[bool] = None # 是否将 Keyword 作为正则表达式 query:"Regex,omitempty"
|
|
656
|
+
|
|
657
|
+
@dataclass
|
|
658
|
+
class GetSandboxLogsVolumeRangeReq:
|
|
659
|
+
ProjectName: str # 项目 namespace query:"ProjectName"
|
|
660
|
+
SandboxId: str # 沙盒实例 ID query:"SandboxId"
|
|
661
|
+
StartTime: int # 查询起始时间,Unix 秒整数 query:"StartTime"
|
|
662
|
+
CaseSensitive: Optional[bool] = None # 关键词匹配是否区分大小写 query:"CaseSensitive,omitempty"
|
|
663
|
+
Cluster: Optional[str] = None # Loki 集群标签;不传时使用 brainbox 默认配置 query:"Cluster,omitempty"
|
|
664
|
+
EndTime: Optional[int] = None # 查询结束时间,Unix 秒整数;不传时使用 brainbox 当前时间 query:"EndTime,omitempty"
|
|
665
|
+
Keyword: Optional[str] = None # 日志关键词 query:"Keyword,omitempty"
|
|
666
|
+
Limit: Optional[int] = None # 最大返回条数 query:"Limit,omitempty"
|
|
667
|
+
Regex: Optional[bool] = None # 是否将 Keyword 作为正则表达式 query:"Regex,omitempty"
|
|
668
|
+
Step: Optional[str] = None # 聚合步长,Go duration 格式;不传时由 brainbox 自动计算 query:"Step,omitempty"
|
|
669
|
+
|
|
670
|
+
@dataclass
|
|
671
|
+
class ListEnvironmentEventsReq:
|
|
672
|
+
EnvironmentId: str # 沙盒环境 ID query:"EnvironmentId"
|
|
673
|
+
ProjectName: str # 项目 namespace query:"ProjectName"
|
|
674
|
+
Kind: Optional[str] = None # Kubernetes 对象类型 query:"Kind,omitempty"
|
|
675
|
+
Level: Optional[str] = None # Kubernetes Event 类型 SDK常量: LevelNormal, LevelWarning query:"Level,omitempty"
|
|
676
|
+
Limit: Optional[int] = None # 返回条数 query:"Limit,omitempty"
|
|
677
|
+
Offset: Optional[int] = None # 偏移量 query:"Offset,omitempty"
|
|
678
|
+
Since: Optional[str] = None # RFC3339 起始时间;不传时使用 brainbox 默认时间窗 query:"Since,omitempty"
|
|
679
|
+
|
|
530
680
|
@dataclass
|
|
531
681
|
class ListPrewarmPoolEventsReq:
|
|
532
682
|
EnvironmentId: str # 沙盒环境 ID query:"EnvironmentId"
|
|
@@ -71,7 +71,9 @@ async def get_workspace_async(ctx: Optional[dict], req: models.GetWorkspaceReq)
|
|
|
71
71
|
|
|
72
72
|
def create_workspace(ctx: Optional[dict], req: models.CreateWorkspaceReq) -> models.CreateWorkspaceData:
|
|
73
73
|
"""创建开发机
|
|
74
|
-
|
|
74
|
+
创建前会校验租户状态与 SKU 余额,可能返回 1006012、1006013、1006014。
|
|
75
|
+
|
|
76
|
+
支持两种模式:
|
|
75
77
|
- **配额组模式**(默认):设置 QuotaGroup + RuntimeMode + CPU/Memory/GPU
|
|
76
78
|
- **SKU 模式**:设置 SkuId + SkuPublic 或 SkuPrivate(及 SkuTenant/SkuProject),不需要设置 RuntimeMode、QuotaGroup、CPU/Memory/GPU
|
|
77
79
|
|
|
@@ -93,7 +95,9 @@ def create_workspace(ctx: Optional[dict], req: models.CreateWorkspaceReq) -> mod
|
|
|
93
95
|
|
|
94
96
|
async def create_workspace_async(ctx: Optional[dict], req: models.CreateWorkspaceReq) -> models.CreateWorkspaceData:
|
|
95
97
|
"""创建开发机(异步)
|
|
96
|
-
|
|
98
|
+
创建前会校验租户状态与 SKU 余额,可能返回 1006012、1006013、1006014。
|
|
99
|
+
|
|
100
|
+
支持两种模式:
|
|
97
101
|
- **配额组模式**(默认):设置 QuotaGroup + RuntimeMode + CPU/Memory/GPU
|
|
98
102
|
- **SKU 模式**:设置 SkuId + SkuPublic 或 SkuPrivate(及 SkuTenant/SkuProject),不需要设置 RuntimeMode、QuotaGroup、CPU/Memory/GPU
|
|
99
103
|
|
|
@@ -143,7 +147,7 @@ async def delete_workspace_async(ctx: Optional[dict], req: models.DeleteWorkspac
|
|
|
143
147
|
|
|
144
148
|
def start_workspace(ctx: Optional[dict], req: models.StartWorkspaceReq):
|
|
145
149
|
"""启动开发机
|
|
146
|
-
|
|
150
|
+
启动已停止的开发机。启动前会校验租户状态与 SKU 余额,可能返回 1006012、1006013、1006014。
|
|
147
151
|
POST /workspace/v1alpha1/StartWorkspace
|
|
148
152
|
Action: StartWorkspace
|
|
149
153
|
|
|
@@ -157,7 +161,7 @@ def start_workspace(ctx: Optional[dict], req: models.StartWorkspaceReq):
|
|
|
157
161
|
|
|
158
162
|
async def start_workspace_async(ctx: Optional[dict], req: models.StartWorkspaceReq):
|
|
159
163
|
"""启动开发机(异步)
|
|
160
|
-
|
|
164
|
+
启动已停止的开发机。启动前会校验租户状态与 SKU 余额,可能返回 1006012、1006013、1006014。
|
|
161
165
|
POST /workspace/v1alpha1/StartWorkspace
|
|
162
166
|
Action: StartWorkspace
|
|
163
167
|
|
|
@@ -416,7 +420,7 @@ def delete_process(ctx: Optional[dict], req: models.DeleteProcessReq):
|
|
|
416
420
|
"""
|
|
417
421
|
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/DeleteProcess"
|
|
418
422
|
rsp = msgs.Rsp[None].empty()
|
|
419
|
-
client.base.post(ctx, path,
|
|
423
|
+
client.base.post(ctx, path, req, rsp)
|
|
420
424
|
|
|
421
425
|
|
|
422
426
|
async def delete_process_async(ctx: Optional[dict], req: models.DeleteProcessReq):
|
|
@@ -430,7 +434,7 @@ async def delete_process_async(ctx: Optional[dict], req: models.DeleteProcessReq
|
|
|
430
434
|
"""
|
|
431
435
|
path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/DeleteProcess"
|
|
432
436
|
rsp = msgs.Rsp[None].empty()
|
|
433
|
-
await client.base.post_async(ctx, path,
|
|
437
|
+
await client.base.post_async(ctx, path, req, rsp)
|
|
434
438
|
|
|
435
439
|
|
|
436
440
|
def get_process_pids(ctx: Optional[dict], req: models.GetProcessPidsReq) -> models.GetProcessPidsData:
|
|
@@ -581,7 +585,7 @@ async def get_release_exclude_patterns_async(ctx: Optional[dict], req: models.Ge
|
|
|
581
585
|
|
|
582
586
|
def release_process(ctx: Optional[dict], req: models.ReleaseProcessReq):
|
|
583
587
|
"""制作镜像
|
|
584
|
-
|
|
588
|
+
将指定进程的当前环境制作为容器镜像。操作者用户 ID 从请求头 X-Kb-Subject 获取(网关鉴权后注入,必填),用于记录提交镜像的操作者信息,缺失时返回参数错误
|
|
585
589
|
POST /workspace/v1alpha1/ReleaseProcess
|
|
586
590
|
Action: ReleaseProcess
|
|
587
591
|
|
|
@@ -595,7 +599,7 @@ def release_process(ctx: Optional[dict], req: models.ReleaseProcessReq):
|
|
|
595
599
|
|
|
596
600
|
async def release_process_async(ctx: Optional[dict], req: models.ReleaseProcessReq):
|
|
597
601
|
"""制作镜像(异步)
|
|
598
|
-
|
|
602
|
+
将指定进程的当前环境制作为容器镜像。操作者用户 ID 从请求头 X-Kb-Subject 获取(网关鉴权后注入,必填),用于记录提交镜像的操作者信息,缺失时返回参数错误
|
|
599
603
|
POST /workspace/v1alpha1/ReleaseProcess
|
|
600
604
|
Action: ReleaseProcess
|
|
601
605
|
|
|
@@ -51,6 +51,8 @@ class BatchStopWorkspacesData:
|
|
|
51
51
|
@dataclass
|
|
52
52
|
class CommitHistoryResponse:
|
|
53
53
|
CommitTime: Optional[str] = "" # 制作时间(RFC3339 格式) json:"CommitTime,omitempty"
|
|
54
|
+
Creator: Optional[str] = "" # 制作镜像的操作者用户名 json:"Creator,omitempty"
|
|
55
|
+
CreatorId: Optional[str] = "" # 制作镜像的操作者用户 ID json:"CreatorId,omitempty"
|
|
54
56
|
Description: Optional[str] = "" # 描述 json:"Description,omitempty"
|
|
55
57
|
ErrorMsg: Optional[str] = "" # 错误信息 json:"ErrorMsg,omitempty"
|
|
56
58
|
Image: Optional[str] = "" # 镜像地址 json:"Image,omitempty"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/requires.txt
RENAMED
|
File without changes
|
{yicloud_sdk_python-0.4.0 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/top_level.txt
RENAMED
|
File without changes
|