yicloud-sdk-python 0.1.0__tar.gz → 0.2.1__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 (106) hide show
  1. {yicloud_sdk_python-0.1.0/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.2.1}/PKG-INFO +30 -20
  2. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/README.md +29 -19
  3. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/pyproject.toml +1 -1
  4. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/version.py +1 -1
  5. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/__init__.py +1 -1
  6. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/client.py +4 -0
  7. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/msgs/__init__.py +2 -2
  8. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/__init__.py +18 -8
  9. yicloud_sdk_python-0.2.1/yicloud/services/bc/__init__.py +33 -0
  10. yicloud_sdk_python-0.2.1/yicloud/services/bc/actions.py +70 -0
  11. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/bc/client.py +4 -2
  12. yicloud_sdk_python-0.2.1/yicloud/services/bc/models.py +143 -0
  13. yicloud_sdk_python-0.2.1/yicloud/services/dataset/__init__.py +43 -0
  14. yicloud_sdk_python-0.2.1/yicloud/services/dataset/actions.py +125 -0
  15. yicloud_sdk_python-0.2.1/yicloud/services/dataset/client.py +21 -0
  16. yicloud_sdk_python-0.2.1/yicloud/services/dataset/models.py +179 -0
  17. yicloud_sdk_python-0.2.1/yicloud/services/fs/__init__.py +39 -0
  18. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/fs/actions.py +45 -52
  19. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/fs/client.py +4 -2
  20. yicloud_sdk_python-0.2.1/yicloud/services/fs/models.py +152 -0
  21. yicloud_sdk_python-0.2.1/yicloud/services/iam/__init__.py +52 -0
  22. yicloud_sdk_python-0.2.1/yicloud/services/iam/actions.py +148 -0
  23. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/iam/client.py +4 -2
  24. yicloud_sdk_python-0.2.1/yicloud/services/iam/models.py +156 -0
  25. yicloud_sdk_python-0.2.1/yicloud/services/inferset/__init__.py +125 -0
  26. yicloud_sdk_python-0.2.1/yicloud/services/inferset/actions.py +173 -0
  27. yicloud_sdk_python-0.2.1/yicloud/services/inferset/client.py +21 -0
  28. yicloud_sdk_python-0.2.1/yicloud/services/inferset/models.py +735 -0
  29. yicloud_sdk_python-0.2.1/yicloud/services/job/__init__.py +70 -0
  30. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/job/actions.py +61 -65
  31. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/job/client.py +7 -5
  32. yicloud_sdk_python-0.2.1/yicloud/services/job/models.py +398 -0
  33. yicloud_sdk_python-0.2.1/yicloud/services/mc/__init__.py +110 -0
  34. yicloud_sdk_python-0.2.1/yicloud/services/mc/actions.py +312 -0
  35. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/mc/client.py +3 -3
  36. yicloud_sdk_python-0.2.1/yicloud/services/mc/models.py +548 -0
  37. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/modelrepo/__init__.py +25 -15
  38. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/modelrepo/actions.py +69 -95
  39. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/modelrepo/client.py +7 -5
  40. yicloud_sdk_python-0.2.1/yicloud/services/modelrepo/models.py +197 -0
  41. yicloud_sdk_python-0.2.1/yicloud/services/monitor/__init__.py +17 -0
  42. yicloud_sdk_python-0.2.1/yicloud/services/monitor/actions.py +22 -0
  43. yicloud_sdk_python-0.2.1/yicloud/services/monitor/client.py +21 -0
  44. yicloud_sdk_python-0.2.1/yicloud/services/monitor/models.py +38 -0
  45. yicloud_sdk_python-0.2.1/yicloud/services/oss/__init__.py +35 -0
  46. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/oss/actions.py +25 -38
  47. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/oss/client.py +6 -4
  48. yicloud_sdk_python-0.2.1/yicloud/services/oss/models.py +125 -0
  49. yicloud_sdk_python-0.2.1/yicloud/services/ray/__init__.py +48 -0
  50. yicloud_sdk_python-0.2.1/yicloud/services/ray/actions.py +114 -0
  51. yicloud_sdk_python-0.2.1/yicloud/services/ray/client.py +21 -0
  52. yicloud_sdk_python-0.2.1/yicloud/services/ray/models.py +298 -0
  53. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/registry/__init__.py +31 -26
  54. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/registry/actions.py +71 -128
  55. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/services/registry/client.py +4 -2
  56. yicloud_sdk_python-0.2.1/yicloud/services/registry/models.py +141 -0
  57. yicloud_sdk_python-0.2.1/yicloud/services/volume/__init__.py +53 -0
  58. yicloud_sdk_python-0.2.1/yicloud/services/volume/actions.py +151 -0
  59. yicloud_sdk_python-0.2.1/yicloud/services/volume/client.py +21 -0
  60. yicloud_sdk_python-0.2.1/yicloud/services/volume/models.py +214 -0
  61. yicloud_sdk_python-0.2.1/yicloud/services/workspace/__init__.py +86 -0
  62. yicloud_sdk_python-0.2.1/yicloud/services/workspace/actions.py +253 -0
  63. yicloud_sdk_python-0.2.1/yicloud/services/workspace/client.py +21 -0
  64. yicloud_sdk_python-0.2.1/yicloud/services/workspace/models.py +420 -0
  65. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1/yicloud_sdk_python.egg-info}/PKG-INFO +30 -20
  66. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud_sdk_python.egg-info/SOURCES.txt +24 -4
  67. yicloud_sdk_python-0.1.0/yicloud/services/bc/__init__.py +0 -9
  68. yicloud_sdk_python-0.1.0/yicloud/services/bc/actions.py +0 -23
  69. yicloud_sdk_python-0.1.0/yicloud/services/bc/models.py +0 -61
  70. yicloud_sdk_python-0.1.0/yicloud/services/fs/__init__.py +0 -29
  71. yicloud_sdk_python-0.1.0/yicloud/services/fs/models.py +0 -152
  72. yicloud_sdk_python-0.1.0/yicloud/services/iam/__init__.py +0 -27
  73. yicloud_sdk_python-0.1.0/yicloud/services/iam/actions.py +0 -304
  74. yicloud_sdk_python-0.1.0/yicloud/services/iam/models.py +0 -276
  75. yicloud_sdk_python-0.1.0/yicloud/services/job/__init__.py +0 -44
  76. yicloud_sdk_python-0.1.0/yicloud/services/job/models.py +0 -268
  77. yicloud_sdk_python-0.1.0/yicloud/services/mc/__init__.py +0 -59
  78. yicloud_sdk_python-0.1.0/yicloud/services/mc/actions.py +0 -221
  79. yicloud_sdk_python-0.1.0/yicloud/services/mc/models.py +0 -322
  80. yicloud_sdk_python-0.1.0/yicloud/services/modelrepo/models.py +0 -146
  81. yicloud_sdk_python-0.1.0/yicloud/services/modelset/__init__.py +0 -45
  82. yicloud_sdk_python-0.1.0/yicloud/services/modelset/actions.py +0 -130
  83. yicloud_sdk_python-0.1.0/yicloud/services/modelset/client.py +0 -19
  84. yicloud_sdk_python-0.1.0/yicloud/services/modelset/models.py +0 -356
  85. yicloud_sdk_python-0.1.0/yicloud/services/oss/__init__.py +0 -25
  86. yicloud_sdk_python-0.1.0/yicloud/services/oss/models.py +0 -113
  87. yicloud_sdk_python-0.1.0/yicloud/services/registry/models.py +0 -183
  88. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/LICENSE +0 -0
  89. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/setup.cfg +0 -0
  90. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/__init__.py +0 -0
  91. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/auth/__init__.py +0 -0
  92. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/auth/credential.py +0 -0
  93. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/auth/sign.py +0 -0
  94. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/config.py +0 -0
  95. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/errs/__init__.py +0 -0
  96. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/log/__init__.py +0 -0
  97. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/log/logger.py +0 -0
  98. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/log/std.py +0 -0
  99. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/utils/__init__.py +0 -0
  100. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/utils/helps.py +0 -0
  101. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/utils/retry/__init__.py +0 -0
  102. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud/base/utils/retry/retry.py +0 -0
  103. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
  104. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
  105. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/yicloud_sdk_python.egg-info/requires.txt +0 -0
  106. {yicloud_sdk_python-0.1.0 → yicloud_sdk_python-0.2.1}/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.1.0
