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.
- ucloud/__init__.py +0 -0
- ucloud/client.py +469 -0
- ucloud/core/__init__.py +0 -0
- ucloud/core/auth/__init__.py +3 -0
- ucloud/core/auth/_cfg.py +72 -0
- ucloud/core/client/__init__.py +8 -0
- ucloud/core/client/_cfg.py +96 -0
- ucloud/core/client/_client.py +176 -0
- ucloud/core/exc/__init__.py +9 -0
- ucloud/core/exc/_exc.py +94 -0
- ucloud/core/transport/__init__.py +4 -0
- ucloud/core/transport/_requests.py +135 -0
- ucloud/core/transport/http.py +120 -0
- ucloud/core/transport/utils.py +40 -0
- ucloud/core/typesystem/__init__.py +0 -0
- ucloud/core/typesystem/abstract.py +60 -0
- ucloud/core/typesystem/encoder.py +33 -0
- ucloud/core/typesystem/fields.py +149 -0
- ucloud/core/typesystem/schema.py +97 -0
- ucloud/core/utils/__init__.py +0 -0
- ucloud/core/utils/compat.py +15 -0
- ucloud/core/utils/deco.py +31 -0
- ucloud/core/utils/log.py +29 -0
- ucloud/core/utils/middleware.py +63 -0
- ucloud/helpers/__init__.py +0 -0
- ucloud/helpers/utils.py +90 -0
- ucloud/helpers/wait.py +108 -0
- ucloud/services/__init__.py +0 -0
- ucloud/services/cube/__init__.py +0 -0
- ucloud/services/cube/client.py +618 -0
- ucloud/services/cube/schemas/__init__.py +0 -0
- ucloud/services/cube/schemas/apis.py +548 -0
- ucloud/services/cube/schemas/models.py +58 -0
- ucloud/services/iam/__init__.py +0 -0
- ucloud/services/iam/client.py +1078 -0
- ucloud/services/iam/schemas/__init__.py +0 -0
- ucloud/services/iam/schemas/apis.py +973 -0
- ucloud/services/iam/schemas/models.py +127 -0
- ucloud/services/ipsecvpn/__init__.py +0 -0
- ucloud/services/ipsecvpn/client.py +522 -0
- ucloud/services/ipsecvpn/schemas/__init__.py +0 -0
- ucloud/services/ipsecvpn/schemas/apis.py +455 -0
- ucloud/services/ipsecvpn/schemas/models.py +134 -0
- ucloud/services/ipv6gw/__init__.py +0 -0
- ucloud/services/ipv6gw/client.py +44 -0
- ucloud/services/ipv6gw/schemas/__init__.py +0 -0
- ucloud/services/ipv6gw/schemas/apis.py +34 -0
- ucloud/services/ipv6gw/schemas/models.py +3 -0
- ucloud/services/isms/__init__.py +0 -0
- ucloud/services/isms/client.py +330 -0
- ucloud/services/isms/schemas/__init__.py +0 -0
- ucloud/services/isms/schemas/apis.py +272 -0
- ucloud/services/isms/schemas/models.py +50 -0
- ucloud/services/pathx/__init__.py +0 -0
- ucloud/services/pathx/client.py +1656 -0
- ucloud/services/pathx/schemas/__init__.py +0 -0
- ucloud/services/pathx/schemas/apis.py +1289 -0
- ucloud/services/pathx/schemas/models.py +420 -0
- ucloud/services/stepflow/__init__.py +0 -0
- ucloud/services/stepflow/client.py +98 -0
- ucloud/services/stepflow/schemas/__init__.py +0 -0
- ucloud/services/stepflow/schemas/apis.py +67 -0
- ucloud/services/stepflow/schemas/models.py +37 -0
- ucloud/services/sts/__init__.py +0 -0
- ucloud/services/sts/client.py +46 -0
- ucloud/services/sts/schemas/__init__.py +0 -0
- ucloud/services/sts/schemas/apis.py +35 -0
- ucloud/services/sts/schemas/models.py +16 -0
- ucloud/services/tidb/__init__.py +0 -0
- ucloud/services/tidb/client.py +120 -0
- ucloud/services/tidb/schemas/__init__.py +0 -0
- ucloud/services/tidb/schemas/apis.py +103 -0
- ucloud/services/tidb/schemas/models.py +11 -0
- ucloud/services/uaaa/__init__.py +0 -0
- ucloud/services/uaaa/client.py +311 -0
- ucloud/services/uaaa/schemas/__init__.py +0 -0
- ucloud/services/uaaa/schemas/apis.py +252 -0
- ucloud/services/uaaa/schemas/models.py +47 -0
- ucloud/services/uaccount/__init__.py +0 -0
- ucloud/services/uaccount/client.py +547 -0
- ucloud/services/uaccount/schemas/__init__.py +0 -0
- ucloud/services/uaccount/schemas/apis.py +442 -0
- ucloud/services/uaccount/schemas/models.py +128 -0
- ucloud/services/uads/__init__.py +0 -0
- ucloud/services/uads/client.py +1148 -0
- ucloud/services/uads/schemas/__init__.py +0 -0
- ucloud/services/uads/schemas/apis.py +983 -0
- ucloud/services/uads/schemas/models.py +199 -0
- ucloud/services/ubill/__init__.py +0 -0
- ucloud/services/ubill/client.py +248 -0
- ucloud/services/ubill/schemas/__init__.py +0 -0
- ucloud/services/ubill/schemas/apis.py +183 -0
- ucloud/services/ubill/schemas/models.py +107 -0
- ucloud/services/ucdn/__init__.py +0 -0
- ucloud/services/ucdn/client.py +1964 -0
- ucloud/services/ucdn/schemas/__init__.py +0 -0
- ucloud/services/ucdn/schemas/apis.py +1395 -0
- ucloud/services/ucdn/schemas/models.py +576 -0
- ucloud/services/ucloudstack/__init__.py +0 -0
- ucloud/services/ucloudstack/client.py +3352 -0
- ucloud/services/ucloudstack/schemas/__init__.py +0 -0
- ucloud/services/ucloudstack/schemas/apis.py +2887 -0
- ucloud/services/ucloudstack/schemas/models.py +560 -0
- ucloud/services/ucompshare/__init__.py +0 -0
- ucloud/services/ucompshare/client.py +820 -0
- ucloud/services/ucompshare/schemas/__init__.py +0 -0
- ucloud/services/ucompshare/schemas/apis.py +623 -0
- ucloud/services/ucompshare/schemas/models.py +241 -0
- ucloud/services/udb/__init__.py +0 -0
- ucloud/services/udb/client.py +2463 -0
- ucloud/services/udb/schemas/__init__.py +0 -0
- ucloud/services/udb/schemas/apis.py +2053 -0
- ucloud/services/udb/schemas/models.py +319 -0
- ucloud/services/udbproxy/__init__.py +0 -0
- ucloud/services/udbproxy/client.py +67 -0
- ucloud/services/udbproxy/schemas/__init__.py +0 -0
- ucloud/services/udbproxy/schemas/apis.py +38 -0
- ucloud/services/udbproxy/schemas/models.py +31 -0
- ucloud/services/uddb/__init__.py +0 -0
- ucloud/services/uddb/client.py +456 -0
- ucloud/services/uddb/schemas/__init__.py +0 -0
- ucloud/services/uddb/schemas/apis.py +520 -0
- ucloud/services/uddb/schemas/models.py +96 -0
- ucloud/services/udi/__init__.py +0 -0
- ucloud/services/udi/client.py +250 -0
- ucloud/services/udi/schemas/__init__.py +0 -0
- ucloud/services/udi/schemas/apis.py +205 -0
- ucloud/services/udi/schemas/models.py +58 -0
- ucloud/services/udisk/__init__.py +0 -0
- ucloud/services/udisk/client.py +832 -0
- ucloud/services/udisk/schemas/__init__.py +0 -0
- ucloud/services/udisk/schemas/apis.py +741 -0
- ucloud/services/udisk/schemas/models.py +100 -0
- ucloud/services/udns/__init__.py +0 -0
- ucloud/services/udns/client.py +380 -0
- ucloud/services/udns/schemas/__init__.py +0 -0
- ucloud/services/udns/schemas/apis.py +293 -0
- ucloud/services/udns/schemas/models.py +58 -0
- ucloud/services/udpn/__init__.py +0 -0
- ucloud/services/udpn/client.py +240 -0
- ucloud/services/udpn/schemas/__init__.py +0 -0
- ucloud/services/udpn/schemas/apis.py +203 -0
- ucloud/services/udpn/schemas/models.py +29 -0
- ucloud/services/udts/__init__.py +0 -0
- ucloud/services/udts/client.py +410 -0
- ucloud/services/udts/schemas/__init__.py +0 -0
- ucloud/services/udts/schemas/apis.py +403 -0
- ucloud/services/udts/schemas/models.py +93 -0
- ucloud/services/uec/__init__.py +0 -0
- ucloud/services/uec/client.py +1510 -0
- ucloud/services/uec/schemas/__init__.py +0 -0
- ucloud/services/uec/schemas/apis.py +1195 -0
- ucloud/services/uec/schemas/models.py +316 -0
- ucloud/services/ufile/__init__.py +0 -0
- ucloud/services/ufile/client.py +698 -0
- ucloud/services/ufile/schemas/__init__.py +0 -0
- ucloud/services/ufile/schemas/apis.py +542 -0
- ucloud/services/ufile/schemas/models.py +139 -0
- ucloud/services/ufs/__init__.py +0 -0
- ucloud/services/ufs/client.py +328 -0
- ucloud/services/ufs/schemas/__init__.py +0 -0
- ucloud/services/ufs/schemas/apis.py +265 -0
- ucloud/services/ufs/schemas/models.py +52 -0
- ucloud/services/ugn/__init__.py +0 -0
- ucloud/services/ugn/client.py +857 -0
- ucloud/services/ugn/schemas/__init__.py +0 -0
- ucloud/services/ugn/schemas/apis.py +678 -0
- ucloud/services/ugn/schemas/models.py +191 -0
- ucloud/services/uhost/__init__.py +0 -0
- ucloud/services/uhost/client.py +1647 -0
- ucloud/services/uhost/schemas/__init__.py +0 -0
- ucloud/services/uhost/schemas/apis.py +1483 -0
- ucloud/services/uhost/schemas/models.py +427 -0
- ucloud/services/uhub/__init__.py +0 -0
- ucloud/services/uhub/client.py +229 -0
- ucloud/services/uhub/schemas/__init__.py +0 -0
- ucloud/services/uhub/schemas/apis.py +194 -0
- ucloud/services/uhub/schemas/models.py +39 -0
- ucloud/services/uk8s/__init__.py +0 -0
- ucloud/services/uk8s/client.py +729 -0
- ucloud/services/uk8s/schemas/__init__.py +0 -0
- ucloud/services/uk8s/schemas/apis.py +639 -0
- ucloud/services/uk8s/schemas/models.py +179 -0
- ucloud/services/ulb/__init__.py +0 -0
- ucloud/services/ulb/client.py +2285 -0
- ucloud/services/ulb/schemas/__init__.py +0 -0
- ucloud/services/ulb/schemas/apis.py +1678 -0
- ucloud/services/ulb/schemas/models.py +591 -0
- ucloud/services/ulighthost/__init__.py +0 -0
- ucloud/services/ulighthost/client.py +576 -0
- ucloud/services/ulighthost/schemas/__init__.py +0 -0
- ucloud/services/ulighthost/schemas/apis.py +445 -0
- ucloud/services/ulighthost/schemas/models.py +133 -0
- ucloud/services/umem/__init__.py +0 -0
- ucloud/services/umem/client.py +1829 -0
- ucloud/services/umem/schemas/__init__.py +0 -0
- ucloud/services/umem/schemas/apis.py +1477 -0
- ucloud/services/umem/schemas/models.py +327 -0
- ucloud/services/umongodb/__init__.py +0 -0
- ucloud/services/umongodb/client.py +752 -0
- ucloud/services/umongodb/schemas/__init__.py +0 -0
- ucloud/services/umongodb/schemas/apis.py +567 -0
- ucloud/services/umongodb/schemas/models.py +220 -0
- ucloud/services/unet/__init__.py +0 -0
- ucloud/services/unet/client.py +1278 -0
- ucloud/services/unet/schemas/__init__.py +0 -0
- ucloud/services/unet/schemas/apis.py +1006 -0
- ucloud/services/unet/schemas/models.py +275 -0
- ucloud/services/unvs/__init__.py +0 -0
- ucloud/services/unvs/client.py +87 -0
- ucloud/services/unvs/schemas/__init__.py +0 -0
- ucloud/services/unvs/schemas/apis.py +66 -0
- ucloud/services/unvs/schemas/models.py +19 -0
- ucloud/services/upfs/__init__.py +0 -0
- ucloud/services/upfs/client.py +252 -0
- ucloud/services/upfs/schemas/__init__.py +0 -0
- ucloud/services/upfs/schemas/apis.py +204 -0
- ucloud/services/upfs/schemas/models.py +36 -0
- ucloud/services/upgsql/__init__.py +0 -0
- ucloud/services/upgsql/client.py +1007 -0
- ucloud/services/upgsql/schemas/__init__.py +0 -0
- ucloud/services/upgsql/schemas/apis.py +827 -0
- ucloud/services/upgsql/schemas/models.py +158 -0
- ucloud/services/uphone/__init__.py +0 -0
- ucloud/services/uphone/client.py +2122 -0
- ucloud/services/uphone/schemas/__init__.py +0 -0
- ucloud/services/uphone/schemas/apis.py +1799 -0
- ucloud/services/uphone/schemas/models.py +357 -0
- ucloud/services/uphost/__init__.py +0 -0
- ucloud/services/uphost/client.py +847 -0
- ucloud/services/uphost/schemas/__init__.py +0 -0
- ucloud/services/uphost/schemas/apis.py +689 -0
- ucloud/services/uphost/schemas/models.py +175 -0
- ucloud/services/urocketmq/__init__.py +0 -0
- ucloud/services/urocketmq/client.py +117 -0
- ucloud/services/urocketmq/schemas/__init__.py +0 -0
- ucloud/services/urocketmq/schemas/apis.py +92 -0
- ucloud/services/urocketmq/schemas/models.py +14 -0
- ucloud/services/uslk/__init__.py +0 -0
- ucloud/services/uslk/client.py +249 -0
- ucloud/services/uslk/schemas/__init__.py +0 -0
- ucloud/services/uslk/schemas/apis.py +191 -0
- ucloud/services/uslk/schemas/models.py +74 -0
- ucloud/services/usms/__init__.py +0 -0
- ucloud/services/usms/client.py +759 -0
- ucloud/services/usms/schemas/__init__.py +0 -0
- ucloud/services/usms/schemas/apis.py +653 -0
- ucloud/services/usms/schemas/models.py +215 -0
- ucloud/services/utsdb/__init__.py +0 -0
- ucloud/services/utsdb/client.py +604 -0
- ucloud/services/utsdb/schemas/__init__.py +0 -0
- ucloud/services/utsdb/schemas/apis.py +515 -0
- ucloud/services/utsdb/schemas/models.py +61 -0
- ucloud/services/uvms/__init__.py +0 -0
- ucloud/services/uvms/client.py +119 -0
- ucloud/services/uvms/schemas/__init__.py +0 -0
- ucloud/services/uvms/schemas/apis.py +88 -0
- ucloud/services/uvms/schemas/models.py +40 -0
- ucloud/services/vpc/__init__.py +0 -0
- ucloud/services/vpc/client.py +3233 -0
- ucloud/services/vpc/schemas/__init__.py +0 -0
- ucloud/services/vpc/schemas/apis.py +2529 -0
- ucloud/services/vpc/schemas/models.py +651 -0
- ucloud/testing/__init__.py +0 -0
- ucloud/testing/driver/__init__.py +5 -0
- ucloud/testing/driver/_scenario.py +93 -0
- ucloud/testing/driver/_specification.py +57 -0
- ucloud/testing/driver/_step.py +166 -0
- ucloud/testing/env.py +28 -0
- ucloud/testing/exc.py +18 -0
- ucloud/testing/funcs.py +68 -0
- ucloud/testing/mock.py +28 -0
- ucloud/testing/op.py +177 -0
- ucloud/testing/utest.py +195 -0
- ucloud/version.py +1 -0
- ucloud_sdk_python3-0.11.81.dist-info/LICENSE +202 -0
- ucloud_sdk_python3-0.11.81.dist-info/METADATA +71 -0
- ucloud_sdk_python3-0.11.81.dist-info/RECORD +280 -0
- ucloud_sdk_python3-0.11.81.dist-info/WHEEL +5 -0
- 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)
|