yicloud-sdk-python 0.4.2__tar.gz → 0.5.0__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 (93) hide show
  1. {yicloud_sdk_python-0.4.2/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.5.0}/PKG-INFO +7 -5
  2. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/README.md +6 -4
  3. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/pyproject.toml +1 -1
  4. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/version.py +1 -1
  5. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/__init__.py +1 -1
  6. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/__init__.py +2 -0
  7. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/fs/actions.py +2 -2
  8. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/job/actions.py +2 -2
  9. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/job/models.py +12 -3
  10. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/mc/__init__.py +8 -0
  11. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/mc/actions.py +136 -10
  12. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/mc/models.py +63 -5
  13. yicloud_sdk_python-0.5.0/yicloud/services/service/__init__.py +88 -0
  14. yicloud_sdk_python-0.5.0/yicloud/services/service/actions.py +274 -0
  15. yicloud_sdk_python-0.5.0/yicloud/services/service/client.py +21 -0
  16. yicloud_sdk_python-0.5.0/yicloud/services/service/models.py +469 -0
  17. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0/yicloud_sdk_python.egg-info}/PKG-INFO +7 -5
  18. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud_sdk_python.egg-info/SOURCES.txt +4 -0
  19. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/LICENSE +0 -0
  20. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/setup.cfg +0 -0
  21. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/__init__.py +0 -0
  22. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/auth/__init__.py +0 -0
  23. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/auth/credential.py +0 -0
  24. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/auth/sign.py +0 -0
  25. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/client.py +0 -0
  26. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/config.py +0 -0
  27. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/errs/__init__.py +0 -0
  28. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/log/__init__.py +0 -0
  29. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/log/logger.py +0 -0
  30. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/log/std.py +0 -0
  31. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/msgs/__init__.py +0 -0
  32. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/utils/__init__.py +0 -0
  33. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/utils/helps.py +0 -0
  34. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/utils/retry/__init__.py +0 -0
  35. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/base/utils/retry/retry.py +0 -0
  36. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/bc/__init__.py +0 -0
  37. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/bc/actions.py +0 -0
  38. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/bc/client.py +0 -0
  39. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/bc/models.py +0 -0
  40. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/dataset/__init__.py +0 -0
  41. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/dataset/actions.py +0 -0
  42. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/dataset/client.py +0 -0
  43. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/dataset/models.py +0 -0
  44. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/fs/__init__.py +0 -0
  45. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/fs/client.py +0 -0
  46. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/fs/models.py +0 -0
  47. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/iam/__init__.py +0 -0
  48. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/iam/actions.py +0 -0
  49. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/iam/client.py +0 -0
  50. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/iam/models.py +0 -0
  51. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/inferset/__init__.py +0 -0
  52. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/inferset/actions.py +0 -0
  53. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/inferset/client.py +0 -0
  54. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/inferset/models.py +0 -0
  55. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/job/__init__.py +0 -0
  56. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/job/client.py +0 -0
  57. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/mc/client.py +0 -0
  58. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/modelrepo/__init__.py +0 -0
  59. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/modelrepo/actions.py +0 -0
  60. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/modelrepo/client.py +0 -0
  61. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/modelrepo/models.py +0 -0
  62. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/monitor/__init__.py +0 -0
  63. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/monitor/actions.py +0 -0
  64. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/monitor/client.py +0 -0
  65. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/monitor/models.py +0 -0
  66. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/oss/__init__.py +0 -0
  67. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/oss/actions.py +0 -0
  68. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/oss/client.py +0 -0
  69. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/oss/models.py +0 -0
  70. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/ray/__init__.py +0 -0
  71. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/ray/actions.py +0 -0
  72. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/ray/client.py +0 -0
  73. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/ray/models.py +0 -0
  74. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/registry/__init__.py +0 -0
  75. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/registry/actions.py +0 -0
  76. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/registry/client.py +0 -0
  77. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/registry/models.py +0 -0
  78. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/sandbox/__init__.py +0 -0
  79. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/sandbox/actions.py +0 -0
  80. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/sandbox/client.py +0 -0
  81. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/sandbox/models.py +0 -0
  82. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/volume/__init__.py +0 -0
  83. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/volume/actions.py +0 -0
  84. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/volume/client.py +0 -0
  85. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/volume/models.py +0 -0
  86. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/workspace/__init__.py +0 -0
  87. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/workspace/actions.py +0 -0
  88. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/workspace/client.py +0 -0
  89. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud/services/workspace/models.py +0 -0
  90. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
  91. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
  92. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/yicloud_sdk_python.egg-info/requires.txt +0 -0
  93. {yicloud_sdk_python-0.4.2 → yicloud_sdk_python-0.5.0}/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.4.2
3
+ Version: 0.5.0
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
@@ -114,14 +114,15 @@ except base.exc.YiCloudException as e:
114
114
  | FS | `yicloud.services.fs` | 9 | 文件系统 FS |
115
115
  | IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
116
116
  | Inferset | `yicloud.services.inferset` | 21 | 模型推理服务 INFERSET |
117
- | JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
118
- | MC | `yicloud.services.mc` | 29 | 管理中心 MC |
117
+ | JOB | `yicloud.services.job` | 14 | 训练任务 JOB |
118
+ | MC | `yicloud.services.mc` | 31 | 管理中心 MC |
119
119
  | Modelrepo | `yicloud.services.modelrepo` | 11 | 模型仓库 MODELREPO |
120
120
  | Monitor | `yicloud.services.monitor` | 1 | 监控中心 MONITOR |
121
121
  | OSS | `yicloud.services.oss` | 5 | 对象存储OSS |
