Skip to content

Commit 1d723ef

Browse files
authored
sdk: rolling update for 0.11.137 (#370)
1 parent e74ee2d commit 1d723ef

8 files changed

Lines changed: 327 additions & 1 deletion

File tree

‎docs/services.rst‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,13 @@ NLB
129129
:members:
130130

131131

132+
SES
133+
---
134+
135+
.. autoclass:: ucloud.services.ses.client.SESClient
136+
:members:
137+
138+
132139
STS
133140
---
134141

‎ucloud/client.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ def nlb(self):
8282
self.logger,
8383
)
8484

85+
def ses(self):
86+
from ucloud.services.ses.client import SESClient
87+
88+
return SESClient(
89+
self._auto_config("ses"),
90+
self.transport,
91+
self.middleware,
92+
self.logger,
93+
)
94+
8595
def sts(self):
8696
from ucloud.services.sts.client import STSClient
8797

‎ucloud/services/ses/__init__.py‎

Whitespace-only changes.

‎ucloud/services/ses/client.py‎

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
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.ses.schemas import apis
8+
9+
10+
class SESClient(Client):
11+
def __init__(
12+
self, config: dict, transport=None, middleware=None, logger=None
13+
):
14+
super(SESClient, self).__init__(config, transport, middleware, logger)
15+
16+
def send_ses_email(
17+
self, req: typing.Optional[dict] = None, **kwargs
18+
) -> dict:
19+
"""SendSESEmail - 直接发送邮件,无需创建发送任务和模版,支持 HTML/纯文本内容、主题、抄送/密送、附件和邮件头,单次最多 100 个收件人。
20+
21+
**Request**
22+
23+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
24+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
25+
- **From** (str) - (Required) 发件人邮箱,配置地址:https://console.ucloud.cn/ses/email-config?tab=sender-list
26+
- **Subject** (str) - (Required) 邮件主题(长度 1~200 字符)
27+
- **To** (list) - (Required) 收件人
28+
- **Attachments** (list) - 见 **SendSESEmailParamAttachments** 模型定义
29+
- **Bcc** (list) - 密送(抄送+密送总数量不能超过100)
30+
- **Cc** (list) - 抄送(抄送+密送总数量不能超过100)
31+
- **FromName** (str) - 发件人名称,不传或为空时,自动回落到该发件人在控制台配置的别名(Alias)
32+
- **Headers** (list) - 见 **SendSESEmailParamHeaders** 模型定义
33+
- **Html** (str) - HTML 内容 (与Text二选一,长度上限 10,485,760个字符)
34+
- **PreHeader** (str) - 邮件预览文本
35+
- **Text** (str) - 纯文本内容 (与Html二选一,长度上限 10,485,760个字符)
36+
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
37+
38+
**Response**
39+
40+
- **FailContent** (list) - 见 **FailedTargetEmail** 模型定义
41+
- **SessionNo** (str) - 本次发送任务的唯一标识
42+
- **SuccessCount** (int) - 发送成功数
43+
44+
**Request Model**
45+
46+
**SendSESEmailParamAttachments**
47+
- **ContentType** (str) - MIME 类型,如: application/pdf
48+
- **Data** (str) - 附件内容(Base64 编码),单次请求最多 10 个附件;总大小不超过 10MB
49+
- **Filename** (str) - 附件文件名
50+
51+
52+
**SendSESEmailParamHeaders**
53+
- **Name** (str) - 邮件头名称,最多 20 个且仅允许字母、数字和 -(正则 ^[A-Za-z0-9-]+$)。禁止使用保留名称:From/To/Cc/Bcc/Subject/Reply-To/Content-Type/Mime-Version,以及 X-SES- 前缀(均不区分大小写)。
54+
- **Value** (str) - 邮件头值
55+
56+
57+
**Response Model**
58+
59+
**FailedTargetEmail**
60+
- **Bcc** (list) - 密送
61+
- **Cc** (list) - 抄送
62+
- **EmailAddress** (str) - 收件邮箱
63+
- **FailureReason** (str) - 失败原因
64+
- **TemplateVariableParams** (list) - 模版变量
65+
- **To** (str) - 收件人
66+
67+
68+
"""
69+
# build request
70+
d = {
71+
"ProjectId": self.config.project_id,
72+
"Region": self.config.region,
73+
}
74+
req and d.update(req)
75+
d = apis.SendSESEmailRequestSchema().dumps(d)
76+
77+
# build options
78+
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
79+
80+
resp = self.invoke("SendSESEmail", d, **kwargs)
81+
return apis.SendSESEmailResponseSchema().loads(resp)
82+
83+
def send_ses_email_template(
84+
self, req: typing.Optional[dict] = None, **kwargs
85+
) -> dict:
86+
"""SendSESEmailTemplate - 通过模版发送邮件,无需创建发送任务。支持自定义主题、摘要、预览文本、抄送/密送、附件和邮件头,单次最多 100 个收件人。
87+
88+
**Request**
89+
90+
- **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_
91+
- **Region** (str) - (Config) 地域。 参见 `地域和可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
92+
- **From** (str) - (Required) 发件人邮箱
93+
- **Subject** (str) - (Required) 邮件主题
94+
- **TemplateId** (str) - (Required) 模版 ID,获取:https://console.ucloud.cn/ses/email-config?tab=template
95+
- **Attachments** (list) - 见 **SendSESEmailTemplateParamAttachments** 模型定义
96+
- **EmailContent** (list) - 见 **SendSESEmailTemplateParamEmailContent** 模型定义
97+
- **FromName** (str) - 发件人名称,不传或为空时,自动回落到该发件人在控制台配置的别名(Alias)
98+
- **Headers** (list) - 见 **SendSESEmailTemplateParamHeaders** 模型定义
99+
- **PreHeader** (str) - 邮件预览文本
100+
- **Zone** (str) - 可用区。参见 `可用区列表 <https://docs.ucloud.cn/api/summary/regionlist>`_
101+
102+
**Response**
103+
104+
- **FailContent** (list) - 见 **FailedTargetEmail** 模型定义
105+
- **SessionNo** (str) - 本次发送任务的唯一标识
106+
- **SuccessCount** (int) - 发送成功数
107+
108+
**Request Model**
109+
110+
**SendSESEmailTemplateParamAttachments**
111+
- **ContentType** (str) - MIME 类型,如: application/pdf
112+
- **Data** (str) - 附件内容(Base64 编码),单次请求最多 10 个附件;总大小不超过 10MB
113+
- **Filename** (str) - 附件文件名
114+
115+
116+
**SendSESEmailTemplateParamEmailContent**
117+
- **Bcc** (list) - 密送(抄送+密送总数量不能超过100)
118+
- **Cc** (list) - 抄送(抄送+密送总数量不能超过100)
119+
- **TemplateVariableParams** (list) - 模版变量,格式 variableName{##}variableValue (例:{"name{##}Tom", "code{##}1234"})
120+
- **To** (str) - 收件人,最多100条
121+
122+
123+
**SendSESEmailTemplateParamHeaders**
124+
- **Name** (str) - 邮件头名称,最多 20 个且仅允许字母、数字和 -(正则 ^[A-Za-z0-9-]+$)。禁止使用保留名称:From/To/Cc/Bcc/Subject/Reply-To/Content-Type/Mime-Version,以及 X-SES- 前缀(均不区分大小写)。
125+
- **Value** (str) - 邮件头值
126+
127+
128+
**Response Model**
129+
130+
**FailedTargetEmail**
131+
- **Bcc** (list) - 密送
132+
- **Cc** (list) - 抄送
133+
- **EmailAddress** (str) - 收件邮箱
134+
- **FailureReason** (str) - 失败原因
135+
- **TemplateVariableParams** (list) - 模版变量
136+
- **To** (str) - 收件人
137+
138+
139+
"""
140+
# build request
141+
d = {
142+
"ProjectId": self.config.project_id,
143+
"Region": self.config.region,
144+
}
145+
req and d.update(req)
146+
d = apis.SendSESEmailTemplateRequestSchema().dumps(d)
147+
148+
# build options
149+
kwargs["max_retries"] = 0 # ignore retry when api is not idempotent
150+
151+
resp = self.invoke("SendSESEmailTemplate", d, **kwargs)
152+
return apis.SendSESEmailTemplateResponseSchema().loads(resp)

