50 lines
1.1 KiB
Python
50 lines
1.1 KiB
Python
from decimal import Decimal
|
|
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel, HttpUrl
|
|
|
|
|
|
class CheckpointLink(BaseModel):
|
|
rel: str
|
|
href: HttpUrl
|
|
type: str
|
|
|
|
|
|
class CheckpointParams(BaseModel):
|
|
created: Optional[str]
|
|
creator: Optional[str]
|
|
message: Optional[str]
|
|
|
|
|
|
class CheckpointItem(BaseModel):
|
|
id: str
|
|
status: str
|
|
type: str
|
|
links: Optional[List[CheckpointLink]]
|
|
allowed_roles_or_users: List[str]
|
|
name: Optional[List[str]]
|
|
params: Optional[CheckpointParams]
|
|
s3_location: Optional[str]
|
|
created: Optional[str]
|
|
|
|
class Config:
|
|
json_encoders = {
|
|
Decimal: lambda v: str(v)
|
|
}
|
|
|
|
|
|
class CheckpointCollection(BaseModel):
|
|
items: Optional[List[CheckpointItem]]
|
|
links: Optional[List[CheckpointLink]]
|
|
previous_evaluated_key: Optional[str]
|
|
last_evaluated_key: Optional[str]
|
|
page: Optional[int]
|
|
per_page: Optional[int]
|
|
pages: Optional[int]
|
|
total: Optional[int]
|
|
|
|
class Config:
|
|
json_encoders = {
|
|
Decimal: lambda v: str(v)
|
|
}
|