122
122
  | RAY | `yicloud.services.ray` | 9 | 分布式计算 Ray |
123
123
  | Registry | `yicloud.services.registry` | 9 | 镜像仓库 REGISTRY |
124
- | Sandbox | `yicloud.services.sandbox` | 19 | 沙盒 SANDBOX |
124
+ | Sandbox | `yicloud.services.sandbox` | 23 | 沙盒 SANDBOX |
125
+ | Service | `yicloud.services.service` | 9 | 服务 SERVICE |
125
126
  | Volume | `yicloud.services.volume` | 12 | 云盘管理 Volume |
126
127
  | Workspace | `yicloud.services.workspace` | 20 | 开发机 WS |
127
128
 
@@ -137,7 +138,7 @@ yicloud/ # Main package
137
138
  │ ├── log/ # Logger
138
139
  │ ├── msgs/ # Response types (Rsp[T], Header, RspMeta)
139
140
  │ └── utils/ # Utilities
140
- └── services/ # Business services (15 services)
141
+ └── services/ # Business services (16 services)
141
142
  ├── bc/ # 账单管理 BC
142
143
  ├── dataset/ # 数据集 DATASET
143
144
  ├── fs/ # 文件系统 FS
@@ -151,6 +152,7 @@ yicloud/ # Main package
151
152
  ├── ray/ # 分布式计算 Ray
152
153
  ├── registry/ # 镜像仓库 REGISTRY
153
154
  ├── sandbox/ # 沙盒 SANDBOX
155
+ ├── service/ # 服务 SERVICE
154
156
  ├── volume/ # 云盘管理 Volume
155
157
  ├── workspace/ # 开发机 WS
156
158
  examples/ # Example code (one per service)
@@ -75,14 +75,15 @@ except base.exc.YiCloudException as e:
75
75
  | FS | `yicloud.services.fs` | 9 | 文件系统 FS |
76
76
  | IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
77
77
  | Inferset | `yicloud.services.inferset` | 21 | 模型推理服务 INFERSET |
78
- | JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
79
- | MC | `yicloud.services.mc` | 29 | 管理中心 MC |
78
+ | JOB | `yicloud.services.job` | 14 | 训练任务 JOB |
79
+ | MC | `yicloud.services.mc` | 31 | 管理中心 MC |
80
80
  | Modelrepo | `yicloud.services.modelrepo` | 11 | 模型仓库 MODELREPO |
81
81
  | Monitor | `yicloud.services.monitor` | 1 | 监控中心 MONITOR |
82
82
  | OSS | `yicloud.services.oss` | 5 | 对象存储OSS |
83
83
  | RAY | `yicloud.services.ray` | 9 | 分布式计算 Ray |
84
84
  | Registry | `yicloud.services.registry` | 9 | 镜像仓库 REGISTRY |
85
- | Sandbox | `yicloud.services.sandbox` | 19 | 沙盒 SANDBOX |
85
+ | Sandbox | `yicloud.services.sandbox` | 23 | 沙盒 SANDBOX |
86
+ | Service | `yicloud.services.service` | 9 | 服务 SERVICE |
86
87
  | Volume | `yicloud.services.volume` | 12 | 云盘管理 Volume |
87
88
  | Workspace | `yicloud.services.workspace` | 20 | 开发机 WS |
88
89
 
@@ -98,7 +99,7 @@ yicloud/ # Main package
98
99
  │ ├── log/ # Logger
99
100
  │ ├── msgs/ # Response types (Rsp[T], Header, RspMeta)
100
101
  │ └── utils/ # Utilities
101
- └── services/ # Business services (15 services)
102
+ └── services/ # Business services (16 services)
102
103
  ├── bc/ # 账单管理 BC
103
104
  ├── dataset/ # 数据集 DATASET
104
105
  ├── fs/ # 文件系统 FS
@@ -112,6 +113,7 @@ yicloud/ # Main package
112
113
  ├── ray/ # 分布式计算 Ray
113
114
  ├── registry/ # 镜像仓库 REGISTRY
114
115
  ├── sandbox/ # 沙盒 SANDBOX
116
+ ├── service/ # 服务 SERVICE
115
117
  ├── volume/ # 云盘管理 Volume
116
118
  ├── workspace/ # 开发机 WS
117
119
  examples/ # Example code (one per service)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "yicloud-sdk-python"
7
- version = "0.4.2"
7
+ version = "0.5.0"
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.4.2"
1
+ __version__ = "0.5.0"
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.4.2"
7
+ __version__ = "0.5.0"
@@ -14,6 +14,7 @@ from . import oss
14
14
  from . import ray
15
15
  from . import registry
16
16
  from . import sandbox
17
+ from . import service
17
18
  from . import volume
18
19
  from . import workspace
19
20
 
@@ -31,6 +32,7 @@ __all__ = [
31
32
  "ray",
32
33
  "registry",
33
34
  "sandbox",
35
+ "service",
34
36
  "volume",
35
37
  "workspace",
36
38
  ]
