Skip to content

Commit 0e55382

Browse files
authored
feat(tem): add dmarc validation status to DomainLastStatus (#423)
1 parent 051bac4 commit 0e55382

File tree

6 files changed

+110
-0
lines changed

6 files changed

+110
-0
lines changed

scaleway-async/scaleway_async/tem/v1alpha1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from .types import Domain
1515
from .types import DomainLastStatus
1616
from .types import DomainLastStatusDkimRecord
17+
from .types import DomainLastStatusDmarcRecord
1718
from .types import DomainLastStatusSpfRecord
1819
from .types import DomainReputation
1920
from .types import DomainStatistics
@@ -41,6 +42,7 @@
4142
"Domain",
4243
"DomainLastStatus",
4344
"DomainLastStatusDkimRecord",
45+
"DomainLastStatusDmarcRecord",
4446
"DomainLastStatusSpfRecord",
4547
"DomainReputation",
4648
"DomainStatistics",

scaleway-async/scaleway_async/tem/v1alpha1/marshalling.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
Domain,
1414
DomainLastStatus,
1515
DomainLastStatusDkimRecord,
16+
DomainLastStatusDmarcRecord,
1617
DomainLastStatusSpfRecord,
1718
DomainReputation,
1819
DomainStatistics,
@@ -178,6 +179,26 @@ def unmarshal_DomainLastStatusDkimRecord(data: Any) -> DomainLastStatusDkimRecor
178179
return DomainLastStatusDkimRecord(**args)
179180

180181

182+
def unmarshal_DomainLastStatusDmarcRecord(data: Any) -> DomainLastStatusDmarcRecord:
183+
if type(data) is not dict:
184+
raise TypeError(
185+
f"Unmarshalling the type 'DomainLastStatusDmarcRecord' failed as data isn't a dictionary."
186+
)
187+
188+
args: Dict[str, Any] = {}
189+
190+
field = data.get("error", None)
191+
args["error"] = field
192+
193+
field = data.get("last_valid_at", None)
194+
args["last_valid_at"] = parser.isoparse(field) if type(field) is str else field
195+
196+
field = data.get("status", None)
197+
args["status"] = field
198+
199+
return DomainLastStatusDmarcRecord(**args)
200+
201+
181202
def unmarshal_DomainLastStatusSpfRecord(data: Any) -> DomainLastStatusSpfRecord:
182203
if type(data) is not dict:
183204
raise TypeError(
@@ -283,6 +304,11 @@ def unmarshal_DomainLastStatus(data: Any) -> DomainLastStatus:
283304
unmarshal_DomainLastStatusDkimRecord(field) if field is not None else None
284305
)
285306

307+
field = data.get("dmarc_record", None)
308+
args["dmarc_record"] = (
309+
unmarshal_DomainLastStatusDmarcRecord(field) if field is not None else None
310+
)
311+
286312
field = data.get("domain_id", None)
287313
args["domain_id"] = field
288314

scaleway-async/scaleway_async/tem/v1alpha1/types.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@ class DomainLastStatus:
277277
The DKIM record verification data.
278278
"""
279279

280+
dmarc_record: Optional[DomainLastStatusDmarcRecord]
281+
"""
282+
The DMARC record verification data.
283+
"""
284+
280285

281286
@dataclass
282287
class DomainLastStatusDkimRecord:
@@ -300,6 +305,28 @@ class DomainLastStatusDkimRecord:
300305
"""
301306

302307

308+
@dataclass
309+
class DomainLastStatusDmarcRecord:
310+
"""
311+
Domain last status. dmarc record.
312+
"""
313+
314+
status: DomainLastStatusRecordStatus
315+
"""
316+
Status of the DMARC record's configuration.
317+
"""
318+
319+
last_valid_at: Optional[datetime]
320+
"""
321+
Time and date the DMARC record was last valid.
322+
"""
323+
324+
error: Optional[str]
325+
"""
326+
An error text displays in case the record is not valid.
327+
"""
328+
329+
303330
@dataclass
304331
class DomainLastStatusSpfRecord:
305332
"""

scaleway/scaleway/tem/v1alpha1/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from .types import Domain
1515
from .types import DomainLastStatus
1616
from .types import DomainLastStatusDkimRecord
17+
from .types import DomainLastStatusDmarcRecord
1718
from .types import DomainLastStatusSpfRecord
1819
from .types import DomainReputation
1920
from .types import DomainStatistics
@@ -41,6 +42,7 @@
4142
"Domain",
4243
"DomainLastStatus",
4344
"DomainLastStatusDkimRecord",
45+
"DomainLastStatusDmarcRecord",
4446
"DomainLastStatusSpfRecord",
4547
"DomainReputation",
4648
"DomainStatistics",

scaleway/scaleway/tem/v1alpha1/marshalling.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
Domain,
1414
DomainLastStatus,
1515
DomainLastStatusDkimRecord,
16+
DomainLastStatusDmarcRecord,
1617
DomainLastStatusSpfRecord,
1718
DomainReputation,
1819
DomainStatistics,
@@ -178,6 +179,26 @@ def unmarshal_DomainLastStatusDkimRecord(data: Any) -> DomainLastStatusDkimRecor
178179
return DomainLastStatusDkimRecord(**args)
179180

180181

182+
def unmarshal_DomainLastStatusDmarcRecord(data: Any) -> DomainLastStatusDmarcRecord:
183+
if type(data) is not dict:
184+
raise TypeError(
185+
f"Unmarshalling the type 'DomainLastStatusDmarcRecord' failed as data isn't a dictionary."
186+
)
187+
188+
args: Dict[str, Any] = {}
189+
190+
field = data.get("error", None)
191+
args["error"] = field
192+
193+
field = data.get("last_valid_at", None)
194+
args["last_valid_at"] = parser.isoparse(field) if type(field) is str else field
195+
196+
field = data.get("status", None)
197+
args["status"] = field
198+
199+
return DomainLastStatusDmarcRecord(**args)
200+
201+
181202
def unmarshal_DomainLastStatusSpfRecord(data: Any) -> DomainLastStatusSpfRecord:
182203
if type(data) is not dict:
183204
raise TypeError(
@@ -283,6 +304,11 @@ def unmarshal_DomainLastStatus(data: Any) -> DomainLastStatus:
283304
unmarshal_DomainLastStatusDkimRecord(field) if field is not None else None
284305
)
285306

307+
field = data.get("dmarc_record", None)
308+
args["dmarc_record"] = (
309+
unmarshal_DomainLastStatusDmarcRecord(field) if field is not None else None
310+
)
311+
286312
field = data.get("domain_id", None)
287313
args["domain_id"] = field
288314

scaleway/scaleway/tem/v1alpha1/types.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@ class DomainLastStatus:
277277
The DKIM record verification data.
278278
"""
279279

280+
dmarc_record: Optional[DomainLastStatusDmarcRecord]
281+
"""
282+
The DMARC record verification data.
283+
"""
284+
280285

281286
@dataclass
282287
class DomainLastStatusDkimRecord:
@@ -300,6 +305,28 @@ class DomainLastStatusDkimRecord:
300305
"""
301306

302307

308+
@dataclass
309+
class DomainLastStatusDmarcRecord:
310+
"""
311+
Domain last status. dmarc record.
312+
"""
313+
314+
status: DomainLastStatusRecordStatus
315+
"""
316+
Status of the DMARC record's configuration.
317+
"""
318+
319+
last_valid_at: Optional[datetime]
320+
"""
321+
Time and date the DMARC record was last valid.
322+
"""
323+
324+
error: Optional[str]
325+
"""
326+
An error text displays in case the record is not valid.
327+
"""
328+
329+
303330
@dataclass
304331
class DomainLastStatusSpfRecord:
305332
"""

0 commit comments

Comments
 (0)