yicloud-sdk-python 0.4.1__tar.gz → 0.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. {yicloud_sdk_python-0.4.1/yicloud_sdk_python.egg-info → yicloud_sdk_python-0.4.2}/PKG-INFO +1 -1
  2. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/pyproject.toml +1 -1
  3. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/version.py +1 -1
  4. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/__init__.py +1 -1
  5. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/job/models.py +1 -1
  6. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/__init__.py +30 -0
  7. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/actions.py +122 -2
  8. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/models.py +150 -0
  9. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/actions.py +2 -2
  10. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/models.py +2 -0
  11. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2/yicloud_sdk_python.egg-info}/PKG-INFO +1 -1
  12. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/LICENSE +0 -0
  13. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/README.md +0 -0
  14. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/setup.cfg +0 -0
  15. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/__init__.py +0 -0
  16. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/auth/__init__.py +0 -0
  17. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/auth/credential.py +0 -0
  18. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/auth/sign.py +0 -0
  19. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/client.py +0 -0
  20. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/config.py +0 -0
  21. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/errs/__init__.py +0 -0
  22. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/log/__init__.py +0 -0
  23. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/log/logger.py +0 -0
  24. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/log/std.py +0 -0
  25. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/msgs/__init__.py +0 -0
  26. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/__init__.py +0 -0
  27. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/helps.py +0 -0
  28. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/retry/__init__.py +0 -0
  29. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/base/utils/retry/retry.py +0 -0
  30. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/__init__.py +0 -0
  31. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/__init__.py +0 -0
  32. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/actions.py +0 -0
  33. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/client.py +0 -0
  34. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/bc/models.py +0 -0
  35. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/__init__.py +0 -0
  36. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/actions.py +0 -0
  37. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/client.py +0 -0
  38. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/dataset/models.py +0 -0
  39. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/__init__.py +0 -0
  40. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/actions.py +0 -0
  41. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/client.py +0 -0
  42. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/fs/models.py +0 -0
  43. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/__init__.py +0 -0
  44. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/actions.py +0 -0
  45. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/client.py +0 -0
  46. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/iam/models.py +0 -0
  47. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/__init__.py +0 -0
  48. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/actions.py +0 -0
  49. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/client.py +0 -0
  50. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/inferset/models.py +0 -0
  51. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/job/__init__.py +0 -0
  52. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/job/actions.py +0 -0
  53. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/job/client.py +0 -0
  54. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/__init__.py +0 -0
  55. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/actions.py +0 -0
  56. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/client.py +0 -0
  57. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/mc/models.py +0 -0
  58. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/__init__.py +0 -0
  59. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/actions.py +0 -0
  60. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/client.py +0 -0
  61. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/modelrepo/models.py +0 -0
  62. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/__init__.py +0 -0
  63. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/actions.py +0 -0
  64. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/client.py +0 -0
  65. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/monitor/models.py +0 -0
  66. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/__init__.py +0 -0
  67. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/actions.py +0 -0
  68. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/client.py +0 -0
  69. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/oss/models.py +0 -0
  70. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/__init__.py +0 -0
  71. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/actions.py +0 -0
  72. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/client.py +0 -0
  73. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/ray/models.py +0 -0
  74. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/__init__.py +0 -0
  75. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/actions.py +0 -0
  76. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/client.py +0 -0
  77. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/registry/models.py +0 -0
  78. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/sandbox/client.py +0 -0
  79. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/__init__.py +0 -0
  80. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/actions.py +0 -0
  81. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/client.py +0 -0
  82. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/volume/models.py +0 -0
  83. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/__init__.py +0 -0
  84. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud/services/workspace/client.py +0 -0
  85. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/SOURCES.txt +0 -0
  86. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/dependency_links.txt +0 -0
  87. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/not-zip-safe +0 -0
  88. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/requires.txt +0 -0
  89. {yicloud_sdk_python-0.4.1 → yicloud_sdk_python-0.4.2}/yicloud_sdk_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yicloud-sdk-python
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: YiCloud OpenAPI SDK for Python
5
5
  Author: YiCloud
6
6
  Project-URL: Homepage, https://gitee.com/yicloud-team/openapi-sdk-python
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "yicloud-sdk-python"
7
- version = "0.4.1"
7
+ version = "0.4.2"
8
8
  description = "YiCloud OpenAPI SDK for Python"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
@@ -1,4 +1,4 @@
1
- __version__ = "0.4.1"
1
+ __version__ = "0.4.2"
2
2
 
3
3
 
4
4
  def Version() -> str:
@@ -4,4 +4,4 @@ YiCloud Python SDK
4
4
  A Python SDK for the YiCloud OpenAPI service.
