Add Pydantic support for JRD (resolves #1)

This commit is contained in:
2024-08-16 16:12:47 +01:00
parent 82ba2af669
commit 18ab52e123
6 changed files with 221 additions and 32 deletions

View File

@@ -0,0 +1,32 @@
from pydantic import BaseModel, AnyUrl, FutureDatetime
from typing import Optional, List, Mapping
class JSONResourceDefinitionLink(BaseModel):
"""
Link element of a JSON Resource Definition (JRD)
https://www.rfc-editor.org/rfc/rfc7033#section-4.4.4
"""
rel: str
type: Optional[str] = None
href: Optional[AnyUrl] = None
titles: Optional[Mapping[str, str]] = None
properties: Optional[Mapping[str, str]] = None
template: Optional[str] = None
class JSONResourceDefinition(BaseModel):
"""
JSON Resource Definition (JRD)
https://www.rfc-editor.org/rfc/rfc6415#appendix-A
https://www.rfc-editor.org/rfc/rfc7033#section-4.4
"""
subject: str
expires: Optional[FutureDatetime] = None
aliases: Optional[List[str]] = None
properties: Optional[Mapping[str, str]] = None
links: Optional[List[JSONResourceDefinitionLink]] = None