ucloud-sdk-python3 0.11.81__py3-none-any.whl

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 (280) hide show
  1. ucloud/__init__.py +0 -0
  2. ucloud/client.py +469 -0
  3. ucloud/core/__init__.py +0 -0
  4. ucloud/core/auth/__init__.py +3 -0
  5. ucloud/core/auth/_cfg.py +72 -0
  6. ucloud/core/client/__init__.py +8 -0
  7. ucloud/core/client/_cfg.py +96 -0
  8. ucloud/core/client/_client.py +176 -0
  9. ucloud/core/exc/__init__.py +9 -0
  10. ucloud/core/exc/_exc.py +94 -0
  11. ucloud/core/transport/__init__.py +4 -0
  12. ucloud/core/transport/_requests.py +135 -0
  13. ucloud/core/transport/http.py +120 -0
  14. ucloud/core/transport/utils.py +40 -0
  15. ucloud/core/typesystem/__init__.py +0 -0
  16. ucloud/core/typesystem/abstract.py +60 -0
  17. ucloud/core/typesystem/encoder.py +33 -0
  18. ucloud/core/typesystem/fields.py +149 -0
  19. ucloud/core/typesystem/schema.py +97 -0
  20. ucloud/core/utils/__init__.py +0 -0
  21. ucloud/core/utils/compat.py +15 -0
  22. ucloud/core/utils/deco.py +31 -0
  23. ucloud/core/utils/log.py +29 -0
  24. ucloud/core/utils/middleware.py +63 -0
  25. ucloud/helpers/__init__.py +0 -0
  26. ucloud/helpers/utils.py +90 -0
  27. ucloud/helpers/wait.py +108 -0
  28. ucloud/services/__init__.py +0 -0
  29. ucloud/services/cube/__init__.py +0 -0
  30. ucloud/services/cube/client.py +618 -0
  31. ucloud/services/cube/schemas/__init__.py +0 -0
  32. ucloud/services/cube/schemas/apis.py +548 -0
  33. ucloud/services/cube/schemas/models.py +58 -0
  34. ucloud/services/iam/__init__.py +0 -0
  35. ucloud/services/iam/client.py +1078 -0
  36. ucloud/services/iam/schemas/__init__.py +0 -0
  37. ucloud/services/iam/schemas/apis.py +973 -0
  38. ucloud/services/iam/schemas/models.py +127 -0
  39. ucloud/services/ipsecvpn/__init__.py +0 -0
  40. ucloud/services/ipsecvpn/client.py +522 -0
  41. ucloud/services/ipsecvpn/schemas/__init__.py +0 -0
  42. ucloud/services/ipsecvpn/schemas/apis.py +455 -0
  43. ucloud/services/ipsecvpn/schemas/models.py +134 -0
  44. ucloud/services/ipv6gw/__init__.py +0 -0
  45. ucloud/services/ipv6gw/client.py +44 -0
  46. ucloud/services/ipv6gw/schemas/__init__.py +0 -0
  47. ucloud/services/ipv6gw/schemas/apis.py +34 -0
  48. ucloud/services/ipv6gw/schemas/models.py +3 -0
  49. ucloud/services/isms/__init__.py +0 -0
  50. ucloud/services/isms/client.py +330 -0
  51. ucloud/services/isms/schemas/__init__.py +0 -0
  52. ucloud/services/isms/schemas/apis.py +272 -0
  53. ucloud/services/isms/schemas/models.py +50 -0
  54. ucloud/services/pathx/__init__.py +0 -0
  55. ucloud/services/pathx/client.py +1656 -0
  56. ucloud/services/pathx/schemas/__init__.py +0 -0
  57. ucloud/services/pathx/schemas/apis.py +1289 -0
  58. ucloud/services/pathx/schemas/models.py +420 -0
  59. ucloud/services/stepflow/__init__.py +0 -0
  60. ucloud/services/stepflow/client.py +98 -0
  61. ucloud/services/stepflow/schemas/__init__.py +0 -0
  62. ucloud/services/stepflow/schemas/apis.py +67 -0
  63. ucloud/services/stepflow/schemas/models.py +37 -0
  64. ucloud/services/sts/__init__.py +0 -0
  65. ucloud/services/sts/client.py +46 -0
  66. ucloud/services/sts/schemas/__init__.py +0 -0
  67. ucloud/services/sts/schemas/apis.py +35 -0
  68. ucloud/services/sts/schemas/models.py +16 -0
  69. ucloud/services/tidb/__init__.py +0 -0
  70. ucloud/services/tidb/client.py +120 -0
  71. ucloud/services/tidb/schemas/__init__.py +0 -0
  72. ucloud/services/tidb/schemas/apis.py +103 -0
  73. ucloud/services/tidb/schemas/models.py +11 -0
  74. ucloud/services/uaaa/__init__.py +0 -0
  75. ucloud/services/uaaa/client.py +311 -0
  76. ucloud/services/uaaa/schemas/__init__.py +0 -0
  77. ucloud/services/uaaa/schemas/apis.py +252 -0
  78. ucloud/services/uaaa/schemas/models.py +47 -0
  79. ucloud/services/uaccount/__init__.py +0 -0
  80. ucloud/services/uaccount/client.py +547 -0
  81. ucloud/services/uaccount/schemas/__init__.py +0 -0
  82. ucloud/services/uaccount/schemas/apis.py +442 -0
  83. ucloud/services/uaccount/schemas/models.py +128 -0
  84. ucloud/services/uads/__init__.py +0 -0
  85. ucloud/services/uads/client.py +1148 -0
  86. ucloud/services/uads/schemas/__init__.py +0 -0
  87. ucloud/services/uads/schemas/apis.py +983 -0
  88. ucloud/services/uads/schemas/models.py +199 -0
  89. ucloud/services/ubill/__init__.py +0 -0
  90. ucloud/services/ubill/client.py +248 -0
  91. ucloud/services/ubill/schemas/__init__.py +0 -0
  92. ucloud/services/ubill/schemas/apis.py +183 -0
  93. ucloud/services/ubill/schemas/models.py +107 -0
  94. ucloud/services/ucdn/__init__.py +0 -0
  95. ucloud/services/ucdn/client.py +1964 -0
  96. ucloud/services/ucdn/schemas/__init__.py +0 -0
  97. ucloud/services/ucdn/schemas/apis.py +1395 -0
  98. ucloud/services/ucdn/schemas/models.py +576 -0
  99. ucloud/services/ucloudstack/__init__.py +0 -0
  100. ucloud/services/ucloudstack/client.py +3352 -0
  101. ucloud/services/ucloudstack/schemas/__init__.py +0 -0
  102. ucloud/services/ucloudstack/schemas/apis.py +2887 -0
  103. ucloud/services/ucloudstack/schemas/models.py +560 -0
  104. ucloud/services/ucompshare/__init__.py +0 -0
  105. ucloud/services/ucompshare/client.py +820 -0
  106. ucloud/services/ucompshare/schemas/__init__.py +0 -0
  107. ucloud/services/ucompshare/schemas/apis.py +623 -0
  108. ucloud/services/ucompshare/schemas/models.py +241 -0
  109. ucloud/services/udb/__init__.py +0 -0
  110. ucloud/services/udb/client.py +2463 -0
  111. ucloud/services/udb/schemas/__init__.py +0 -0
  112. ucloud/services/udb/schemas/apis.py +2053 -0
  113. ucloud/services/udb/schemas/models.py +319 -0
  114. ucloud/services/udbproxy/__init__.py +0 -0
  115. ucloud/services/udbproxy/client.py +67 -0
  116. ucloud/services/udbproxy/schemas/__init__.py +0 -0
  117. ucloud/services/udbproxy/schemas/apis.py +38 -0
  118. ucloud/services/udbproxy/schemas/models.py +31 -0
  119. ucloud/services/uddb/__init__.py +0 -0
  120. ucloud/services/uddb/client.py +456 -0
  121. ucloud/services/uddb/schemas/__init__.py +0 -0
  122. ucloud/services/uddb/schemas/apis.py +520 -0
  123. ucloud/services/uddb/schemas/models.py +96 -0
  124. ucloud/services/udi/__init__.py +0 -0
  125. ucloud/services/udi/client.py +250 -0
  126. ucloud/services/udi/schemas/__init__.py +0 -0
  127. ucloud/services/udi/schemas/apis.py +205 -0
  128. ucloud/services/udi/schemas/models.py +58 -0
  129. ucloud/services/udisk/__init__.py +0 -0
  130. ucloud/services/udisk/client.py +832 -0
  131. ucloud/services/udisk/schemas/__init__.py +0 -0
  132. ucloud/services/udisk/schemas/apis.py +741 -0
  133. ucloud/services/udisk/schemas/models.py +100 -0
  134. ucloud/services/udns/__init__.py +0 -0
  135. ucloud/services/udns/client.py +380 -0
  136. ucloud/services/udns/schemas/__init__.py +0 -0
  137. ucloud/services/udns/schemas/apis.py +293 -0
  138. ucloud/services/udns/schemas/models.py +58 -0
  139. ucloud/services/udpn/__init__.py +0 -0
  140. ucloud/services/udpn/client.py +240 -0
  141. ucloud/services/udpn/schemas/__init__.py +0 -0
  142. ucloud/services/udpn/schemas/apis.py +203 -0
  143. ucloud/services/udpn/schemas/models.py +29 -0
  144. ucloud/services/udts/__init__.py +0 -0
  145. ucloud/services/udts/client.py +410 -0
  146. ucloud/services/udts/schemas/__init__.py +0 -0
  147. ucloud/services/udts/schemas/apis.py +403 -0
  148. ucloud/services/udts/schemas/models.py +93 -0
  149. ucloud/services/uec/__init__.py +0 -0
  150. ucloud/services/uec/client.py +1510 -0
  151. ucloud/services/uec/schemas/__init__.py +0 -0
  152. ucloud/services/uec/schemas/apis.py +1195 -0
  153. ucloud/services/uec/schemas/models.py +316 -0
  154. ucloud/services/ufile/__init__.py +0 -0
  155. ucloud/services/ufile/client.py +698 -0
  156. ucloud/services/ufile/schemas/__init__.py +0 -0
  157. ucloud/services/ufile/schemas/apis.py +542 -0
  158. ucloud/services/ufile/schemas/models.py +139 -0
  159. ucloud/services/ufs/__init__.py +0 -0
  160. ucloud/services/ufs/client.py +328 -0
  161. ucloud/services/ufs/schemas/__init__.py +0 -0
  162. ucloud/services/ufs/schemas/apis.py +265 -0
  163. ucloud/services/ufs/schemas/models.py +52 -0
  164. ucloud/services/ugn/__init__.py +0 -0
  165. ucloud/services/ugn/client.py +857 -0
  166. ucloud/services/ugn/schemas/__init__.py +0 -0
  167. ucloud/services/ugn/schemas/apis.py +678 -0
  168. ucloud/services/ugn/schemas/models.py +191 -0
  169. ucloud/services/uhost/__init__.py +0 -0
  170. ucloud/services/uhost/client.py +1647 -0
  171. ucloud/services/uhost/schemas/__init__.py +0 -0
  172. ucloud/services/uhost/schemas/apis.py +1483 -0
  173. ucloud/services/uhost/schemas/models.py +427 -0
  174. ucloud/services/uhub/__init__.py +0 -0
  175. ucloud/services/uhub/client.py +229 -0
  176. ucloud/services/uhub/schemas/__init__.py +0 -0
  177. ucloud/services/uhub/schemas/apis.py +194 -0
  178. ucloud/services/uhub/schemas/models.py +39 -0
  179. ucloud/services/uk8s/__init__.py +0 -0
  180. ucloud/services/uk8s/client.py +729 -0
  181. ucloud/services/uk8s/schemas/__init__.py +0 -0
  182. ucloud/services/uk8s/schemas/apis.py +639 -0
  183. ucloud/services/uk8s/schemas/models.py +179 -0
  184. ucloud/services/ulb/__init__.py +0 -0
  185. ucloud/services/ulb/client.py +2285 -0
  186. ucloud/services/ulb/schemas/__init__.py +0 -0
  187. ucloud/services/ulb/schemas/apis.py +1678 -0
  188. ucloud/services/ulb/schemas/models.py +591 -0
  189. ucloud/services/ulighthost/__init__.py +0 -0
  190. ucloud/services/ulighthost/client.py +576 -0
  191. ucloud/services/ulighthost/schemas/__init__.py +0 -0
  192. ucloud/services/ulighthost/schemas/apis.py +445 -0
  193. ucloud/services/ulighthost/schemas/models.py +133 -0
  194. ucloud/services/umem/__init__.py +0 -0
  195. ucloud/services/umem/client.py +1829 -0
  196. ucloud/services/umem/schemas/__init__.py +0 -0
  197. ucloud/services/umem/schemas/apis.py +1477 -0
  198. ucloud/services/umem/schemas/models.py +327 -0
  199. ucloud/services/umongodb/__init__.py +0 -0
  200. ucloud/services/umongodb/client.py +752 -0
  201. ucloud/services/umongodb/schemas/__init__.py +0 -0
  202. ucloud/services/umongodb/schemas/apis.py +567 -0
  203. ucloud/services/umongodb/schemas/models.py +220 -0
  204. ucloud/services/unet/__init__.py +0 -0
  205. ucloud/services/unet/client.py +1278 -0
  206. ucloud/services/unet/schemas/__init__.py +0 -0
  207. ucloud/services/unet/schemas/apis.py +1006 -0
  208. ucloud/services/unet/schemas/models.py +275 -0
  209. ucloud/services/unvs/__init__.py +0 -0
  210. ucloud/services/unvs/client.py +87 -0
  211. ucloud/services/unvs/schemas/__init__.py +0 -0
  212. ucloud/services/unvs/schemas/apis.py +66 -0
  213. ucloud/services/unvs/schemas/models.py +19 -0
  214. ucloud/services/upfs/__init__.py +0 -0
  215. ucloud/services/upfs/client.py +252 -0
  216. ucloud/services/upfs/schemas/__init__.py +0 -0
  217. ucloud/services/upfs/schemas/apis.py +204 -0
  218. ucloud/services/upfs/schemas/models.py +36 -0
  219. ucloud/services/upgsql/__init__.py +0 -0
  220. ucloud/services/upgsql/client.py +1007 -0
  221. ucloud/services/upgsql/schemas/__init__.py +0 -0
  222. ucloud/services/upgsql/schemas/apis.py +827 -0
  223. ucloud/services/upgsql/schemas/models.py +158 -0
  224. ucloud/services/uphone/__init__.py +0 -0
  225. ucloud/services/uphone/client.py +2122 -0
  226. ucloud/services/uphone/schemas/__init__.py +0 -0
  227. ucloud/services/uphone/schemas/apis.py +1799 -0
  228. ucloud/services/uphone/schemas/models.py +357 -0
  229. ucloud/services/uphost/__init__.py +0 -0
  230. ucloud/services/uphost/client.py +847 -0
  231. ucloud/services/uphost/schemas/__init__.py +0 -0
  232. ucloud/services/uphost/schemas/apis.py +689 -0
  233. ucloud/services/uphost/schemas/models.py +175 -0
  234. ucloud/services/urocketmq/__init__.py +0 -0
  235. ucloud/services/urocketmq/client.py +117 -0
  236. ucloud/services/urocketmq/schemas/__init__.py +0 -0
  237. ucloud/services/urocketmq/schemas/apis.py +92 -0
  238. ucloud/services/urocketmq/schemas/models.py +14 -0
  239. ucloud/services/uslk/__init__.py +0 -0
  240. ucloud/services/uslk/client.py +249 -0
  241. ucloud/services/uslk/schemas/__init__.py +0 -0
  242. ucloud/services/uslk/schemas/apis.py +191 -0
  243. ucloud/services/uslk/schemas/models.py +74 -0
  244. ucloud/services/usms/__init__.py +0 -0
  245. ucloud/services/usms/client.py +759 -0
  246. ucloud/services/usms/schemas/__init__.py +0 -0
  247. ucloud/services/usms/schemas/apis.py +653 -0
  248. ucloud/services/usms/schemas/models.py +215 -0
  249. ucloud/services/utsdb/__init__.py +0 -0
  250. ucloud/services/utsdb/client.py +604 -0
  251. ucloud/services/utsdb/schemas/__init__.py +0 -0
  252. ucloud/services/utsdb/schemas/apis.py +515 -0
  253. ucloud/services/utsdb/schemas/models.py +61 -0
  254. ucloud/services/uvms/__init__.py +0 -0
  255. ucloud/services/uvms/client.py +119 -0
  256. ucloud/services/uvms/schemas/__init__.py +0 -0
  257. ucloud/services/uvms/schemas/apis.py +88 -0
  258. ucloud/services/uvms/schemas/models.py +40 -0
  259. ucloud/services/vpc/__init__.py +0 -0
  260. ucloud/services/vpc/client.py +3233 -0
  261. ucloud/services/vpc/schemas/__init__.py +0 -0
  262. ucloud/services/vpc/schemas/apis.py +2529 -0
  263. ucloud/services/vpc/schemas/models.py +651 -0
  264. ucloud/testing/__init__.py +0 -0
  265. ucloud/testing/driver/__init__.py +5 -0
  266. ucloud/testing/driver/_scenario.py +93 -0
  267. ucloud/testing/driver/_specification.py +57 -0
  268. ucloud/testing/driver/_step.py +166 -0
  269. ucloud/testing/env.py +28 -0
  270. ucloud/testing/exc.py +18 -0
  271. ucloud/testing/funcs.py +68 -0
  272. ucloud/testing/mock.py +28 -0
  273. ucloud/testing/op.py +177 -0
  274. ucloud/testing/utest.py +195 -0
  275. ucloud/version.py +1 -0
  276. ucloud_sdk_python3-0.11.81.dist-info/LICENSE +202 -0
  277. ucloud_sdk_python3-0.11.81.dist-info/METADATA +71 -0
  278. ucloud_sdk_python3-0.11.81.dist-info/RECORD +280 -0
  279. ucloud_sdk_python3-0.11.81.dist-info/WHEEL +5 -0
  280. ucloud_sdk_python3-0.11.81.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1078 @@