5
5
  """
6
6
 
7
- __version__ = "0.4.1"
7
+ __version__ = "0.4.2"
@@ -273,7 +273,7 @@ class GetJobReplicaData:
273
273
  Phase: Optional[str] = None # SDK常量: PhasePending, PhaseStarting, PhaseRunning, PhaseScanning, PhaseSucceeded, PhaseFailed, PhaseRestarting, PhaseStopped, PhaseInqueue, PhaseSelfHealTriggered, PhaseSelfHealRunning, PhaseSelfHealSucceeded, PhaseSelfHealFailed json:"Phase,omitempty"
274
274
  PodIP: Optional[str] = "" # Pod IP 地址 json:"PodIP,omitempty"
275
275
  RegionId: Optional[str] = "" # 地域,从 Replica topology labels 读取;存量数据缺失时回填默认值 cn-shanghai json:"RegionId,omitempty"
276
- ReplicaIndex: Optional[int] = 0 # 副本序号 json:"ReplicaIndex,omitempty"
276
+ ReplicaIndex: Optional[str] = "" # 副本序号 json:"ReplicaIndex,omitempty"
277
277
  TaskType: Optional[str] = "" # 副本任务类型(如 worker) json:"TaskType,omitempty"
278
278
  ZoneId: Optional[str] = "" # 可用区,从 Replica topology labels 读取;存量数据缺失时回填默认值 cn-shanghai-b json:"ZoneId,omitempty"
279
279
 
@@ -14,7 +14,11 @@ from .actions import (
14
14
  get_prewarm_pool,
15
15
  get_resource_stats,
16
16
  get_sandbox,
17
+ get_sandbox_egress_policy,
17
18
  get_sandbox_environment,
19
+ get_sandbox_logs_query_range,
20
+ get_sandbox_logs_volume_range,
21
+ list_environment_events,
18
22
  list_prewarm_pool_events,
19
23
  list_prewarm_pool_pods,
20
24
  list_sandbox_environments,
@@ -33,7 +37,11 @@ from .actions import (
33
37
  get_prewarm_pool_async,
34
38
  get_resource_stats_async,
35
39
  get_sandbox_async,
40
+ get_sandbox_egress_policy_async,
36
41
  get_sandbox_environment_async,
42
+ get_sandbox_logs_query_range_async,
43
+ get_sandbox_logs_volume_range_async,
44
+ list_environment_events_async,
37
45
  list_prewarm_pool_events_async,
38
46
  list_prewarm_pool_pods_async,
39
47
  list_sandbox_environments_async,
@@ -47,8 +55,10 @@ from .actions import (
47
55
 
48
56
  # Re-export models
49
57
  from .models import (
58
+ Action,
50
59
  ActualMode,
51
60
  AllocationMode,
61
+ DefaultAction,
52
62
  Kind,
53
63
  Level,
54
64
  Mode,
@@ -64,6 +74,9 @@ from .models import (
64
74
  CreateSandboxData,
65
75
  CreateSandboxEnvironmentReq,
66
76
  CreateSandboxReq,
77
+ EgressAlwaysRules,
78
+ EgressLogSkipRule,
79
+ EnvironmentEvent,
67
80
  EnvironmentInstanceCounts,
68
81
  EnvironmentResourceUsage,
69
82
  Image,
@@ -73,12 +86,18 @@ from .models import (
73
86
  CreateSandboxReqImageInput,
74
87
  CreateSandboxEnvironmentReqImageInput,
75
88
  GetInstanceStateStatsData,
89
+ ListEnvironmentEventsData,
76
90
  ListPrewarmPoolEventsData,
77
91
  ListPrewarmPoolPodsData,
78
92
  ListSandboxEnvironmentsData,
79
93
  ListSandboxProjectsData,
80
94
  ListSandboxesData,
81
95
  ModeInstanceStateCluster,
96
+ NetworkPolicy,
97
+ CreateSandboxReqNetworkPolicy,
98
+ NetworkRule,
99
+ CreateSandboxReqNetworkRule,
100
+ NodeCapacitySummary,
82
101
  Port,
83
102
  CreateSandboxReqPort,
84
103
  CreateSandboxEnvironmentReqPort,
@@ -90,6 +109,7 @@ from .models import (
90
109
  Resources,
91
110
  CreateSandboxReqResources,
92
111
  CreateSandboxEnvironmentReqResources,
112
+ GetSandboxEgressPolicyData,
93
113
  SandboxEndpointInfo,
94
114
  SandboxEndpoints,
95
115
  DeleteSandboxEnvironmentReq,
@@ -97,6 +117,12 @@ from .models import (
97
117
  DeleteSandboxReq,
98
118
  StopSandboxReq,
99
119
  GetSandboxData,
120
+ SandboxLogEntry,
121
+ SandboxLogVolumeDataPoint,
122
+ SandboxLogVolumeMetadata,
123
+ SandboxLogVolumeResult,
124
+ GetSandboxLogsQueryRangeData,
125
+ GetSandboxLogsVolumeRangeData,
100
126
  StateStatus,
101
127
  UpdateInstanceCapacityReq,
102
128
  UpdatePrewarmSizeReq,
@@ -118,7 +144,11 @@ from .models import (
118
144
  GetPrewarmPoolReq,
119
145
  GetResourceStatsReq,
120
146
  GetSandboxReq,
147
+ GetSandboxEgressPolicyReq,
121
148
  GetSandboxEnvironmentReq,
149
+ GetSandboxLogsQueryRangeReq,
150
+ GetSandboxLogsVolumeRangeReq,
151
+ ListEnvironmentEventsReq,
122
152
  ListPrewarmPoolEventsReq,
123
153
  ListPrewarmPoolPodsReq,
124
154
  ListSandboxEnvironmentsReq,
@@ -217,7 +217,7 @@ async def get_prewarm_pool_async(ctx: Optional[dict], req: models.GetPrewarmPool
217
217
 
218
218
  def get_resource_stats(ctx: Optional[dict], req: models.GetResourceStatsReq) -> models.GetResourceStatsData:
219
219
  """资源统计
