yicloud-sdk-python 0.5.1__tar.gz → 0.5.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.
Files changed (97) hide show
  1. {yicloud_sdk_python-0.5.1/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.5.2}/PKG-INFO +1 -1
  2. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/pyproject.toml +1 -1
  3. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/version.py +1 -1
  4. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/__init__.py +1 -1
  5. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/__init__.py +1 -0
  6. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/models.py +8 -0
  7. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/__init__.py +5 -0
  8. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/actions.py +34 -0
  9. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/models.py +17 -0
  10. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/__init__.py +5 -0
  11. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/actions.py +30 -0
  12. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/models.py +18 -2
  13. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/models.py +8 -1
  14. yicloud_sdk_python-0.5.2/yicloud/services/monitor/__init__.py +23 -0
  15. yicloud_sdk_python-0.5.2/yicloud/services/monitor/actions.py +70 -0
  16. yicloud_sdk_python-0.5.2/yicloud/services/monitor/client.py +21 -0
  17. yicloud_sdk_python-0.5.2/yicloud/services/monitor/models.py +52 -0
  18. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/__init__.py +1 -0
  19. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/models.py +9 -0
  20. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/models.py +1 -0
  21. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2/yicloud_sdk_python.egg-info}/PKG-INFO +1 -1
  22. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/SOURCES.txt +4 -0
  23. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/LICENSE +0 -0
  24. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/README.md +0 -0
  25. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/setup.cfg +0 -0
  26. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/__init__.py +0 -0
  27. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/auth/__init__.py +0 -0
  28. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/auth/credential.py +0 -0
  29. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/auth/sign.py +0 -0
  30. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/client.py +0 -0
  31. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/config.py +0 -0
  32. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/errs/__init__.py +0 -0
  33. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/log/__init__.py +0 -0
  34. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/log/logger.py +0 -0
  35. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/log/std.py +0 -0
  36. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/msgs/__init__.py +0 -0
  37. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/__init__.py +0 -0
  38. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/helps.py +0 -0
  39. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/retry/__init__.py +0 -0
  40. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/base/utils/retry/retry.py +0 -0
  41. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/__init__.py +0 -0
  42. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/__init__.py +0 -0
  43. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/actions.py +0 -0
  44. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/client.py +0 -0
  45. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/bc/models.py +0 -0
  46. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/__init__.py +0 -0
  47. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/actions.py +0 -0
  48. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/client.py +0 -0
  49. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/dataset/models.py +0 -0
  50. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/actions.py +0 -0
  51. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/fs/client.py +0 -0
  52. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/__init__.py +0 -0
  53. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/actions.py +0 -0
  54. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/client.py +0 -0
  55. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/iam/models.py +0 -0
  56. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/__init__.py +0 -0
  57. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/actions.py +0 -0
  58. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/client.py +0 -0
  59. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/inferset/models.py +0 -0
  60. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/job/client.py +0 -0
  61. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/mc/client.py +0 -0
  62. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/__init__.py +0 -0
  63. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/actions.py +0 -0
  64. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/modelrepo/client.py +0 -0
  65. {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/__init__.py +0 -0
  66. {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/actions.py +0 -0
  67. {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/client.py +0 -0
  68. {yicloud_sdk_python-0.5.1/yicloud/services/monitor → yicloud_sdk_python-0.5.2/yicloud/services/monitor/v1alpha1}/models.py +0 -0
  69. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/actions.py +0 -0
  70. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/oss/client.py +0 -0
  71. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/__init__.py +0 -0
  72. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/actions.py +0 -0
  73. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/client.py +0 -0
  74. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/ray/models.py +0 -0
  75. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/__init__.py +0 -0
  76. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/actions.py +0 -0
  77. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/client.py +0 -0
  78. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/registry/models.py +0 -0
  79. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/__init__.py +0 -0
  80. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/actions.py +0 -0
  81. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/client.py +0 -0
  82. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/sandbox/models.py +0 -0
  83. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/__init__.py +0 -0
  84. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/actions.py +0 -0
  85. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/client.py +0 -0
  86. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/service/models.py +0 -0
  87. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/__init__.py +0 -0
  88. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/actions.py +0 -0
  89. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/client.py +0 -0
  90. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/volume/models.py +0 -0
  91. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/__init__.py +0 -0
  92. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/actions.py +0 -0
  93. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud/services/workspace/client.py +0 -0
  94. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
  95. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
  96. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/requires.txt +0 -0
  97. {yicloud_sdk_python-0.5.1 → yicloud_sdk_python-0.5.2}/yicloud_sdk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yicloud-sdk-python
3
- Version: 0.5.1
3
+ Version: 0.5.2
4
4
  Summary: YiCloud OpenAPI SDK for Python
5
5
  Author: YiCloud
6
6
  Project-URL: Homepage, https://gitee.com/yicloud-team/openapi-sdk-python
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "yicloud-sdk-python"
7
- version = "0.5.1"
7
+ version = "0.5.2"
8
8
  description = "YiCloud OpenAPI SDK for Python"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
@@ -1,4 +1,4 @@
1
- __version__ = "0.5.1"
1
+ __version__ = "0.5.2"
2
2
 
3
3
 
4
4
  def Version() -> str:
@@ -4,4 +4,4 @@ YiCloud Python SDK
4
4
  A Python SDK for the YiCloud OpenAPI service.
5
5
  """
6
6
 
7
- __version__ = "0.5.1"
7
+ __version__ = "0.5.2"
@@ -39,6 +39,7 @@ from .models import (
39
39
  GetFileInfoData,
40
40
  GetFilesetData,
41
41
  FilesetItem,
42
+ OwnerTransfer,
42
43
  ListDirData,
43
44
  ListFilesetsWithQuotaInfoData,
44
45
  SetFilesetQuotaReq,
@@ -44,6 +44,7 @@ class BucketResponse:
44
44
  Fs: Optional[str] = "" # 文件系统 json:"Fs,omitempty"
45
45
  FsCluster: Optional[str] = "" # 文件系统集群 json:"FsCluster,omitempty"
46
46
  Owner: Optional[str] = "" # 文件集所有者 json:"Owner,omitempty"
47
+ OwnerTransfer: Optional[List[OwnerTransfer]] = None # 所有权转移记录 json:"OwnerTransfer,omitempty"
47
48
  Permission: Optional[str] = "" # 文件集权限 json:"Permission,omitempty"
48
49
  Size: Optional[str] = "" # 已使用容量(字节) json:"Size,omitempty"
49
50
  State: Optional[str] = "" # 文件集状态 json:"State,omitempty"
@@ -97,6 +98,13 @@ class FilesetItem:
97
98
  BucketResponse: Optional[BucketResponse] = None # 文件集详情 json:"BucketResponse,omitempty"
98
99
  ID: Optional[str] = "" # 文件集ID json:"ID,omitempty"
99
100
 
101
+ @dataclass
102
+ class OwnerTransfer:
103
+ OperateTime: Optional[str] = "" # 操作时间(Unix 时间戳,秒) json:"OperateTime,omitempty"
104
+ Operator: Optional[str] = "" # 操作人 json:"Operator,omitempty"
105
+ Source: Optional[str] = "" # 原所有者 json:"Source,omitempty"
106
+ Target: Optional[str] = "" # 目标所有者 json:"Target,omitempty"
107
+
100
108
  @dataclass
101
109
  class ListDirData:
102
110
  Files: Optional[List[GetFileInfoData]] = None # 文件/目录列表 json:"Files,omitempty"
@@ -12,6 +12,7 @@ from .actions import (
12
12
  edit_job,
13
13
  batch_delete_jobs,
14
14
  batch_stop_jobs,
15
+ batch_stop_self_heal_jobs,
15
16
  stop_job,
16
17
  stop_replica,
17
18
  get_logs,
@@ -26,6 +27,7 @@ from .actions import (
26
27
  edit_job_async,
27
28
  batch_delete_jobs_async,
28
29
  batch_stop_jobs_async,
30
+ batch_stop_self_heal_jobs_async,
29
31
  stop_job_async,
30
32
  stop_replica_async,
31
33
  get_logs_async,
@@ -50,6 +52,8 @@ from .models import (
50
52
  BatchDeleteJobsReq,
51
53
  BatchStopJobsReq,
52
54
  BatchStopJobsData,
55
+ BatchStopSelfHealJobsReq,
56
+ BatchStopSelfHealJobsData,
53
57
  CreateJobReq,
54
58
  CreateJobData,
55
59
  EditJobReq,
@@ -72,6 +76,7 @@ from .models import (
72
76
  GetJobReplicaData,
73
77
  BatchDeleteJobsReqResourceIdentifier,
74
78
  BatchStopJobsReqResourceIdentifier,
79
+ BatchStopSelfHealJobsReqResourceIdentifier,
75
80
  Result,
76
81
  RootfsSourceResponse,
77
82
  S3Config,
@@ -223,6 +223,40 @@ 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 batch_stop_self_heal_jobs(ctx: Optional[dict], req: models.BatchStopSelfHealJobsReq) -> models.BatchStopSelfHealJobsData:
227
+ """批量中止 Job 自愈
228
+ 批量中止指定 Job 列表的自愈(不打断任务本身运行)。
229
+ 服务端为每个 Job 写入 self-health.brainpp.cn/stop 注解;
230
+ 控制器(maintain-ctler)识别后取消待定重拉并清理本轮自愈占位。
231
+ POST /job/v1alpha1/BatchStopSelfHealJobs
232
+ Action: BatchStopSelfHealJobs
233
+
234
+ Returns BatchStopSelfHealJobsData on success.
235
+ Raises YiCloudException on error.
236
+ """
237
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/BatchStopSelfHealJobs"
238
+ rsp = msgs.Rsp[models.BatchStopSelfHealJobsData]()
239
+ client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
240
+ return rsp.get_typed_data()
241
+
242
+
243
+ async def batch_stop_self_heal_jobs_async(ctx: Optional[dict], req: models.BatchStopSelfHealJobsReq) -> models.BatchStopSelfHealJobsData:
244
+ """批量中止 Job 自愈(异步)
245
+ 批量中止指定 Job 列表的自愈(不打断任务本身运行)。
246
+ 服务端为每个 Job 写入 self-health.brainpp.cn/stop 注解;
247
+ 控制器(maintain-ctler)识别后取消待定重拉并清理本轮自愈占位。
248
+ POST /job/v1alpha1/BatchStopSelfHealJobs
249
+ Action: BatchStopSelfHealJobs
250
+
251
+ Returns BatchStopSelfHealJobsData on success.
252
+ Raises YiCloudException on error.
253
+ """
254
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/BatchStopSelfHealJobs"
255
+ rsp = msgs.Rsp[models.BatchStopSelfHealJobsData]()
256
+ await client.base.post_async(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
257
+ return rsp.get_typed_data()
258
+
259
+
226
260
  def stop_job(ctx: Optional[dict], req: models.StopJobReq):
227
261
  """停止 Job
228
262
  停止运行中的 Job
@@ -85,6 +85,17 @@ class BatchStopJobsData:
85
85
  Message: Optional[str] = "" # 操作结果消息 json:"Message,omitempty"
86
86
  Reasons: Optional[Dict[str, str]] = None # 失败原因映射,key 为 Job ID,value 为失败原因 json:"Reasons,omitempty"
87
87
 
88
+ @dataclass
89
+ class BatchStopSelfHealJobsReq:
90
+ Resources: List[BatchStopSelfHealJobsReqResourceIdentifier] # 待中止自愈的 Job 列表 json:"Resources"
91
+ ZoneId: Optional[str] = None # 可用区(AZ),如 cn-shanghai-b;可选,当前服务端暂不处理。RegionId 由网关通过 X-OGW-REGION-ID 头注入,不在 body 中传递 json:"ZoneId,omitempty"
92
+
93
+ @dataclass
94
+ class BatchStopSelfHealJobsData:
95
+ Failed: Optional[List[str]] = None # 中止自愈失败的 Job ID 列表 json:"Failed,omitempty"
96
+ Message: Optional[str] = "" # 操作结果消息 json:"Message,omitempty"
97
+ Reasons: Optional[Dict[str, str]] = None # 失败原因映射,key 为 Job ID,value 为失败原因 json:"Reasons,omitempty"
98
+
88
99
  @dataclass
89
100
  class CreateJobReq:
90
101
  Name: str # Job 显示名称 json:"Name"
@@ -187,6 +198,7 @@ class GetJobData:
187
198
  SelfHealLimitCount: Optional[int] = 0 # 自愈最大重试次数 json:"SelfHealLimitCount,omitempty"
188
199
  SelfHealNotifyWebhook: Optional[str] = "" # 自愈事件通知 Webhook URL json:"SelfHealNotifyWebhook,omitempty"
189
200
  SelfHealRetryScope: Optional[str] = "" # 自愈重试粒度(rjob/task) json:"SelfHealRetryScope,omitempty"
201
+ SelfHealStopRequested: Optional[bool] = False # 是否已点击终止自愈;RJob 的 self-health.brainpp.cn/stop 注解为 true 时返回 true json:"SelfHealStopRequested,omitempty"
190
202
  SelfHealTerminationGracePeriodSeconds: Optional[int] = 0 # 自愈数据回收时间(秒),读取自愈注解 self-health.brainpp.cn/termination-grace-period-seconds;未设置时不返回 json:"SelfHealTerminationGracePeriodSeconds,omitempty"
191
203
  StopTime: Optional[str] = "" # 停止时间(RFC3339 格式) json:"StopTime,omitempty"
192
204
  TaskSpecs: Optional[Dict[str, TaskSpecResponse]] = None # 任务规格映射,key 为任务名(如 t0),value 为任务规格 json:"TaskSpecs,omitempty"
@@ -294,6 +306,11 @@ class BatchStopJobsReqResourceIdentifier:
294
306
  JobId: Optional[str] = None # Job 唯一标识 json:"JobId,omitempty"
295
307
  Project: Optional[str] = None # 项目名称 json:"Project,omitempty"
296
308
 
309
+ @dataclass
310
+ class BatchStopSelfHealJobsReqResourceIdentifier:
311
+ JobId: Optional[str] = None # Job 唯一标识 json:"JobId,omitempty"
312
+ Project: Optional[str] = None # 项目名称 json:"Project,omitempty"
313
+
297
314
  @dataclass
298
315
  class Result:
299
316
  Metric: Optional[Dict[str, str]] = None # 指标标签 json:"Metric,omitempty"
@@ -23,6 +23,7 @@ from .actions import (
23
23
  get_resource_pool,
24
24
  list_audit_logs,
25
25
  list_events,
26
+ list_gpu_types,
26
27
  list_node_configuration,
27
28
  list_node_instances,
28
29
  list_nodes,
@@ -68,6 +69,7 @@ from .actions import (
68
69
  get_resource_pool_async,
69
70
  list_audit_logs_async,
70
71
  list_events_async,
72
+ list_gpu_types_async,
71
73
  list_node_configuration_async,
72
74
  list_node_instances_async,
73
75
  list_nodes_async,
@@ -120,8 +122,10 @@ from .models import (
120
122
  DeleteProjectReq,
121
123
  DeleteResourcePoolReq,
122
124
  EventItem,
125
+ GpuTypeDisplayData,
123
126
  ListAuditLogsData,
124
127
  ListEventsData,
128
+ ListGpuTypesData,
125
129
  ListNodeInstancesData,
126
130
  ListNodesData,
127
131
  ListProjectUsersData,
@@ -196,6 +200,7 @@ from .models import (
196
200
  GetResourcePoolReq,
197
201
  ListAuditLogsReq,
198
202
  ListEventsReq,
203
+ ListGpuTypesReq,
199
204
  ListNodeConfigurationReq,
200
205
  ListNodeInstancesReq,
201
206
  ListNodesReq,
@@ -537,6 +537,36 @@ async def list_events_async(ctx: Optional[dict], req: models.ListEventsReq) -> m
537
537
  return rsp.get_typed_data()
538
538
 
539
539
 
540
+ def list_gpu_types(ctx: Optional[dict], req: models.ListGpuTypesReq) -> models.ListGpuTypesData:
541
+ """列出GPU卡类型(双语对照表)
542
+ 返回全部GPU卡型的协议值/英文/中文显示名(敏感卡型已脱敏);返回值与租户无关,全局缓存即可
543
+ GET /mc/v1alpha1/ListGpuTypes
544
+ Action: ListGpuTypes
545
+
546
+ Returns ListGpuTypesData on success.
547
+ Raises YiCloudException on error.
548
+ """
549
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListGpuTypes"
550
+ rsp = msgs.Rsp[models.ListGpuTypesData]()
551
+ client.base.get(ctx, path, req, rsp)
552
+ return rsp.get_typed_data()
553
+
554
+
555
+ async def list_gpu_types_async(ctx: Optional[dict], req: models.ListGpuTypesReq) -> models.ListGpuTypesData:
556
+ """列出GPU卡类型(双语对照表)(异步)
557
+ 返回全部GPU卡型的协议值/英文/中文显示名(敏感卡型已脱敏);返回值与租户无关,全局缓存即可
558
+ GET /mc/v1alpha1/ListGpuTypes
559
+ Action: ListGpuTypes
560
+
561
+ Returns ListGpuTypesData on success.
562
+ Raises YiCloudException on error.
563
+ """
564
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListGpuTypes"
565
+ rsp = msgs.Rsp[models.ListGpuTypesData]()
566
+ await client.base.get_async(ctx, path, req, rsp)
567
+ return rsp.get_typed_data()
568
+
569
+
540
570
  def list_node_configuration(ctx: Optional[dict], req: models.ListNodeConfigurationReq) -> models.ListNodeConfigurationData:
541
571
  """获取节点配置选项
542
572
  获取节点配置筛选选项(CPU/GPU/内存/本地盘等可选项)
@@ -155,6 +155,12 @@ class EventItem:
155
155
  ReportingComponent: Optional[str] = "" # json:"ReportingComponent,omitempty"
156
156
  ReportingInstance: Optional[str] = "" # json:"ReportingInstance,omitempty"
157
157
 
158
+ @dataclass
159
+ class GpuTypeDisplayData:
160
+ Name: Optional[str] = "" # 协议值 json:"Name,omitempty"
161
+ NameEn: Optional[str] = "" # 英文显示名 json:"NameEn,omitempty"
162
+ NameZh: Optional[str] = "" # 中文显示名(非敏感卡型为空串) json:"NameZh,omitempty"
163
+
158
164
  @dataclass
159
165
  class ListAuditLogsData:
160
166
  Items: Optional[List[AuditLogData]] = None # 审计日志列表 json:"Items,omitempty"
@@ -169,6 +175,11 @@ class ListEventsData:
169
175
  Offset: Optional[int] = 0 # 分页偏移量 json:"Offset,omitempty"
170
176
  Total: Optional[int] = 0 # 总条数 json:"Total,omitempty"
171
177
 
178
+ @dataclass
179
+ class ListGpuTypesData:
180
+ Items: Optional[List[GpuTypeDisplayData]] = None # json:"Items,omitempty"
181
+ Total: Optional[int] = 0 # json:"Total,omitempty"
182
+
172
183
  @dataclass
173
184
  class ListNodeInstancesData:
174
185
  Items: Optional[List[NodeInstance]] = None # 实例列表 json:"Items,omitempty"
@@ -307,7 +318,7 @@ class NodeInstance:
307
318
  InstanceName: Optional[str] = "" # Instance 名称 json:"InstanceName,omitempty"
308
319
  InstanceParent: Optional[str] = "" # 上层资源ID json:"InstanceParent,omitempty"
309
320
  InstanceStatus: Optional[str] = "" # 状态 json:"InstanceStatus,omitempty"
310
- InstanceType: Optional[str] = "" # 资源类型(worker, workspace, job, ray, other) json:"InstanceType,omitempty"
321
+ InstanceType: Optional[str] = "" # 资源类型(worker, workspace, job, ray, modelset, inferset, other) json:"InstanceType,omitempty"
311
322
  LocalStorage: Optional[int] = 0 # 本地 存储 (Gi) json:"LocalStorage,omitempty"
312
323
  Memory: Optional[int] = 0 # 内存 (Gi) json:"Memory,omitempty"
313
324
  Project: Optional[str] = "" # 项目 json:"Project,omitempty"
@@ -635,6 +646,7 @@ class SkuResourceUsage:
635
646
  class SubResourceData:
636
647
  ChargedQuota: Optional[Quota] = None # 已使用配额 json:"ChargedQuota,omitempty"
637
648
  CreationTime: Optional[str] = "" # 创建时间(RFC3339 UTC) json:"CreationTime,omitempty"
649
+ IP: Optional[str] = "" # 实例(Pod)IP 地址,未分配时为空串 json:"IP,omitempty"
638
650
  Labels: Optional[Dict[str, str]] = None # 标签 json:"Labels,omitempty"
639
651
  Name: Optional[str] = "" # 子资源名称 json:"Name,omitempty"
640
652
  Namespace: Optional[str] = "" # 命名空间 json:"Namespace,omitempty"
@@ -750,13 +762,17 @@ class ListEventsReq:
750
762
  Order: Optional[str] = None # 排序方向: asc, desc,默认 desc query:"Order,omitempty"
751
763
  SortBy: Optional[str] = None # 排序 query:"SortBy,omitempty"
752
764
 
765
+ @dataclass
766
+ class ListGpuTypesReq:
767
+ Tenant: str # query:"Tenant"
768
+
753
769
  @dataclass
754
770
  class ListNodeConfigurationReq:
755
771
  Project: Optional[str] = None # 项目名(可选) query:"Project,omitempty"
756
772
 
757
773
  @dataclass
758
774
  class ListNodeInstancesReq:
759
- InstanceType: List[str] # 资源类型筛选(worker, workspace, job, ray, other) query:"InstanceType"
775
+ InstanceType: List[str] # 资源类型筛选(worker, workspace, job, ray, modelset, inferset, other) query:"InstanceType"
760
776
  NodeName: str # 节点名 query:"NodeName"
761
777
  InstanceStatus: Optional[List[str]] = None # Instance 状态筛选 query:"InstanceStatus,omitempty"
762
778
  Keyword: Optional[str] = None # 关键字搜索 query:"Keyword,omitempty"
@@ -75,6 +75,8 @@ class ModelBaseInfo:
75
75
  Project: Optional[str] = "" # json:"Project,omitempty"
76
76
  QuotaGroup: Optional[str] = "" # json:"QuotaGroup,omitempty"
77
77
  RegionId: Optional[str] = "" # json:"RegionId,omitempty"
78
+ Type: Optional[str] = "" # Type 模型类型,由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类";历史数据(Type 上线前创建)出参统一为“其他” json:"Type,omitempty"
79
+ UpdateAt: Optional[str] = "" # UpdateAt 更新时间,仅在用户显式操作(编辑模型、增删改版本)后刷新;历史数据(LastUpdateTime 为空)回退为创建时间 json:"UpdateAt,omitempty"
78
80
  VersionCount: Optional[int] = 0 # json:"VersionCount,omitempty"
79
81
  Visibility: Optional[str] = "" # json:"Visibility,omitempty"
80
82
  ZoneId: Optional[str] = "" # json:"ZoneId,omitempty"
@@ -95,6 +97,7 @@ class CreateModelData:
95
97
  Project: Optional[str] = "" # json:"Project,omitempty"
96
98
  QuotaGroup: Optional[str] = "" # json:"QuotaGroup,omitempty"
97
99
  RegionId: Optional[str] = "" # json:"RegionId,omitempty"
100
+ Type: Optional[str] = "" # Type 模型类型,由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类";历史数据(Type 上线前创建)出参统一为“其他” json:"Type,omitempty"
98
101
  UpdateAt: Optional[str] = "" # json:"UpdateAt,omitempty"
99
102
  VersionCount: Optional[int] = 0 # json:"VersionCount,omitempty"
100
103
  Visibility: Optional[str] = "" # json:"Visibility,omitempty"
@@ -103,8 +106,9 @@ class CreateModelData:
103
106
  @dataclass
104
107
  class CreateModelReqModelInfo:
105
108
  Name: str # json:"Name"
109
+ Type: str # Type 模型类型(必填),由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类" json:"Type"
106
110
  Visibility: str # Visibility 可见性: creator(仅创建者), project(项目内共享), tenant(租户内可见) json:"Visibility"
107
- ZoneId: str # json:"ZoneId"
111
+ ZoneId: str # ZoneId 可用区ID(必填) json:"ZoneId"
108
112
  Description: Optional[str] = None # json:"Description,omitempty"
109
113
  QuotaGroup: Optional[str] = None # json:"QuotaGroup,omitempty"
110
114
 
@@ -115,6 +119,7 @@ class UpdateModelReq:
115
119
  Project: str # json:"Project"
116
120
  Description: Optional[str] = None # json:"Description,omitempty"
117
121
  ModelType: Optional[str] = None # json:"ModelType,omitempty"
122
+ Type: Optional[str] = None # Type 模型类型,由前端拼好的一级-二级中划线字符串,如 "自然语言处理-文本分类" json:"Type,omitempty"
118
123
 
119
124
  @dataclass
120
125
  class UpdateModelVersionReq:
@@ -167,6 +172,7 @@ class ListBaseModelReq:
167
172
  @dataclass
168
173
  class ListModelReq:
169
174
  ZoneId: str # 可用区ID(必填) query:"ZoneId"
175
+ Creator: Optional[str] = None # 创建者筛选(可选), 精确匹配创建者用户名 query:"Creator,omitempty"
170
176
  Keyword: Optional[str] = None # 搜索关键词 query:"Keyword,omitempty"
171
177
  Limit: Optional[int] = None # 分页大小 query:"Limit,omitempty"
172
178
  ModelType: Optional[str] = None # 模型类型(可选), 平台模型: platform query:"ModelType,omitempty"
@@ -174,6 +180,7 @@ class ListModelReq:
174
180
  Order: Optional[str] = None # 排序方向: asc:正序,desc:倒叙, 默认: desc query:"Order,omitempty"
175
181
  Project: Optional[str] = None # 项目名称(可选, 不传则按 ZoneId 跨项目查询整个租户) query:"Project,omitempty"
176
182
  SortBy: Optional[str] = None # 排序字段, 支持: Name, CreationTime, LatestVersion query:"SortBy,omitempty"
183
+ Type: Optional[str] = None # 模型分类筛选(可选), 模糊包含匹配, 传"其他"可命中未分类历史数据 query:"Type,omitempty"
177
184
  View: Optional[str] = None # 列表视图筛选: all(全部, 默认), mine(我创建的) query:"View,omitempty"
178
185
  Visibility: Optional[str] = None # 可见性筛选: creator, project, tenant query:"Visibility,omitempty"
179
186
 
@@ -0,0 +1,23 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from yicloud.services.monitor.client import MonitorClient as Client, client, use_client
4
+ from . import actions, models
5
+
6
+ # Re-export action functions
7
+ from .actions import (
8
+ get_monitor_data,
9
+ get_tenant_monitor_data,
10
+ get_monitor_data_async,
11
+ get_tenant_monitor_data_async,
12
+ )
13
+
14
+ # Re-export models
15
+ from .models import (
16
+ GetMonitorDataData,
17
+ GetTenantMonitorDataData,
18
+ MonitorResultItem,
19
+ MonitorValue,
20
+ TenantMonitorPoint,
21
+ GetMonitorDataReq,
22
+ GetTenantMonitorDataReq,
23
+ )
@@ -0,0 +1,70 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from typing import Optional
4
+ from yicloud.base import msgs
5
+ from yicloud.services.monitor import models
6
+ from yicloud.services.monitor.client import client
7
+
8
+ _PRODUCT_CODE = "monitor"
9
+ _LAST_VERSION = "v1alpha2"
10
+
11
+
12
+ def get_monitor_data(ctx: Optional[dict], req: models.GetMonitorDataReq) -> models.GetMonitorDataData:
13
+ """获取监控数据
14
+ 按 ResourceType、MetricName、InstanceId 查询监控数据。ProjectName、StartTime、EndTime、MountPoint、Extras 可选。GET 参数使用 PascalCase。StartTime 与 EndTime 都省略时按当前时间做瞬时查询。
15
+ GET /monitor/v1alpha2/GetMonitorData
16
+ Action: GetMonitorData
17
+
18
+ Returns GetMonitorDataData on success.
19
+ Raises YiCloudException on error.
20
+ """
21
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetMonitorData"
22
+ rsp = msgs.Rsp[models.GetMonitorDataData]()
23
+ client.base.get(ctx, path, req, rsp)
24
+ return rsp.get_typed_data()
25
+
26
+
27
+ async def get_monitor_data_async(ctx: Optional[dict], req: models.GetMonitorDataReq) -> models.GetMonitorDataData:
28
+ """获取监控数据(异步)
29
+ 按 ResourceType、MetricName、InstanceId 查询监控数据。ProjectName、StartTime、EndTime、MountPoint、Extras 可选。GET 参数使用 PascalCase。StartTime 与 EndTime 都省略时按当前时间做瞬时查询。
30
+ GET /monitor/v1alpha2/GetMonitorData
31
+ Action: GetMonitorData
32
+
33
+ Returns GetMonitorDataData on success.
34
+ Raises YiCloudException on error.
35
+ """
36
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetMonitorData"
37
+ rsp = msgs.Rsp[models.GetMonitorDataData]()
38
+ await client.base.get_async(ctx, path, req, rsp)
39
+ return rsp.get_typed_data()
40
+
41
+
42
+ def get_tenant_monitor_data(ctx: Optional[dict], req: models.GetTenantMonitorDataReq) -> models.GetTenantMonitorDataData:
43
+ """获取租户维度监控数据
44
+ 按鉴权租户瞬时查询 GPU 指标。未传 ProjectName 时 PromQL 来自 OPMS category=common、MetricCode=tenant_{MetricName};传入 ProjectName 时 MetricCode=tenant_project_{MetricName}。结果 Redis 缓存 15s,空结果缓存 5s。MetricName 支持 gpu_util、gpu_util_avg、gpu_mem_util、gpu_mem_util_avg、gpu_mem_used、gpu_mem_used_avg、gpu_power、gpu_power_avg、gpu_core_temp、gpu_core_temp_avg。
45
+ GET /monitor/v1alpha2/GetTenantMonitorData
46
+ Action: GetTenantMonitorData
47
+
48
+ Returns GetTenantMonitorDataData on success.
49
+ Raises YiCloudException on error.
50
+ """
51
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetTenantMonitorData"
52
+ rsp = msgs.Rsp[models.GetTenantMonitorDataData]()
53
+ client.base.get(ctx, path, req, rsp)
54
+ return rsp.get_typed_data()
55
+
56
+
57
+ async def get_tenant_monitor_data_async(ctx: Optional[dict], req: models.GetTenantMonitorDataReq) -> models.GetTenantMonitorDataData:
58
+ """获取租户维度监控数据(异步)
59
+ 按鉴权租户瞬时查询 GPU 指标。未传 ProjectName 时 PromQL 来自 OPMS category=common、MetricCode=tenant_{MetricName};传入 ProjectName 时 MetricCode=tenant_project_{MetricName}。结果 Redis 缓存 15s,空结果缓存 5s。MetricName 支持 gpu_util、gpu_util_avg、gpu_mem_util、gpu_mem_util_avg、gpu_mem_used、gpu_mem_used_avg、gpu_power、gpu_power_avg、gpu_core_temp、gpu_core_temp_avg。
60
+ GET /monitor/v1alpha2/GetTenantMonitorData
61
+ Action: GetTenantMonitorData
62
+
63
+ Returns GetTenantMonitorDataData on success.
64
+ Raises YiCloudException on error.
65
+ """
66
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetTenantMonitorData"
67
+ rsp = msgs.Rsp[models.GetTenantMonitorDataData]()
68
+ await client.base.get_async(ctx, path, req, rsp)
69
+ return rsp.get_typed_data()
70
+
@@ -0,0 +1,21 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from yicloud.base import Client
4
+
5
+
6
+ class MonitorClient:
7
+ """Monitor service client."""
8
+
9
+ def __init__(self, base_client: Client = None):
10
+ self.base = base_client
11
+ self.product_code = "monitor"
12
+ self.last_version = "v1alpha2"
13
+
14
+
15
+ # Singleton
16
+ client: MonitorClient = MonitorClient()
17
+
18
+
19
+ def use_client(cli: Client) -> None:
20
+ """Set the base client for Monitor service."""
21
+ client.base = cli
@@ -0,0 +1,52 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from __future__ import annotations
4
+ from dataclasses import dataclass, field
5
+ from typing import Optional, List, Dict
6
+
7
+ # Models
8
+ @dataclass
9
+ class GetMonitorDataData:
10
+ Items: Optional[List[MonitorResultItem]] = None # Monitor result list. json:"Items,omitempty"
11
+ Total: Optional[int] = 0 # Result count. json:"Total,omitempty"
12
+
13
+ @dataclass
14
+ class GetTenantMonitorDataData:
15
+ Items: Optional[List[TenantMonitorPoint]] = None # 瞬时结果列表,按 InstanceId、Uuid 排序 json:"Items,omitempty"
16
+ Total: Optional[int] = 0 # 结果条数 json:"Total,omitempty"
17
+
18
+ @dataclass
19
+ class MonitorResultItem:
20
+ Metric: Optional[Dict[str, str]] = None # Filtered Prometheus labels. json:"Metric,omitempty"
21
+ MetricName: Optional[str] = "" # Metric name. json:"MetricName,omitempty"
22
+ ResourceId: Optional[str] = "" # Main target id, such as Pod, StatefulSetName, or Machine. json:"ResourceId,omitempty"
23
+ Values: Optional[List[MonitorValue]] = None # Time series values. json:"Values,omitempty"
24
+
25
+ @dataclass
26
+ class MonitorValue:
27
+ Timestamp: Optional[int] = 0 # Unix seconds. json:"Timestamp,omitempty"
28
+ Value: Optional[float] = 0.0 # Metric value. json:"Value,omitempty"
29
+
30
+ @dataclass
31
+ class TenantMonitorPoint:
32
+ InstanceId: Optional[str] = "" # Pod 名 json:"InstanceId,omitempty"
33
+ Timestamp: Optional[int] = 0 # Unix 秒级时间戳 json:"Timestamp,omitempty"
34
+ Uuid: Optional[str] = "" # GPU 标识,SHA-256 前 16 位十六进制 json:"Uuid,omitempty"
35
+ Value: Optional[float] = 0.0 # 指标值 json:"Value,omitempty"
36
+
37
+ @dataclass
38
+ class GetMonitorDataReq:
39
+ InstanceId: str # 实例 ID query:"InstanceId"
40
+ MetricName: str # 指标名称 query:"MetricName"
41
+ ResourceType: str # 资源类型:workspace、rlaunch、worker、job、rayjob、model、sandbox、service query:"ResourceType"
42
+ EndTime: Optional[int] = None # 结束时间,Unix 秒级时间戳 query:"EndTime,omitempty"
43
+ Extras: Optional[str] = None # 扩展参数 query:"Extras,omitempty"
44
+ MountPoint: Optional[str] = None # 挂载点 query:"MountPoint,omitempty"
45
+ ProjectName: Optional[str] = None # 项目名 query:"ProjectName,omitempty"
46
+ StartTime: Optional[int] = None # 开始时间,Unix 秒级时间戳 query:"StartTime,omitempty"
47
+
48
+ @dataclass
49
+ class GetTenantMonitorDataReq:
50
+ MetricName: str # 指标名称:gpu_util、gpu_util_avg、gpu_mem_util、gpu_mem_util_avg、gpu_mem_used、gpu_mem_used_avg、gpu_power、gpu_power_avg、gpu_core_temp、gpu_core_temp_avg query:"MetricName"
51
+ ProjectName: Optional[str] = None # 项目名。传入后使用 tenant_project_{MetricName} 模板 query:"ProjectName,omitempty"
52
+
@@ -32,6 +32,7 @@ from .models import (
32
32
  GetBucketData,
33
33
  ListBucketsData,
34
34
  CreateBucketData,
35
+ OwnerTransfer,
35
36
  UpdateBucketReq,
36
37
  GetBucketReq,
37
38
  ListBucketsReq,
@@ -56,6 +56,7 @@ class BucketResponse:
56
56
  Created: Optional[str] = "" # 创建时间 json:"Created,omitempty"
57
57
  DeletedTime: Optional[str] = "" # 删除时间(回收站中显示) json:"DeletedTime,omitempty"
58
58
  Owner: Optional[str] = "" # 所有者 json:"Owner,omitempty"
59
+ OwnerTransfer: Optional[List[OwnerTransfer]] = None # 所有权转移记录 json:"OwnerTransfer,omitempty"
59
60
  Permission: Optional[str] = None # SDK常量: PermissionDENY, PermissionREADONLY, PermissionREADWRITE, PermissionPUBLICREAD, PermissionADMIN json:"Permission,omitempty"
60
61
  Project: Optional[str] = "" # 所属项目 json:"Project,omitempty"
61
62
  PublicRead: Optional[bool] = False # 是否公共读 json:"PublicRead,omitempty"
@@ -82,6 +83,7 @@ class GetBucketData:
82
83
  Bucket: Optional[str] = "" # 存储桶名 json:"Bucket,omitempty"
83
84
  Created: Optional[str] = "" # 创建时间 json:"Created,omitempty"
84
85
  Owner: Optional[str] = "" # 所有者 json:"Owner,omitempty"
86
+ OwnerTransfer: Optional[List[OwnerTransfer]] = None # 所有权转移记录 json:"OwnerTransfer,omitempty"
85
87
  Permission: Optional[str] = None # SDK常量: PermissionDENY, PermissionREADONLY, PermissionREADWRITE, PermissionPUBLICREAD, PermissionADMIN json:"Permission,omitempty"
86
88
  Project: Optional[str] = "" # 所属项目 json:"Project,omitempty"
87
89
  PublicRead: Optional[bool] = False # 是否公共读 json:"PublicRead,omitempty"
@@ -99,6 +101,13 @@ class ListBucketsData:
99
101
  class CreateBucketData:
100
102
  Message: Optional[str] = "" # json:"Message,omitempty"
101
103
 
104
+ @dataclass
105
+ class OwnerTransfer:
106
+ OperateTime: Optional[str] = "" # 操作时间(Unix 时间戳,秒) json:"OperateTime,omitempty"
107
+ Operator: Optional[str] = "" # 操作人 json:"Operator,omitempty"
108
+ Source: Optional[str] = "" # 原所有者 json:"Source,omitempty"
109
+ Target: Optional[str] = "" # 目标所有者 json:"Target,omitempty"
110
+
102
111
  @dataclass
103
112
  class UpdateBucketReq:
104
113
  Bucket: str # 存储桶名 json:"Bucket"
@@ -430,6 +430,7 @@ class ListWorkspacesReq:
430
430
  CreationTimestampMax: Optional[int] = None # 创建时间戳上限(秒) query:"CreationTimestampMax,omitempty"
431
431
  CreationTimestampMin: Optional[int] = None # 创建时间戳下限(秒) query:"CreationTimestampMin,omitempty"
432
432
  Creator: Optional[str] = None # 创建者用户名(内部转换为用户 ID) query:"Creator,omitempty"
433
+ Keyword: Optional[str] = None # 按名称或开发机 ID 模糊匹配,与 Name 同时提供时取交集 query:"Keyword,omitempty"
433
434
  Limit: Optional[int] = None # 每页数量 query:"Limit,omitempty"
434
435
  MemoryMax: Optional[int] = None # 内存上限(GiB) query:"MemoryMax,omitempty"
435
436
  MemoryMin: Optional[int] = None # 内存下限(GiB) query:"MemoryMin,omitempty"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yicloud-sdk-python
3
- Version: 0.5.1
3
+ Version: 0.5.2
4
4
  Summary: YiCloud OpenAPI SDK for Python
5
5
  Author: YiCloud
6
6
  Project-URL: Homepage, https://gitee.com/yicloud-team/openapi-sdk-python
@@ -55,6 +55,10 @@ yicloud/services/monitor/__init__.py
55
55
  yicloud/services/monitor/actions.py
56
56
  yicloud/services/monitor/client.py
57
57
  yicloud/services/monitor/models.py
58
+ yicloud/services/monitor/v1alpha1/__init__.py
59
+ yicloud/services/monitor/v1alpha1/actions.py
60
+ yicloud/services/monitor/v1alpha1/client.py
61
+ yicloud/services/monitor/v1alpha1/models.py
58
62
  yicloud/services/oss/__init__.py
59
63
  yicloud/services/oss/actions.py
60
64
  yicloud/services/oss/client.py