@@ -98,7 +98,7 @@ async def create_fileset_with_quota_async(ctx: Optional[dict], req: models.Creat
98
98
 
99
99
 
100
100
  def list_available_gpfs_clusters(ctx: Optional[dict], req: models.ListAvailableGpfsClustersReq) -> models.ListAvailableGpfsClustersData:
101
- """查询指定 Region 和 Zone 下的可用文件存储集群
101
+ """查询可用文件存储集群
102
102
  根据 RegionId 和 ZoneId 查询该可用区下可挂载的可用文件存储集群
103
103
  GET /fs/v1alpha2/ListAvailableGpfsClusters
104
104
  Action: ListAvailableGpfsClusters
@@ -113,7 +113,7 @@ def list_available_gpfs_clusters(ctx: Optional[dict], req: models.ListAvailableG
113
113
 
114
114
 
115
115
  async def list_available_gpfs_clusters_async(ctx: Optional[dict], req: models.ListAvailableGpfsClustersReq) -> models.ListAvailableGpfsClustersData:
116
- """查询指定 Region 和 Zone 下的可用文件存储集群(异步)
116
+ """查询可用文件存储集群(异步)
117
117
  根据 RegionId 和 ZoneId 查询该可用区下可挂载的可用文件存储集群
118
118
  GET /fs/v1alpha2/ListAvailableGpfsClusters
119
119
  Action: ListAvailableGpfsClusters
@@ -11,7 +11,7 @@ _LAST_VERSION = "v1alpha1"
11
11
 
12
12
  def list_jobs(ctx: Optional[dict], req: models.ListJobsReq) -> models.ListJobsData:
13
13
  """获取 Job 列表
14
- 分页获取 Job 列表,支持按名称、状态、创建者、配额组等条件过滤
14
+ 分页获取 Job 列表,支持按名称、状态、创建者、配额组、资源池等条件过滤
15
15
  GET /job/v1alpha1/ListJobs
16
16
  Action: ListJobs
17
17
 
@@ -26,7 +26,7 @@ def list_jobs(ctx: Optional[dict], req: models.ListJobsReq) -> models.ListJobsDa
26
26
 
27
27
  async def list_jobs_async(ctx: Optional[dict], req: models.ListJobsReq) -> models.ListJobsData:
28
28
  """获取 Job 列表(异步)
29
- 分页获取 Job 列表,支持按名称、状态、创建者、配额组等条件过滤
29
+ 分页获取 Job 列表,支持按名称、状态、创建者、配额组、资源池等条件过滤
30
30
  GET /job/v1alpha1/ListJobs
31
31
  Action: ListJobs
32
32
 
@@ -92,19 +92,21 @@ class CreateJobReq:
92
92
  TaskSpecs: Dict[str, CreateJobReqTaskSpec] # 任务规格映射,key 为任务名(如 t0),value 为任务规格 json:"TaskSpecs"
93
93
  ZoneId: str # 可用区(AZ),必填;RegionId 由网关通过 X-OGW-REGION-ID 请求头注入 json:"ZoneId"
94
94
  AutoDeleteDuration: Optional[str] = None # 自动删除时间,如 24h json:"AutoDeleteDuration,omitempty"
95
- BackoffLimit: Optional[int] = None # 重试次数限制 json:"BackoffLimit,omitempty"
95
+ BackoffLimit: Optional[int] = None # 重试次数限制(0-20,默认 5) json:"BackoffLimit,omitempty"
96
96
  Creator: Optional[str] = None # 创建者用户名 json:"Creator,omitempty"
97
97
  CreatorId: Optional[str] = None # 创建者用户 ID json:"CreatorId,omitempty"
98
98
  EnableSSHD: Optional[bool] = None # 是否为所有任务统一启用 SSH;设为 true 时覆盖所有 TaskSpec 的 EnableSSHD json:"EnableSSHD,omitempty"
99
99
  FailurePolicy: Optional[str] = None # SDK常量: FailurePolicyNone, FailurePolicyCloseAllTasks json:"FailurePolicy,omitempty"
100
100
  JobId: Optional[str] = None # Job 唯一标识 json:"JobId,omitempty"
101
101
  Mount: Optional[str] = None # 只读 hostPath 挂载路径 json:"Mount,omitempty"
102
+ PoolName: Optional[str] = None # 资源池名称,可选;写入 RJob 标签 brainpp.machine.cn/pool-name json:"PoolName,omitempty"
102
103
  PreCheckConfig: Optional[CreateJobReqPreCheckConfig] = None # 训前检查配置 json:"PreCheckConfig,omitempty"
103
- Priority: Optional[str] = None # 优先级(整数 1-9,默认 5) json:"Priority,omitempty"
104
+ Priority: Optional[str] = None # 优先级(整数 1-9)。未传时使用资源组 PriorityLimit,无资源组时默认 5;优先级 1-3 为可抢占任务,不允许开启自愈和训前检查 json:"Priority,omitempty"
104
105
  Qos: Optional[str] = None # 服务质量等级 json:"Qos,omitempty"
105
106
  QuotaGroup: Optional[str] = None # 所在配额组 json:"QuotaGroup,omitempty"
106
107
  RealCreator: Optional[str] = None # 实际创建者用户名(共享场景下与 Creator 不同) json:"RealCreator,omitempty"
107
108
  RealCreatorId: Optional[str] = None # 实际创建者用户 ID(共享场景下与 CreatorId 不同) json:"RealCreatorId,omitempty"
109
+ RestartPolicy: Optional[str] = None # SDK常量: RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever, RestartPolicyRestartJobOnFailure, RestartPolicyRestartPreferNewMachine json:"RestartPolicy,omitempty"
108
110
  S3Config: Optional[CreateJobReqS3Config] = None # json:"S3Config,omitempty"
109
111
  SKUPrivate: Optional[bool] = None # 是否使用私有机器 SKU json:"SKUPrivate,omitempty"
110
112
  SKUPrivateProject: Optional[bool] = None # 是否为项目级私有 SKU json:"SKUPrivateProject,omitempty"
@@ -118,6 +120,7 @@ class CreateJobData:
118
120
  CreationTime: Optional[str] = "" # 创建时间(RFC3339 格式) json:"CreationTime,omitempty"
119
121
  JobId: Optional[str] = "" # Job 唯一标识 json:"JobId,omitempty"
120
122
  Name: Optional[str] = "" # Job 名称 json:"Name,omitempty"
123
+ PoolName: Optional[str] = "" # 资源池名称,写入 RJob 标签 brainpp.machine.cn/pool-name;未设置时不返回 json:"PoolName,omitempty"
121
124
  Project: Optional[str] = "" # 项目名称 json:"Project,omitempty"
122
125
  Uid: Optional[str] = "" # Job 唯一标识(UID) json:"Uid,omitempty"
123
126
 
@@ -159,10 +162,11 @@ class GetJobData:
159
162
  Mount: Optional[str] = "" # 只读 hostPath 挂载路径 json:"Mount,omitempty"
160
163
  Name: Optional[str] = "" # Job 显示名称 json:"Name,omitempty"
161
164
  Phase: Optional[str] = None # SDK常量: PhasePending, PhaseStarting, PhaseRunning, PhaseScanning, PhaseSucceeded, PhaseFailed, PhaseRestarting, PhaseStopped, PhaseInqueue, PhaseSelfHealTriggered, PhaseSelfHealRunning, PhaseSelfHealSucceeded, PhaseSelfHealFailed json:"Phase,omitempty"
165
+ PoolName: Optional[str] = "" # 所在资源池名称,读取 RJob 标签 brainpp.machine.cn/pool-name;未设置时不返回 json:"PoolName,omitempty"
162
166
  PreCheckConfig: Optional[PreCheckConfig] = None # 训前检查配置 json:"PreCheckConfig,omitempty"
163
167
  PreCheckEnabled: Optional[bool] = False # 是否开启训前检查 json:"PreCheckEnabled,omitempty"
164
168
  PrecheckStatus: Optional[str] = "" # 训前检查状态(取自 GetPrecheckStatus 返回的 data.status),仅 ListJobs 接口返回。 仅当 PreCheckEnabled=true 且 JobId/Uid 均非空时才会查询并返回该字段;未开启训前检查的 Job 不返回。 查询时使用 JobId 与 Uid 联合查询(与 GetPrecheckStatus 接口一致)。 查询失败时为 UNScan,表示状态未知。 json:"PrecheckStatus,omitempty"
165
- Priority: Optional[str] = "" # 优先级 json:"Priority,omitempty"
169
+ Priority: Optional[str] = "" # 优先级;缺失时按资源组 PriorityLimit 回填,无有效上限时回填 9 json:"Priority,omitempty"
166
170
  Project: Optional[str] = "" # 项目名称 json:"Project,omitempty"
167
171
  Qos: Optional[str] = "" # 服务质量等级 json:"Qos,omitempty"
168
172
  QuotaGroup: Optional[str] = "" # 所在配额组 json:"QuotaGroup,omitempty"
@@ -170,6 +174,8 @@ class GetJobData:
170
174
  RealCreator: Optional[str] = "" # 实际创建者用户名(共享场景下与 Creator 不同) json:"RealCreator,omitempty"
171
175
  RealCreatorId: Optional[str] = "" # 实际创建者用户 ID(共享场景下与 CreatorId 不同) json:"RealCreatorId,omitempty"
172
176
  RegionId: Optional[str] = "" # 地域,从 RJob topology labels 读取;存量数据缺失时回填默认值 cn-shanghai json:"RegionId,omitempty"
177
+ RestartCount: Optional[int] = 0 # 容器重启次数,取自 RJob status.restartCount json:"RestartCount,omitempty"
178
+ RestartPolicy: Optional[str] = None # SDK常量: RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever, RestartPolicyRestartJobOnFailure, RestartPolicyRestartPreferNewMachine json:"RestartPolicy,omitempty"
173
179
  S3Config: Optional[S3Config] = None # json:"S3Config,omitempty"
174
180
  SKUPrivate: Optional[bool] = False # 是否使用私有机器 SKU json:"SKUPrivate,omitempty"
175
181
  SKUPrivateProject: Optional[bool] = False # 是否为项目级私有 SKU json:"SKUPrivateProject,omitempty"
@@ -181,6 +187,7 @@ class GetJobData:
181
187
  SelfHealLimitCount: Optional[int] = 0 # 自愈最大重试次数 json:"SelfHealLimitCount,omitempty"
182
188
  SelfHealNotifyWebhook: Optional[str] = "" # 自愈事件通知 Webhook URL json:"SelfHealNotifyWebhook,omitempty"
183
189
  SelfHealRetryScope: Optional[str] = "" # 自愈重试粒度(rjob/task) json:"SelfHealRetryScope,omitempty"
190
+ SelfHealTerminationGracePeriodSeconds: Optional[int] = 0 # 自愈数据回收时间(秒),读取自愈注解 self-health.brainpp.cn/termination-grace-period-seconds;未设置时不返回 json:"SelfHealTerminationGracePeriodSeconds,omitempty"
184
191
  StopTime: Optional[str] = "" # 停止时间(RFC3339 格式) json:"StopTime,omitempty"
185
192
  TaskSpecs: Optional[Dict[str, TaskSpecResponse]] = None # 任务规格映射,key 为任务名(如 t0),value 为任务规格 json:"TaskSpecs,omitempty"
186
193
  TaskStatusCounts: Optional[Dict[str, TaskStatusCount]] = None # 各任务副本状态数量统计 json:"TaskStatusCounts,omitempty"
@@ -380,6 +387,7 @@ class TaskSpecResponse:
380
387
  PositiveTags: Optional[List[str]] = None # 节点亲和标签列表 json:"PositiveTags,omitempty"
381
388
  RegionId: Optional[str] = "" # 地域,从 TaskSpec template labels 读取;缺失时回填默认值 cn-shanghai json:"RegionId,omitempty"
382
389
  Replicas: Optional[int] = 0 # 副本数 json:"Replicas,omitempty"
390
+ RestartPolicy: Optional[str] = None # SDK常量: RestartPolicyAlways, RestartPolicyOnFailure, RestartPolicyNever, RestartPolicyRestartJobOnFailure, RestartPolicyRestartPreferNewMachine json:"RestartPolicy,omitempty"
383
391
  RootfsSource: Optional[RootfsSourceResponse] = None # Rootfs 数据源配置 json:"RootfsSource,omitempty"
384
392
  SKUId: Optional[str] = "" # SKU 规格标识,如 ai.c3m42.r1ir5 json:"SKUId,omitempty"
385
393
  UpdatePolicy: Optional[str] = None # SDK常量: UpdatePolicyActive, UpdatePolicyBeforeRunning, UpdatePolicyNone json:"UpdatePolicy,omitempty"
@@ -470,6 +478,7 @@ class ListJobsReq:
470
478
  Limit: Optional[int] = None # 分页大小,最大值 100 query:"Limit,omitempty"
471
479
  Offset: Optional[int] = None # 分页偏移量 query:"Offset,omitempty"
472
480
  Phases: Optional[str] = None # 按状态过滤(逗号分隔,如 Pending,Running,Succeeded) query:"Phases,omitempty"
481
+ PoolName: Optional[str] = None # 按资源池名称过滤(逗号分隔多个资源池名称,等值匹配) query:"PoolName,omitempty"
473
482
  QuotaGroup: Optional[str] = None # 按配额组过滤(逗号分隔多个配额组) query:"QuotaGroup,omitempty"
474
483
  Self: Optional[bool] = None # 是否只看自己创建的任务 query:"Self,omitempty"
475
484
  SortBy: Optional[str] = None # 排序字段,如 CreationTime query:"SortBy,omitempty"
@@ -11,6 +11,7 @@ from .actions import (
11
11
  create_quota_group,
12
12
  delete_project,
13
13
  delete_quota_group,
14
+ get_low_priority_usage,
14
15
  get_node_quota,
15
16
  get_project,
16
17
  get_project_quota,
@@ -28,6 +29,7 @@ from .actions import (
28
29
  list_projects_with_sku_quotas,
29
30
  list_quota_groups,
30
31
  list_quota_groups_simple,
32
+ list_quota_groups_under_tenant,
31
33
  list_skus,
32
34
  list_zones,
33
35
  operate_node,
@@ -40,6 +42,7 @@ from .actions import (
40
42
  create_quota_group_async,
41
43
  delete_project_async,
42
44
  delete_quota_group_async,
45
+ get_low_priority_usage_async,
43
46
  get_node_quota_async,
44
47
  get_project_async,
45
48
  get_project_quota_async,
@@ -57,6 +60,7 @@ from .actions import (
57
60
  list_projects_with_sku_quotas_async,
58
61
  list_quota_groups_async,
59
62
  list_quota_groups_simple_async,
63
+ list_quota_groups_under_tenant_async,
60
64
  list_skus_async,
61
65
  list_zones_async,
62
66
  operate_node_async,
@@ -96,6 +100,7 @@ from .models import (
96
100
  ListQuotaGroupsSimpleData,
97
101
  ListSKUsData,
98
102
  ListZonesData,
103
+ GetLowPriorityUsageData,
99
104
  Metadata,
100
105
  ListNodeConfigurationData,
101
106
  NodeData,
@@ -132,6 +137,7 @@ from .models import (
132
137
  UpdateQuotaGroupReq,
133
138
  ZoneData,
134
139
  DeleteQuotaGroupReq,
140
+ GetLowPriorityUsageReq,
135
141
  GetNodeQuotaReq,
136
142
  GetProjectReq,
137
143
  GetProjectQuotaReq,
@@ -149,7 +155,9 @@ from .models import (
149
155
  ListProjectsWithSkuQuotasReq,
150
156
  ListQuotaGroupsReq,
151
157
  ListQuotaGroupsSimpleReq,
158
+ ListQuotaGroupsUnderTenantReq,
152
159
  ListSKUsReq,
153
160
  ListZonesReq,
154
161
  ListQuotaGroupsData,
162
+ ListQuotaGroupsUnderTenantData,
155
163
  )
@@ -95,7 +95,7 @@ async def create_project_async(ctx: Optional[dict], req: models.CreateProjectReq
95
95
 
96
96
  def create_quota_group(ctx: Optional[dict], req: models.CreateQuotaGroupReq):
97
97
  """创建配额组
98
- 创建配额组
98
+ 创建配额组(v1.9.0 资源池:入参必填 PoolId 挂池;PRD 优先级上限:入参可选 PriorityLimit(1-9,默认 9=不限制);Description/Tags 已按产品要求移除)
99
99
  POST /mc/v1alpha1/CreateQuotaGroup
100
100
  Action: CreateQuotaGroup
101
101
 
@@ -109,7 +109,7 @@ def create_quota_group(ctx: Optional[dict], req: models.CreateQuotaGroupReq):
109
109
 
110
110
  async def create_quota_group_async(ctx: Optional[dict], req: models.CreateQuotaGroupReq):
111
111
  """创建配额组(异步)
112
- 创建配额组
112
+ 创建配额组(v1.9.0 资源池:入参必填 PoolId 挂池;PRD 优先级上限:入参可选 PriorityLimit(1-9,默认 9=不限制);Description/Tags 已按产品要求移除)
113
113
  POST /mc/v1alpha1/CreateQuotaGroup
114
114
  Action: CreateQuotaGroup
115
115
 
@@ -177,6 +177,36 @@ async def delete_quota_group_async(ctx: Optional[dict], req: models.DeleteQuotaG
177
177
  await client.base.post_async(ctx, path, req, rsp)
178
178
 
179
179
 
180
+ def get_low_priority_usage(ctx: Optional[dict], req: models.GetLowPriorityUsageReq) -> models.GetLowPriorityUsageData:
181
+ """查询低优资源占用
182
+ 查询低优(priority 1-3)Running pod 的资源占用,不计入配额;支持池/组双维度查询
183
+ GET /mc/v1alpha1/GetLowPriorityUsage
184
+ Action: GetLowPriorityUsage
185
+
186
+ Returns GetLowPriorityUsageData on success.
187
+ Raises YiCloudException on error.
188
+ """
189
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetLowPriorityUsage"
190
+ rsp = msgs.Rsp[models.GetLowPriorityUsageData]()
191
+ client.base.get(ctx, path, req, rsp)
192
+ return rsp.get_typed_data()
193
+
194
+
195
+ async def get_low_priority_usage_async(ctx: Optional[dict], req: models.GetLowPriorityUsageReq) -> models.GetLowPriorityUsageData:
196
+ """查询低优资源占用(异步)
197
+ 查询低优(priority 1-3)Running pod 的资源占用,不计入配额;支持池/组双维度查询
198
+ GET /mc/v1alpha1/GetLowPriorityUsage
199
+ Action: GetLowPriorityUsage
200
+
201
+ Returns GetLowPriorityUsageData on success.
202
+ Raises YiCloudException on error.
203
+ """
204
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetLowPriorityUsage"
205
+ rsp = msgs.Rsp[models.GetLowPriorityUsageData]()
206
+ await client.base.get_async(ctx, path, req, rsp)
207
+ return rsp.get_typed_data()
208
+
209
+
180
210
  def get_node_quota(ctx: Optional[dict], req: models.GetNodeQuotaReq) -> models.GetNodeQuotaData:
181
211
  """获取节点配额
182
212
  获取节点配额
@@ -299,7 +329,7 @@ async def get_project_quota_limit_async(ctx: Optional[dict], req: models.GetProj
299
329
 
300
330
  def get_quota_group(ctx: Optional[dict], req: models.GetQuotaGroupReq) -> models.GetQuotaGroupData:
301
331
  """获取配额组
302
- 获取配额组信息
332
+ 获取配额组信息(v1.9.0 资源池:出参新增 PoolId/PoolName/MachineCount/GpuModels(始终返回,未挂池为空值)与 PublicNetworks(机器 label 派生);PRD 优先级上限:出参 PriorityLimit(1-9,默认 9))
303
333
  GET /mc/v1alpha1/GetQuotaGroup
304
334
  Action: GetQuotaGroup
305
335
 
@@ -314,7 +344,7 @@ def get_quota_group(ctx: Optional[dict], req: models.GetQuotaGroupReq) -> models
314
344
 
315
345
  async def get_quota_group_async(ctx: Optional[dict], req: models.GetQuotaGroupReq) -> models.GetQuotaGroupData:
316
346
  """获取配额组(异步)
317
- 获取配额组信息
347
+ 获取配额组信息(v1.9.0 资源池:出参新增 PoolId/PoolName/MachineCount/GpuModels(始终返回,未挂池为空值)与 PublicNetworks(机器 label 派生);PRD 优先级上限:出参 PriorityLimit(1-9,默认 9))
318
348
  GET /mc/v1alpha1/GetQuotaGroup
319
349
  Action: GetQuotaGroup
320
350
 
@@ -479,7 +509,18 @@ async def list_nodes_async(ctx: Optional[dict], req: models.ListNodesReq) -> mod
479
509
 
480
510
  def list_project_quota_groups(ctx: Optional[dict], req: models.ListProjectQuotaGroupsReq) -> models.ListProjectQuotaGroupsData:
481
511
  """查看当前项目下配额组列表
482
- 列出项目下配额组
512
+ 列出项目下配额组(v1.9.0 资源池:出参新增 PoolId/PoolName/MachineCount/GpuModels(始终返回,未挂池为空值)与 PublicNetworks(机器 label 派生);PRD 优先级上限:出参 PriorityLimit(1-9,值越大优先级越高,默认 9))
513
+ 排序:支持 SortBy 参数(字段大小区分不敏感)
514
+ - PriorityLimit: 按优先级上限排序
515
+ - CreationTime: 按创建时间排序
516
+ - Name: 按配额组名称排序
517
+ - PoolName: 按资源池排序(v1.9.0)
518
+ - Region: 按区域排序(v1.9.0 多 AZ)
519
+ - SchedStrategy: 按调度策略排序
520
+ - MachineCount: 按组可用机器数排序(v1.9.0 资源池;count 相同时按创建时间降序)
521
+ - PodCount: 按组内 Running pod 数排序(v1.9.0;count 相同时按创建时间降序)
522
+ - CPU/GPU/Memory/LocalDisk/DiskHdd/DiskSsd: 按资源总量排序(CPU=核、GPU=卡、Memory/本地盘=Gi;同值按创建时间降序)
523
+ 未传 SortBy 时默认按 CreationTime 降序排列
483
524
  GET /mc/v1alpha1/ListProjectQuotaGroups
484
525
  Action: ListProjectQuotaGroups
485
526
 
@@ -494,7 +535,18 @@ def list_project_quota_groups(ctx: Optional[dict], req: models.ListProjectQuotaG
494
535
 
495
536
  async def list_project_quota_groups_async(ctx: Optional[dict], req: models.ListProjectQuotaGroupsReq) -> models.ListProjectQuotaGroupsData:
496
537
  """查看当前项目下配额组列表(异步)
497
- 列出项目下配额组
538
+ 列出项目下配额组(v1.9.0 资源池:出参新增 PoolId/PoolName/MachineCount/GpuModels(始终返回,未挂池为空值)与 PublicNetworks(机器 label 派生);PRD 优先级上限:出参 PriorityLimit(1-9,值越大优先级越高,默认 9))
539
+ 排序:支持 SortBy 参数(字段大小区分不敏感)
540
+ - PriorityLimit: 按优先级上限排序
541
+ - CreationTime: 按创建时间排序
542
+ - Name: 按配额组名称排序
543
+ - PoolName: 按资源池排序(v1.9.0)
544
+ - Region: 按区域排序(v1.9.0 多 AZ)
545
+ - SchedStrategy: 按调度策略排序
546
+ - MachineCount: 按组可用机器数排序(v1.9.0 资源池;count 相同时按创建时间降序)
547
+ - PodCount: 按组内 Running pod 数排序(v1.9.0;count 相同时按创建时间降序)
548
+ - CPU/GPU/Memory/LocalDisk/DiskHdd/DiskSsd: 按资源总量排序(CPU=核、GPU=卡、Memory/本地盘=Gi;同值按创建时间降序)
549
+ 未传 SortBy 时默认按 CreationTime 降序排列
498
550
  GET /mc/v1alpha1/ListProjectQuotaGroups
499
551
  Action: ListProjectQuotaGroups
500
552
 
@@ -629,7 +681,18 @@ async def list_projects_with_sku_quotas_async(ctx: Optional[dict], req: models.L
629
681
 
630
682
  def list_quota_groups(ctx: Optional[dict], req: models.ListQuotaGroupsReq) -> models.ListQuotaGroupsData:
631
683
  """查看配额组列表
632
- 列出配额组
684
+ 列出配额组(v1.9.0 资源池:出参新增 PoolId/PoolName/MachineCount/GpuModels(始终返回,未挂池为空值)与 PublicNetworks(机器 label 派生);PRD 优先级上限:出参 PriorityLimit(1-9,值越大优先级越高,默认 9))
685
+ 排序:支持 SortBy 参数(字段大小区分不敏感)
686
+ - PriorityLimit: 按优先级上限排序
687
+ - CreationTime: 按创建时间排序
688
+ - Name: 按配额组名称排序
689
+ - PoolName: 按资源池排序(v1.9.0)
690
+ - Region: 按区域排序(v1.9.0 多 AZ)
691
+ - SchedStrategy: 按调度策略排序
692
+ - MachineCount: 按组可用机器数排序(v1.9.0 资源池;count 相同时按创建时间降序)
693
+ - PodCount: 按组内 Running pod 数排序(v1.9.0;count 相同时按创建时间降序)
694
+ - CPU/GPU/Memory/LocalDisk/DiskHdd/DiskSsd: 按资源总量排序(CPU=核、GPU=卡、Memory/本地盘=Gi;同值按创建时间降序)
695
+ 未传 SortBy 时默认按 CreationTime 降序排列
633
696
  GET /mc/v1alpha1/ListQuotaGroups
634
697
  Action: ListQuotaGroups
635
698
 
@@ -644,7 +707,18 @@ def list_quota_groups(ctx: Optional[dict], req: models.ListQuotaGroupsReq) -> mo
644
707
 
645
708
  async def list_quota_groups_async(ctx: Optional[dict], req: models.ListQuotaGroupsReq) -> models.ListQuotaGroupsData:
646
709
  """查看配额组列表(异步)
647
- 列出配额组
710
+ 列出配额组(v1.9.0 资源池:出参新增 PoolId/PoolName/MachineCount/GpuModels(始终返回,未挂池为空值)与 PublicNetworks(机器 label 派生);PRD 优先级上限:出参 PriorityLimit(1-9,值越大优先级越高,默认 9))
711
+ 排序:支持 SortBy 参数(字段大小区分不敏感)
712
+ - PriorityLimit: 按优先级上限排序
713
+ - CreationTime: 按创建时间排序
714
+ - Name: 按配额组名称排序
715
+ - PoolName: 按资源池排序(v1.9.0)
716
+ - Region: 按区域排序(v1.9.0 多 AZ)
717
+ - SchedStrategy: 按调度策略排序
718
+ - MachineCount: 按组可用机器数排序(v1.9.0 资源池;count 相同时按创建时间降序)
719
+ - PodCount: 按组内 Running pod 数排序(v1.9.0;count 相同时按创建时间降序)
720
+ - CPU/GPU/Memory/LocalDisk/DiskHdd/DiskSsd: 按资源总量排序(CPU=核、GPU=卡、Memory/本地盘=Gi;同值按创建时间降序)
721
+ 未传 SortBy 时默认按 CreationTime 降序排列
648
722
  GET /mc/v1alpha1/ListQuotaGroups
649
723
  Action: ListQuotaGroups
650
724
 
@@ -687,6 +761,58 @@ async def list_quota_groups_simple_async(ctx: Optional[dict], req: models.ListQu
687
761
  return rsp.get_typed_data()
688
762
 
689
763
 
764
+ def list_quota_groups_under_tenant(ctx: Optional[dict], req: models.ListQuotaGroupsUnderTenantReq) -> models.ListQuotaGroupsUnderTenantData:
765
+ """查看租户下配额组列表
766
+ 列出租户下全部配额组(v1.9.1 新增:跨项目全量;仅租户管理员,非租户管理员 403;过滤/排序/分页与 ListQuotaGroups 同语义)
767
+ 排序:支持 SortBy 参数(字段大小区分不敏感)
768
+ - PriorityLimit: 按优先级上限排序
769
+ - CreationTime: 按创建时间排序
770
+ - Name: 按配额组名称排序
771
+ - PoolName: 按资源池排序(v1.9.0)
772
+ - Region: 按区域排序(v1.9.0 多 AZ)
773
+ - SchedStrategy: 按调度策略排序
774
+ - MachineCount: 按组可用机器数排序(v1.9.0 资源池;count 相同时按创建时间降序)
775
+ - PodCount: 按组内 Running pod 数排序(v1.9.0;count 相同时按创建时间降序)
776
+ - CPU/GPU/Memory/LocalDisk/DiskHdd/DiskSsd: 按资源总量排序(CPU=核、GPU=卡、Memory/本地盘=Gi;同值按创建时间降序)
777
+ 未传 SortBy 时默认按 CreationTime 降序排列
778
+ GET /mc/v1alpha1/ListQuotaGroupsUnderTenant
779
+ Action: ListQuotaGroupsUnderTenant
780
+
781
+ Returns ListQuotaGroupsUnderTenantData on success.
782
+ Raises YiCloudException on error.
783
+ """
784
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListQuotaGroupsUnderTenant"
785
+ rsp = msgs.Rsp[models.ListQuotaGroupsUnderTenantData]()
786
+ client.base.get(ctx, path, req, rsp)
787
+ return rsp.get_typed_data()
788
+
789
+
790
+ async def list_quota_groups_under_tenant_async(ctx: Optional[dict], req: models.ListQuotaGroupsUnderTenantReq) -> models.ListQuotaGroupsUnderTenantData:
791
+ """查看租户下配额组列表(异步)
792
+ 列出租户下全部配额组(v1.9.1 新增:跨项目全量;仅租户管理员,非租户管理员 403;过滤/排序/分页与 ListQuotaGroups 同语义)
793
+ 排序:支持 SortBy 参数(字段大小区分不敏感)
794
+ - PriorityLimit: 按优先级上限排序
795
+ - CreationTime: 按创建时间排序
796
+ - Name: 按配额组名称排序
797
+ - PoolName: 按资源池排序(v1.9.0)
798
+ - Region: 按区域排序(v1.9.0 多 AZ)
799
+ - SchedStrategy: 按调度策略排序
800
+ - MachineCount: 按组可用机器数排序(v1.9.0 资源池;count 相同时按创建时间降序)
801
+ - PodCount: 按组内 Running pod 数排序(v1.9.0;count 相同时按创建时间降序)
802
+ - CPU/GPU/Memory/LocalDisk/DiskHdd/DiskSsd: 按资源总量排序(CPU=核、GPU=卡、Memory/本地盘=Gi;同值按创建时间降序)
803
+ 未传 SortBy 时默认按 CreationTime 降序排列
804
+ GET /mc/v1alpha1/ListQuotaGroupsUnderTenant
805
+ Action: ListQuotaGroupsUnderTenant
806
+
807
+ Returns ListQuotaGroupsUnderTenantData on success.
808
+ Raises YiCloudException on error.
809
+ """
810
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListQuotaGroupsUnderTenant"
811
+ rsp = msgs.Rsp[models.ListQuotaGroupsUnderTenantData]()
812
+ await client.base.get_async(ctx, path, req, rsp)
813
+ return rsp.get_typed_data()
814
+
815
+
690
816
  def list_skus(ctx: Optional[dict], req: models.ListSKUsReq) -> models.ListSKUsData:
691
817
  """获取SKU列表
692
818
  获取SKU列表
@@ -833,7 +959,7 @@ async def update_project_async(ctx: Optional[dict], req: models.UpdateProjectReq
833
959
 
834
960
  def update_quota_group(ctx: Optional[dict], req: models.UpdateQuotaGroupReq):
835
961
  """更新配额组
836
- 更新配额组
962
+ 更新配额组(UpdateOption:quota/user/quota_nodes/all;all 可同时更新配额和用户;池关联字段不可改——请求体无此字段,结构性拒改;PRD 优先级上限:可选 PriorityLimit(1-9,nil=不更新,仅 quota/all 生效))
837
963
  POST /mc/v1alpha1/UpdateQuotaGroup
838
964
  Action: UpdateQuotaGroup
839
965
 
@@ -847,7 +973,7 @@ def update_quota_group(ctx: Optional[dict], req: models.UpdateQuotaGroupReq):
847
973
 
848
974
  async def update_quota_group_async(ctx: Optional[dict], req: models.UpdateQuotaGroupReq):
849
975
  """更新配额组(异步)
850
- 更新配额组
976
+ 更新配额组(UpdateOption:quota/user/quota_nodes/all;all 可同时更新配额和用户;池关联字段不可改——请求体无此字段,结构性拒改;PRD 优先级上限:可选 PriorityLimit(1-9,nil=不更新,仅 quota/all 生效))
851
977
  POST /mc/v1alpha1/UpdateQuotaGroup
852
978
  Action: UpdateQuotaGroup
853
979