220
- 查询指定沙盒环境下沙盒实例使用的 CPU 和内存资源。
220
+ 查询指定沙盒环境的 CPU、内存用量,并返回集群沙盒节点池的总量、已用量和真实可调度剩余容量。旧版后端未提供节点容量时不返回 Node。
221
221
  GET /sandbox/v1alpha1/GetResourceStats
222
222
  Action: GetResourceStats
223
223
 
@@ -232,7 +232,7 @@ def get_resource_stats(ctx: Optional[dict], req: models.GetResourceStatsReq) ->
232
232
 
233
233
  async def get_resource_stats_async(ctx: Optional[dict], req: models.GetResourceStatsReq) -> models.GetResourceStatsData:
234
234
  """资源统计(异步)
235
- 查询指定沙盒环境下沙盒实例使用的 CPU 和内存资源。
235
+ 查询指定沙盒环境的 CPU、内存用量,并返回集群沙盒节点池的总量、已用量和真实可调度剩余容量。旧版后端未提供节点容量时不返回 Node。
236
236
  GET /sandbox/v1alpha1/GetResourceStats
237
237
  Action: GetResourceStats
238
238
 
@@ -275,6 +275,36 @@ async def get_sandbox_async(ctx: Optional[dict], req: models.GetSandboxReq) -> m
275
275
  return rsp.get_typed_data()
276
276
 
277
277
 
278
+ def get_sandbox_egress_policy(ctx: Optional[dict], req: models.GetSandboxEgressPolicyReq) -> models.GetSandboxEgressPolicyData:
279
+ """实例出站策略
280
+ 查询已启用 egress 的实例当前策略及平台规则;实例未启用 egress 或 sidecar 不可用时返回上游错误。
281
+ GET /sandbox/v1alpha1/GetSandboxEgressPolicy
282
+ Action: GetSandboxEgressPolicy
283
+
284
+ Returns GetSandboxEgressPolicyData on success.
285
+ Raises YiCloudException on error.
286
+ """
287
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxEgressPolicy"
288
+ rsp = msgs.Rsp[models.GetSandboxEgressPolicyData]()
289
+ client.base.get(ctx, path, req, rsp)
290
+ return rsp.get_typed_data()
291
+
292
+
293
+ async def get_sandbox_egress_policy_async(ctx: Optional[dict], req: models.GetSandboxEgressPolicyReq) -> models.GetSandboxEgressPolicyData:
294
+ """实例出站策略(异步)
295
+ 查询已启用 egress 的实例当前策略及平台规则;实例未启用 egress 或 sidecar 不可用时返回上游错误。
296
+ GET /sandbox/v1alpha1/GetSandboxEgressPolicy
297
+ Action: GetSandboxEgressPolicy
298
+
299
+ Returns GetSandboxEgressPolicyData on success.
300
+ Raises YiCloudException on error.
301
+ """
302
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxEgressPolicy"
303
+ rsp = msgs.Rsp[models.GetSandboxEgressPolicyData]()
304
+ await client.base.get_async(ctx, path, req, rsp)
305
+ return rsp.get_typed_data()
306
+
307
+
278
308
  def get_sandbox_environment(ctx: Optional[dict], req: models.GetSandboxEnvironmentReq) -> models.GetSandboxEnvironmentData:
279
309
  """环境详情
280
310
  查询单个沙盒环境详情。