3
+ Version: 0.2.1
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
@@ -109,15 +109,20 @@ except base.exc.YiCloudException as e:
109
109
 
110
110
  | Service | Package | Actions | Description |
111
111
  |---------|---------|---------|-------------|
112
- | IAM | `yicloud.services.iam` | 22 | User, AccessKey, Project, QuotaGroup management |
113
- | Job | `yicloud.services.job` | 11 | Job lifecycle, logs, replicas |
114
- | MC | `yicloud.services.mc` | 16 | Node, SKU, Project, QuotaGroup management |
115
- | FS | `yicloud.services.fs` | 7 | Fileset, directory operations |
116
- | OSS | `yicloud.services.oss` | 5 | Bucket CRUD |
117
- | Registry | `yicloud.services.registry` | 14 | Image and repository management |
118
- | ModelRepo | `yicloud.services.modelrepo` | 11 | Model and version management |
119
- | ModelSet | `yicloud.services.modelset` | 9 | ModelSet lifecycle and scaling |
120
- | BC | `yicloud.services.bc` | 1 | Billing details |
112
+ | BC | `yicloud.services.bc` | 5 | 账单管理 BC |
113
+ | Dataset | `yicloud.services.dataset` | 10 | 数据集 DATASET |
114
+ | FS | `yicloud.services.fs` | 8 | 文件系统 FS |
115
+ | IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
116
+ | Inferset | `yicloud.services.inferset` | 14 | 模型推理服务 INFERSET |
117
+ | JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
118
+ | MC | `yicloud.services.mc` | 26 | 管理中心 MC |
119
+ | Modelrepo | `yicloud.services.modelrepo` | 11 | 模型仓库 MODELREPO |
120
+ | Monitor | `yicloud.services.monitor` | 1 | 监控中心 MONITOR |
121
+ | OSS | `yicloud.services.oss` | 5 | 对象存储OSS |
122
+ | RAY | `yicloud.services.ray` | 9 | 分布式计算 Ray |
123
+ | Registry | `yicloud.services.registry` | 12 | 镜像仓库 REGISTRY |
124
+ | Volume | `yicloud.services.volume` | 12 | 云盘管理 Volume |
125
+ | Workspace | `yicloud.services.workspace` | 21 | 开发机 WS |
121
126
 
