From cdcce1c972a9c11e76ea62161a5ced3d129e6320 Mon Sep 17 00:00:00 2001 From: Scaleway Bot Date: Tue, 18 Jul 2023 10:15:36 +0200 Subject: [PATCH] feat(tem): add email flags (#261) --- .../scaleway_async/tem/v1alpha1/__init__.py | 2 ++ .../scaleway_async/tem/v1alpha1/api.py | 7 +++++++ .../tem/v1alpha1/marshalling.py | 3 +++ .../scaleway_async/tem/v1alpha1/types.py | 19 +++++++++++++++++++ scaleway/scaleway/tem/v1alpha1/__init__.py | 2 ++ scaleway/scaleway/tem/v1alpha1/api.py | 7 +++++++ scaleway/scaleway/tem/v1alpha1/marshalling.py | 3 +++ scaleway/scaleway/tem/v1alpha1/types.py | 19 +++++++++++++++++++ 8 files changed, 62 insertions(+) diff --git a/scaleway-async/scaleway_async/tem/v1alpha1/__init__.py b/scaleway-async/scaleway_async/tem/v1alpha1/__init__.py index cc9f8d8e..2fe3519d 100644 --- a/scaleway-async/scaleway_async/tem/v1alpha1/__init__.py +++ b/scaleway-async/scaleway_async/tem/v1alpha1/__init__.py @@ -2,6 +2,7 @@ # If you have any remark or suggestion do not hesitate to open an issue. from .types import DomainLastStatusRecordStatus from .types import DomainStatus +from .types import EmailFlag from .types import EmailRcptType from .types import EmailStatus from .types import ListEmailsRequestOrderBy @@ -25,6 +26,7 @@ __all__ = [ "DomainLastStatusRecordStatus", "DomainStatus", + "EmailFlag", "EmailRcptType", "EmailStatus", "ListEmailsRequestOrderBy", diff --git a/scaleway-async/scaleway_async/tem/v1alpha1/api.py b/scaleway-async/scaleway_async/tem/v1alpha1/api.py index d612b6b5..463e0f72 100644 --- a/scaleway-async/scaleway_async/tem/v1alpha1/api.py +++ b/scaleway-async/scaleway_async/tem/v1alpha1/api.py @@ -16,6 +16,7 @@ ) from .types import ( DomainStatus, + EmailFlag, EmailStatus, ListEmailsRequestOrderBy, CreateEmailRequestAddress, @@ -208,6 +209,7 @@ async def list_emails( subject: Optional[str] = None, search: Optional[str] = None, order_by: ListEmailsRequestOrderBy = ListEmailsRequestOrderBy.CREATED_AT_DESC, + flags: Optional[List[EmailFlag]] = None, ) -> ListEmailsResponse: """ List emails. @@ -227,6 +229,7 @@ async def list_emails( :param subject: (Optional) List emails with this subject. :param search: (Optional) List emails by searching to all fields. :param order_by: (Optional) List emails corresponding to specific criteria. + :param flags: (Optional) List emails containing only specific flags. :return: :class:`ListEmailsResponse ` Usage: @@ -244,6 +247,7 @@ async def list_emails( f"/transactional-email/v1alpha1/regions/{param_region}/emails", params={ "domain_id": domain_id, + "flags": flags, "mail_from": mail_from, "mail_rcpt": mail_rcpt, "mail_to": mail_to, @@ -281,6 +285,7 @@ async def list_emails_all( subject: Optional[str] = None, search: Optional[str] = None, order_by: Optional[ListEmailsRequestOrderBy] = None, + flags: Optional[List[EmailFlag]] = None, ) -> List[Email]: """ List emails. @@ -300,6 +305,7 @@ async def list_emails_all( :param subject: (Optional) List emails with this subject. :param search: (Optional) List emails by searching to all fields. :param order_by: (Optional) List emails corresponding to specific criteria. + :param flags: (Optional) List emails containing only specific flags. :return: :class:`List[ListEmailsResponse] ` Usage: @@ -328,6 +334,7 @@ async def list_emails_all( "subject": subject, "search": search, "order_by": order_by, + "flags": flags, }, ) diff --git a/scaleway-async/scaleway_async/tem/v1alpha1/marshalling.py b/scaleway-async/scaleway_async/tem/v1alpha1/marshalling.py index 71c1b5de..35ee36ec 100644 --- a/scaleway-async/scaleway_async/tem/v1alpha1/marshalling.py +++ b/scaleway-async/scaleway_async/tem/v1alpha1/marshalling.py @@ -176,6 +176,9 @@ def unmarshal_Email(data: Any) -> Email: field = data.get("created_at", None) args["created_at"] = parser.isoparse(field) if type(field) is str else field + field = data.get("flags", None) + args["flags"] = field + field = data.get("id", None) args["id"] = field diff --git a/scaleway-async/scaleway_async/tem/v1alpha1/types.py b/scaleway-async/scaleway_async/tem/v1alpha1/types.py index 519a1da4..a41ca068 100644 --- a/scaleway-async/scaleway_async/tem/v1alpha1/types.py +++ b/scaleway-async/scaleway_async/tem/v1alpha1/types.py @@ -35,6 +35,15 @@ def __str__(self) -> str: return str(self.value) +class EmailFlag(str, Enum): + UNKNOWN_FLAG = "unknown_flag" + SOFT_BOUNCE = "soft_bounce" + HARD_BOUNCE = "hard_bounce" + + def __str__(self) -> str: + return str(self.value) + + class EmailRcptType(str, Enum): UNKNOWN_RCPT_TYPE = "unknown_rcpt_type" TO = "to" @@ -360,6 +369,11 @@ class Email: Information about the last three attempts to send the email. """ + flags: List[EmailFlag] + """ + Flags categorize emails. They allow you to obtain more information about recurring errors, for example. + """ + @dataclass class EmailTry: @@ -599,6 +613,11 @@ class ListEmailsRequest: (Optional) List emails corresponding to specific criteria. """ + flags: Optional[List[EmailFlag]] + """ + (Optional) List emails containing only specific flags. + """ + @dataclass class GetStatisticsRequest: diff --git a/scaleway/scaleway/tem/v1alpha1/__init__.py b/scaleway/scaleway/tem/v1alpha1/__init__.py index cc9f8d8e..2fe3519d 100644 --- a/scaleway/scaleway/tem/v1alpha1/__init__.py +++ b/scaleway/scaleway/tem/v1alpha1/__init__.py @@ -2,6 +2,7 @@ # If you have any remark or suggestion do not hesitate to open an issue. from .types import DomainLastStatusRecordStatus from .types import DomainStatus +from .types import EmailFlag from .types import EmailRcptType from .types import EmailStatus from .types import ListEmailsRequestOrderBy @@ -25,6 +26,7 @@ __all__ = [ "DomainLastStatusRecordStatus", "DomainStatus", + "EmailFlag", "EmailRcptType", "EmailStatus", "ListEmailsRequestOrderBy", diff --git a/scaleway/scaleway/tem/v1alpha1/api.py b/scaleway/scaleway/tem/v1alpha1/api.py index 52429086..447cd05a 100644 --- a/scaleway/scaleway/tem/v1alpha1/api.py +++ b/scaleway/scaleway/tem/v1alpha1/api.py @@ -16,6 +16,7 @@ ) from .types import ( DomainStatus, + EmailFlag, EmailStatus, ListEmailsRequestOrderBy, CreateEmailRequestAddress, @@ -208,6 +209,7 @@ def list_emails( subject: Optional[str] = None, search: Optional[str] = None, order_by: ListEmailsRequestOrderBy = ListEmailsRequestOrderBy.CREATED_AT_DESC, + flags: Optional[List[EmailFlag]] = None, ) -> ListEmailsResponse: """ List emails. @@ -227,6 +229,7 @@ def list_emails( :param subject: (Optional) List emails with this subject. :param search: (Optional) List emails by searching to all fields. :param order_by: (Optional) List emails corresponding to specific criteria. + :param flags: (Optional) List emails containing only specific flags. :return: :class:`ListEmailsResponse ` Usage: @@ -244,6 +247,7 @@ def list_emails( f"/transactional-email/v1alpha1/regions/{param_region}/emails", params={ "domain_id": domain_id, + "flags": flags, "mail_from": mail_from, "mail_rcpt": mail_rcpt, "mail_to": mail_to, @@ -281,6 +285,7 @@ def list_emails_all( subject: Optional[str] = None, search: Optional[str] = None, order_by: Optional[ListEmailsRequestOrderBy] = None, + flags: Optional[List[EmailFlag]] = None, ) -> List[Email]: """ List emails. @@ -300,6 +305,7 @@ def list_emails_all( :param subject: (Optional) List emails with this subject. :param search: (Optional) List emails by searching to all fields. :param order_by: (Optional) List emails corresponding to specific criteria. + :param flags: (Optional) List emails containing only specific flags. :return: :class:`List[ListEmailsResponse] ` Usage: @@ -328,6 +334,7 @@ def list_emails_all( "subject": subject, "search": search, "order_by": order_by, + "flags": flags, }, ) diff --git a/scaleway/scaleway/tem/v1alpha1/marshalling.py b/scaleway/scaleway/tem/v1alpha1/marshalling.py index 71c1b5de..35ee36ec 100644 --- a/scaleway/scaleway/tem/v1alpha1/marshalling.py +++ b/scaleway/scaleway/tem/v1alpha1/marshalling.py @@ -176,6 +176,9 @@ def unmarshal_Email(data: Any) -> Email: field = data.get("created_at", None) args["created_at"] = parser.isoparse(field) if type(field) is str else field + field = data.get("flags", None) + args["flags"] = field + field = data.get("id", None) args["id"] = field diff --git a/scaleway/scaleway/tem/v1alpha1/types.py b/scaleway/scaleway/tem/v1alpha1/types.py index 519a1da4..a41ca068 100644 --- a/scaleway/scaleway/tem/v1alpha1/types.py +++ b/scaleway/scaleway/tem/v1alpha1/types.py @@ -35,6 +35,15 @@ def __str__(self) -> str: return str(self.value) +class EmailFlag(str, Enum): + UNKNOWN_FLAG = "unknown_flag" + SOFT_BOUNCE = "soft_bounce" + HARD_BOUNCE = "hard_bounce" + + def __str__(self) -> str: + return str(self.value) + + class EmailRcptType(str, Enum): UNKNOWN_RCPT_TYPE = "unknown_rcpt_type" TO = "to" @@ -360,6 +369,11 @@ class Email: Information about the last three attempts to send the email. """ + flags: List[EmailFlag] + """ + Flags categorize emails. They allow you to obtain more information about recurring errors, for example. + """ + @dataclass class EmailTry: @@ -599,6 +613,11 @@ class ListEmailsRequest: (Optional) List emails corresponding to specific criteria. """ + flags: Optional[List[EmailFlag]] + """ + (Optional) List emails containing only specific flags. + """ + @dataclass class GetStatisticsRequest: