Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions scaleway-async/scaleway_async/tem/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
from .types import DomainLastStatusAutoconfigState
from .types import DomainLastStatusDkimRecord
from .types import DomainLastStatusDmarcRecord
from .types import DomainLastStatusMXRecord
from .types import DomainLastStatusSpfRecord
from .types import Domain
from .types import OfferSubscription
Expand Down Expand Up @@ -118,6 +119,7 @@
"DomainLastStatusAutoconfigState",
"DomainLastStatusDkimRecord",
"DomainLastStatusDmarcRecord",
"DomainLastStatusMXRecord",
"DomainLastStatusSpfRecord",
"Domain",
"OfferSubscription",
Expand Down
6 changes: 3 additions & 3 deletions scaleway-async/scaleway_async/tem/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -763,9 +763,9 @@ async def get_domain_last_status(
region: Optional[ScwRegion] = None,
) -> DomainLastStatus:
"""
Display SPF and DKIM records status and potential errors.
Display SPF and DKIM records status and potential errors, including the found records to make debugging easier.
:param domain_id: ID of the domain to delete.
Display SPF, DKIM, DMARC and MX records status and potential errors.
Display SPF, DKIM, DMARC and MX records status and potential errors, including the found records to make debugging easier.
:param domain_id: ID of the domain to get records status.
:param region: Region to target. If none is passed will use default region from the config.
:return: :class:`DomainLastStatus <DomainLastStatus>`

Expand Down
38 changes: 38 additions & 0 deletions scaleway-async/scaleway_async/tem/v1alpha1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
DomainLastStatusAutoconfigState,
DomainLastStatusDkimRecord,
DomainLastStatusDmarcRecord,
DomainLastStatusMXRecord,
DomainLastStatusSpfRecord,
DomainLastStatus,
ListBlocklistsResponse,
Expand Down Expand Up @@ -783,6 +784,37 @@ def unmarshal_DomainLastStatusDmarcRecord(data: Any) -> DomainLastStatusDmarcRec
return DomainLastStatusDmarcRecord(**args)


def unmarshal_DomainLastStatusMXRecord(data: Any) -> DomainLastStatusMXRecord:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'DomainLastStatusMXRecord' failed as data isn't a dictionary."
)

args: dict[str, Any] = {}

field = data.get("status", None)
if field is not None:
args["status"] = field
else:
args["status"] = DomainLastStatusRecordStatus.UNKNOWN_RECORD_STATUS

field = data.get("last_valid_at", None)
if field is not None:
args["last_valid_at"] = (
parser.isoparse(field) if isinstance(field, str) else field
)
else:
args["last_valid_at"] = None

field = data.get("error", None)
if field is not None:
args["error"] = field
else:
args["error"] = None

return DomainLastStatusMXRecord(**args)


def unmarshal_DomainLastStatusSpfRecord(data: Any) -> DomainLastStatusSpfRecord:
if not isinstance(data, dict):
raise TypeError(
Expand Down Expand Up @@ -852,6 +884,12 @@ def unmarshal_DomainLastStatus(data: Any) -> DomainLastStatus:
else:
args["dmarc_record"] = None

field = data.get("mx_record", None)
if field is not None:
args["mx_record"] = unmarshal_DomainLastStatusMXRecord(field)
else:
args["mx_record"] = None

field = data.get("autoconfig_state", None)
if field is not None:
args["autoconfig_state"] = unmarshal_DomainLastStatusAutoconfigState(field)
Expand Down
25 changes: 24 additions & 1 deletion scaleway-async/scaleway_async/tem/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,24 @@ class DomainLastStatusDmarcRecord:
"""


@dataclass
class DomainLastStatusMXRecord:
status: DomainLastStatusRecordStatus
"""
Status of the MX record's configuration. This record is optional to validate a domain, but highly recommended.
"""

last_valid_at: Optional[datetime] = None
"""
Time and date the MX record was last valid.
"""

error: Optional[str] = None
"""
An error text displays in case the record is not valid.
"""


@dataclass
class DomainLastStatusSpfRecord:
status: DomainLastStatusRecordStatus
Expand Down Expand Up @@ -1161,6 +1179,11 @@ class DomainLastStatus:
The DMARC record verification data.
"""

mx_record: Optional[DomainLastStatusMXRecord] = None
"""
The MX record verification data.
"""

autoconfig_state: Optional[DomainLastStatusAutoconfigState] = None
"""
The verification state of domain auto-configuration.
Expand All @@ -1171,7 +1194,7 @@ class DomainLastStatus:
class GetDomainLastStatusRequest:
domain_id: str
"""
ID of the domain to delete.
ID of the domain to get records status.
"""

