Skip to content

Commit cb8a48c

Browse files
authored
auto codegen for ISMS
1 parent 3412903 commit cb8a48c

File tree

5 files changed

+484
-0
lines changed

5 files changed

+484
-0
lines changed

docs/services.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,13 @@ IPSecVPN
101101
:members:
102102

103103

104+
ISMS
105+
----
106+
107+
.. autoclass:: ucloud.services.isms.client.ISMSClient
108+
:members:
109+
110+
104111
UBill
105112
-----
106113

ucloud/client.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ def ipsecvpn(self):
4242
self.logger,
4343
)
4444

45+
def isms(self):
46+
from ucloud.services.isms.client import ISMSClient
47+
48+
return ISMSClient(
49+
self._auto_config("isms"),
50+
self.transport,
51+
self.middleware,
52+
self.logger,
53+
)
54+
4555
def stepflow(self):
4656
from ucloud.services.stepflow.client import StepFlowClient
4757

ucloud/services/isms/client.py

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,133 @@ def __init__(
1313
):
1414
super(ISMSClient, self).__init__(config, transport, middleware, logger)
1515

16+
def create_isms_signature(
17+
self, req: typing.Optional[dict] = None, **kwargs
18+
) -> dict:
19+
"""CreateISMSSignature - 调用接口CreateISMSSignature申请视频短信签名
20+
21+
**Request**
22+
23+
- **ProjectId** (str) - (Config) 项目ID,不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
24+
- **CertificateType** (int) - (Required) 签名的资质证明文件类型,需与签名类型保持一致,说明如下:0-三证合一/企业营业执照/组织机构代码证书/社会信用代码证书;1-应用商店后台开发者管理截图;2-备案服务商的备案成功截图(含域名,网站名称,备案号);3-公众号或小程序的管理界面截图;4-商标注册证书;5-组织机构代码证书、社会信用代码证书;
25+
- **Description** (str) - (Required) 短信签名申请原因
26+
- **File** (str) - (Required) 短信签名的资质证明文件,需先进行base64编码格式转换,此处填写转换后的字符串。文件大小不超过4 MB
27+
- **SigContent** (str) - (Required) 短信签名内容;长度为2-12个字符, 可包含中文、数字和符号;无需填写【】或[],系统会自动添加
28+
- **SigPurpose** (int) - (Required) 签名用途,0-自用,1-他用;
29+
- **SigType** (int) - (Required) 签名类型,说明如下:0-公司或企业的全称或简称;1-App应用的全称或简称;2-工信部备案网站的全称或简称;3-公众号或小程序的全称或简称;4-商标名的全称或简称;5-政府/机关事业单位/其他单位的全称或简称;
30+
- **ProxyFile** (str) - 短信签名授权委托文件,需先进行base64编码格式转换,此处填写转换后的字符串。文件大小不超过4 MB;当您是代理并使用第三方的签名时(也即SigPurpose为1-他用),该项为必填项;
31+
32+
**Response**
33+
34+
- **Message** (str) - 返回状态码描述,如果操作成功,默认返回为空
35+
- **SigId** (str) - 短信签名ID
36+
37+
"""
38+
# build request
39+
d = {
40+
"ProjectId": self.config.project_id,
41+
}
42+
req and d.update(req)
43+
d = apis.CreateISMSSignatureRequestSchema().dumps(d)
44+
45+
# build options
46+
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
47+
48+
resp = self.invoke("CreateISMSSignature", d, **kwargs)
49+
return apis.CreateISMSSignatureResponseSchema().loads(resp)
50+
51+
def create_isms_template(
52+
self, req: typing.Optional[dict] = None, **kwargs
53+
) -> dict:
54+
"""CreateISMSTemplate - 申请视频短信模板
55+
56+
**Request**
57+
58+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
59+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
60+
- **Content** (str) - (Required) 视频短信模板内容。json数组的字符串格式。如:[{name:"0.txt",type:"txt",content:"北京是一座美丽的城市,我爱北京!",index:0},{name:"1.jpg",type:"jpg",content:"jpg文件字节的base64编码字符串",index:1},{name:”2.mp4”,type:"mp4",content:"mp4文件字节的base64编码字符串",index:2}]。name: 文件名,name中不能出现中文,必须要带上和type相同的后缀;type:文件类型,不能为空,文本为txt,图片为jpg、gif或png,音频为mp3,视频为mp4;content:文件内容,由文本、图片、音频、视频组成,文本使用txt文件,图片使用 jpg、gif、png 格式,音频使用 mp3 格式,视频使用mp4(视频只允许一个),文本、图片、音频、视频文件合计大小不可超过2M;index: 在视频短信中的位置。从0开始。
61+
- **MsgSignature** (str) - (Required) 视频短信签名
62+
- **MsgTitle** (str) - (Required) 视频短信标题
63+
- **Remark** (str) - (Required) 备注
64+
- **TemplateName** (str) - (Required) 视频短信模板名称
65+
- **UnsubscribeInfo** (str) - (Required) 退订信息,如:“回T退订”
66+
- **NetworkOperator** (str) - 需要报备的运营商。json数组的字符串格式。true-需要报备,false-不需要报备。如:{"telecom":true, "mobile":false, "unicom":true }
67+
- **Purpose** (int) - 模板用途类型:1-验证码类短信模板;2-系统通知类短信模板;3-会员推广类短信模板;
68+
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
69+
70+
**Response**
71+
72+
- **Message** (str) - API接口调用出错时表示错误信息
73+
- **ReqUuid** (str) - 本次接口调用请求Id,用于问题排查。
74+
- **TemplateId** (str) - 申请的模板Id。
75+
76+
"""
77+
# build request
78+
d = {
79+
"ProjectId": self.config.project_id,
80+
"Region": self.config.region,
81+
}
82+
req and d.update(req)
83+
d = apis.CreateISMSTemplateRequestSchema().dumps(d)
84+
85+
# build options
86+
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
87+
88+
resp = self.invoke("CreateISMSTemplate", d, **kwargs)
89+
return apis.CreateISMSTemplateResponseSchema().loads(resp)
90+
91+
def delete_isms_signature(
92+
self, req: typing.Optional[dict] = None, **kwargs
93+
) -> dict:
94+
"""DeleteISMSSignature - 调用接口DeleteISMSSignature删除视频短信签名
95+
96+
**Request**
97+
98+
- **ProjectId** (str) - (Config) 项目ID,不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
99+
- **SigIds** (list) - (Required) 签名ID,支持以数组的方式,举例,以SigIds.0、SigIds.1...SigIds.N方式传入
100+
101+
**Response**
102+
103+
- **Message** (str) - 返回状态码描述,如果操作成功,默认返回为空
104+
105+
"""
106+
# build request
107+
d = {
108+
"ProjectId": self.config.project_id,
109+
}
110+
req and d.update(req)
111+
d = apis.DeleteISMSSignatureRequestSchema().dumps(d)
112+
113+
resp = self.invoke("DeleteISMSSignature", d, **kwargs)
114+
return apis.DeleteISMSSignatureResponseSchema().loads(resp)
115+
116+
def delete_isms_template(
117+
self, req: typing.Optional[dict] = None, **kwargs
118+
) -> dict:
119+
"""DeleteISMSTemplate - 调用接口DeleteISMSTemplate删除视频短信模板
120+
121+
**Request**
122+
123+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
124+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
125+
- **TemplateIds** (list) - (Required) 模板ID,支持以数组的方式,举例,以TemplateIds.0、TemplateIds.1...TemplateIds.N方式传入
126+
127+
**Response**
128+
129+
- **Message** (str) - 返回状态码描述,如果操作成功,默认返回为空
130+
131+
"""
132+
# build request
133+
d = {
134+
"ProjectId": self.config.project_id,
135+
"Region": self.config.region,
136+
}
137+
req and d.update(req)
138+
d = apis.DeleteISMSTemplateRequestSchema().dumps(d)
139+
140+
resp = self.invoke("DeleteISMSTemplate", d, **kwargs)
141+
return apis.DeleteISMSTemplateResponseSchema().loads(resp)
142+
16143
def get_isms_send_receipt(
17144
self, req: typing.Optional[dict] = None, **kwargs
18145
) -> dict:
@@ -59,6 +186,84 @@ def get_isms_send_receipt(
59186
resp = self.invoke("GetISMSSendReceipt", d, **kwargs)
60187
return apis.GetISMSSendReceiptResponseSchema().loads(resp)
61188

189+
def query_isms_signature(
190+
self, req: typing.Optional[dict] = None, **kwargs
191+
) -> dict:
192+
"""QueryISMSSignature - 调用接口QueryISMSSignature查询视频短信签名申请状态
193+
194+
**Request**
195+
196+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
197+
- **SigId** (str) - (Required) 已申请的短信签名ID(短信签名申请时的工单ID);签名ID和签名至少需填写1项;
198+
- **SigContent** (str) - 签名内容;签名ID和签名至少需填写1项;
199+
200+
**Response**
201+
202+
- **Data** (dict) - 见 **OutSignature** 模型定义
203+
- **Message** (str) - 发生错误时,表示具体错误描述
204+
205+
**Response Model**
206+
207+
**OutSignature**
208+
- **ErrDesc** (str) - 短信签名未通过审核原因
209+
- **SigContent** (str) - 短信签名内容
210+
- **SigId** (str) - 短信签名ID
211+
- **Status** (int) - 签名状态,0-待审核 1-审核中 2-审核通过 3-审核未通过 4-被禁用
212+
213+
214+
"""
215+
# build request
216+
d = {
217+
"ProjectId": self.config.project_id,
218+
}
219+
req and d.update(req)
220+
d = apis.QueryISMSSignatureRequestSchema().dumps(d)
221+
222+
resp = self.invoke("QueryISMSSignature", d, **kwargs)
223+
return apis.QueryISMSSignatureResponseSchema().loads(resp)
224+
225+
def query_isms_template(
226+
self, req: typing.Optional[dict] = None, **kwargs
227+
) -> dict:
228+
"""QueryISMSTemplate - 查询模板状态信息
229+
230+
**Request**
231+
232+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
233+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
234+
- **TemplateId** (str) - (Required) 模板Id
235+
- **Zone** (str) - (Required) 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
236+
237+
**Response**
238+
239+
- **Data** (dict) - 见 **OutTemplate** 模型定义
240+
- **Message** (str) - 错误信息
241+
- **ReqUuid** (str) - 本次请求uuid
242+
243+
**Response Model**
244+
245+
**OutTemplate**
246+
- **CreateTime** (int) - 创建时间,时间戳格式1629357838
247+
- **ExpireTime** (int) - 截止有效时间,时间戳格式1629357838
248+
- **Purpose** (int) - 视频短信类型(3-会员营销)
249+
- **Remark** (str) - 备注信息
250+
- **StatusDesc** (str) - 状态描述。json格式,给出运营商维度的审核状态信息,示例:{"telecom_status":2,"telecom_desc":"审核通过","unicom_status":2,"unicom_desc":"审核通过","mobile_status":2,"mobile_desc":"审核通过"}
251+
- **TemplateId** (str) - 模板ID
252+
- **TemplateName** (str) - 模板名称
253+
254+
255+
"""
256+
# build request
257+
d = {
258+
"ProjectId": self.config.project_id,
259+
"Region": self.config.region,
260+
}
261+
req and d.update(req)
262+
d = apis.QueryISMSTemplateRequestSchema().dumps(d)
263+
264+
resp = self.invoke("QueryISMSTemplate", d, **kwargs)
265+
return apis.QueryISMSTemplateResponseSchema().loads(resp)
266+
62267
def send_isms_message(
63268
self, req: typing.Optional[dict] = None, **kwargs
64269
) -> dict:
@@ -92,3 +297,36 @@ def send_isms_message(
92297

93298
resp = self.invoke("SendISMSMessage", d, **kwargs)
94299
return apis.SendISMSMessageResponseSchema().loads(resp)
300+
301+
def update_isms_signature(
302+
self, req: typing.Optional[dict] = None, **kwargs
303+
) -> dict:
304+
"""UpdateISMSSignature - 调用接口UpdateISMSSignature修改未通过审核的视频短信签名,并重新提交审核
305+
306+
**Request**
307+
308+
- **ProjectId** (str) - (Config) 项目ID,不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
309+
- **SigContent** (str) - (Required) 新的短信签名内容;长度为2-12个字符, 可包含中文、数字和符号;无需填写【】或[],系统会自动添加
310+
- **SigId** (str) - (Required) 签名ID,支持以数组的方式,举例,以SigIds.0、SigIds.1...SigIds.N方式传入
311+
- **SigPurpose** (int) - (Required) 签名用途,0-自用,1-他用;
312+
- **SigType** (int) - (Required) 签名类型,说明如下:0-公司或企业的全称或简称;1-App应用的全称或简称;2-工信部备案网站的全称或简称;3-公众号或小程序的全称或简称;4-商标名的全称或简称;5-政府/机关事业单位/其他单位的全称或简称;
313+
- **CertificateType** (int) - 签名的资质证明文件类型,需与签名类型保持一致,说明如下:0-三证合一/企业营业执照/组织机构代码证书/社会信用代码证书;1-应用商店后台开发者管理截图;2-备案服务商的备案成功截图(含域名,网站名称,备案号);3-公众号或小程序的管理界面截图;4-商标注册证书;5-组织机构代码证书、社会信用代码证书;
314+
- **Document** (str) - 短信签名的资质证明文件URL,若未更改审核材料,则该处使用已上传审核材料的URL链接,否则使用File参数
315+
- **File** (str) - 短信签名的资质证明文件内容,需先进行base64编码格式转换,此处填写转换后的字符串。文件大小不超过4 MB。内容格式如下: [file type];[code type],[base64] 如:image/jpeg;base64,5YaF5a65
316+
- **ProxyDoc** (str) - 短信签名授权委托文件URL,若未更改授权委托文件,则该处填写已上传的授权委托文件的URL链接,否则使用ProxyFile参数
317+
- **ProxyFile** (str) - 短信签名授权委托文件内容,需先进行base64编码格式转换,此处填写转换后的字符串。文件大小不超过4 MB;当您是代理并使用第三方的签名时(也即SigPurpose为1-他用),该项为必填项;格式和File类似。
318+
319+
**Response**
320+
321+
- **Message** (str) - 返回状态码描述,如果操作成功,默认返回为空
322+
323+
"""
324+
# build request
325+
d = {
326+
"ProjectId": self.config.project_id,
327+
}
328+
req and d.update(req)
329+
d = apis.UpdateISMSSignatureRequestSchema().dumps(d)
330+
331+
resp = self.invoke("UpdateISMSSignature", d, **kwargs)
332+
return apis.UpdateISMSSignatureResponseSchema().loads(resp)

0 commit comments

Comments
 (0)