@@ -305,6 +335,96 @@ async def get_sandbox_environment_async(ctx: Optional[dict], req: models.GetSand
305
335
  return rsp.get_typed_data()
306
336
 
307
337
 
338
+ def get_sandbox_logs_query_range(ctx: Optional[dict], req: models.GetSandboxLogsQueryRangeReq) -> models.GetSandboxLogsQueryRangeData:
339
+ """实例日志
340
+ 查询指定沙盒实例的 Loki 日志;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
341
+ GET /sandbox/v1alpha1/GetSandboxLogsQueryRange
342
+ Action: GetSandboxLogsQueryRange
343
+
344
+ Returns GetSandboxLogsQueryRangeData on success.
345
+ Raises YiCloudException on error.
346
+ """
347
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsQueryRange"
348
+ rsp = msgs.Rsp[models.GetSandboxLogsQueryRangeData]()
349
+ client.base.get(ctx, path, req, rsp)
350
+ return rsp.get_typed_data()
351
+
352
+
353
+ async def get_sandbox_logs_query_range_async(ctx: Optional[dict], req: models.GetSandboxLogsQueryRangeReq) -> models.GetSandboxLogsQueryRangeData:
354
+ """实例日志(异步)
355
+ 查询指定沙盒实例的 Loki 日志;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
356
+ GET /sandbox/v1alpha1/GetSandboxLogsQueryRange
357
+ Action: GetSandboxLogsQueryRange
358
+
359
+ Returns GetSandboxLogsQueryRangeData on success.
360
+ Raises YiCloudException on error.
361
+ """
362
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsQueryRange"
363
+ rsp = msgs.Rsp[models.GetSandboxLogsQueryRangeData]()
364
+ await client.base.get_async(ctx, path, req, rsp)
365
+ return rsp.get_typed_data()
366
+
367
+
368
+ def get_sandbox_logs_volume_range(ctx: Optional[dict], req: models.GetSandboxLogsVolumeRangeReq) -> models.GetSandboxLogsVolumeRangeData:
369
+ """实例日志量
370
+ 查询指定沙盒实例的日志量时序分布;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
371
+ GET /sandbox/v1alpha1/GetSandboxLogsVolumeRange
372
+ Action: GetSandboxLogsVolumeRange
373
+
374
+ Returns GetSandboxLogsVolumeRangeData on success.
375
+ Raises YiCloudException on error.
376
+ """
377
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsVolumeRange"
378
+ rsp = msgs.Rsp[models.GetSandboxLogsVolumeRangeData]()
379
+ client.base.get(ctx, path, req, rsp)
380
+ return rsp.get_typed_data()
381
+
382
+
383
+ async def get_sandbox_logs_volume_range_async(ctx: Optional[dict], req: models.GetSandboxLogsVolumeRangeReq) -> models.GetSandboxLogsVolumeRangeData:
384
+ """实例日志量(异步)
385
+ 查询指定沙盒实例的日志量时序分布;StartTime 和 EndTime 使用 Unix 秒整数,查询区间为 [StartTime, EndTime)。
386
+ GET /sandbox/v1alpha1/GetSandboxLogsVolumeRange
387
+ Action: GetSandboxLogsVolumeRange
388
+
389
+ Returns GetSandboxLogsVolumeRangeData on success.
390
+ Raises YiCloudException on error.
391
+ """
392
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/GetSandboxLogsVolumeRange"
393
+ rsp = msgs.Rsp[models.GetSandboxLogsVolumeRangeData]()
394
+ await client.base.get_async(ctx, path, req, rsp)
395
+ return rsp.get_typed_data()
396
+
397
+
398
+ def list_environment_events(ctx: Optional[dict], req: models.ListEnvironmentEventsReq) -> models.ListEnvironmentEventsData:
399
+ """环境事件
400
+ 查询指定沙盒环境关联的实时 Kubernetes 事件;该接口不替代预热池历史事件查询。
401
+ GET /sandbox/v1alpha1/ListEnvironmentEvents
402
+ Action: ListEnvironmentEvents
403
+
404
+ Returns ListEnvironmentEventsData on success.
405
+ Raises YiCloudException on error.
406
+ """
407
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListEnvironmentEvents"
408
+ rsp = msgs.Rsp[models.ListEnvironmentEventsData]()
409
+ client.base.get(ctx, path, req, rsp)
410
+ return rsp.get_typed_data()
411
+
412
+
413
+ async def list_environment_events_async(ctx: Optional[dict], req: models.ListEnvironmentEventsReq) -> models.ListEnvironmentEventsData:
414
+ """环境事件(异步)
415
+ 查询指定沙盒环境关联的实时 Kubernetes 事件;该接口不替代预热池历史事件查询。
416
+ GET /sandbox/v1alpha1/ListEnvironmentEvents
417
+ Action: ListEnvironmentEvents
418
+
419
+ Returns ListEnvironmentEventsData on success.
420
+ Raises YiCloudException on error.
421
+ """
422
+ path = f"/{_PRODUCT_CODE}/{_LAST_VERSION}/ListEnvironmentEvents"
423
+ rsp = msgs.Rsp[models.ListEnvironmentEventsData]()
424
+ await client.base.get_async(ctx, path, req, rsp)
425
+ return rsp.get_typed_data()
426
+
427
+
308
428
  def list_prewarm_pool_events(ctx: Optional[dict], req: models.ListPrewarmPoolEventsReq) -> models.ListPrewarmPoolEventsData:
309
429
  """预热事件
310
430
  查询指定沙盒环境的预热池事件历史。
@@ -4,6 +4,11 @@ from __future__ import annotations
4
4
  from dataclasses import dataclass, field
5
5
  from typing import Optional, List, Dict
6
6
 
7
+ # Action 枚举值
8
+ class Action:
9
+ ActionAllow = "allow"
10
+ ActionDeny = "deny"
11
+
7
12
  # ActualMode 枚举值
8
13
  class ActualMode:
9
14
  ActualModePool = "pool"
@@ -14,6 +19,11 @@ class AllocationMode:
14
19
  AllocationModePrewarm = "prewarm"
15
20
  AllocationModeManual = "manual"
16
21
 
22
+ # DefaultAction 枚举值
23
+ class DefaultAction:
24
+ DefaultActionAllow = "allow"
25
+ DefaultActionDeny = "deny"
26
+
17
27
  # Kind 枚举值
18
28
  class Kind:
19
29
  KindPool = "Pool"
@@ -137,11 +147,31 @@ class CreateSandboxReq:
137
147
  Image: Optional[CreateSandboxReqImageInput] = None # Image 直接创建实例时使用的镜像配置;可使用 Uri,也可使用 Ref 并按需指定 Source 由 adapter 解析 registry host;Ref 和 Uri 必须二选一。 json:"Image,omitempty"
138
148
  LifecycleMinutes: Optional[int] = None # LifecycleMinutes 实例生命周期,单位分钟。 json:"LifecycleMinutes,omitempty"
139
149
  Name: Optional[str] = None # Name 沙盒实例名称。 json:"Name,omitempty"
150
+ NetworkPolicy: Optional[CreateSandboxReqNetworkPolicy] = None # NetworkPolicy 实例出站策略;传入(包括空对象)会冷启动,不使用预热实例。省略则不启用。 json:"NetworkPolicy,omitempty"
140
151
  Ports: Optional[List[CreateSandboxReqPort]] = None # Ports 实例端口暴露配置。 json:"Ports,omitempty"
141
152
  RequestTimeoutSeconds: Optional[int] = None # RequestTimeoutSeconds 单次请求超时时间,单位秒。 json:"RequestTimeoutSeconds,omitempty"
142
153
  Resources: Optional[CreateSandboxReqResources] = None # Resources 直接创建实例时使用的资源规格。 json:"Resources,omitempty"
143
154
  Volumes: Optional[List[CreateSandboxReqVolume]] = None # Volumes 实例挂载卷配置。 json:"Volumes,omitempty"
144
155
 
156
+ @dataclass
157
+ class EgressAlwaysRules:
158
+ Allow: Optional[List[NetworkRule]] = None # json:"Allow,omitempty"
159
+ Deny: Optional[List[NetworkRule]] = None # json:"Deny,omitempty"
160
+ LogSkip: Optional[List[EgressLogSkipRule]] = None # json:"LogSkip,omitempty"
161
+
162
+ @dataclass
163
+ class EgressLogSkipRule:
164
+ Target: Optional[str] = "" # json:"Target,omitempty"
165
+
166
+ @dataclass
167
+ class EnvironmentEvent:
168
+ Kind: Optional[str] = "" # Kind 关联 Kubernetes 对象类型。 json:"Kind,omitempty"
169
+ Level: Optional[str] = "" # Level Kubernetes Event 类型。 json:"Level,omitempty"
170
+ Message: Optional[str] = "" # Message 事件详情。 json:"Message,omitempty"
171
+ Name: Optional[str] = "" # Name 关联 Kubernetes 对象名称。 json:"Name,omitempty"
172
+ Reason: Optional[str] = "" # Reason 事件原因。 json:"Reason,omitempty"
173
+ Time: Optional[str] = "" # Time 事件发生时间。 json:"Time,omitempty"
174
+
145
175
  @dataclass
146
176
  class EnvironmentInstanceCounts:
147
177
  Allocated: Optional[int] = 0 # Allocated 已分配实例数。 json:"Allocated,omitempty"
@@ -198,6 +228,13 @@ class GetInstanceStateStatsData:
198
228
  Prewarm: Optional[ModeInstanceStateCluster] = None # Prewarm 预热实例状态统计。 json:"Prewarm,omitempty"
199
229
  UsedPercentage: Optional[int] = 0 # UsedPercentage 容量使用百分比。 json:"UsedPercentage,omitempty"
200
230
 
231
+ @dataclass
232
+ class ListEnvironmentEventsData:
233
+ Items: Optional[List[EnvironmentEvent]] = None # Items 沙盒环境事件列表。 json:"Items,omitempty"
234
+ Limit: Optional[int] = 0 # Limit 本次响应对应的返回条数。 json:"Limit,omitempty"
235
+ Offset: Optional[int] = 0 # Offset 本次响应对应的偏移量。 json:"Offset,omitempty"
236
+ Total: Optional[int] = 0 # Total 符合条件的事件总数。 json:"Total,omitempty"
237
+
201
238
  @dataclass
202
239
  class ListPrewarmPoolEventsData:
203
240
  Items: Optional[List[PrewarmPoolEvent]] = None # Items 预热池事件列表。 json:"Items,omitempty"
@@ -238,6 +275,38 @@ class ModeInstanceStateCluster:
238
275
  Terminating: Optional[int] = 0 # Terminating 终止中的实例数。 json:"Terminating,omitempty"
239
276
  Total: Optional[int] = 0 # Total 当前模式下实例总数。 json:"Total,omitempty"
240
277
 
278
+ @dataclass
279
+ class NetworkPolicy:
280
+ DefaultAction: Optional[str] = None # SDK常量: DefaultActionAllow, DefaultActionDeny json:"DefaultAction,omitempty"
281
+ Egress: Optional[List[NetworkRule]] = None # json:"Egress,omitempty"
282
+
283
+ @dataclass
284
+ class CreateSandboxReqNetworkPolicy:
285
+ DefaultAction: Optional[str] = None # SDK常量: DefaultActionAllow, DefaultActionDeny json:"DefaultAction,omitempty"
286
+ Egress: Optional[List[CreateSandboxReqNetworkRule]] = None # json:"Egress,omitempty"
287
+
288
+ @dataclass
289
+ class NetworkRule:
290
+ Action: str # SDK常量: ActionAllow, ActionDeny json:"Action"
291
+ Target: str # json:"Target"
292
+
293
+ @dataclass
294
+ class CreateSandboxReqNetworkRule:
295
+ Action: str # SDK常量: ActionAllow, ActionDeny json:"Action"
296
+ Target: str # json:"Target"
297
+
298
+ @dataclass
299
+ class NodeCapacitySummary:
300
+ TotalCpuCores: Optional[float] = 0.0 # TotalCpuCores 可调度节点 allocatable CPU 合计,单位核。 json:"TotalCpuCores,omitempty"
301
+ TotalMemGi: Optional[float] = 0.0 # TotalMemGi 可调度节点 allocatable 内存合计,单位 Gi。 json:"TotalMemGi,omitempty"
302
+ TotalPods: Optional[int] = 0 # TotalPods 可调度节点 allocatable Pod 数合计。 json:"TotalPods,omitempty"
303
+ UsableCpuCores: Optional[float] = 0.0 # UsableCpuCores 可调度节点真实剩余 CPU,单位核。 json:"UsableCpuCores,omitempty"
304
+ UsableMemGi: Optional[float] = 0.0 # UsableMemGi 可调度节点真实剩余内存,单位 Gi。 json:"UsableMemGi,omitempty"
305
+ UsablePods: Optional[int] = 0 # UsablePods 可调度节点真实剩余 Pod 数。 json:"UsablePods,omitempty"
306
+ UsedCpuCores: Optional[float] = 0.0 # UsedCpuCores 可调度节点已用 CPU,单位核。 json:"UsedCpuCores,omitempty"
307
+ UsedMemGi: Optional[float] = 0.0 # UsedMemGi 可调度节点已用内存,单位 Gi。 json:"UsedMemGi,omitempty"
308
+ UsedPods: Optional[int] = 0 # UsedPods 可调度节点已用 Pod 数。 json:"UsedPods,omitempty"
309
+
241
310
  @dataclass
242
311
  class Port:
243
312
  ContainerPort: int # ContainerPort 容器内端口。 json:"ContainerPort"
@@ -299,6 +368,7 @@ class GetResourceStatsData:
299
368
  CpuUsedCores: Optional[float] = 0.0 # CpuUsedCores 已使用 CPU 核数。 json:"CpuUsedCores,omitempty"
300
369
  MemoryQuotaGi: Optional[float] = 0.0 # MemoryQuotaGi 内存配额,单位 Gi。 json:"MemoryQuotaGi,omitempty"
301
370
  MemoryUsedGi: Optional[float] = 0.0 # MemoryUsedGi 已使用内存,单位 Gi。 json:"MemoryUsedGi,omitempty"
371
+ Node: Optional[NodeCapacitySummary] = None # Node 集群沙盒节点池容量;旧版后端未提供该数据时省略。 json:"Node,omitempty"
302
372
 
303
373
  @dataclass
304
374
  class Resources:
@@ -315,6 +385,14 @@ class CreateSandboxEnvironmentReqResources:
315
385
  Cpu: str # Cpu CPU 资源规格,例如 1 或 8。 json:"Cpu"
316
386
  Memory: str # Memory 内存资源规格,例如 2Gi 或 8Gi。 json:"Memory"
317
387
 
388
+ @dataclass
389
+ class GetSandboxEgressPolicyData:
390
+ AlwaysRules: Optional[EgressAlwaysRules] = None # json:"AlwaysRules,omitempty"
391
+ EnforcementMode: Optional[str] = "" # json:"EnforcementMode,omitempty"
392
+ Mode: Optional[str] = "" # json:"Mode,omitempty"
393
+ Policy: Optional[NetworkPolicy] = None # json:"Policy,omitempty"
394
+ Status: Optional[str] = "" # json:"Status,omitempty"
395
+
318
396
  @dataclass
319
397
  class SandboxEndpointInfo:
320
398
  ExternalUrl: Optional[str] = "" # ExternalUrl 外部访问地址,可用性取决于网关和数据面配置。 json:"ExternalUrl,omitempty"
@@ -378,6 +456,7 @@ class GetSandboxData:
378
456
  CreatedAt: Optional[str] = "" # CreatedAt 创建时间,RFC3339 格式。 json:"CreatedAt,omitempty"
379
457
  CreatorId: Optional[str] = "" # CreatorId 创建人 ID。 json:"CreatorId,omitempty"
380
458
  CreatorName: Optional[str] = "" # CreatorName 创建人名称。 json:"CreatorName,omitempty"
459
+ EgressEnabled: Optional[bool] = False # EgressEnabled 是否注入出站管控 sidecar;当前规则通过 GetSandboxEgressPolicy 查询。 json:"EgressEnabled,omitempty"
381
460
  Endpoints: Optional[SandboxEndpoints] = None # Endpoints 沙盒端口访问入口信息。 json:"Endpoints,omitempty"
382
461
  Entrypoint: Optional[List[str]] = None # Entrypoint 实例启动命令。 json:"Entrypoint,omitempty"
383
462
  Env: Optional[Dict[str, str]] = None # Env 实例环境变量。 json:"Env,omitempty"
@@ -401,6 +480,36 @@ class GetSandboxData:
401
480
  Type: Optional[str] = None # SDK常量: TypeCode, TypeBrowser, TypeDesktop, TypeCustom json:"Type,omitempty"
402
481
  Volumes: Optional[List[Volume]] = None # Volumes 实例挂载卷配置。 json:"Volumes,omitempty"
403
482
 
483
+ @dataclass
484
+ class SandboxLogEntry:
485
+ Line: Optional[str] = "" # Line 日志正文。 json:"Line,omitempty"
486
+ Timestamp: Optional[str] = "" # Timestamp 日志时间戳,RFC3339 UTC;按日志实际精度保留小数秒。 json:"Timestamp,omitempty"
487
+
488
+ @dataclass
489
+ class SandboxLogVolumeDataPoint:
490
+ Count: Optional[str] = "" # Count 该时间点的日志量;使用字符串避免数值精度损失。 json:"Count,omitempty"
491
+ Timestamp: Optional[str] = "" # Timestamp 聚合时间点,秒级 RFC3339 UTC。 json:"Timestamp,omitempty"
492
+
493
+ @dataclass
494
+ class SandboxLogVolumeMetadata:
495
+ Step: Optional[int] = 0 # Step 聚合步长,单位秒。 json:"Step,omitempty"
496
+
497
+ @dataclass
498
+ class SandboxLogVolumeResult:
499
+ Metric: Optional[Dict[str, str]] = None # Metric Loki 聚合结果的标签集合。 json:"Metric,omitempty"
500
+ Values: Optional[List[SandboxLogVolumeDataPoint]] = None # Values 日志量时序数据点。 json:"Values,omitempty"
501
+
502
+ @dataclass
503
+ class GetSandboxLogsQueryRangeData:
504
+ Entries: Optional[List[SandboxLogEntry]] = None # Entries 时间范围内的日志记录。 json:"Entries,omitempty"
505
+ SandboxId: Optional[str] = "" # SandboxId 沙盒实例 ID。 json:"SandboxId,omitempty"
506
+
507
+ @dataclass
508
+ class GetSandboxLogsVolumeRangeData:
509
+ Metadata: Optional[SandboxLogVolumeMetadata] = None # Metadata 查询元数据。 json:"Metadata,omitempty"
510
+ Result: Optional[List[SandboxLogVolumeResult]] = None # Result 日志量时序结果。 json:"Result,omitempty"
511
+ SandboxId: Optional[str] = "" # SandboxId 沙盒实例 ID。 json:"SandboxId,omitempty"
512
+
404
513
  @dataclass
405
514
  class StateStatus:
406
515
  LastTransitionAt: Optional[str] = "" # LastTransitionAt 最近一次状态变更时间,RFC3339 格式。 json:"LastTransitionAt,omitempty"
@@ -522,11 +631,52 @@ class GetSandboxReq:
522
631
  ProjectName: str # 项目 namespace query:"ProjectName"
523
632
  SandboxId: str # 沙盒实例 ID query:"SandboxId"
524
633
 
634
+ @dataclass
635
+ class GetSandboxEgressPolicyReq:
636
+ ProjectName: str # 项目 namespace query:"ProjectName"
637
+ SandboxId: str # 沙盒实例 ID query:"SandboxId"
638
+
525
639
  @dataclass
526
640
  class GetSandboxEnvironmentReq:
527
641
  EnvironmentId: str # 沙盒环境 ID query:"EnvironmentId"
528
642
  ProjectName: str # 项目 namespace query:"ProjectName"
529
643
 
644
+ @dataclass
645
+ class GetSandboxLogsQueryRangeReq:
646
+ ProjectName: str # 项目 namespace query:"ProjectName"
647
+ SandboxId: str # 沙盒实例 ID query:"SandboxId"
648
+ StartTime: int # 查询起始时间,Unix 秒整数 query:"StartTime"
649
+ CaseSensitive: Optional[bool] = None # 关键词匹配是否区分大小写 query:"CaseSensitive,omitempty"
650
+ Cluster: Optional[str] = None # Loki 集群标签;不传时使用 brainbox 默认配置 query:"Cluster,omitempty"
651
+ Direction: Optional[str] = None # 查询方向 query:"Direction,omitempty"
652
+ EndTime: Optional[int] = None # 查询结束时间,Unix 秒整数;不传时使用 brainbox 当前时间 query:"EndTime,omitempty"
653
+ Keyword: Optional[str] = None # 日志关键词 query:"Keyword,omitempty"
654
+ Limit: Optional[int] = None # 最大返回条数 query:"Limit,omitempty"
655
+ Regex: Optional[bool] = None # 是否将 Keyword 作为正则表达式 query:"Regex,omitempty"
656
+
657
+ @dataclass
658
+ class GetSandboxLogsVolumeRangeReq:
659
+ ProjectName: str # 项目 namespace query:"ProjectName"
660
+ SandboxId: str # 沙盒实例 ID query:"SandboxId"
661
+ StartTime: int # 查询起始时间,Unix 秒整数 query:"StartTime"
662
+ CaseSensitive: Optional[bool] = None # 关键词匹配是否区分大小写 query:"CaseSensitive,omitempty"
663
+ Cluster: Optional[str] = None # Loki 集群标签;不传时使用 brainbox 默认配置 query:"Cluster,omitempty"
664
+ EndTime: Optional[int] = None # 查询结束时间,Unix 秒整数;不传时使用 brainbox 当前时间 query:"EndTime,omitempty"
665
+ Keyword: Optional[str] = None # 日志关键词 query:"Keyword,omitempty"
666
+ Limit: Optional[int] = None # 最大返回条数 query:"Limit,omitempty"
667
+ Regex: Optional[bool] = None # 是否将 Keyword 作为正则表达式 query:"Regex,omitempty"
668
+ Step: Optional[str] = None # 聚合步长,Go duration 格式;不传时由 brainbox 自动计算 query:"Step,omitempty"
669
+
670
+ @dataclass
671
+ class ListEnvironmentEventsReq:
672
+ EnvironmentId: str # 沙盒环境 ID query:"EnvironmentId"
673
+ ProjectName: str # 项目 namespace query:"ProjectName"
674
+ Kind: Optional[str] = None # Kubernetes 对象类型 query:"Kind,omitempty"
675
+ Level: Optional[str] = None # Kubernetes Event 类型 SDK常量: LevelNormal, LevelWarning query:"Level,omitempty"
676
+ Limit: Optional[int] = None # 返回条数 query:"Limit,omitempty"
677
+ Offset: Optional[int] = None # 偏移量 query:"Offset,omitempty"
678
+ Since: Optional[str] = None # RFC3339 起始时间;不传时使用 brainbox 默认时间窗 query:"Since,omitempty"
679
+
530
680
  @dataclass
531
681
  class ListPrewarmPoolEventsReq:
532
682
  EnvironmentId: str # 沙盒环境 ID query:"EnvironmentId"
@@ -585,7 +585,7 @@ async def get_release_exclude_patterns_async(ctx: Optional[dict], req: models.Ge
585
585
 
586
586
  def release_process(ctx: Optional[dict], req: models.ReleaseProcessReq):
587
587
  """制作镜像
588
- 将指定进程的当前环境制作为容器镜像
588
+ 将指定进程的当前环境制作为容器镜像。操作者用户 ID 从请求头 X-Kb-Subject 获取(网关鉴权后注入,必填),用于记录提交镜像的操作者信息,缺失时返回参数错误
589
589
  POST /workspace/v1alpha1/ReleaseProcess
590
590
  Action: ReleaseProcess
591
591
 
@@ -599,7 +599,7 @@ def release_process(ctx: Optional[dict], req: models.ReleaseProcessReq):
599
599
 
600
600
  async def release_process_async(ctx: Optional[dict], req: models.ReleaseProcessReq):
601
601
  """制作镜像(异步)
602
- 将指定进程的当前环境制作为容器镜像
602
+ 将指定进程的当前环境制作为容器镜像。操作者用户 ID 从请求头 X-Kb-Subject 获取(网关鉴权后注入,必填),用于记录提交镜像的操作者信息,缺失时返回参数错误
603
603
  POST /workspace/v1alpha1/ReleaseProcess
604
604
  Action: ReleaseProcess
605
605
 
@@ -51,6 +51,8 @@ class BatchStopWorkspacesData:
51
51
  @dataclass
52
52
  class CommitHistoryResponse:
53
53
  CommitTime: Optional[str] = "" # 制作时间(RFC3339 格式) json:"CommitTime,omitempty"
54
+ Creator: Optional[str] = "" # 制作镜像的操作者用户名 json:"Creator,omitempty"
55
+ CreatorId: Optional[str] = "" # 制作镜像的操作者用户 ID json:"CreatorId,omitempty"
54
56
  Description: Optional[str] = "" # 描述 json:"Description,omitempty"
55
57
  ErrorMsg: Optional[str] = "" # 错误信息 json:"ErrorMsg,omitempty"
56
58
  Image: Optional[str] = "" # 镜像地址 json:"Image,omitempty"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yicloud-sdk-python
3
- Version: 0.4.1
3
+ Version: 0.4.2
4
4
  Summary: YiCloud OpenAPI SDK for Python
5
5
  Author: YiCloud
6
6
  Project-URL: Homepage, https://gitee.com/yicloud-team/openapi-sdk-python