122
127
  ## Project Structure
123
128
 
@@ -131,15 +136,20 @@ yicloud/ # Main package
131
136
  │ ├── log/ # Logger
132
137
  │ ├── msgs/ # Response types (Rsp[T], Header, RspMeta)
133
138
  │ └── utils/ # Utilities
134
- └── services/ # Business services (9 services)
135
- ├── iam/ # Identity & Access Management
136
- ├── job/ # Job management
137
- ├── mc/ # Multi-cluster management
138
- ├── fs/ # Filesystem management
139
- ├── oss/ # Object storage
140
- ├── registry/ # Container registry
141
- ├── modelrepo/ # Model repository
142
- ├── modelset/ # ModelSet lifecycle
143
- └── bc/ # Billing center
139
+ └── services/ # Business services (14 services)
140
+ ├── bc/ # 账单管理 BC
141
+ ├── dataset/ # 数据集 DATASET
142
+ ├── fs/ # 文件系统 FS
143
+ ├── iam/ # 访问控制 IAM
144
+ ├── inferset/ # 模型推理服务 INFERSET
145
+ ├── job/ # 训练任务 JOB
146
+ ├── mc/ # 管理中心 MC
147
+ ├── modelrepo/ # 模型仓库 MODELREPO
148
+ ├── monitor/ # 监控中心 MONITOR
149
+ ├── oss/ # 对象存储OSS
150
+ ├── ray/ # 分布式计算 Ray
151
+ ├── registry/ # 镜像仓库 REGISTRY
152
+ ├── volume/ # 云盘管理 Volume
153
+ ├── workspace/ # 开发机 WS
144
154
  examples/ # Example code (one per service)