region: Optional[ScwRegion] = None
Expand Down
2 changes: 2 additions & 0 deletions scaleway/scaleway/tem/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
from .types import DomainLastStatusAutoconfigState
from .types import DomainLastStatusDkimRecord
from .types import DomainLastStatusDmarcRecord
from .types import DomainLastStatusMXRecord
from .types import DomainLastStatusSpfRecord
from .types import Domain
from .types import OfferSubscription
Expand Down Expand Up @@ -118,6 +119,7 @@
"DomainLastStatusAutoconfigState",
"DomainLastStatusDkimRecord",
"DomainLastStatusDmarcRecord",
"DomainLastStatusMXRecord",
"DomainLastStatusSpfRecord",
"Domain",
"OfferSubscription",
Expand Down
6 changes: 3 additions & 3 deletions scaleway/scaleway/tem/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -763,9 +763,9 @@ def get_domain_last_status(
region: Optional[ScwRegion] = None,
) -> DomainLastStatus:
"""
Display SPF and DKIM records status and potential errors.
Display SPF and DKIM records status and potential errors, including the found records to make debugging easier.
:param domain_id: ID of the domain to delete.
Display SPF, DKIM, DMARC and MX records status and potential errors.
Display SPF, DKIM, DMARC and MX records status and potential errors, including the found records to make debugging easier.
:param domain_id: ID of the domain to get records status.
:param region: Region to target. If none is passed will use default region from the config.
:return: :class:`DomainLastStatus <DomainLastStatus>`

Expand Down
38 changes: 38 additions & 0 deletions scaleway/scaleway/tem/v1alpha1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
DomainLastStatusAutoconfigState,
DomainLastStatusDkimRecord,
DomainLastStatusDmarcRecord,
DomainLastStatusMXRecord,
DomainLastStatusSpfRecord,
DomainLastStatus,
ListBlocklistsResponse,
Expand Down Expand Up @@ -783,6 +784,37 @@ def unmarshal_DomainLastStatusDmarcRecord(data: Any) -> DomainLastStatusDmarcRec
return DomainLastStatusDmarcRecord(**args)


def unmarshal_DomainLastStatusMXRecord(data: Any) -> DomainLastStatusMXRecord:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'DomainLastStatusMXRecord' failed as data isn't a dictionary."
)

args: dict[str, Any] = {}

field = data.get("status", None)
if field is not None:
args["status"] = field
else:
args["status"] = DomainLastStatusRecordStatus.UNKNOWN_RECORD_STATUS

field = data.get("last_valid_at", None)
if field is not None:
args["last_valid_at"] = (
parser.isoparse(field) if isinstance(field, str) else field
)
else:
args["last_valid_at"] = None

field = data.get("error", None)
if field is not None:
args["error"] = field
else:
args["error"] = None

return DomainLastStatusMXRecord(**args)


def unmarshal_DomainLastStatusSpfRecord(data: Any) -> DomainLastStatusSpfRecord:
if not isinstance(data, dict):
raise TypeError(
Expand Down Expand Up @@ -852,6 +884,12 @@ def unmarshal_DomainLastStatus(data: Any) -> DomainLastStatus:
else:
args["dmarc_record"] = None

field = data.get("mx_record", None)
if field is not None:
args["mx_record"] = unmarshal_DomainLastStatusMXRecord(field)
else:
args["mx_record"] = None

field = data.get("autoconfig_state", None)
if field is not None:
args["autoconfig_state"] = unmarshal_DomainLastStatusAutoconfigState(field)
Expand Down
25 changes: 24 additions & 1 deletion scaleway/scaleway/tem/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,24 @@ class DomainLastStatusDmarcRecord:
"""


@dataclass
class DomainLastStatusMXRecord:
status: DomainLastStatusRecordStatus
"""
Status of the MX record's configuration. This record is optional to validate a domain, but highly recommended.
"""

last_valid_at: Optional[datetime] = None
"""
Time and date the MX record was last valid.
"""

error: Optional[str] = None
"""
An error text displays in case the record is not valid.
"""


@dataclass
class DomainLastStatusSpfRecord:
status: DomainLastStatusRecordStatus
Expand Down Expand Up @@ -1161,6 +1179,11 @@ class DomainLastStatus:
The DMARC record verification data.
"""

mx_record: Optional[DomainLastStatusMXRecord] = None
"""
The MX record verification data.
"""

autoconfig_state: Optional[DomainLastStatusAutoconfigState] = None
"""
The verification state of domain auto-configuration.
Expand All @@ -1171,7 +1194,7 @@ class DomainLastStatus:
class GetDomainLastStatusRequest:
domain_id: str
"""
ID of the domain to delete.
ID of the domain to get records status.
"""

region: Optional[ScwRegion] = None
Expand Down