1
+ """ Code is generated by ucloud-model, DO NOT EDIT IT. """
2
+
3
+ import typing
4
+
5
+
6
+ from ucloud.core.client import Client
7
+ from ucloud.services.iam.schemas import apis
8
+
9
+
10
+ class IAMClient(Client):
11
+ def __init__(
12
+ self, config: dict, transport=None, middleware=None, logger=None
13
+ ):
14
+ super(IAMClient, self).__init__(config, transport, middleware, logger)
15
+
16
+ def add_user_to_group(
17
+ self, req: typing.Optional[dict] = None, **kwargs
18
+ ) -> dict:
19
+ """AddUserToGroup - 添加成员到用户组
20
+
21
+ **Request**
22
+
23
+ - **GroupName** (str) - (Required) 用户组名
24
+ - **UserName** (str) - (Required) 用户名
25
+
26
+ **Response**
27
+
28
+ - **Message** (str) - 错误消息
29
+
30
+ """
31
+ # build request
32
+ d = {}
33
+ req and d.update(req)
34
+ d = apis.AddUserToGroupRequestSchema().dumps(d)
35
+
36
+ # build options
37
+ kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
38
+
39
+ resp = self.invoke("AddUserToGroup", d, **kwargs)
40
+ return apis.AddUserToGroupResponseSchema().loads(resp)
41
+
42
+ def attach_policies_to_group(
43
+ self, req: typing.Optional[dict] = None, **kwargs
44
+ ) -> dict:
45
+ """AttachPoliciesToGroup - 关联IAM策略到用户组
46
+
47
+ **Request**
48
+
49
+ - **GroupName** (str) - (Required) 用户组名称
50
+ - **PolicyURNs** (list) - (Required) 策略URN
51
+ - **Scope** (str) - (Required) 应用范围
52
+ - **ProjectID** (str) - 项目ID(当Scope=Specified时ProjectID必传)
53
+
54
+ **Response**
55
+
56
+ - **Message** (str) - 错误消息
57
+
58
+ """
59
+ # build request
60
+ d = {}
61
+ req and d.update(req)
62
+ d = apis.AttachPoliciesToGroupRequestSchema().dumps(d)
63
+
64
+ resp = self.invoke("AttachPoliciesToGroup", d, **kwargs)
65
+ return apis.AttachPoliciesToGroupResponseSchema().loads(resp)
66
+
67
+ def attach_policies_to_user(
68
+ self, req: typing.Optional[dict] = None, **kwargs
69
+ ) -> dict:
70
+ """AttachPoliciesToUser - 关联IAM策略到用户
71
+
72
+ **Request**
73
+
74
+ - **PolicyURNs** (list) - (Required) 策略URN
75
+ - **Scope** (str) - (Required) 应用范围
76
+ - **UserName** (str) - (Required) 用户名称
77
+ - **ProjectID** (str) - 项目ID(当Scope=Specified时ProjectID必传)
78
+
79
+ **Response**
80
+
81
+ - **Message** (str) - 错误消息
82
+
83
+ """
84
+ # build request
85
+ d = {}
86
+ req and d.update(req)
87
+ d = apis.AttachPoliciesToUserRequestSchema().dumps(d)
88
+
89
+ resp = self.invoke("AttachPoliciesToUser", d, **kwargs)
90
+ return apis.AttachPoliciesToUserResponseSchema().loads(resp)
91
+
92
+ def create_access_key(
93
+ self, req: typing.Optional[dict] = None, **kwargs
94
+ ) -> dict:
95
+ """CreateAccessKey - 创建用户密钥
96
+
97
+ **Request**
98
+
99
+ - **UserName** (str) - (Required) 用户名
100
+
101
+ **Response**
102
+
103
+ - **AccessKey** (dict) - 见 **AccessKey** 模型定义
104
+
105
+ **Response Model**
106
+
107
+ **AccessKey**
108
+ - **AccessKeyID** (str) - 用户公钥
109
+ - **AccessKeySecret** (str) - 用户私钥
110
+ - **CreatedAt** (int) - 密钥创建时间
111
+ - **DeletedAt** (int) - 密钥删除时间
112
+ - **Description** (str) - 密钥备注
113
+ - **ExpiredAt** (int) - 密钥过期时间
114
+ - **Status** (str) - 密钥状态
115
+ - **UpdatedAt** (int) - 密钥更新时间
116
+ - **UserId** (int) - 用户ID
117
+
118
+
119
+ """
120
+ # build request
121
+ d = {}
122
+ req and d.update(req)
123
+ d = apis.CreateAccessKeyRequestSchema().dumps(d)
124
+
125
+ # build options
126
+ kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
127
+
128
+ resp = self.invoke("CreateAccessKey", d, **kwargs)
129
+ return apis.CreateAccessKeyResponseSchema().loads(resp)
130
+
131
+ def create_group(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
132
+ """CreateGroup - 创建用户组
133
+
134
+ **Request**
135
+
136
+ - **GroupName** (str) - (Required) 用户组名称
137
+ - **Description** (str) - 对用户组的描述
138
+
139
+ **Response**
140
+
141
+ - **Message** (str) - 错误消息
142
+
143
+ """
144
+ # build request
145
+ d = {}
146
+ req and d.update(req)
147
+ d = apis.CreateGroupRequestSchema().dumps(d)
148
+
149
+ # build options
150
+ kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
151
+
152
+ resp = self.invoke("CreateGroup", d, **kwargs)
153
+ return apis.CreateGroupResponseSchema().loads(resp)
154
+
155
+ def create_iam_policy(
156
+ self, req: typing.Optional[dict] = None, **kwargs
157
+ ) -> dict:
158
+ """CreateIAMPolicy - 创建IAM策略
159
+
160
+ **Request**
161
+
162
+ - **Document** (str) - (Required) 策略内容
163
+ - **PolicyName** (str) - (Required) 策略名称
164
+ - **Description** (str) - 描述
165
+ - **ScopeType** (str) - 策略作用域类型
166
+
167
+ **Response**
168
+
169
+ - **Message** (str) - 错误消息
170
+
171
+ """
172
+ # build request
173
+ d = {}
174
+ req and d.update(req)
175
+ d = apis.CreateIAMPolicyRequestSchema().dumps(d)
176
+
177
+ # build options
178
+ kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
179
+
180
+ resp = self.invoke("CreateIAMPolicy", d, **kwargs)
181
+ return apis.CreateIAMPolicyResponseSchema().loads(resp)
182
+
183
+ def create_project(
184
+ self, req: typing.Optional[dict] = None, **kwargs
185
+ ) -> dict:
186
+ """CreateProject - 创建项目
187
+
188
+ **Request**
189
+
190
+ - **ProjectName** (str) - (Required) 项目名称,不得与现有项目重名
191
+
192
+ **Response**
193
+
194
+ - **ProjectId** (str) - 所创建项目的Id
195
+
196
+ """
197
+ # build request
198
+ d = {}
199
+ req and d.update(req)
200
+ d = apis.CreateProjectRequestSchema().dumps(d)
201
+
202
+ # build options
203
+ kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
204
+
205
+ resp = self.invoke("CreateProject", d, **kwargs)
206
+ return apis.CreateProjectResponseSchema().loads(resp)
207
+
208
+ def create_user(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
209
+ """CreateUser - 创建IAM用户
210
+
211
+ **Request**
212
+
213
+ - **AccessKeyStatus** (str) - (Required) API密钥访问状态(LoginProfileStatus值为Inactive时,AccessKeyStatus不能为Inactive)
214
+ - **LoginProfileStatus** (str) - (Required) 控制台登录访问状态(AccessKeyStatus值为Inactive时,LoginProfileStatus不能为Inactive)
215
+ - **UserName** (str) - (Required) 用户名
216
+ - **DisplayName** (str) - 显示名称
217
+ - **Email** (str) - 用户邮箱(LoginProfileStatus值等于Active必传,LoginProfileStatus值等于Inactive不传)
218
+
219
+ **Response**
220
+
221
+ - **Message** (str) - 错误消息
222
+
223
+ """
224
+ # build request
225
+ d = {}
226
+ req and d.update(req)
227
+ d = apis.CreateUserRequestSchema().dumps(d)
228
+
229
+ # build options
230
+ kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
231
+
232
+ resp = self.invoke("CreateUser", d, **kwargs)
233
+ return apis.CreateUserResponseSchema().loads(resp)
234
+
235
+ def delete_access_key(
236
+ self, req: typing.Optional[dict] = None, **kwargs
237
+ ) -> dict:
238
+ """DeleteAccessKey - 删除用户密钥
239
+
240
+ **Request**
241
+
242
+ - **AccessKeyID** (str) - (Required) 用户公钥
243
+
244
+ **Response**
245
+
246
+
247
+ """
248
+ # build request
249
+ d = {}
250
+ req and d.update(req)
251
+ d = apis.DeleteAccessKeyRequestSchema().dumps(d)
252
+
253
+ resp = self.invoke("DeleteAccessKey", d, **kwargs)
254
+ return apis.DeleteAccessKeyResponseSchema().loads(resp)
255
+
256
+ def delete_group(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
257
+ """DeleteGroup - 删除用户组
258
+
259
+ **Request**
260
+
261
+ - **GroupName** (str) - (Required) 待删除用户组名称
262
+
263
+ **Response**
264
+
265
+ - **Message** (str) - 错误消息
266
+
267
+ """
268
+ # build request
269
+ d = {}
270
+ req and d.update(req)
271
+ d = apis.DeleteGroupRequestSchema().dumps(d)
272
+
273
+ resp = self.invoke("DeleteGroup", d, **kwargs)
274
+ return apis.DeleteGroupResponseSchema().loads(resp)
275
+
276
+ def delete_iam_policy(
277
+ self, req: typing.Optional[dict] = None, **kwargs
278
+ ) -> dict:
279
+ """DeleteIAMPolicy - 删除IAM策略
280
+
281
+ **Request**
282
+
283
+ - **PolicyURN** (str) - (Required) 策略URN
284
+
285
+ **Response**
286
+
287
+ - **Message** (str) - 错误消息
288
+
289
+ """
290
+ # build request
291
+ d = {}
292
+ req and d.update(req)
293
+ d = apis.DeleteIAMPolicyRequestSchema().dumps(d)
294
+
295
+ resp = self.invoke("DeleteIAMPolicy", d, **kwargs)
296
+ return apis.DeleteIAMPolicyResponseSchema().loads(resp)
297
+
298
+ def delete_project(
299
+ self, req: typing.Optional[dict] = None, **kwargs
300
+ ) -> dict:
301
+ """DeleteProject - 删除项目
302
+
303
+ **Request**
304
+
305
+ - **ProjectID** (str) - (Required) 项目ID
306
+
307
+ **Response**
308
+
309
+ - **Message** (str) - 错误消息
310
+
311
+ """
312
+ # build request
313
+ d = {}
314
+ req and d.update(req)
315
+ d = apis.DeleteProjectRequestSchema().dumps(d)
316
+
317
+ resp = self.invoke("DeleteProject", d, **kwargs)
318
+ return apis.DeleteProjectResponseSchema().loads(resp)
319
+
320
+ def delete_user(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
321
+ """DeleteUser - 删除用户
322
+
323
+ **Request**
324
+
325
+ - **UserName** (str) - (Required) 用户名
326
+
327
+ **Response**
328
+
329
+ - **Message** (str) - 错误消息
330
+
331
+ """
332
+ # build request
333
+ d = {}
334
+ req and d.update(req)
335
+ d = apis.DeleteUserRequestSchema().dumps(d)
336
+
337
+ resp = self.invoke("DeleteUser", d, **kwargs)
338
+ return apis.DeleteUserResponseSchema().loads(resp)
339
+
340
+ def detach_policies_from_group(
341
+ self, req: typing.Optional[dict] = None, **kwargs
342
+ ) -> dict:
343
+ """DetachPoliciesFromGroup - 移除用户组关联的IAM策略
344
+
345
+ **Request**
346
+
347
+ - **GroupName** (str) - (Required) 用户组名称
348
+ - **PolicyURNs** (list) - (Required) 策略URN
349
+ - **Scope** (str) - (Required) 应用范围
350
+ - **ProjectID** (str) - 项目ID(当Scope=Specified时ProjectID必传)
351
+
352
+ **Response**
353
+
354
+ - **Message** (str) - 错误消息
355
+
356
+ """
357
+ # build request
358
+ d = {}
359
+ req and d.update(req)
360
+ d = apis.DetachPoliciesFromGroupRequestSchema().dumps(d)
361
+
362
+ resp = self.invoke("DetachPoliciesFromGroup", d, **kwargs)
363
+ return apis.DetachPoliciesFromGroupResponseSchema().loads(resp)
364
+
365
+ def detach_policies_from_user(
366
+ self, req: typing.Optional[dict] = None, **kwargs
367
+ ) -> dict:
368
+ """DetachPoliciesFromUser - 移除用户关联的IAM策略
369
+
370
+ **Request**
371
+
372
+ - **PolicyURNs** (list) - (Required) 策略URN
373
+ - **Scope** (str) - (Required) 应用范围
374
+ - **UserName** (str) - (Required) 用户名
375
+ - **ProjectID** (str) - 项目ID(当Scope=Specified时ProjectID必传)
376
+
377
+ **Response**
378
+
379
+ - **Message** (str) - 错误消息
380
+
381
+ """
382
+ # build request
383
+ d = {}
384
+ req and d.update(req)
385
+ d = apis.DetachPoliciesFromUserRequestSchema().dumps(d)
386
+
387
+ resp = self.invoke("DetachPoliciesFromUser", d, **kwargs)
388
+ return apis.DetachPoliciesFromUserResponseSchema().loads(resp)
389
+
390
+ def get_group(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
391
+ """GetGroup - 查询用户组详情
392
+
393
+ **Request**
394
+
395
+ - **GroupName** (str) - (Required) 用户组名称
396
+
397
+ **Response**
398
+
399
+ - **Group** (dict) - 见 **Group** 模型定义
400
+ - **Message** (str) - 错误消息
401
+
402
+ **Response Model**
403
+
404
+ **Group**
405
+ - **CreatedAt** (int) - 用户组创建时间戳
406
+ - **Description** (str) - 用户组描述信息
407
+ - **GroupName** (str) - 用户组名称
408
+
409
+
410
+ """
411
+ # build request
412
+ d = {}
413
+ req and d.update(req)
414
+ d = apis.GetGroupRequestSchema().dumps(d)
415
+
416
+ resp = self.invoke("GetGroup", d, **kwargs)
417
+ return apis.GetGroupResponseSchema().loads(resp)
418
+
419
+ def get_iam_policy(
420
+ self, req: typing.Optional[dict] = None, **kwargs
421
+ ) -> dict:
422
+ """GetIAMPolicy - 获取策略详情
423
+
424
+ **Request**
425
+
426
+ - **PolicyURN** (str) - (Required) 策略URN
427
+
428
+ **Response**
429
+
430
+ - **Message** (str) - 错误消息
431
+ - **Policy** (dict) - 见 **IAMPolicy** 模型定义
432
+
433
+ **Response Model**
434
+
435
+ **IAMPolicy**
436
+ - **CreatedAt** (int) - IAM权限策略创建时间
437
+ - **Description** (str) - IAM权限策略描述
438
+ - **Document** (str) - IAM权限策略文本
439
+ - **PolicyName** (str) - 策略名称
440
+ - **PolicyURN** (str) - IAM权限策略URN
441
+ - **ScopeType** (str) - IAM权限策略应用范围(ScopeRequired:项目级, ScopeEmpty:全局级, ScopeUnrestricted:项目级/全局级)
442
+ - **UpdatedAt** (int) - IAM权限策略更新时间
443
+
444
+
445
+ """
446
+ # build request
447
+ d = {}
448
+ req and d.update(req)
449
+ d = apis.GetIAMPolicyRequestSchema().dumps(d)
450
+
451
+ resp = self.invoke("GetIAMPolicy", d, **kwargs)
452
+ return apis.GetIAMPolicyResponseSchema().loads(resp)
453
+
454
+ def get_login_profile(
455
+ self, req: typing.Optional[dict] = None, **kwargs
456
+ ) -> dict:
457
+ """GetLoginProfile - 获取用户登录资料
458
+
459
+ **Request**
460
+
461
+ - **UserName** (str) - (Required) 用户名
462
+
463
+ **Response**
464
+
465
+ - **LoginProfile** (dict) - 见 **LoginProfile** 模型定义
466
+
467
+ **Response Model**
468
+
469
+ **LoginProfile**
470
+ - **MFABindRequired** (bool) - 是否必需绑定MFA
471
+ - **MaxPasswordAge** (int) - 密码最长有效期,单位:天
472
+ - **Status** (str) - 登录资料状态
473
+
474
+
475
+ """
476
+ # build request
477
+ d = {}
478
+ req and d.update(req)
479
+ d = apis.GetLoginProfileRequestSchema().dumps(d)
480
+
481
+ resp = self.invoke("GetLoginProfile", d, **kwargs)
482
+ return apis.GetLoginProfileResponseSchema().loads(resp)
483
+
484
+ def get_user(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
485
+ """GetUser - 获取用户信息
486
+
487
+ **Request**
488
+
489
+ - **UserName** (str) - (Required) 用户名
490
+
491
+ **Response**
492
+
493
+ - **Message** (str) - 错误消息
494
+ - **User** (dict) - 见 **User** 模型定义
495
+
496
+ **Response Model**
497
+
498
+ **User**
499
+ - **CreatedAt** (int) - 创建时间戳
500
+ - **DisplayName** (str) - 昵称
501
+ - **Email** (str) - 邮箱
502
+ - **Status** (str) - 状态(Active:正常,Inactive:未激活,Frozen:冻结,ConsoleInactive:控制台未激活)
503
+ - **UserName** (str) - 用户名
504
+
505
+
506
+ """
507
+ # build request
508
+ d = {}
509
+ req and d.update(req)
510
+ d = apis.GetUserRequestSchema().dumps(d)
511
+
512
+ resp = self.invoke("GetUser", d, **kwargs)
513
+ return apis.GetUserResponseSchema().loads(resp)
514
+
515
+ def list_access_keys(
516
+ self, req: typing.Optional[dict] = None, **kwargs
517
+ ) -> dict:
518
+ """ListAccessKeys - 获取指定用户密钥列表
519
+
520
+ **Request**
521
+
522
+ - **UserName** (str) - (Required) 用户名
523
+
524
+ **Response**
525
+
526
+ - **AccessKey** (list) - 见 **AccessKey** 模型定义
527
+
528
+ **Response Model**
529
+
530
+ **AccessKey**
531
+ - **AccessKeyID** (str) - 用户公钥
532
+ - **AccessKeySecret** (str) - 用户私钥
533
+ - **CreatedAt** (int) - 密钥创建时间
534
+ - **DeletedAt** (int) - 密钥删除时间
535
+ - **Description** (str) - 密钥备注
536
+ - **ExpiredAt** (int) - 密钥过期时间
537
+ - **Status** (str) - 密钥状态
538
+ - **UpdatedAt** (int) - 密钥更新时间
539
+ - **UserId** (int) - 用户ID
540
+
541
+
542
+ """
543
+ # build request
544
+ d = {}
545
+ req and d.update(req)
546
+ d = apis.ListAccessKeysRequestSchema().dumps(d)
547
+
548
+ resp = self.invoke("ListAccessKeys", d, **kwargs)
549
+ return apis.ListAccessKeysResponseSchema().loads(resp)
550
+
551
+ def list_entities_for_policy(
552
+ self, req: typing.Optional[dict] = None, **kwargs
553
+ ) -> dict:
554
+ """ListEntitiesForPolicy - 列出引用权限策略的实体
555
+
556
+ **Request**
557
+
558
+ - **PolicyURN** (str) - (Required) 策略URN
559
+ - **Limit** (str) - 需要查询的用户组数量
560
+ - **Offset** (str) - 从第几条数据开始查询
561
+
562
+ **Response**
563
+
564
+ - **Entities** (list) - 见 **Entity** 模型定义
565
+ - **Message** (str) - 错误消息
566
+ - **TotalCount** (int) - 数据集合数量
567
+
568
+ **Response Model**
569
+
570
+ **Entity**
571
+ - **AttachedAt** (int) - 引用时间
572
+ - **DisplayName** (str) - 子账户展示名称
573
+ - **EntityKind** (str) - 实体类型(User:用户,Group)
574
+ - **EntityName** (str) - 实体名称
575
+ - **Scope** (str) - 生效空间
576
+
577
+
578
+ """
579
+ # build request
580
+ d = {}
581
+ req and d.update(req)
582
+ d = apis.ListEntitiesForPolicyRequestSchema().dumps(d)
583
+
584
+ resp = self.invoke("ListEntitiesForPolicy", d, **kwargs)
585
+ return apis.ListEntitiesForPolicyResponseSchema().loads(resp)
586
+
587
+ def list_entities_for_project(
588
+ self, req: typing.Optional[dict] = None, **kwargs
589
+ ) -> dict:
590
+ """ListEntitiesForProject - 列出拥有指定项目权限的实体
591
+
592
+ **Request**
593
+
594
+ - **ProjectID** (str) - (Required) 项目ID
595
+ - **Limit** (str) - 需要查询的用户组数量
596
+ - **Offset** (str) - 从第几条数据开始查询
597
+
598
+ **Response**
599
+
600
+ - **Entities** (list) - 见 **Entity** 模型定义
601
+ - **Message** (str) - 错误消息
602
+ - **TotalCount** (int) - 数据集合数量
603
+
604
+ **Response Model**
605
+
606
+ **Entity**
607
+ - **AttachedAt** (int) - 引用时间
608
+ - **EntityKind** (str) - 实体类型(User:用户,Group)
609
+ - **EntityName** (str) - 实体名称
610
+
611
+
612
+ """
613
+ # build request
614
+ d = {}
615
+ req and d.update(req)
616
+ d = apis.ListEntitiesForProjectRequestSchema().dumps(d)
617
+
618
+ resp = self.invoke("ListEntitiesForProject", d, **kwargs)
619
+ return apis.ListEntitiesForProjectResponseSchema().loads(resp)
620
+
621
+ def list_groups(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
622
+ """ListGroups - 列出用户组
623
+
624
+ **Request**
625
+
626
+
627
+ **Response**
628
+
629
+ - **Groups** (list) - 见 **Group** 模型定义
630
+ - **Message** (str) - 错误消息
631
+ - **TotalCount** (int) - 总数
632
+
633
+ **Response Model**
634
+
635
+ **Group**
636
+ - **CreatedAt** (int) - 用户组创建时间戳
637
+ - **Description** (str) - 用户组描述信息
638
+ - **GroupName** (str) - 用户组名称
639
+
640
+
641
+ """
642
+ # build request
643
+ d = {}
644
+ req and d.update(req)
645
+ d = apis.ListGroupsRequestSchema().dumps(d)
646
+
647
+ resp = self.invoke("ListGroups", d, **kwargs)
648
+ return apis.ListGroupsResponseSchema().loads(resp)
649
+
650
+ def list_policies(
651
+ self, req: typing.Optional[dict] = None, **kwargs
652
+ ) -> dict:
653
+ """ListPolicies - 获取IAM策略列表
654
+
655
+ **Request**
656
+
657
+ - **Owner** (str) - (Required) 策略所有者
658
+ - **Limit** (str) - 需要查询的用户组数量
659
+ - **Offset** (str) - 从第几条数据开始查询
660
+
661
+ **Response**
662
+
663
+ - **Message** (str) - 错误消息
664
+ - **Policies** (list) - 见 **IAMPolicy** 模型定义
665
+ - **TotalCount** (int) - 数据集合数量
666
+
667
+ **Response Model**
668
+
669
+ **IAMPolicy**
670
+ - **CreatedAt** (int) - IAM权限策略创建时间
671
+ - **Description** (str) - IAM权限策略描述
672
+ - **Document** (str) - IAM权限策略文本
673
+ - **PolicyName** (str) - 策略名称
674
+ - **PolicyURN** (str) - IAM权限策略URN
675
+ - **ScopeType** (str) - IAM权限策略应用范围(ScopeRequired:项目级, ScopeEmpty:全局级, ScopeUnrestricted:项目级/全局级)
676
+ - **UpdatedAt** (int) - IAM权限策略更新时间
677
+
678
+
679
+ """
680
+ # build request
681
+ d = {}
682
+ req and d.update(req)
683
+ d = apis.ListPoliciesRequestSchema().dumps(d)
684
+
685
+ resp = self.invoke("ListPolicies", d, **kwargs)
686
+ return apis.ListPoliciesResponseSchema().loads(resp)
687
+
688
+ def list_policies_for_group(
689
+ self, req: typing.Optional[dict] = None, **kwargs
690
+ ) -> dict:
691
+ """ListPoliciesForGroup - 列出用户组关联的权限策略
692
+
693
+ **Request**
694
+
695
+ - **GroupName** (str) - (Required) 用户组名称
696
+ - **Limit** (str) - 需要查询的用户组数量
697
+ - **Offset** (str) - 从第几条数据开始查询
698
+ - **ProjectID** (str) - 项目ID
699
+ - **Scope** (str) - 应用范围
700
+
701
+ **Response**
702
+
703
+ - **Message** (str) - 错误消息
704
+ - **Policies** (list) - 见 **Policy** 模型定义
705
+ - **TotalCount** (int) - 总数
706
+
707
+ **Response Model**
708
+
709
+ **Policy**
710
+ - **AttachedAt** (int) - 策略被添加到用户组时的时间戳
711
+ - **CreatedAt** (int) - 创建时间
712
+ - **Description** (str) - 描述
713
+ - **PolicyName** (str) - 权限策略名称
714
+ - **PolicyURN** (str) - 策略URN
715
+ - **ProjectID** (str) - 项目ID
716
+ - **Scope** (str) - 应用范围(ScopeRequired:项目级, ScopeEmpty:全局级, ScopeUnrestricted:项目级/全局级)
717
+
718
+
719
+ """
720
+ # build request
721
+ d = {}
722
+ req and d.update(req)
723
+ d = apis.ListPoliciesForGroupRequestSchema().dumps(d)
724
+
725
+ resp = self.invoke("ListPoliciesForGroup", d, **kwargs)
726
+ return apis.ListPoliciesForGroupResponseSchema().loads(resp)
727
+
728
+ def list_policies_for_user(
729
+ self, req: typing.Optional[dict] = None, **kwargs
730
+ ) -> dict:
731
+ """ListPoliciesForUser - 列出用户关联的IAM策略
732
+
733
+ **Request**
734
+
735
+ - **UserName** (str) - (Required) 用户名
736
+ - **Limit** (str) - 需要查询的用户组数量
737
+ - **Offset** (str) - 从第几条数据开始查询
738
+ - **ProjectID** (str) - 项目ID
739
+ - **Scope** (str) - 应用范围
740
+
741
+ **Response**
742
+
743
+ - **Message** (str) - 错误消息
744
+ - **Policies** (list) - 见 **Policy** 模型定义
745
+ - **TotalCount** (int) - 数据集合数量
746
+
747
+ **Response Model**
748
+
749
+ **Policy**
750
+ - **AttachedAt** (int) - 策略被添加到用户组时的时间戳
751
+ - **CreatedAt** (int) - 创建时间
752
+ - **Description** (str) - 描述
753
+ - **PolicyName** (str) - 权限策略名称
754
+ - **PolicyURN** (str) - 策略URN
755
+ - **ProjectID** (str) - 项目ID
756
+ - **Scope** (str) - 应用范围(ScopeRequired:项目级, ScopeEmpty:全局级, ScopeUnrestricted:项目级/全局级)
757
+
758
+
759
+ """
760
+ # build request
761
+ d = {}
762
+ req and d.update(req)
763
+ d = apis.ListPoliciesForUserRequestSchema().dumps(d)
764
+
765
+ resp = self.invoke("ListPoliciesForUser", d, **kwargs)
766
+ return apis.ListPoliciesForUserResponseSchema().loads(resp)
767
+
768
+ def list_projects(
769
+ self, req: typing.Optional[dict] = None, **kwargs
770
+ ) -> dict:
771
+ """ListProjects - 列出所有项目
772
+
773
+ **Request**
774
+
775
+ - **Limit** (str) -
776
+ - **Offset** (str) -
777
+
778
+ **Response**
779
+
780
+ - **Message** (str) - 错误消息
781
+ - **Projects** (list) - 见 **Project** 模型定义
782
+ - **TotalCount** (int) - 总数
783
+
784
+ **Response Model**
785
+
786
+ **Project**
787
+ - **CreatedAt** (int) - 创建时间
788
+ - **ProjectID** (str) - 项目ID
789
+ - **ProjectName** (str) - 项目名称
790
+ - **UserCount** (int) - 用户数量
791
+
792
+
793
+ """
794
+ # build request
795
+ d = {}
796
+ req and d.update(req)
797
+ d = apis.ListProjectsRequestSchema().dumps(d)
798
+
799
+ resp = self.invoke("ListProjects", d, **kwargs)
800
+ return apis.ListProjectsResponseSchema().loads(resp)
801
+
802
+ def list_users(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
803
+ """ListUsers - 列出用户列表
804
+
805
+ **Request**
806
+
807
+ - **Limit** (str) - 分页Limit(默认:10,最大100)
808
+ - **Offset** (str) - 分页offset
809
+
810
+ **Response**
811
+
812
+ - **Message** (str) - 错误消息
813
+ - **TotalCount** (int) - 用户数量
814
+ - **Users** (list) - 见 **Users** 模型定义
815
+
816
+ **Response Model**
817
+
818
+ **Users**
819
+ - **CreatedAt** (int) - 创建时间戳
820
+ - **DisplayName** (str) - 昵称
821
+ - **Email** (str) - 邮箱
822
+ - **Status** (str) - 状态(Active:正常,Inactive:未激活,Frozen:冻结,ConsoleInactive:控制台未激活)
823
+ - **UserName** (str) - 用户名
824
+
825
+
826
+ """
827
+ # build request
828
+ d = {}
829
+ req and d.update(req)
830
+ d = apis.ListUsersRequestSchema().dumps(d)
831
+
832
+ resp = self.invoke("ListUsers", d, **kwargs)
833
+ return apis.ListUsersResponseSchema().loads(resp)
834
+
835
+ def list_users_for_group(
836
+ self, req: typing.Optional[dict] = None, **kwargs
837
+ ) -> dict:
838
+ """ListUsersForGroup - 列出用户组包含的用户
839
+
840
+ **Request**
841
+
842
+ - **GroupName** (str) - (Required) 用户组名称
843
+ - **Limit** (str) - 需要查询的组内用户数量
844
+ - **Offset** (str) - 从第几条数据开始查询
845
+
846
+ **Response**
847
+
848
+ - **Message** (str) - 错误消息
849
+ - **TotalCount** (int) - 总数
850
+ - **Users** (list) - 见 **UserForGroup** 模型定义
851
+
852
+ **Response Model**
853
+
854
+ **UserForGroup**
855
+ - **DisplayName** (str) - 昵称
856
+ - **Email** (str) - 邮箱
857
+ - **JoinedAt** (int) - 用户被添加到用户组时的时间戳
858
+ - **UserName** (str) - 用户名
859
+
860
+
861
+ """
862
+ # build request
863
+ d = {}
864
+ req and d.update(req)
865
+ d = apis.ListUsersForGroupRequestSchema().dumps(d)
866
+
867
+ resp = self.invoke("ListUsersForGroup", d, **kwargs)
868
+ return apis.ListUsersForGroupResponseSchema().loads(resp)
869
+
870
+ def modify_project(
871
+ self, req: typing.Optional[dict] = None, **kwargs
872
+ ) -> dict:
873
+ """ModifyProject - 修改项目
874
+
875
+ **Request**
876
+
877
+ - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
878
+ - **ProjectName** (str) - (Required) 新的项目名称
879
+
880
+ **Response**
881
+
882
+
883
+ """
884
+ # build request
885
+ d = {
886
+ "ProjectId": self.config.project_id,
887
+ }
888
+ req and d.update(req)
889
+ d = apis.ModifyProjectRequestSchema().dumps(d)
890
+
891
+ resp = self.invoke("ModifyProject", d, **kwargs)
892
+ return apis.ModifyProjectResponseSchema().loads(resp)
893
+
894
+ def remove_user_from_group(
895
+ self, req: typing.Optional[dict] = None, **kwargs
896
+ ) -> dict:
897
+ """RemoveUserFromGroup - 移除用户组中的IAM用户
898
+
899
+ **Request**
900
+
901
+ - **GroupName** (str) - (Required) 用户组名称
902
+ - **UserName** (str) - (Required) 用户名
903
+
904
+ **Response**
905
+
906
+ - **Message** (str) - 错误消息
907
+
908
+ """
909
+ # build request
910
+ d = {}
911
+ req and d.update(req)
912
+ d = apis.RemoveUserFromGroupRequestSchema().dumps(d)
913
+
914
+ resp = self.invoke("RemoveUserFromGroup", d, **kwargs)
915
+ return apis.RemoveUserFromGroupResponseSchema().loads(resp)
916
+
917
+ def remove_user_from_project(
918
+ self, req: typing.Optional[dict] = None, **kwargs
919
+ ) -> dict:
920
+ """RemoveUserFromProject - 移除项目中的IAM用户,同时移除此用户在此项目下的所有权限
921
+
922
+ **Request**
923
+
924
+ - **ProjectID** (str) - (Required) 项目ID
925
+ - **UserName** (str) - (Required) 用户名
926
+
927
+ **Response**
928
+
929
+ - **Message** (str) - 错误消息
930
+
931
+ """
932
+ # build request
933
+ d = {}
934
+ req and d.update(req)
935
+ d = apis.RemoveUserFromProjectRequestSchema().dumps(d)
936
+
937
+ resp = self.invoke("RemoveUserFromProject", d, **kwargs)
938
+ return apis.RemoveUserFromProjectResponseSchema().loads(resp)
939
+
940
+ def update_access_key(
941
+ self, req: typing.Optional[dict] = None, **kwargs
942
+ ) -> dict:
943
+ """UpdateAccessKey - 修改用户密钥状态
944
+
945
+ **Request**
946
+
947
+ - **AccessKeyID** (str) - (Required) 用户公钥
948
+ - **Description** (str) - 密钥描述
949
+ - **Status** (str) - 密钥状态
950
+
951
+ **Response**
952
+
953
+
954
+ """
955
+ # build request
956
+ d = {}
957
+ req and d.update(req)
958
+ d = apis.UpdateAccessKeyRequestSchema().dumps(d)
959
+
960
+ resp = self.invoke("UpdateAccessKey", d, **kwargs)
961
+ return apis.UpdateAccessKeyResponseSchema().loads(resp)
962
+
963
+ def update_group(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
964
+ """UpdateGroup - 更新用户组信息
965
+
966
+ **Request**
967
+
968
+ - **Description** (str) - (Required) 用户组描述信息
969
+ - **GroupName** (str) - (Required) 用户组名称
970
+
971
+ **Response**
972
+
973
+ - **Message** (str) - 错误消息
974
+
975
+ """
976
+ # build request
977
+ d = {}
978
+ req and d.update(req)
979
+ d = apis.UpdateGroupRequestSchema().dumps(d)
980
+
981
+ resp = self.invoke("UpdateGroup", d, **kwargs)
982
+ return apis.UpdateGroupResponseSchema().loads(resp)
983
+
984
+ def update_iam_policy(
985
+ self, req: typing.Optional[dict] = None, **kwargs
986
+ ) -> dict:
987
+ """UpdateIAMPolicy - 更新IAM策略
988
+
989
+ **Request**
990
+
991
+ - **Document** (str) - (Required) 策略内容
992
+ - **PolicyURN** (str) - (Required) 策略URN
993
+ - **Description** (str) - 描述
994
+ - **VersionDescription** (str) - 策略版本描述
995
+
996
+ **Response**
997
+
998
+ - **Message** (str) - 错误消息
999
+
1000
+ """
1001
+ # build request
1002
+ d = {}
1003
+ req and d.update(req)
1004
+ d = apis.UpdateIAMPolicyRequestSchema().dumps(d)
1005
+
1006
+ resp = self.invoke("UpdateIAMPolicy", d, **kwargs)
1007
+ return apis.UpdateIAMPolicyResponseSchema().loads(resp)
1008
+
1009
+ def update_iam_policy_name(
1010
+ self, req: typing.Optional[dict] = None, **kwargs
1011
+ ) -> dict:
1012
+ """UpdateIAMPolicyName - 修改自定义策略名称
1013
+
1014
+ **Request**
1015
+
1016
+ - **Description** (str) - (Required) 策略描述
1017
+ - **PolicyName** (str) - (Required) 策略名称
1018
+ - **PolicyURN** (str) - (Required) 策略URN
1019
+
1020
+ **Response**
1021
+
1022
+
1023
+ """
1024
+ # build request
1025
+ d = {}
1026
+ req and d.update(req)
1027
+ d = apis.UpdateIAMPolicyNameRequestSchema().dumps(d)
1028
+
1029
+ resp = self.invoke("UpdateIAMPolicyName", d, **kwargs)
1030
+ return apis.UpdateIAMPolicyNameResponseSchema().loads(resp)
1031
+
1032
+ def update_login_profile(
1033
+ self, req: typing.Optional[dict] = None, **kwargs
1034
+ ) -> dict:
1035
+ """UpdateLoginProfile - 更新用户登录资料
1036
+
1037
+ **Request**
1038
+
1039
+ - **UserName** (str) - (Required) 用户名
1040
+ - **MFABindRequired** (bool) - 是否必需绑定MFA
1041
+ - **MaxPasswordAge** (int) - 密码最长有效期,单位:天
1042
+ - **Status** (str) - 登录资料状态
1043
+ - **UserEmail** (str) - 用户真实邮箱
1044
+
1045
+ **Response**
1046
+
1047
+
1048
+ """
1049
+ # build request
1050
+ d = {}
1051
+ req and d.update(req)
1052
+ d = apis.UpdateLoginProfileRequestSchema().dumps(d)
1053
+
1054
+ resp = self.invoke("UpdateLoginProfile", d, **kwargs)
1055
+ return apis.UpdateLoginProfileResponseSchema().loads(resp)
1056
+
1057
+ def update_user(self, req: typing.Optional[dict] = None, **kwargs) -> dict:
1058
+ """UpdateUser - 更新用户
1059
+
1060
+ **Request**
1061
+
1062
+ - **UserName** (str) - (Required) 用户名
1063
+ - **DisplayName** (str) - 用户名称(用户名称和用户状态不能同时为空)
1064
+ - **NewUserName** (str) - 新用户名
1065
+ - **Status** (str) - 用户状态(用户名称和用户状态不能同时为空,枚举值:Active:解冻,Frozen:冻结)
1066
+
1067
+ **Response**
1068
+
1069
+ - **Message** (str) - 错误消息
1070
+
1071
+ """
1072
+ # build request
1073
+ d = {}
1074
+ req and d.update(req)
1075
+ d = apis.UpdateUserRequestSchema().dumps(d)
1076
+
1077
+ resp = self.invoke("UpdateUser", d, **kwargs)
1078
+ return apis.UpdateUserResponseSchema().loads(resp)