Source code for chariot.awm.models

from dataclasses import dataclass
from datetime import datetime
from typing import Any

from chariot.awm._utils import convert_to_datetime

__all__ = [
    "Workflow",
    "WorkflowDetails",
    "PodDetails",
]


class Base:
    def __post_init__(self):
        pass


[docs] @dataclass class Workflow(Base): id: str name: str description: str project_id: str config: dict[str, Any] | None created_at: datetime created_by: str updated_at: datetime updated_by: str deleted_at: datetime | None deleted_by: str | None dirty: bool | None def __post_init__(self): super().__post_init__() self.created_at = convert_to_datetime(self.created_at) self.updated_at = convert_to_datetime(self.updated_at) self.deleted_at = ( convert_to_datetime(self.deleted_at) if self.deleted_at is not None else None )
[docs] @dataclass class PodDetails(Base): name: str status: str
[docs] @dataclass class WorkflowDetails(Workflow): deployment: str pods: list[PodDetails]