yicloud-sdk-python 0.2.1__tar.gz → 0.3.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 (92) hide show
  1. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/PKG-INFO +1 -1
  2. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/pyproject.toml +1 -1
  3. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/version.py +1 -1
  4. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/__init__.py +1 -1
  5. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/__init__.py +2 -0
  6. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/fs/models.py +1 -0
  7. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/mc/models.py +20 -12
  8. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/oss/models.py +10 -9
  9. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/ray/models.py +24 -8
  10. yicloud_sdk_python-0.3.1/yicloud/services/registry/__init__.py +40 -0
  11. yicloud_sdk_python-0.3.1/yicloud/services/registry/actions.py +114 -0
  12. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/registry/client.py +1 -1
  13. yicloud_sdk_python-0.3.1/yicloud/services/registry/models.py +145 -0
  14. yicloud_sdk_python-0.3.1/yicloud/services/sandbox/__init__.py +111 -0
  15. yicloud_sdk_python-0.3.1/yicloud/services/sandbox/actions.py +273 -0
  16. yicloud_sdk_python-0.3.1/yicloud/services/sandbox/client.py +21 -0
  17. yicloud_sdk_python-0.3.1/yicloud/services/sandbox/models.py +581 -0
  18. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud_sdk_python.egg-info/PKG-INFO +1 -1
  19. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud_sdk_python.egg-info/SOURCES.txt +4 -0
  20. yicloud_sdk_python-0.2.1/yicloud/services/registry/__init__.py +0 -47
  21. yicloud_sdk_python-0.2.1/yicloud/services/registry/actions.py +0 -151
  22. yicloud_sdk_python-0.2.1/yicloud/services/registry/models.py +0 -141
  23. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/LICENSE +0 -0
  24. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/README.md +0 -0
  25. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/setup.cfg +0 -0
  26. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/__init__.py +0 -0
  27. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/auth/__init__.py +0 -0
  28. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/auth/credential.py +0 -0
  29. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/auth/sign.py +0 -0
  30. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/client.py +0 -0
  31. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/config.py +0 -0
  32. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/errs/__init__.py +0 -0
  33. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/log/__init__.py +0 -0
  34. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/log/logger.py +0 -0
  35. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/log/std.py +0 -0
  36. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/msgs/__init__.py +0 -0
  37. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/utils/__init__.py +0 -0
  38. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/utils/helps.py +0 -0
  39. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/utils/retry/__init__.py +0 -0
  40. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/base/utils/retry/retry.py +0 -0
  41. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/bc/__init__.py +0 -0
  42. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/bc/actions.py +0 -0
  43. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/bc/client.py +0 -0
  44. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/bc/models.py +0 -0
  45. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/dataset/__init__.py +0 -0
  46. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/dataset/actions.py +0 -0
  47. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/dataset/client.py +0 -0
  48. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/dataset/models.py +0 -0
  49. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/fs/__init__.py +0 -0
  50. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/fs/actions.py +0 -0
  51. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/fs/client.py +0 -0
  52. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/iam/__init__.py +0 -0
  53. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/iam/actions.py +0 -0
  54. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/iam/client.py +0 -0
  55. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/iam/models.py +0 -0
  56. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/inferset/__init__.py +0 -0
  57. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/inferset/actions.py +0 -0
  58. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/inferset/client.py +0 -0
  59. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/inferset/models.py +0 -0
  60. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/job/__init__.py +0 -0
  61. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/job/actions.py +0 -0
  62. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/job/client.py +0 -0
  63. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/job/models.py +0 -0
  64. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/mc/__init__.py +0 -0
  65. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/mc/actions.py +0 -0
  66. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/mc/client.py +0 -0
  67. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/modelrepo/__init__.py +0 -0
  68. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/modelrepo/actions.py +0 -0
  69. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/modelrepo/client.py +0 -0
  70. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/modelrepo/models.py +0 -0
  71. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/monitor/__init__.py +0 -0
  72. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/monitor/actions.py +0 -0
  73. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/monitor/client.py +0 -0
  74. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/monitor/models.py +0 -0
  75. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/oss/__init__.py +0 -0
  76. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/oss/actions.py +0 -0
  77. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/oss/client.py +0 -0
  78. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/ray/__init__.py +0 -0
  79. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/ray/actions.py +0 -0
  80. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/ray/client.py +0 -0
  81. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/volume/__init__.py +0 -0
  82. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/volume/actions.py +0 -0
  83. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/volume/client.py +0 -0
  84. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/volume/models.py +0 -0
  85. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/workspace/__init__.py +0 -0
  86. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/workspace/actions.py +0 -0
  87. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/workspace/client.py +0 -0
  88. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud/services/workspace/models.py +0 -0
  89. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
  90. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
  91. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.1}/yicloud_sdk_python.egg-info/requires.txt +0 -0
  92. {yicloud_sdk_python-0.2.1 → yicloud_sdk_python-0.3.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.2.1
3
+ Version: 0.3.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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "yicloud-sdk-python"
7
- version = "0.2.1"
7
+ version = "0.3.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.2.1"
1
+ __version__ = "0.3.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.2.1"
7
+ __version__ = "0.3.1"
@@ -13,6 +13,7 @@ from . import monitor
13
13
  from . import oss
14
14
  from . import ray
15
15
  from . import registry
16
+ from . import sandbox
16
17
  from . import volume
17
18
  from . import workspace
18
19
 
@@ -29,6 +30,7 @@ __all__ = [
29
30
  "oss",
30
31
  "ray",
31
32
  "registry",
33
+ "sandbox",
32
34
  "volume",
33
35
  "workspace",
34
36
  ]
@@ -36,6 +36,7 @@ class BucketResponse:
36
36
  Bucket: Optional[str] = "" # 文件集名称 json:"Bucket,omitempty"
37
37
  Capacity: Optional[str] = "" # 文件集容量(字节) json:"Capacity,omitempty"
38
38
  Created: Optional[str] = "" # 创建时间 json:"Created,omitempty"
39
+ DeletedTime: Optional[str] = "" # 删除时间(回收站中显示) json:"DeletedTime,omitempty"
39
40
  Fs: Optional[str] = "" # 文件系统 json:"Fs,omitempty"
40
41
  FsCluster: Optional[str] = "" # 文件系统集群 json:"FsCluster,omitempty"
41
42
  Owner: Optional[str] = "" # 文件集所有者 json:"Owner,omitempty"
@@ -96,12 +96,12 @@ class CreateProjectReq:
96
96
 
97
97
  @dataclass
98
98
  class CreateQuotaGroupReq:
99
- MachineType: str # SDK常量: MachineTypeCPU, MachineTypeGPU json:"MachineType"
99
+ MachineType: str # 机器类型(CPU/GPU) SDK常量: MachineTypeCPU, MachineTypeGPU json:"MachineType"
100
100
  Project: str # 项目名 json:"Project"
101
101
  QuotaGroup: str # 配额组名 json:"QuotaGroup"
102
- UsageType: str # SDK常量: UsageTypeWorkspace, UsageTypeWorkload json:"UsageType"
102
+ UsageType: str # 使用类型(workspace/workload) SDK常量: UsageTypeWorkspace, UsageTypeWorkload json:"UsageType"
103
103
  AllocateScope: Optional[str] = None # 分配范围(可选,不传则自动推断) SDK常量: AllocateScopePublic, AllocateScopeTenant, AllocateScopeProject, AllocateScopeQuotagroup, AllocateNoValue json:"AllocateScope,omitempty"
104
- NodeNames: Optional[List[str]] = None # json:"NodeNames,omitempty"
104
+ NodeNames: Optional[List[str]] = None # 节点名称列表 json:"NodeNames,omitempty"
105
105
  Quota: Optional[CreateQuotaGroupReqQuota] = None # 配额 json:"Quota,omitempty"
106
106
  QuotaGroupUsers: Optional[List[CreateQuotaGroupReqQuotaGroupUser]] = None # 配额组角色列表(指针用于判断是否传参) json:"QuotaGroupUsers,omitempty"
107
107
 
@@ -143,7 +143,7 @@ class ListNodeInstancesData:
143
143
 
144
144
  @dataclass
145
145
  class ListNodesData:
146
- GpuOccupancyUsers: Optional[Dict[str, int]] = None # json:"GpuOccupancyUsers,omitempty"
146
+ GpuOccupancyUsers: Optional[Dict[str, int]] = None # GPU 占用用户统计(用户名 -> Pod 数) json:"GpuOccupancyUsers,omitempty"
147
147
  Items: Optional[List[NodeData]] = None # 节点列表 json:"Items,omitempty"
148
148
  Limit: Optional[int] = 0 # 分页大小 json:"Limit,omitempty"
149
149
  Offset: Optional[int] = 0 # 分页偏移量 json:"Offset,omitempty"
@@ -188,6 +188,8 @@ class ListQuotaGroupsSimpleData:
188
188
  @dataclass
189
189
  class ListSKUsData:
190
190
  Items: Optional[List[SKUData]] = None # SKU列表 json:"Items,omitempty"
191
+ Limit: Optional[int] = 0 # 分页大小 json:"Limit,omitempty"
192
+ Offset: Optional[int] = 0 # 分页偏移量 json:"Offset,omitempty"
191
193
  Total: Optional[int] = 0 # 总条数 json:"Total,omitempty"
192
194
 
193
195
  @dataclass
@@ -205,13 +207,14 @@ class ListNodeConfigurationData:
205
207
  @dataclass
206
208
  class NodeData:
207
209
  GPUType: Optional[str] = "" # 卡类型 json:"GPUType,omitempty"
208
- MachineType: Optional[str] = None # SDK常量: MachineTypeCPU, MachineTypeGPU json:"MachineType,omitempty"
210
+ Internet: Optional[bool] = False # 是否联网 json:"Internet,omitempty"
211
+ MachineType: Optional[str] = None # 机器类型(CPU/GPU) SDK常量: MachineTypeCPU, MachineTypeGPU json:"MachineType,omitempty"
209
212
  MaintenanceStatus: Optional[str] = "" # 维护状态 json:"MaintenanceStatus,omitempty"
210
213
  NodeId: Optional[str] = "" # 节点UID json:"NodeId,omitempty"
211
214
  NodeName: Optional[str] = "" # 基本信息 json:"NodeName,omitempty"
212
215
  NodeQuota: Optional[NodeQuota] = None # 节点配额 json:"NodeQuota,omitempty"
213
216
  NodeStatus: Optional[str] = "" # 状态信息 json:"NodeStatus,omitempty"
214
- PodCount: Optional[int] = 0 # 系统信息 json:"PodCount,omitempty"
217
+ PodCount: Optional[int] = 0 # Pod个数 json:"PodCount,omitempty"
215
218
  Project: Optional[str] = "" # 项目名称 json:"Project,omitempty"
216
219
  QuotaGroup: Optional[str] = "" # 配额组 json:"QuotaGroup,omitempty"
217
220
  Unschedulable: Optional[bool] = False # 不可调度 json:"Unschedulable,omitempty"
@@ -323,12 +326,12 @@ class UpdateQuotaGroupReqQuota:
323
326
  @dataclass
324
327
  class GetQuotaGroupData:
325
328
  AllocateScope: Optional[str] = None # 分配范围:global_public / tenant_public / project_public / quotagroup_private SDK常量: AllocateScopePublic, AllocateScopeTenant, AllocateScopeProject, AllocateScopeQuotagroup, AllocateNoValue json:"AllocateScope,omitempty"
326
- CpuMemoryLimit: Optional[CpuMemoryLimit] = None # json:"CpuMemoryLimit,omitempty"
329
+ CpuMemoryLimit: Optional[CpuMemoryLimit] = None # CPU/内存限制 json:"CpuMemoryLimit,omitempty"
327
330
  CreationTime: Optional[str] = "" # 创建时间(RFC3339,UTC) json:"CreationTime,omitempty"
328
331
  Creator: Optional[str] = "" # 创建者 json:"Creator,omitempty"
329
332
  IdleStatus: Optional[str] = None # 闲时状态 SDK常量: IdleStatusOpen, IdleStatusClosed json:"IdleStatus,omitempty"
330
- MachineType: Optional[str] = None # SDK常量: MachineTypeCPU, MachineTypeGPU json:"MachineType,omitempty"
331
- NodeNames: Optional[List[str]] = None # json:"NodeNames,omitempty"
333
+ MachineType: Optional[str] = None # 机器类型(CPU/GPU) SDK常量: MachineTypeCPU, MachineTypeGPU json:"MachineType,omitempty"
334
+ NodeNames: Optional[List[str]] = None # 节点名称列表 json:"NodeNames,omitempty"
332
335
  Project: Optional[str] = "" # 项目名 json:"Project,omitempty"
333
336
  QuotaGroup: Optional[str] = "" # 配额组名 json:"QuotaGroup,omitempty"
334
337
  QuotaGroupId: Optional[str] = "" # 配额组ID json:"QuotaGroupId,omitempty"
@@ -336,7 +339,7 @@ class GetQuotaGroupData:
336
339
  QuotaStatus: Optional[QuotaStatus] = None # 配额状态 json:"QuotaStatus,omitempty"
337
340
  SchedStrategy: Optional[str] = None # 调度策略 SDK常量: SchedStrategySoft, SchedStrategyStrict json:"SchedStrategy,omitempty"
338
341
  TenantIdleStatus: Optional[str] = None # 租户闲时状态 SDK常量: IdleStatusOpen, IdleStatusClosed json:"TenantIdleStatus,omitempty"
339
- UsageType: Optional[str] = None # SDK常量: UsageTypeWorkspace, UsageTypeWorkload json:"UsageType,omitempty"
342
+ UsageType: Optional[str] = None # 使用类型(workspace/workload) SDK常量: UsageTypeWorkspace, UsageTypeWorkload json:"UsageType,omitempty"
340
343
 
341
344
  @dataclass
342
345
  class QuotaGroupUser:
@@ -389,6 +392,7 @@ class SKUData:
389
392
  CpuCores: Optional[str] = "" # CPU 核数 json:"CpuCores,omitempty"
390
393
  GpuCores: Optional[str] = "" # GPU 核数 json:"GpuCores,omitempty"
391
394
  GpuMemBytes: Optional[str] = "" # GPU 显存字节数 json:"GpuMemBytes,omitempty"
395
+ Internet: Optional[bool] = False # 是否联网 json:"Internet,omitempty"
392
396
  MemBytes: Optional[str] = "" # 内存字节数 json:"MemBytes,omitempty"
393
397
  SKUId: Optional[str] = "" # SKU ID json:"SKUId,omitempty"
394
398
  Vendor: Optional[str] = "" # 厂商 json:"Vendor,omitempty"
@@ -455,6 +459,8 @@ class ListEventsReq:
455
459
  UId: str # UId query:"UId"
456
460
  Limit: Optional[int] = None # 分页 query:"Limit,omitempty"
457
461
  Offset: Optional[int] = None # 分页偏移量(可选,默认 0) query:"Offset,omitempty"
462
+ Order: Optional[str] = None # 排序方向: asc, desc,默认 desc query:"Order,omitempty"
463
+ SortBy: Optional[str] = None # 排序 query:"SortBy,omitempty"
458
464
 
459
465
  @dataclass
460
466
  class ListNodeConfigurationReq:
@@ -540,9 +546,11 @@ class ListQuotaGroupsSimpleReq:
540
546
  @dataclass
541
547
  class ListSKUsReq:
542
548
  SKUType: str # SKU类型:cpu或gpu query:"SKUType"
549
+ Internet: Optional[bool] = None # 是否联网 query:"Internet,omitempty"
543
550
  Keyword: Optional[str] = None # 关键字搜索 query:"Keyword,omitempty"
544
- Limit: Optional[int] = None # 分页大小 query:"Limit,omitempty"
545
- Offset: Optional[int] = None # 分页偏移量 query:"Offset,omitempty"
551
+ Limit: Optional[int] = None # 分页大小(可选,默认 20,最大 100) query:"Limit,omitempty"
552
+ Offset: Optional[int] = None # 分页偏移量(可选,默认 0) query:"Offset,omitempty"
553
+ Project: Optional[str] = None # Scope为project时必填 query:"Project,omitempty"
546
554
  ResourceType: Optional[str] = None # 资源类型:用于过滤SKU适用的资源类型(如job、workspace、ray),空表示所有类型 query:"ResourceType,omitempty"
547
555
  Scope: Optional[str] = None # SKU可见范围:public(公域)、tenant(租域)、project(项目域),空默认为public query:"Scope,omitempty"
548
556
 
@@ -34,27 +34,28 @@ class Type:
34
34
  # Models
35
35
  @dataclass
36
36
  class Authorization:
37
- Mode: Optional[str] = None # SDK常量: ModeREADONLY, ModeREADWRITE, ModeFULL_CONTROL json:"Mode,omitempty"
38
- Name: Optional[str] = "" # 被分享者名 json:"Name,omitempty"
39
- Type: Optional[str] = None # SDK常量: TypeCanonicalUser, TypeGROUP, TypePROJECT json:"Type,omitempty"
37
+ Mode: str # SDK常量: ModeREADONLY, ModeREADWRITE, ModeFULL_CONTROL json:"Mode"
38
+ Name: str # 被分享者名 json:"Name"
39
+ Type: str # SDK常量: TypeCanonicalUser, TypeGROUP, TypePROJECT json:"Type"
40
40
 
41
41
  @dataclass
42
42
  class CreateBucketReqAuthorization:
43
- Mode: Optional[str] = None # SDK常量: ModeREADONLY, ModeREADWRITE, ModeFULL_CONTROL json:"Mode,omitempty"
44
- Name: Optional[str] = None # 被分享者名 json:"Name,omitempty"
45
- Type: Optional[str] = None # SDK常量: TypeCanonicalUser, TypeGROUP, TypePROJECT json:"Type,omitempty"
43
+ Mode: str # SDK常量: ModeREADONLY, ModeREADWRITE, ModeFULL_CONTROL json:"Mode"
44
+ Name: str # 被分享者名 json:"Name"
45
+ Type: str # SDK常量: TypeCanonicalUser, TypeGROUP, TypePROJECT json:"Type"
46
46
 
47
47
  @dataclass
48
48
  class UpdateBucketReqAuthorization:
49
- Mode: Optional[str] = None # SDK常量: ModeREADONLY, ModeREADWRITE, ModeFULL_CONTROL json:"Mode,omitempty"
50
- Name: Optional[str] = None # 被分享者名 json:"Name,omitempty"
51
- Type: Optional[str] = None # SDK常量: TypeCanonicalUser, TypeGROUP, TypePROJECT json:"Type,omitempty"
49
+ Mode: str # SDK常量: ModeREADONLY, ModeREADWRITE, ModeFULL_CONTROL json:"Mode"
50
+ Name: str # 被分享者名 json:"Name"
51
+ Type: str # SDK常量: TypeCanonicalUser, TypeGROUP, TypePROJECT json:"Type"
52
52
 
53
53
  @dataclass
54
54
  class BucketResponse:
55
55
  Authorizations: Optional[List[Authorization]] = None # 权限分享 json:"Authorizations,omitempty"
56
56
  Bucket: Optional[str] = "" # 存储桶名 json:"Bucket,omitempty"
57
57
  Created: Optional[str] = "" # 创建时间 json:"Created,omitempty"
58
+ DeletedTime: Optional[str] = "" # 删除时间(回收站中显示) json:"DeletedTime,omitempty"
58
59
  Owner: Optional[str] = "" # 所有者 json:"Owner,omitempty"
59
60
  Permission: Optional[str] = None # SDK常量: PermissionDENY, PermissionREADONLY, PermissionREADWRITE, PermissionPUBLIC_READ, PermissionADMIN json:"Permission,omitempty"
60
61
  Project: Optional[str] = "" # 所属项目 json:"Project,omitempty"
@@ -14,13 +14,14 @@ class CreateRayJobReq:
14
14
  ActiveDeadlineSeconds: Optional[int] = None # 活动截止时间 json:"ActiveDeadlineSeconds,omitempty"
15
15
  BackoffLimit: Optional[int] = None # 重试限制 json:"BackoffLimit,omitempty"
16
16
  DeletionPolicy: Optional[str] = None # 删除策略: DeleteCluster, DeleteWorkers, DeleteSelf, DeleteNone json:"DeletionPolicy,omitempty"
17
- Description: Optional[str] = None # json:"Description,omitempty"
17
+ Description: Optional[str] = None # 描述信息,可选 json:"Description,omitempty"
18
18
  Env: Optional[Dict[str, str]] = None # 环境和存储 json:"Env,omitempty"
19
19
  HeadSpec: Optional[CreateRayJobReqHeadConfig] = None # 节点配置 json:"HeadSpec,omitempty"
20
20
  JobMode: Optional[str] = None # 作业模式: SidecarMode, K8sJobMode json:"JobMode,omitempty"
21
21
  PrivateMachine: Optional[str] = None # 私有机器配置 json:"PrivateMachine,omitempty"
22
- QuotaGroup: Optional[str] = None # 配额和调度 当 QuotaGroup 为空时,HeadSpec.QuotaGroup 和所有 WorkerGroups[i].QuotaGroup 必须指定 json:"QuotaGroup,omitempty"
22
+ QuotaGroup: Optional[str] = None # 配额和调度 当 QuotaGroup 为空且 SkuPublic=false 时,HeadSpec.QuotaGroup 和所有 WorkerGroups[i].QuotaGroup 必须指定 当 SkuPublic=true 时,配额组不是必填项 json:"QuotaGroup,omitempty"
23
23
  RayVersion: Optional[str] = None # Ray版本号 json:"RayVersion,omitempty"
24
+ SkuPublic: Optional[bool] = None # SKU 配置 json:"SkuPublic,omitempty"
24
25
  TTLSecondsAfterFinished: Optional[int] = None # 作业控制 json:"TTLSecondsAfterFinished,omitempty"
25
26
  Volumes: Optional[List[CreateRayJobReqVolumeConfig]] = None # 存储卷配置 json:"Volumes,omitempty"
26
27
  WorkerGroups: Optional[List[CreateRayJobReqWorkerGroupConfig]] = None # Worker组配置 json:"WorkerGroups,omitempty"
@@ -39,16 +40,20 @@ class GetRayJobEventsData:
39
40
  @dataclass
40
41
  class CreateRayJobReqHeadConfig:
41
42
  HeadEnv: Optional[Dict[str, str]] = None # 环境变量 json:"HeadEnv,omitempty"
43
+ Internet: Optional[bool] = None # 是否访问公网 json:"Internet,omitempty"
42
44
  PrivateMachine: Optional[str] = None # Head独立私有机器配置 json:"PrivateMachine,omitempty"
43
- QuotaGroup: Optional[str] = None # Head独立配额组(当 CreateRayJobReq.QuotaGroup 为空时必填) json:"QuotaGroup,omitempty"
45
+ QuotaGroup: Optional[str] = None # Head独立配额组(当 QuotaGroup 为空且 SkuPublic=false 时必填) json:"QuotaGroup,omitempty"
44
46
  Resources: Optional[Dict[str, str]] = None # 资源配置 json:"Resources,omitempty"
47
+ SkuId: Optional[str] = None # SKU ID(当 SkuPublic=true 时必填) json:"SkuId,omitempty"
45
48
 
46
49
  @dataclass
47
50
  class HeadDetailInfo:
48
51
  HeadEnv: Optional[Dict[str, str]] = None # json:"HeadEnv,omitempty"
52
+ Internet: Optional[bool] = False # json:"Internet,omitempty"
49
53
  PrivateMachine: Optional[str] = "" # json:"PrivateMachine,omitempty"
50
54
  QuotaGroup: Optional[str] = "" # json:"QuotaGroup,omitempty"
51
55
  Resources: Optional[Dict[str, str]] = None # json:"Resources,omitempty"
56
+ SkuId: Optional[str] = "" # json:"SkuId,omitempty"
52
57
 
53
58
  @dataclass
54
59
  class JobItem:
@@ -57,14 +62,17 @@ class JobItem:
57
62
  CreatorName: Optional[str] = "" # 创建者名称 json:"CreatorName,omitempty"
58
63
  DisplayName: Optional[str] = "" # 显示名称 json:"DisplayName,omitempty"
59
64
  EndTime: Optional[str] = "" # 结束时间 json:"EndTime,omitempty"
65
+ HeadSpec: Optional[HeadDetailInfo] = None # Head和Worker信息 json:"HeadSpec,omitempty"
60
66
  Id: Optional[str] = "" # 任务唯一标识 json:"Id,omitempty"
61
67
  Namespace: Optional[str] = "" # 命名空间 json:"Namespace,omitempty"
62
68
  QuotaGroup: Optional[str] = "" # 配额组 json:"QuotaGroup,omitempty"
63
69
  RayClusterStatus: Optional[str] = "" # RayCluster状态 json:"RayClusterStatus,omitempty"
64
70
  RayJobName: Optional[str] = "" # 任务名称 json:"RayJobName,omitempty"
65
71
  Resources: Optional[ResourcesSummary] = None # 资源信息 json:"Resources,omitempty"
72
+ SkuPublic: Optional[bool] = False # SKU信息 json:"SkuPublic,omitempty"
66
73
  StartTime: Optional[str] = "" # 开始时间 json:"StartTime,omitempty"
67
74
  Status: Optional[str] = "" # 任务状态 json:"Status,omitempty"
75
+ WorkerGroups: Optional[List[WorkerGroupDetailInfo]] = None # json:"WorkerGroups,omitempty"
68
76
 
69
77
  @dataclass
70
78
  class ListRayJobsData:
@@ -124,6 +132,7 @@ class GetRayJobData:
124
132
  RayVersion: Optional[str] = "" # json:"RayVersion,omitempty"
125
133
  Replicas: Optional[List[ReplicaDetailInfo]] = None # json:"Replicas,omitempty"
126
134
  Resources: Optional[ResourceDetailInfo] = None # json:"Resources,omitempty"
135
+ SkuPublic: Optional[bool] = False # json:"SkuPublic,omitempty"
127
136
  StartTime: Optional[str] = "" # json:"StartTime,omitempty"
128
137
  Status: Optional[str] = "" # json:"Status,omitempty"
129
138
  TTLSecondsAfterFinished: Optional[int] = 0 # json:"TTLSecondsAfterFinished,omitempty"
@@ -148,6 +157,7 @@ class ReplicaDetailInfo:
148
157
  GroupName: Optional[str] = "" # json:"GroupName,omitempty"
149
158
  GroupType: Optional[str] = "" # json:"GroupType,omitempty"
150
159
  Id: Optional[str] = "" # json:"Id,omitempty"
160
+ Internet: Optional[bool] = False # json:"Internet,omitempty"
151
161
  NodeIP: Optional[str] = "" # json:"NodeIP,omitempty"
152
162
  PodIP: Optional[str] = "" # json:"PodIP,omitempty"
153
163
  PodName: Optional[str] = "" # json:"PodName,omitempty"
@@ -162,9 +172,9 @@ class ResourceDetailInfo:
162
172
 
163
173
  @dataclass
164
174
  class ResourceList:
165
- CPU: Optional[str] = "" # json:"CPU,omitempty"
166
- GPU: Optional[str] = "" # json:"GPU,omitempty"
167
- Memory: Optional[str] = "" # json:"Memory,omitempty"
175
+ cpu: Optional[str] = "" # json:"cpu,omitempty"
176
+ memory: Optional[str] = "" # json:"memory,omitempty"
177
+ nvidia_com_gpu: Optional[str] = "" # json:"nvidia.com/gpu,omitempty"
168
178
 
169
179
  @dataclass
170
180
  class ResourcesSummary:
@@ -201,32 +211,37 @@ class CreateRayJobReqWorkerGroupConfig:
201
211
  GroupName: str # Worker组名称 json:"GroupName"
202
212
  Replicas: int # 副本数 json:"Replicas"
203
213
  Env: Optional[Dict[str, str]] = None # 环境变量 json:"Env,omitempty"
214
+ Internet: Optional[bool] = None # 是否访问公网 json:"Internet,omitempty"
204
215
  LocalStorage: Optional[str] = None # 本地磁盘(GiB) json:"LocalStorage,omitempty"
205
216
  NegativeTags: Optional[List[str]] = None # 反亲和性标签 json:"NegativeTags,omitempty"
206
217
  PositiveTags: Optional[List[str]] = None # 亲和性标签 json:"PositiveTags,omitempty"
207
218
  PrivateMachine: Optional[str] = None # 私有机器标识 json:"PrivateMachine,omitempty"
208
- QuotaGroup: Optional[str] = None # WorkerGroup独立配额组(当 CreateRayJobReq.QuotaGroup 为空时必填) json:"QuotaGroup,omitempty"
219
+ QuotaGroup: Optional[str] = None # WorkerGroup独立配额组(当 QuotaGroup 为空且 SkuPublic=false 时必填) json:"QuotaGroup,omitempty"
209
220
  RayStartParams: Optional[Dict[str, str]] = None # Ray启动参数 json:"RayStartParams,omitempty"
210
221
  Resources: Optional[Dict[str, str]] = None # 资源配置 json:"Resources,omitempty"
222
+ SkuId: Optional[str] = None # SKU ID(当 SkuPublic=true 时必填) json:"SkuId,omitempty"
211
223
 
212
224
  @dataclass
213
225
  class UpdateRayJobWorkerGroupsReqWorkerGroupConfig:
214
226
  GroupName: str # Worker组名称 json:"GroupName"
215
227
  Replicas: int # 副本数 json:"Replicas"
216
228
  Env: Optional[Dict[str, str]] = None # 环境变量 json:"Env,omitempty"
229
+ Internet: Optional[bool] = None # 是否访问公网 json:"Internet,omitempty"
217
230
  LocalStorage: Optional[str] = None # 本地磁盘(GiB) json:"LocalStorage,omitempty"
218
231
  NegativeTags: Optional[List[str]] = None # 反亲和性标签 json:"NegativeTags,omitempty"
219
232
  PositiveTags: Optional[List[str]] = None # 亲和性标签 json:"PositiveTags,omitempty"
220
233
  PrivateMachine: Optional[str] = None # 私有机器标识 json:"PrivateMachine,omitempty"
221
- QuotaGroup: Optional[str] = None # WorkerGroup独立配额组(当 CreateRayJobReq.QuotaGroup 为空时必填) json:"QuotaGroup,omitempty"
234
+ QuotaGroup: Optional[str] = None # WorkerGroup独立配额组(当 QuotaGroup 为空且 SkuPublic=false 时必填) json:"QuotaGroup,omitempty"
222
235
  RayStartParams: Optional[Dict[str, str]] = None # Ray启动参数 json:"RayStartParams,omitempty"
223
236
  Resources: Optional[Dict[str, str]] = None # 资源配置 json:"Resources,omitempty"
237
+ SkuId: Optional[str] = None # SKU ID(当 SkuPublic=true 时必填) json:"SkuId,omitempty"
224
238
 
225
239
  @dataclass
226
240
  class WorkerGroupDetailInfo:
227
241
  EnableAutoscaling: Optional[bool] = False # json:"EnableAutoscaling,omitempty"
228
242
  Env: Optional[Dict[str, str]] = None # json:"Env,omitempty"
229
243
  GroupName: Optional[str] = "" # json:"GroupName,omitempty"
244
+ Internet: Optional[bool] = False # json:"Internet,omitempty"
230
245
  LocalStorage: Optional[str] = "" # json:"LocalStorage,omitempty"
231
246
  NegativeTags: Optional[List[str]] = None # json:"NegativeTags,omitempty"
232
247
  PositiveTags: Optional[List[str]] = None # json:"PositiveTags,omitempty"
@@ -235,6 +250,7 @@ class WorkerGroupDetailInfo:
235
250
  RayStartParams: Optional[Dict[str, str]] = None # json:"RayStartParams,omitempty"
236
251
  Replicas: Optional[int] = 0 # json:"Replicas,omitempty"
237
252
  Resources: Optional[Dict[str, str]] = None # json:"Resources,omitempty"
253
+ SkuId: Optional[str] = "" # json:"SkuId,omitempty"
238
254
 
239
255
  @dataclass
240
256
  class GetRayJobReq:
@@ -0,0 +1,40 @@
1
+ # Code generated by generate_openapi.py. DO NOT EDIT.
2
+
3
+ from yicloud.services.registry.client import RegistryClient as Client, client, use_client
4
+ from . import actions, models
5
+
6
+ # Re-export action functions
7
+ from .actions import (
8
+ create_custom_repository,
9
+ delete_custom_repository,
10
+ delete_image,
11
+ list_custom_images,
12
+ list_custom_repositories,
13
+ list_custom_repositories_simple,
14
+ list_public_images,
15
+ list_public_repositories,
16
+ update_custom_repository_visibility,
17
+ )
18
+
19
+ # Re-export models
20
+ from .models import (
21
+ Scope,
22
+ CreateCustomRepositoryReq,
23
+ DeleteImageReq,
24
+ DeleteCustomRepositoryReq,
25
+ ListCustomRepositoriesData,
26
+ ListCustomImagesData,
27
+ ListPublicImagesData,
28
+ ListPublicRepositoriesData,
29
+ PublicImageData,
30
+ PublicRepositoryData,
31
+ RegistryImageData,
32
+ RepositoryDataV1,
33
+ UpdateCustomRepositoryVisibilityReq,
34
+ ListCustomImagesReq,
35
+ ListCustomRepositoriesReq,
36
+ ListCustomRepositoriesSimpleReq,
37
+ ListPublicImagesReq,
38
+ ListPublicRepositoriesReq,
39
+ ListCustomRepositoriesSimpleData,
40
+ )
@@ -0,0 +1,114 @@
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.registry import models
6
+ from yicloud.services.registry.client import client
7
+
8
+ _PRODUCT_CODE = "registry"
9
+ _LAST_VERSION = "v1alpha2"
10
+
11
+
12
+ def create_custom_repository(ctx: Optional[dict], req: models.CreateCustomRepositoryReq):
13
+ """POST /registry/v1alpha2/CreateCustomRepository
14
+ Action: CreateCustomRepository
15
+
16
+
17
+ Raises YiCloudException on error.
18
+ """
19
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/CreateCustomRepository"
20
+ rsp = msgs.Rsp[None].empty()
21
+ client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
22
+
23
+ def delete_custom_repository(ctx: Optional[dict], req: models.DeleteCustomRepositoryReq):
24
+ """POST /registry/v1alpha2/DeleteCustomRepository
25
+ Action: DeleteCustomRepository
26
+
27
+
28
+ Raises YiCloudException on error.
29
+ """
30
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/DeleteCustomRepository"
31
+ rsp = msgs.Rsp[None].empty()
32
+ client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
33
+
34
+ def delete_image(ctx: Optional[dict], req: models.DeleteImageReq):
35
+ """POST /registry/v1alpha2/DeleteImage
36
+ Action: DeleteImage
37
+
38
+
39
+ Raises YiCloudException on error.
40
+ """
41
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/DeleteImage"
42
+ rsp = msgs.Rsp[None].empty()
43
+ client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
44
+
45
+ def list_custom_images(ctx: Optional[dict], req: models.ListCustomImagesReq) -> models.ListCustomImagesData:
46
+ """GET /registry/v1alpha2/ListCustomImages
47
+ Action: ListCustomImages
48
+
49
+ Returns ListCustomImagesData on success.
50
+ Raises YiCloudException on error.
51
+ """
52
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListCustomImages"
53
+ rsp = msgs.Rsp[models.ListCustomImagesData]()
54
+ client.base.get(ctx, path, req, rsp)
55
+ return rsp.get_typed_data()
56
+
57
+ def list_custom_repositories(ctx: Optional[dict], req: models.ListCustomRepositoriesReq) -> models.ListCustomRepositoriesData:
58
+ """GET /registry/v1alpha2/ListCustomRepositories
59
+ Action: ListCustomRepositories
60
+
61
+ Returns ListCustomRepositoriesData on success.
62
+ Raises YiCloudException on error.
63
+ """
64
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListCustomRepositories"
65
+ rsp = msgs.Rsp[models.ListCustomRepositoriesData]()
66
+ client.base.get(ctx, path, req, rsp)
67
+ return rsp.get_typed_data()
68
+
69
+ def list_custom_repositories_simple(ctx: Optional[dict], req: models.ListCustomRepositoriesSimpleReq) -> models.ListCustomRepositoriesSimpleData:
70
+ """GET /registry/v1alpha2/ListCustomRepositoriesSimple
71
+ Action: ListCustomRepositoriesSimple
72
+
73
+ Returns ListCustomRepositoriesSimpleData on success.
74
+ Raises YiCloudException on error.
75
+ """
76
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListCustomRepositoriesSimple"
77
+ rsp = msgs.Rsp[models.ListCustomRepositoriesSimpleData]()
78
+ client.base.get(ctx, path, req, rsp)
79
+ return rsp.get_typed_data()
80
+
81
+ def list_public_images(ctx: Optional[dict], req: models.ListPublicImagesReq) -> models.ListPublicImagesData:
82
+ """GET /registry/v1alpha2/ListPublicImages
83
+ Action: ListPublicImages
84
+
85
+ Returns ListPublicImagesData on success.
86
+ Raises YiCloudException on error.
87
+ """
88
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListPublicImages"
89
+ rsp = msgs.Rsp[models.ListPublicImagesData]()
90
+ client.base.get(ctx, path, req, rsp)
91
+ return rsp.get_typed_data()
92
+
93
+ def list_public_repositories(ctx: Optional[dict], req: models.ListPublicRepositoriesReq) -> models.ListPublicRepositoriesData:
94
+ """GET /registry/v1alpha2/ListPublicRepositories
95
+ Action: ListPublicRepositories
96
+
97
+ Returns ListPublicRepositoriesData on success.
98
+ Raises YiCloudException on error.
99
+ """
100
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListPublicRepositories"
101
+ rsp = msgs.Rsp[models.ListPublicRepositoriesData]()
102
+ client.base.get(ctx, path, req, rsp)
103
+ return rsp.get_typed_data()
104
+
105
+ def update_custom_repository_visibility(ctx: Optional[dict], req: models.UpdateCustomRepositoryVisibilityReq):
106
+ """POST /registry/v1alpha2/UpdateCustomRepositoryVisibility
107
+ Action: UpdateCustomRepositoryVisibility
108
+
109
+
110
+ Raises YiCloudException on error.
111
+ """
112
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/UpdateCustomRepositoryVisibility"
113
+ rsp = msgs.Rsp[None].empty()
114
+ client.base.post(ctx, path, {k: v for k, v in req.__dict__.items() if v is not None}, rsp)
@@ -9,7 +9,7 @@ class RegistryClient:
9
9
  def __init__(self, base_client: Client = None):
10
10
  self.base = base_client
11
11
  self.product_code = "registry"
12
- self.last_version = "v1alpha1"
12
+ self.last_version = "v1alpha2"
13
13
 
14
14
 
15
15
  # Singleton
@@ -0,0 +1,145 @@
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
+ # Scope 枚举值
8
+ class Scope:
9
+ Scopeproject = "project"
10
+ Scopetenant = "tenant"
11
+
12
+ # Models
13
+ @dataclass
14
+ class CreateCustomRepositoryReq:
15
+ Project: str # json:"Project"
16
+ RepoName: str # json:"RepoName"
17
+
18
+ @dataclass
19
+ class DeleteImageReq:
20
+ Project: str # json:"Project"
21
+ RepoName: str # json:"RepoName"
22
+ Tag: str # json:"Tag"
23
+
24
+ @dataclass
25
+ class DeleteCustomRepositoryReq:
26
+ Project: str # json:"Project"
27
+ RepoName: str # json:"RepoName"
28
+
29
+ @dataclass
30
+ class ListCustomRepositoriesData:
31
+ Items: Optional[List[RepositoryDataV1]] = None # json:"Items,omitempty"
32
+ Limit: Optional[int] = 0 # json:"Limit,omitempty"
33
+ Offset: Optional[int] = 0 # json:"Offset,omitempty"
34
+ Total: Optional[int] = 0 # json:"Total,omitempty"
35
+
36
+ @dataclass
37
+ class ListCustomImagesData:
38
+ Items: Optional[List[RegistryImageData]] = None # json:"Items,omitempty"
39
+ Total: Optional[int] = 0 # json:"Total,omitempty"
40
+
41
+ @dataclass
42
+ class ListPublicImagesData:
43
+ Items: Optional[List[PublicImageData]] = None # json:"Items,omitempty"
44
+ Total: Optional[int] = 0 # json:"Total,omitempty"
45
+
46
+ @dataclass
47
+ class ListPublicRepositoriesData:
48
+ Items: Optional[List[PublicRepositoryData]] = None # json:"Items,omitempty"
49
+ Limit: Optional[int] = 0 # json:"Limit,omitempty"
50
+ Offset: Optional[int] = 0 # json:"Offset,omitempty"
51
+ Total: Optional[int] = 0 # json:"Total,omitempty"
52
+
53
+ @dataclass
54
+ class PublicImageData:
55
+ Architecture: Optional[str] = "" # json:"Architecture,omitempty"
56
+ Digest: Optional[str] = "" # json:"Digest,omitempty"
57
+ Frame: Optional[str] = "" # json:"Frame,omitempty"
58
+ ImageName: Optional[str] = "" # json:"ImageName,omitempty"
59
+ Labels: Optional[List[str]] = None # json:"Labels,omitempty"
60
+ Namespace: Optional[str] = "" # json:"Namespace,omitempty"
61
+ OS: Optional[str] = "" # json:"OS,omitempty"
62
+ PushTime: Optional[str] = "" # json:"PushTime,omitempty"
63
+ Python: Optional[str] = "" # json:"Python,omitempty"
64
+ RepositoryId: Optional[str] = "" # json:"RepositoryId,omitempty"
65
+ Size: Optional[int] = 0 # json:"Size,omitempty"
66
+ Tag: Optional[str] = "" # json:"Tag,omitempty"
67
+
68
+ @dataclass
69
+ class PublicRepositoryData:
70
+ CreationTime: Optional[str] = "" # json:"CreationTime,omitempty"
71
+ Labels: Optional[List[str]] = None # json:"Labels,omitempty"
72
+ LongDescription: Optional[str] = "" # json:"LongDescription,omitempty"
73
+ Name: Optional[str] = "" # json:"Name,omitempty"
74
+ ShortDescription: Optional[str] = "" # json:"ShortDescription,omitempty"
75
+ TagsCount: Optional[int] = 0 # json:"TagsCount,omitempty"
76
+
77
+ @dataclass
78
+ class RegistryImageData:
79
+ Architecture: Optional[str] = "" # json:"Architecture,omitempty"
80
+ Digest: Optional[str] = "" # json:"Digest,omitempty"
81
+ ImageName: Optional[str] = "" # json:"ImageName,omitempty"
82
+ Namespace: Optional[str] = "" # json:"Namespace,omitempty"
83
+ OS: Optional[str] = "" # json:"OS,omitempty"
84
+ Project: Optional[str] = "" # json:"Project,omitempty"
85
+ PullTime: Optional[str] = "" # json:"PullTime,omitempty"
86
+ PushTime: Optional[str] = "" # json:"PushTime,omitempty"
87
+ QuotaGroup: Optional[str] = "" # json:"QuotaGroup,omitempty"
88
+ RepositoryId: Optional[str] = "" # json:"RepositoryId,omitempty"
89
+ Size: Optional[int] = 0 # json:"Size,omitempty"
90
+ Tag: Optional[str] = "" # json:"Tag,omitempty"
91
+
92
+ @dataclass
93
+ class RepositoryDataV1:
94
+ CreationTime: Optional[str] = "" # json:"CreationTime,omitempty"
95
+ Creator: Optional[str] = "" # json:"Creator,omitempty"
96
+ CreatorId: Optional[str] = "" # json:"CreatorId,omitempty"
97
+ Name: Optional[str] = "" # json:"Name,omitempty"
98
+ Project: Optional[str] = "" # json:"Project,omitempty"
99
+ PullCount: Optional[int] = 0 # Namespace string `json:"Namespace"` json:"PullCount,omitempty"
100
+ RepositoryId: Optional[str] = "" # json:"RepositoryId,omitempty"
101
+ StarCount: Optional[int] = 0 # json:"StarCount,omitempty"
102
+ TagsCount: Optional[int] = 0 # json:"TagsCount,omitempty"
103
+ Visibility: Optional[str] = "" # json:"Visibility,omitempty"
104
+
105
+ @dataclass
106
+ class UpdateCustomRepositoryVisibilityReq:
107
+ Project: str # json:"Project"
108
+ RepoName: str # json:"RepoName"
109
+ Scope: str # SDK常量: Scopeproject, Scopetenant json:"Scope"
110
+ ProjectName: Optional[str] = None # json:"ProjectName,omitempty"
111
+
112
+ @dataclass
113
+ class ListCustomImagesReq:
114
+ Namespace: str # 命名空间(项目名) query:"Namespace"
115
+ Repository: str # 仓库名 query:"Repository"
116
+ Tag: Optional[str] = None # 标签名(获取单个标签详情) query:"Tag,omitempty"
117
+
118
+ @dataclass
119
+ class ListCustomRepositoriesReq:
120
+ CreatedByMe: Optional[bool] = None # 仅展示当前用户创建的仓库 query:"CreatedByMe,omitempty"
121
+ Limit: Optional[int] = None # 分页大小,默认10,最大100 query:"Limit,omitempty"
122
+ Name: Optional[str] = None # 仓库名(模糊搜索) query:"Name,omitempty"
123
+ Offset: Optional[int] = None # 分页偏移量,默认0 query:"Offset,omitempty"
124
+ Order: Optional[str] = None # 排序方向(asc / desc,默认desc) query:"Order,omitempty"
125
+ ProjectName: Optional[str] = None # 项目名(精确匹配) query:"ProjectName,omitempty"
126
+ SortBy: Optional[str] = None # 排序字段(CreationTime / PullCount) query:"SortBy,omitempty"
127
+ Visibility: Optional[List[str]] = None # 可见性过滤(user / project / tenant,可多选) query:"Visibility,omitempty"
128
+
129
+ @dataclass
130
+ class ListCustomRepositoriesSimpleReq:
131
+ Name: Optional[str] = None # 仓库名(模糊搜索) query:"Name,omitempty"
132
+
133
+ @dataclass
134
+ class ListPublicImagesReq:
135
+ Repository: str # 仓库名(不含 library/ 前缀) query:"Repository"
136
+ Tag: Optional[str] = None # 镜像 Tag(指定则只返回该 Tag 详情) query:"Tag,omitempty"
137
+
138
+ @dataclass
139
+ class ListPublicRepositoriesReq:
140
+ Limit: Optional[int] = None # 分页大小,默认10,最大100 query:"Limit,omitempty"
141
+ Name: Optional[str] = None # 仓库名称(模糊搜索) query:"Name,omitempty"
142
+ Offset: Optional[int] = None # 分页偏移量,默认0 query:"Offset,omitempty"
143
+
144
+
145
+ ListCustomRepositoriesSimpleData = ListCustomRepositoriesData