coolipy.resources.tags
Tags resource clients (sync + async).
1"""Tags resource clients (sync + async).""" 2 3from __future__ import annotations 4 5from typing import Any 6 7from coolipy._base import AsyncResourceBase, ResourceBase 8from coolipy._response import CoolipyAPIResponse 9from coolipy.models.common import MessageResponse, Tag, TagCreate, TagUpdate 10 11TagList = list[Tag] 12 13 14def _dump(model: Any) -> dict[str, Any]: 15 return model.model_dump(mode="json", exclude_none=True) 16 17 18class Tags(ResourceBase): 19 """Synchronous client for Coolify tags.""" 20 21 def list(self) -> CoolipyAPIResponse[TagList]: 22 """List all tags.""" 23 return self._get("/tags", response_model=list[Tag]) 24 25 def create(self, model: TagCreate) -> CoolipyAPIResponse[Tag]: 26 """Create a tag.""" 27 return self._post("/tags", json=_dump(model), response_model=Tag) 28 29 def update(self, uuid: str, model: TagUpdate) -> CoolipyAPIResponse[Tag]: 30 """Update a tag by UUID.""" 31 return self._patch(f"/tags/{uuid}", json=_dump(model), response_model=Tag) 32 33 def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 34 """Delete a tag by UUID.""" 35 return self._delete(f"/tags/{uuid}", response_model=MessageResponse) 36 37 38class AsyncTags(AsyncResourceBase): 39 """Asynchronous client for Coolify tags.""" 40 41 async def list(self) -> CoolipyAPIResponse[TagList]: 42 """List all tags.""" 43 return await self._get("/tags", response_model=list[Tag]) 44 45 async def create(self, model: TagCreate) -> CoolipyAPIResponse[Tag]: 46 """Create a tag.""" 47 return await self._post("/tags", json=_dump(model), response_model=Tag) 48 49 async def update(self, uuid: str, model: TagUpdate) -> CoolipyAPIResponse[Tag]: 50 """Update a tag by UUID.""" 51 return await self._patch(f"/tags/{uuid}", json=_dump(model), response_model=Tag) 52 53 async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 54 """Delete a tag by UUID.""" 55 return await self._delete(f"/tags/{uuid}", response_model=MessageResponse)
TagList =
list[coolipy.models.common.Tag]
class
Tags(coolipy._base.ResourceBase):
19class Tags(ResourceBase): 20 """Synchronous client for Coolify tags.""" 21 22 def list(self) -> CoolipyAPIResponse[TagList]: 23 """List all tags.""" 24 return self._get("/tags", response_model=list[Tag]) 25 26 def create(self, model: TagCreate) -> CoolipyAPIResponse[Tag]: 27 """Create a tag.""" 28 return self._post("/tags", json=_dump(model), response_model=Tag) 29 30 def update(self, uuid: str, model: TagUpdate) -> CoolipyAPIResponse[Tag]: 31 """Update a tag by UUID.""" 32 return self._patch(f"/tags/{uuid}", json=_dump(model), response_model=Tag) 33 34 def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 35 """Delete a tag by UUID.""" 36 return self._delete(f"/tags/{uuid}", response_model=MessageResponse)
Synchronous client for Coolify tags.
22 def list(self) -> CoolipyAPIResponse[TagList]: 23 """List all tags.""" 24 return self._get("/tags", response_model=list[Tag])
List all tags.
def
create( self, model: coolipy.models.common.TagCreate) -> coolipy.CoolipyAPIResponse[coolipy.models.common.Tag]:
26 def create(self, model: TagCreate) -> CoolipyAPIResponse[Tag]: 27 """Create a tag.""" 28 return self._post("/tags", json=_dump(model), response_model=Tag)
Create a tag.
def
update( self, uuid: str, model: coolipy.models.common.TagUpdate) -> coolipy.CoolipyAPIResponse[coolipy.models.common.Tag]:
30 def update(self, uuid: str, model: TagUpdate) -> CoolipyAPIResponse[Tag]: 31 """Update a tag by UUID.""" 32 return self._patch(f"/tags/{uuid}", json=_dump(model), response_model=Tag)
Update a tag by UUID.
class
AsyncTags(coolipy._base.AsyncResourceBase):
39class AsyncTags(AsyncResourceBase): 40 """Asynchronous client for Coolify tags.""" 41 42 async def list(self) -> CoolipyAPIResponse[TagList]: 43 """List all tags.""" 44 return await self._get("/tags", response_model=list[Tag]) 45 46 async def create(self, model: TagCreate) -> CoolipyAPIResponse[Tag]: 47 """Create a tag.""" 48 return await self._post("/tags", json=_dump(model), response_model=Tag) 49 50 async def update(self, uuid: str, model: TagUpdate) -> CoolipyAPIResponse[Tag]: 51 """Update a tag by UUID.""" 52 return await self._patch(f"/tags/{uuid}", json=_dump(model), response_model=Tag) 53 54 async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 55 """Delete a tag by UUID.""" 56 return await self._delete(f"/tags/{uuid}", response_model=MessageResponse)
Asynchronous client for Coolify tags.
42 async def list(self) -> CoolipyAPIResponse[TagList]: 43 """List all tags.""" 44 return await self._get("/tags", response_model=list[Tag])
List all tags.
async def
create( self, model: coolipy.models.common.TagCreate) -> coolipy.CoolipyAPIResponse[coolipy.models.common.Tag]:
46 async def create(self, model: TagCreate) -> CoolipyAPIResponse[Tag]: 47 """Create a tag.""" 48 return await self._post("/tags", json=_dump(model), response_model=Tag)
Create a tag.
async def
update( self, uuid: str, model: coolipy.models.common.TagUpdate) -> coolipy.CoolipyAPIResponse[coolipy.models.common.Tag]:
50 async def update(self, uuid: str, model: TagUpdate) -> CoolipyAPIResponse[Tag]: 51 """Update a tag by UUID.""" 52 return await self._patch(f"/tags/{uuid}", json=_dump(model), response_model=Tag)
Update a tag by UUID.
async def
delete( self, uuid: str) -> coolipy.CoolipyAPIResponse[coolipy.models.common.MessageResponse]:
54 async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 55 """Delete a tag by UUID.""" 56 return await self._delete(f"/tags/{uuid}", response_model=MessageResponse)
Delete a tag by UUID.