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]