‎ucloud/services/ses/schemas/__init__.py‎

Whitespace-only changes.
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
""" Code is generated by ucloud-model, DO NOT EDIT IT. """
2+
3+
from ucloud.core.typesystem import schema, fields
4+
from ucloud.services.ses.schemas import models
5+
6+
""" SES API Schema
7+
"""
8+
9+
10+
"""
11+
API: SendSESEmail
12+
13+
直接发送邮件,无需创建发送任务和模版,支持 HTML/纯文本内容、主题、抄送/密送、附件和邮件头,单次最多 100 个收件人。
14+
"""
15+
16+
17+
class SendSESEmailParamAttachmentsSchema(schema.RequestSchema):
18+
"""SendSESEmailParamAttachments -"""
19+
20+
fields = {
21+
"ContentType": fields.Str(required=False, dump_to="ContentType"),
22+
"Data": fields.Str(required=False, dump_to="Data"),
23+
"Filename": fields.Str(required=False, dump_to="Filename"),
24+
}
25+
26+
27+
class SendSESEmailParamHeadersSchema(schema.RequestSchema):
28+
"""SendSESEmailParamHeaders -"""
29+
30+
fields = {
31+
"Name": fields.Str(required=False, dump_to="Name"),
32+
"Value": fields.Str(required=False, dump_to="Value"),
33+
}
34+
35+
36+
class SendSESEmailRequestSchema(schema.RequestSchema):
37+
"""SendSESEmail - 直接发送邮件,无需创建发送任务和模版,支持 HTML/纯文本内容、主题、抄送/密送、附件和邮件头,单次最多 100 个收件人。"""
38+
39+
fields = {
40+
"Attachments": fields.List(SendSESEmailParamAttachmentsSchema()),
41+
"Bcc": fields.List(fields.Str()),
42+
"Cc": fields.List(fields.Str()),
43+
"From": fields.Str(required=True, dump_to="From"),
44+
"FromName": fields.Str(required=False, dump_to="FromName"),
45+
"Headers": fields.List(SendSESEmailParamHeadersSchema()),
46+
"Html": fields.Str(required=False, dump_to="Html"),
47+
"PreHeader": fields.Str(required=False, dump_to="PreHeader"),
48+
"ProjectId": fields.Str(required=False, dump_to="ProjectId"),
49+
"Region": fields.Str(required=False, dump_to="Region"),
50+
"Subject": fields.Str(required=True, dump_to="Subject"),
51+
"Text": fields.Str(required=False, dump_to="Text"),
52+
"To": fields.List(fields.Str()),
53+
"Zone": fields.Str(required=False, dump_to="Zone"),
54+
}
55+
56+
57+
class SendSESEmailResponseSchema(schema.ResponseSchema):
58+
"""SendSESEmail - 直接发送邮件,无需创建发送任务和模版,支持 HTML/纯文本内容、主题、抄送/密送、附件和邮件头,单次最多 100 个收件人。"""
59+
60+
fields = {
61+
"FailContent": fields.List(
62+
models.FailedTargetEmailSchema(),
63+
required=True,
64+
load_from="FailContent",
65+
),
66+
"SessionNo": fields.Str(required=True, load_from="SessionNo"),
67+
"SuccessCount": fields.Int(required=True, load_from="SuccessCount"),
68+
}
69+
70+
71+
"""
72+
API: SendSESEmailTemplate
73+
74+
通过模版发送邮件,无需创建发送任务。支持自定义主题、摘要、预览文本、抄送/密送、附件和邮件头,单次最多 100 个收件人。
75+
"""
76+
77+
78+
class SendSESEmailTemplateParamAttachmentsSchema(schema.RequestSchema):
79+
"""SendSESEmailTemplateParamAttachments -"""
80+
81+
fields = {
82+
"ContentType": fields.Str(required=False, dump_to="ContentType"),
83+
"Data": fields.Str(required=False, dump_to="Data"),
84+
"Filename": fields.Str(required=False, dump_to="Filename"),
85+
}
86+
87+
88+
class SendSESEmailTemplateParamEmailContentSchema(schema.RequestSchema):
89+
"""SendSESEmailTemplateParamEmailContent -"""
90+
91+
fields = {
92+
"Bcc": fields.List(fields.Str()),
93+
"Cc": fields.List(fields.Str()),
94+
"TemplateVariableParams": fields.List(fields.Str()),
95+
"To": fields.Str(required=False, dump_to="To"),
96+
}
97+
98+
99+
class SendSESEmailTemplateParamHeadersSchema(schema.RequestSchema):
100+
"""SendSESEmailTemplateParamHeaders -"""
101+
102+
fields = {
103+
"Name": fields.Str(required=False, dump_to="Name"),
104+
"Value": fields.Str(required=False, dump_to="Value"),
105+
}
106+
107+
108+
class SendSESEmailTemplateRequestSchema(schema.RequestSchema):
109+
"""SendSESEmailTemplate - 通过模版发送邮件,无需创建发送任务。支持自定义主题、摘要、预览文本、抄送/密送、附件和邮件头,单次最多 100 个收件人。"""
110+
111+
fields = {
112+
"Attachments": fields.List(
113+
SendSESEmailTemplateParamAttachmentsSchema()
114+
),
115+
"EmailContent": fields.List(
116+
SendSESEmailTemplateParamEmailContentSchema()
117+
),
118+
"From": fields.Str(required=True, dump_to="From"),
119+
"FromName": fields.Str(required=False, dump_to="FromName"),
120+
"Headers": fields.List(SendSESEmailTemplateParamHeadersSchema()),
121+
"PreHeader": fields.Str(required=False, dump_to="PreHeader"),
122+
"ProjectId": fields.Str(required=False, dump_to="ProjectId"),
123+
"Region": fields.Str(required=False, dump_to="Region"),
124+
"Subject": fields.Str(required=True, dump_to="Subject"),
125+
"TemplateId": fields.Str(required=True, dump_to="TemplateId"),
126+
"Zone": fields.Str(required=False, dump_to="Zone"),
127+
}
128+
129+
130+
class SendSESEmailTemplateResponseSchema(schema.ResponseSchema):
131+
"""SendSESEmailTemplate - 通过模版发送邮件,无需创建发送任务。支持自定义主题、摘要、预览文本、抄送/密送、附件和邮件头,单次最多 100 个收件人。"""
132+
133+
fields = {
134+
"FailContent": fields.List(
135+
models.FailedTargetEmailSchema(),
136+
required=True,
137+
load_from="FailContent",
138+
),
139+
"SessionNo": fields.Str(required=True, load_from="SessionNo"),
140+
"SuccessCount": fields.Int(required=True, load_from="SuccessCount"),
141+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
""" Code is generated by ucloud-model, DO NOT EDIT IT. """
2+
3+
from ucloud.core.typesystem import schema, fields
4+
5+
6+
class FailedTargetEmailSchema(schema.ResponseSchema):
7+
"""FailedTargetEmail - 发送失败收件人"""
8+
9+
fields = {
10+
"Bcc": fields.List(fields.Str()),
11+
"Cc": fields.List(fields.Str()),
12+
"EmailAddress": fields.Str(required=False, load_from="EmailAddress"),
13+
"FailureReason": fields.Str(required=False, load_from="FailureReason"),
14+
"TemplateVariableParams": fields.List(fields.Str()),
15+
"To": fields.Str(required=False, load_from="To"),
16+
}

‎ucloud/version.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = "0.11.136"
1+
version = "0.11.137"

0 commit comments

Comments
 (0)