Files
StandOut/lambda_config/redirects_base.py
2024-04-25 12:54:31 +02:00

55 lines
1.5 KiB
Python

from typing import Dict, Optional
from pydantic import BaseModel
class Content(BaseModel):
type: str
key: str
url: Optional[str | None]
class Tag(BaseModel):
status: str
content: Content | Dict[str, Content] | None = None
class Customer(BaseModel):
status: str
tags: Dict[str, Tag] | None = None
class Redirects(BaseModel):
customers: Dict[str, Customer]
if __name__ == "__main__":
r = Redirects (
customers = {
"cust1": Customer(
status="active",
tags= {
"tag1" : Tag (
status="active",
content= Content(
type="s3",
key="foo",
url=None
)
),
"tag2" : Tag(
status="active",
content = {
"face1" : Content(
type="s3",
key="contentface1",
url = "foo"
),
"face2": Content(
type="s3",
key="contentface2",
url = "bar"
),
}
)
}
)
}
)
r.customers['cust2'] = Customer(status="inactive", tags=None)
print(r.model_dump_json(indent=2))