Coverage for serverctl_deployd/models/docker.py : 100%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1"""
2Models for Docker API requests and responses
3"""
5from typing import List, Optional
7from pydantic import BaseModel, Field
10class PruneRequest(BaseModel):
11 """Model for prune request"""
12 containers: Optional[bool] = Field(
13 False, description="Delete stopped containers")
14 images: Optional[bool] = Field(False, description="Delete unused images")
15 volumes: Optional[bool] = Field(False, description="Delete unused volumes")
16 networks: Optional[bool] = Field(
17 False, description="Delete unused networks")
18 build_cache: Optional[bool] = Field(
19 False, description="Delete the builder cache")
20 all: Optional[bool] = Field(
21 False, description="Delete stopped containers, unused images, unused volumes,\
22 unused networks and the builder cache")
25class ContainersDeleted(BaseModel):
26 """Model for pruned containers in prune response"""
27 containers_deleted: list[str] = Field(
28 None, alias="ContainersDeleted", description="Containers deleted")
29 space_reclaimed: int = Field(
30 None, alias="SpaceReclaimed", description="Space reclaimed")
33class ImagesDeleted(BaseModel):
34 """Model for pruned images in prune response"""
35 images_deleted: list[str] = Field(
36 None, alias="ImagesDeleted", description="Images deleted")
37 space_reclaimed: int = Field(
38 None, alias="SpaceReclaimed", description="Space reclaimed")
41class NetworksDeleted(BaseModel):
42 """Model for pruned networks in prune response"""
43 networks_deleted: list[str] = Field(
44 None, alias="NetworksDeleted", description="Networks deleted")
47class VolumesDeleted(BaseModel):
48 """Model for pruned volumes in prune response"""
49 volumes_deleted: list[str] = Field(
50 None, alias="VolumesDeleted", description="Volumes deleted")
53class BuildCachesDeleted(BaseModel):
54 """Model for pruned build caches in prune response"""
55 caches_deleted: list[str] = Field(
56 None, alias="CachesDeleted", description="Caches deleted")
57 space_reclaimed: int = Field(
58 None, alias="SpaceReclaimed", description="Space reclaimed")
61class PruneResponse(BaseModel):
62 """Model for prune response"""
63 containers: Optional[ContainersDeleted] = None
64 images: Optional[ImagesDeleted] = None
65 networks: Optional[NetworksDeleted] = None
66 volumes: Optional[VolumesDeleted] = None
67 build_cache: Optional[BuildCachesDeleted] = None
70class ContainerDetails(BaseModel):
71 """Model for container details"""
72 id: str = Field(..., description="Container ID")
73 name: str = Field(..., description="Container name")
74 status: str = Field(..., description="Container status")
75 image: List[str] = Field(None, description="Image name")
76 ports: dict[str, List[dict[str, str]]] = Field(
77 None, description="Container ports")
78 created: str = Field(..., description="Container creation time")
81class DeleteRequest(BaseModel):
82 """Model for delete request"""
83 container_id: str = Field(..., description="Container ID")
84 force: bool = Field(False, description="Force delete")
85 v: bool = Field(False, description="Remove volumes")
88class ImageTagRequest(BaseModel):
89 """Model for image tag request"""
90 image_id: str = Field(..., description="Image ID")
91 tag: str = Field(..., description="Image tag")
94class LogsResponse(BaseModel):
95 """Model for logs response"""
96 container_id: str = Field(..., description="Container ID")
97 logs: str = Field(..., description="Logs")