145
155
  ```
@@ -70,15 +70,20 @@ except base.exc.YiCloudException as e:
70
70
 
71
71
  | Service | Package | Actions | Description |
72
72
  |---------|---------|---------|-------------|
73
- | IAM | `yicloud.services.iam` | 22 | User, AccessKey, Project, QuotaGroup management |
74
- | Job | `yicloud.services.job` | 11 | Job lifecycle, logs, replicas |
75
- | MC | `yicloud.services.mc` | 16 | Node, SKU, Project, QuotaGroup management |
76
- | FS | `yicloud.services.fs` | 7 | Fileset, directory operations |
77
- | OSS | `yicloud.services.oss` | 5 | Bucket CRUD |
78
- | Registry | `yicloud.services.registry` | 14 | Image and repository management |
79
- | ModelRepo | `yicloud.services.modelrepo` | 11 | Model and version management |
80
- | ModelSet | `yicloud.services.modelset` | 9 | ModelSet lifecycle and scaling |
81
- | BC | `yicloud.services.bc` | 1 | Billing details |
73
+ | BC | `yicloud.services.bc` | 5 | 账单管理 BC |
74
+ | Dataset | `yicloud.services.dataset` | 10 | 数据集 DATASET |
75
+ | FS | `yicloud.services.fs` | 8 | 文件系统 FS |
76
+ | IAM | `yicloud.services.iam` | 12 | 访问控制 IAM |
77
+ | Inferset | `yicloud.services.inferset` | 14 | 模型推理服务 INFERSET |
78
+ | JOB | `yicloud.services.job` | 13 | 训练任务 JOB |
79
+ | MC | `yicloud.services.mc` | 26 | 管理中心 MC |
80
+ | Modelrepo | `yicloud.services.modelrepo` | 11 | 模型仓库 MODELREPO |
81
+ | Monitor | `yicloud.services.monitor` | 1 | 监控中心 MONITOR |
82
+ | OSS | `yicloud.services.oss` | 5 | 对象存储OSS |
83
+ | RAY | `yicloud.services.ray` | 9 | 分布式计算 Ray |
84
+ | Registry | `yicloud.services.registry` | 12 | 镜像仓库 REGISTRY |
85
+ | Volume | `yicloud.services.volume` | 12 | 云盘管理 Volume |
86
+ | Workspace | `yicloud.services.workspace` | 21 | 开发机 WS |
82
87
 
83
88
  ## Project Structure
84
89
 
@@ -92,15 +97,20 @@ yicloud/ # Main package
92
97
  │ ├── log/ # Logger
93
98
  │ ├── msgs/ # Response types (Rsp[T], Header, RspMeta)
94
99
  │ └── utils/ # Utilities
95
- └── services/ # Business services (9 services)
96
- ├── iam/ # Identity & Access Management
97
- ├── job/ # Job management
98
- ├── mc/ # Multi-cluster management
99
- ├── fs/ # Filesystem management
100
- ├── oss/ # Object storage
101
- ├── registry/ # Container registry
102
- ├── modelrepo/ # Model repository
103
- ├── modelset/ # ModelSet lifecycle
104
- └── bc/ # Billing center
100
+ └── services/ # Business services (14 services)
101
+ ├── bc/ # 账单管理 BC
102
+ ├── dataset/ # 数据集 DATASET
103
+ ├── fs/ # 文件系统 FS
104
+ ├── iam/ # 访问控制 IAM
105
+ ├── inferset/ # 模型推理服务 INFERSET
106
+ ├── job/ # 训练任务 JOB
107
+ ├── mc/ # 管理中心 MC
108
+ ├── modelrepo/ # 模型仓库 MODELREPO
109
+ ├── monitor/ # 监控中心 MONITOR
110
+ ├── oss/ # 对象存储OSS
111
+ ├── ray/ # 分布式计算 Ray
112
+ ├── registry/ # 镜像仓库 REGISTRY
113
+ ├── volume/ # 云盘管理 Volume
114
+ ├── workspace/ # 开发机 WS
105
115
  examples/ # Example code (one per service)
106
116
  ```
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "yicloud-sdk-python"
7
- version = "0.1.0"
7
+ version = "0.2.1"
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.1.0"
1
+ __version__ = "0.2.1"
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.1.0"
7
+ __version__ = "0.2.1"
@@ -205,6 +205,10 @@ def _request(
205
205
  req_body = None
206
206
  body_str = ""
207
207
  if body is not None:
208
+ # Filter out None values so Optional[X]=None fields are omitted from JSON,
209
+ # matching Go's omitempty behavior.
210
+ if isinstance(body, dict):
211
+ body = {k: v for k, v in body.items() if v is not None}
208
212
  try:
209
213
  bs = json.dumps(body, separators=(",", ":"), cls=DataclassEncoder)
210
214
  body_str = bs
@@ -1,5 +1,5 @@
1
1
  import contextvars
2
- from typing import Any, Dict, Generic, Optional, Tuple, TypeVar, Union, get_args, get_origin
2
+ from typing import Any, Dict, Generic, Optional, Tuple, TypeVar, Union, get_args, get_origin, get_type_hints
3
3
  from abc import ABC, abstractmethod
4
4
  from dataclasses import dataclass, fields, is_dataclass
5
5
 
@@ -60,7 +60,7 @@ def _dict_to_dataclass(target_type, data):
60
60
  if not is_dataclass(target_type) or not isinstance(data, dict):
61
61
  return data
62
62
 
63
- field_types = {f.name: f.type for f in fields(target_type)}
63
+ field_types = get_type_hints(target_type)
64
64
 
65
65
  kwargs = {}
66
66
  for key, value in data.items():
@@ -1,24 +1,34 @@
1
1
  # Services package
2
2
  # All service modules matching Go SDK structure
3
3
 
4
+ from . import bc
5
+ from . import dataset
6
+ from . import fs
4
7
  from . import iam
8
+ from . import inferset
5
9
  from . import job
6
- from . import bc
7
10
  from . import mc
11
+ from . import modelrepo
12
+ from . import monitor
8
13
  from . import oss
14
+ from . import ray
9
15
  from . import registry
10
- from . import modelset
11
- from . import modelrepo
12
- from . import fs
16
+ from . import volume
17
+ from . import workspace
13
18
 
14
19
  __all__ = [
20
+ "bc",
21
+ "dataset",
22
+ "fs",
15
23
  "iam",
24
+ "inferset",
16
25
  "job",
17
- "bc",
18
26
  "mc",
27
+ "modelrepo",
28
+ "monitor",
19
29
  "oss",
30
+ "ray",
20
31
  "registry",
21
- "modelset",
22
- "modelrepo",
23
- "fs",
32
+ "volume",
33
+ "workspace",
24
34
  ]
@@ -0,0 +1,33 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from yicloud.services.bc.client import BCClient as Client, client, use_client
4
+ from . import actions, models
5
+
6
+ # Re-export action functions
7
+ from .actions import (
8
+ get_overview_consolidation,
9
+ get_provision_consolidation,
10
+ list_billing_details,
11
+ list_project_consolidations,
12
+ list_tenant_consolidations,
13
+ )
14
+
15
+ # Re-export models
16
+ from .models import (
17
+ Entity,
18
+ GetOverviewConsolidationData,
19
+ GetProvisionConsolidationData,
20
+ InstanceUsageView,
21
+ ListBillingDetailsData,
22
+ ListProjectConsolidationsData,
23
+ ListTenantConsolidationsData,
24
+ ProjectResourceMetrics,
25
+ ProvisionMetricItem,
26
+ ResourceMetric,
27
+ TenantResourceMetrics,
28
+ GetOverviewConsolidationReq,
29
+ GetProvisionConsolidationReq,
30
+ ListBillingDetailsReq,
31
+ ListProjectConsolidationsReq,
32
+ ListTenantConsolidationsReq,
33
+ )
@@ -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.bc import models
6
+ from yicloud.services.bc.client import client
7
+
8
+ _PRODUCT_CODE = "bc"
9
+ _LAST_VERSION = "v1alpha1"
10
+
11
+
12
+ def get_overview_consolidation(ctx: Optional[dict], req: models.GetOverviewConsolidationReq) -> models.GetOverviewConsolidationData:
13
+ """GET /bc/v1alpha1/GetOverviewConsolidation
14
+ Action: GetOverviewConsolidation
15
+
16
+ Returns GetOverviewConsolidationData on success.
17
+ Raises YiCloudException on error.
18
+ """
19
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetOverviewConsolidation"
20
+ rsp = msgs.Rsp[models.GetOverviewConsolidationData]()
21
+ client.base.get(ctx, path, req, rsp)
22
+ return rsp.get_typed_data()
23
+
24
+ def get_provision_consolidation(ctx: Optional[dict], req: models.GetProvisionConsolidationReq) -> models.GetProvisionConsolidationData:
25
+ """GET /bc/v1alpha1/GetProvisionConsolidation
26
+ Action: GetProvisionConsolidation
27
+
28
+ Returns GetProvisionConsolidationData on success.
29
+ Raises YiCloudException on error.
30
+ """
31
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetProvisionConsolidation"
32
+ rsp = msgs.Rsp[models.GetProvisionConsolidationData]()
33
+ client.base.get(ctx, path, req, rsp)
34
+ return rsp.get_typed_data()
35
+
36
+ def list_billing_details(ctx: Optional[dict], req: models.ListBillingDetailsReq) -> models.ListBillingDetailsData:
37
+ """GET /bc/v1alpha1/ListBillingDetails
38
+ Action: ListBillingDetails
39
+
40
+ Returns ListBillingDetailsData on success.
41
+ Raises YiCloudException on error.
42
+ """
43
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListBillingDetails"
44
+ rsp = msgs.Rsp[models.ListBillingDetailsData]()
45
+ client.base.get(ctx, path, req, rsp)
46
+ return rsp.get_typed_data()
47
+
48
+ def list_project_consolidations(ctx: Optional[dict], req: models.ListProjectConsolidationsReq) -> models.ListProjectConsolidationsData:
49
+ """GET /bc/v1alpha1/ListProjectConsolidations
50
+ Action: ListProjectConsolidations
51
+
52
+ Returns ListProjectConsolidationsData on success.
53
+ Raises YiCloudException on error.
54
+ """
55
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListProjectConsolidations"
56
+ rsp = msgs.Rsp[models.ListProjectConsolidationsData]()
57
+ client.base.get(ctx, path, req, rsp)
58
+ return rsp.get_typed_data()
59
+
60
+ def list_tenant_consolidations(ctx: Optional[dict], req: models.ListTenantConsolidationsReq) -> models.ListTenantConsolidationsData:
61
+ """GET /bc/v1alpha1/ListTenantConsolidations
62
+ Action: ListTenantConsolidations
63
+
64
+ Returns ListTenantConsolidationsData on success.
65
+ Raises YiCloudException on error.
66
+ """
67
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListTenantConsolidations"
68
+ rsp = msgs.Rsp[models.ListTenantConsolidationsData]()
69
+ client.base.get(ctx, path, req, rsp)
70
+ return rsp.get_typed_data()
@@ -1,8 +1,10 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
1
3
  from yicloud.base import Client
2
4
 
3
5
 
4
6
  class BCClient:
5
- """BC (Billing Center) service client, matching Go SDK's services/bc/client.go."""
7
+ """BC service client."""
6
8
 
7
9
  def __init__(self, base_client: Client = None):
8
10
  self.base = base_client
@@ -10,7 +12,7 @@ class BCClient:
10
12
  self.last_version = "v1alpha1"
11
13
 
12
14
 
13
- # Singleton matching Go SDK
15
+ # Singleton
14
16
  client: BCClient = BCClient()
15
17
 
16
18
 
@@ -0,0 +1,143 @@
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 Entity:
10
+ ID: Optional[str] = "" # ID json:"ID,omitempty"
11
+ Name: Optional[str] = "" # 名称 json:"Name,omitempty"
12
+
13
+ @dataclass
14
+ class GetOverviewConsolidationData:
15
+ CPU: Optional[ResourceMetric] = None # cpu资源用量 json:"CPU,omitempty"
16
+ FS: Optional[ResourceMetric] = None # 文件系统资源用量 json:"FS,omitempty"
17
+ GPU: Optional[ResourceMetric] = None # gpu资源用量 json:"GPU,omitempty"
18
+ Image: Optional[ResourceMetric] = None # 镜像仓库资源用量 json:"Image,omitempty"
19
+ Memory: Optional[ResourceMetric] = None # 内存资源用量 json:"Memory,omitempty"
20
+ OSS: Optional[ResourceMetric] = None # 对象存储资源用量 json:"OSS,omitempty"
21
+ Volume: Optional[ResourceMetric] = None # 云盘资源用量 json:"Volume,omitempty"
22
+
23
+ @dataclass
24
+ class GetProvisionConsolidationData:
25
+ Private: Optional[ProvisionMetricItem] = None # 私有机器 json:"Private,omitempty"
26
+ Public: Optional[ProvisionMetricItem] = None # 公有资源池 json:"Public,omitempty"
27
+
28
+ @dataclass
29
+ class InstanceUsageView:
30
+ BillingCycle: Optional[str] = "" # 账单账期,如:"2026-05" json:"BillingCycle,omitempty"
31
+ BillingID: Optional[str] = "" # UUID,当前账单记录的唯一标识符 json:"BillingID,omitempty"
32
+ BillingMode: Optional[str] = "" # 计量模式,目前包括:postpaid(按量计费)(针对所有类型的产品)、tokencount(按token计费)(只针对模型部署产品) json:"BillingMode,omitempty"
33
+ BillingTime: Optional[str] = "" # 账单出账时间,格式为本地时区的整点时间,如:"2026-05-08 08:00:00" json:"BillingTime,omitempty"
34
+ InstanceCount: Optional[int] = 0 # 产品实例副本个数,表示当前出账记录对应多少产品实例,在计算真正的用量总量时,需要乘以实例个数 json:"InstanceCount,omitempty"
35
+ InstanceID: Optional[str] = "" # 产品实例ID json:"InstanceID,omitempty"
36
+ InstanceName: Optional[str] = "" # 产品实例名称 json:"InstanceName,omitempty"
37
+ MetricUnit: Optional[str] = "" # 指标单位,格式如:"GiB·小时" json:"MetricUnit,omitempty"
38
+ ProductName: Optional[str] = "" # 产品实例对应的产品名称,目前包括:开发机、部署、RJOB、RAYJOB、私有机器、云盘、文件系统、对象存储、镜像仓库、模型部署 json:"ProductName,omitempty"
39
+ Project: Optional[str] = "" # 项目,产品实例所属项目(可能为空) json:"Project,omitempty"
40
+ RelatedResourceName: Optional[str] = "" # 当前产品实例调度节点信息,格式如:"24705e69-5c1d-4530-ae33-615d712a3338/gpu-muxi-005.x86.test.brainpp.dev" (node_id/node_name) json:"RelatedResourceName,omitempty"
41
+ ResourceCreator: Optional[str] = "" # 实例创建者名称,产品实例的创建者名称(可能为空) json:"ResourceCreator,omitempty"
42
+ SpecDesc: Optional[str] = "" # 资源消耗规格描述,格式如: SKU ID:"ai.nh20.2.c32m424.p1ir5" 或者 通用类型 "16核/1卡/128G",针对产品类型:开发机、部署、RJOB、RAYJOB、模型部署 json:"SpecDesc,omitempty"
43
+ UsageAmount: Optional[float] = 0.0 # 用量费用,当前实际为用量值,表示过去1小时或者0.5小时内,当前实例的实际资源消耗,针对产品类型:云盘、文件系统、对象存储、镜像仓库 json:"UsageAmount,omitempty"
44
+ UsageDurationHours: Optional[float] = 0.0 # 用量时间,比如:1表示1小时、0.5为0.5小时 json:"UsageDurationHours,omitempty"
45
+ UsageTimeRangeEnd: Optional[str] = "" # 当前出账记录对应的出账周期结束时间 json:"UsageTimeRangeEnd,omitempty"
46
+ UsageTimeRangeStart: Optional[str] = "" # 当前出账记录对应的出账周期开始时间 json:"UsageTimeRangeStart,omitempty"
47
+
48
+ @dataclass
49
+ class ListBillingDetailsData:
50
+ Items: Optional[List[InstanceUsageView]] = None # 账单详情列表 json:"Items,omitempty"
51
+ Limit: Optional[int] = 0 # json:"Limit,omitempty"
52
+ Offset: Optional[int] = 0 # json:"Offset,omitempty"
53
+ Total: Optional[int] = 0 # json:"Total,omitempty"
54
+
55
+ @dataclass
56
+ class ListProjectConsolidationsData:
57
+ Items: Optional[List[ProjectResourceMetrics]] = None # 项目资源用量列表 json:"Items,omitempty"
58
+ Limit: Optional[int] = 0 # json:"Limit,omitempty"
59
+ Offset: Optional[int] = 0 # json:"Offset,omitempty"
60
+ Total: Optional[int] = 0 # json:"Total,omitempty"
61
+
62
+ @dataclass
63
+ class ListTenantConsolidationsData:
64
+ Items: Optional[List[TenantResourceMetrics]] = None # 租户资源用量列表 json:"Items,omitempty"
65
+ Limit: Optional[int] = 0 # json:"Limit,omitempty"
66
+ Offset: Optional[int] = 0 # json:"Offset,omitempty"
67
+ Total: Optional[int] = 0 # json:"Total,omitempty"
68
+
69
+ @dataclass
70
+ class ProjectResourceMetrics:
71
+ CPU: Optional[ResourceMetric] = None # cpu资源用量 json:"CPU,omitempty"
72
+ FS: Optional[ResourceMetric] = None # 文件系统资源用量 json:"FS,omitempty"
73
+ GPU: Optional[ResourceMetric] = None # gpu资源用量 json:"GPU,omitempty"
74
+ Image: Optional[ResourceMetric] = None # 镜像仓库资源用量 json:"Image,omitempty"
75
+ Memory: Optional[ResourceMetric] = None # 内存资源用量 json:"Memory,omitempty"
76
+ OSS: Optional[ResourceMetric] = None # 对象存储资源用量 json:"OSS,omitempty"
77
+ Project: Optional[Entity] = None # 项目信息 json:"Project,omitempty"
78
+ Volume: Optional[ResourceMetric] = None # 云盘资源用量 json:"Volume,omitempty"
79
+
80
+ @dataclass
81
+ class ProvisionMetricItem:
82
+ CPU: Optional[ResourceMetric] = None # cpu资源用量 json:"CPU,omitempty"
83
+ GPU: Optional[ResourceMetric] = None # gpu资源用量 json:"GPU,omitempty"
84
+ Memory: Optional[ResourceMetric] = None # 内存资源用量 json:"Memory,omitempty"
85
+
86
+ @dataclass
87
+ class ResourceMetric:
88
+ Unit: Optional[str] = "" # 统计单位 json:"Unit,omitempty"
89
+ Value: Optional[str] = "" # 统计值 json:"Value,omitempty"
90
+
91
+ @dataclass
92
+ class TenantResourceMetrics:
93
+ CPU: Optional[ResourceMetric] = None # cpu资源用量 json:"CPU,omitempty"
94
+ FS: Optional[ResourceMetric] = None # 文件系统资源用量 json:"FS,omitempty"
95
+ GPU: Optional[ResourceMetric] = None # gpu资源用量 json:"GPU,omitempty"
96
+ Image: Optional[ResourceMetric] = None # 镜像仓库资源用量 json:"Image,omitempty"
97
+ Memory: Optional[ResourceMetric] = None # 内存资源用量 json:"Memory,omitempty"
98
+ OSS: Optional[ResourceMetric] = None # 对象存储资源用量 json:"OSS,omitempty"
99
+ Volume: Optional[ResourceMetric] = None # 云盘资源用量 json:"Volume,omitempty"
100
+
101
+ @dataclass
102
+ class GetOverviewConsolidationReq:
103
+ Datetime: Optional[str] = None # 查询月度账单的时间 YYYY-MM-DD HH:MM:SS 格式,表示获取本月月初到当下时间的月度账单,但并不包含当天的数据。示例:2026-05-16 HH:MM:SS 会查询 2026-05-01到2026-05-15的历史数据汇总; 2026-05-01 HH:MM:SS 会查询 2026-04-01到2026-04-30的历史数据汇总 query:"Datetime,omitempty"
104
+
105
+ @dataclass
106
+ class GetProvisionConsolidationReq:
107
+ Datetime: Optional[str] = None # 查询月度账单的时间 YYYY-MM-DD HH:MM:SS 格式,表示获取本月月初到当下时间的月度账单,但并不包含当天的数据。示例:2026-05-16 HH:MM:SS 会查询 2026-05-01到2026-05-15的历史数据汇总; 2026-05-01 HH:MM:SS 会查询 2026-04-01到2026-04-30的历史数据汇总 query:"Datetime,omitempty"
108
+
109
+ @dataclass
110
+ class ListBillingDetailsReq:
111
+ BillingCycle: Optional[str] = None # 账单账期 YYYY-MM query:"BillingCycle,omitempty"
112
+ BillingMode: Optional[str] = None # 计量模式,目前包括:按量计费(postpaid)(针对所有类型的产品)、按token计费(tokencount)(只针对模型部署产品) query:"BillingMode,omitempty"
113
+ EndTime: Optional[str] = None # 账单账期的结束时间 YYYY-MM-DD HH:MM::SS,优先级高于账单账期 query:"EndTime,omitempty"
114
+ InstanceID: Optional[str] = None # 根据产品实例ID进行模糊查询 query:"InstanceID,omitempty"
115
+ InstanceName: Optional[str] = None # 根据产品实例名称进行模糊查询 query:"InstanceName,omitempty"
116
+ Limit: Optional[int] = None # 分页大小(min=1,max=100) 默认10 query:"Limit,omitempty"
117
+ Offset: Optional[int] = None # 分页偏移量(min=0) 默认0 query:"Offset,omitempty"
118
+ ProductName: Optional[str] = None # 产品名称,目前包括:开发机、部署、RJOB、RAYJOB、私有机器、云盘、文件系统、对象存储、镜像仓库、模型部署 query:"ProductName,omitempty"
119
+ Project: Optional[str] = None # 查下指定项目的账单数据(租户管理员可以查询全部项目,项目管理员可以查询指定项目) query:"Project,omitempty"
120
+ RelatedResourceID: Optional[str] = None # 根据产品实例关联到的私有机器ID进行模糊查询 query:"RelatedResourceID,omitempty"
121
+ RelatedResourceName: Optional[str] = None # 根据产品实例关联到的私有机器名称进行模糊查询 query:"RelatedResourceName,omitempty"
122
+ RelatedResourceType: Optional[str] = None # 目前账单类型与产品实例调度节点的类型直接关联,公有机器出具账单详情,私有机器出具使用记录(可选 空值与billing 输出账单详情,pmusage 输出私有机器使用记录) query:"RelatedResourceType,omitempty"
123
+ ResourceCreator: Optional[str] = None # 根据产品实例创建人名称进行精准查询 query:"ResourceCreator,omitempty"
124
+ SortBy: Optional[str] = None # 排序条件,目前支持:billingTime 根据出账时间进行排序; usageTimeRangeStart, usageTimeRangeEnd 根据出账周期开始或结束时间进行排序; query:"SortBy,omitempty"
125
+ SortOrder: Optional[str] = None # 排序规则,升序asc,降序desc query:"SortOrder,omitempty"
126
+ StartTime: Optional[str] = None # 账单账期的起始时间 YYYY-MM-DD HH:MM::SS,优先级高于账单账期 query:"StartTime,omitempty"
127
+
128
+ @dataclass
129
+ class ListProjectConsolidationsReq:
130
+ Datetime: Optional[str] = None # 查询月度账单的时间 YYYY-MM-DD HH:MM:SS 格式,表示获取本月月初到当下时间的月度账单,但并不包含当天的数据。示例:2026-05-16 HH:MM:SS 会查询 2026-05-01到2026-05-15的历史数据汇总; 2026-05-01 HH:MM:SS 会查询 2026-04-01到2026-04-30的历史数据汇总 query:"Datetime,omitempty"
131
+ Exacted: Optional[bool] = None # 是否根据项目进行精确查询,默认值 false query:"Exacted,omitempty"
132
+ Limit: Optional[int] = None # 分页大小(min=1,max=100) 默认10 query:"Limit,omitempty"
133
+ Offset: Optional[int] = None # 分页偏移量(min=0) 默认0 query:"Offset,omitempty"
134
+ Project: Optional[str] = None # 针对项目进行删除。及获取指定项目的月度账单。 query:"Project,omitempty"
135
+ Provision: Optional[str] = None # 用于获取各项目或者指定项目分别在公有和私有供给方式的维度,参考值:空(默认值,""), 公有("public"), 私有("private"),其中“空”类型表示公有和私有之和 query:"Provision,omitempty"
136
+
137
+ @dataclass
138
+ class ListTenantConsolidationsReq:
139
+ Datetime: Optional[str] = None # 查询月度账单的时间 YYYY-MM-DD HH:MM:SS 格式,表示获取本月月初到当下时间的月度账单,但并不包含当天的数据。示例:2026-05-16 HH:MM:SS 会查询 2026-05-01到2026-05-15的历史数据汇总; 2026-05-01 HH:MM:SS 会查询 2026-04-01到2026-04-30的历史数据汇总 query:"Datetime,omitempty"
140
+ Limit: Optional[int] = None # 分页大小(min=1,max=100) 默认10 query:"Limit,omitempty"
141
+ Offset: Optional[int] = None # 分页偏移量(min=0) 默认0 query:"Offset,omitempty"
142
+ Provision: Optional[str] = None # 用于获取各租户或指定租户分别在公有和私有供给方式的维度,参考值:空(默认值,""), 公有("public"), 私有("private"),其中“空”类型表示公有和私有之和 query:"Provision,omitempty"
143
+
@@ -0,0 +1,43 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from yicloud.services.dataset.client import DatasetClient as Client, client, use_client
4
+ from . import actions, models
5
+
6
+ # Re-export action functions
7
+ from .actions import (
8
+ create_dataset,
9
+ create_dataset_version,
10
+ delete_dataset,
11
+ delete_dataset_version,
12
+ get_dataset,
13
+ get_dataset_version,
14
+ list_dataset_versions,
15
+ list_data_sets,
16
+ update_dataset,
17
+ update_dataset_version,
18
+ )
19
+
20
+ # Re-export models
21
+ from .models import (
22
+ AccessMode,
23
+ StorageType,
24
+ Usage,
25
+ Visibility,
26
+ CreateDataSetReq,
27
+ CreateDataSetVersionReq,
28
+ CreateDataSetData,
29
+ CreateDataSetReqDataSetInfo,
30
+ GetDataSetVersionData,
31
+ DeleteDataSetReq,
32
+ DeleteDataSetVersionReq,
33
+ ListDataSetVersionsData,
34
+ ListDataSetsData,
35
+ UpdateDataSetReq,
36
+ UpdateDataSetVersionReq,
37
+ CreateDataSetReqVersionInfo,
38
+ GetDataSetReq,
39
+ GetDataSetVersionReq,
40
+ ListDataSetVersionsReq,
41
+ ListDataSetsReq,
42
+ GetDataSetData,
43
+ )