diff --git a/swh/model/model.py b/swh/model/model.py --- a/swh/model/model.py +++ b/swh/model/model.py @@ -556,6 +556,25 @@ ) +@attr.s(frozen=True, slots=True) +class ExtID(BaseModel): + object_type: Final = "extid" + + extid = attr.ib(type=bytes, validator=type_validator()) + extid_type = attr.ib(type=str, validator=type_validator()) + target = attr.ib(type=Sha1Git, validator=type_validator()) + target_type = attr.ib(type=ObjectType, validator=type_validator()) + + @classmethod + def from_dict(cls, d): + return cls( + extid=d["extid"], + extid_type=d["extid_type"], + target=d["target"], + target_type=ObjectType(d["target_type"]), + ) + + @attr.s(frozen=True, slots=True) class DirectoryEntry(BaseModel): object_type: Final = "directory_entry"