coolipy.resources.security
Security (private keys) resource clients (sync + async).
1"""Security (private keys) 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, UUIDResponse 10from coolipy.models.security import ( 11 PrivateKeyCreateModel, 12 PrivateKeyModel, 13 PrivateKeyUpdateModel, 14) 15 16PrivateKeyList = list[PrivateKeyModel] 17 18 19def _dump(model: Any) -> dict[str, Any]: 20 return model.model_dump(mode="json", exclude_none=True) 21 22 23class Security(ResourceBase): 24 """Synchronous client for Coolify private keys.""" 25 26 def list(self) -> CoolipyAPIResponse[PrivateKeyList]: 27 """List all private keys.""" 28 return self._get("/security/keys", response_model=list[PrivateKeyModel]) 29 30 def get(self, uuid: str) -> CoolipyAPIResponse[PrivateKeyModel]: 31 """Get a private key by UUID.""" 32 return self._get(f"/security/keys/{uuid}", response_model=PrivateKeyModel) 33 34 def create(self, model: PrivateKeyCreateModel) -> CoolipyAPIResponse[UUIDResponse]: 35 """Create a private key.""" 36 return self._post("/security/keys", json=_dump(model), response_model=UUIDResponse) 37 38 def update(self, uuid: str, model: PrivateKeyUpdateModel) -> CoolipyAPIResponse[UUIDResponse]: 39 """Update a private key by UUID.""" 40 return self._patch(f"/security/keys/{uuid}", json=_dump(model), response_model=UUIDResponse) 41 42 def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 43 """Delete a private key by UUID.""" 44 return self._delete(f"/security/keys/{uuid}", response_model=MessageResponse) 45 46 47class AsyncSecurity(AsyncResourceBase): 48 """Asynchronous client for Coolify private keys.""" 49 50 async def list(self) -> CoolipyAPIResponse[PrivateKeyList]: 51 """List all private keys.""" 52 return await self._get("/security/keys", response_model=list[PrivateKeyModel]) 53 54 async def get(self, uuid: str) -> CoolipyAPIResponse[PrivateKeyModel]: 55 """Get a private key by UUID.""" 56 return await self._get(f"/security/keys/{uuid}", response_model=PrivateKeyModel) 57 58 async def create(self, model: PrivateKeyCreateModel) -> CoolipyAPIResponse[UUIDResponse]: 59 """Create a private key.""" 60 return await self._post("/security/keys", json=_dump(model), response_model=UUIDResponse) 61 62 async def update( 63 self, uuid: str, model: PrivateKeyUpdateModel 64 ) -> CoolipyAPIResponse[UUIDResponse]: 65 """Update a private key by UUID.""" 66 return await self._patch( 67 f"/security/keys/{uuid}", json=_dump(model), response_model=UUIDResponse 68 ) 69 70 async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 71 """Delete a private key by UUID.""" 72 return await self._delete(f"/security/keys/{uuid}", response_model=MessageResponse)
PrivateKeyList =
list[coolipy.models.security.PrivateKeyModel]
class
Security(coolipy._base.ResourceBase):
24class Security(ResourceBase): 25 """Synchronous client for Coolify private keys.""" 26 27 def list(self) -> CoolipyAPIResponse[PrivateKeyList]: 28 """List all private keys.""" 29 return self._get("/security/keys", response_model=list[PrivateKeyModel]) 30 31 def get(self, uuid: str) -> CoolipyAPIResponse[PrivateKeyModel]: 32 """Get a private key by UUID.""" 33 return self._get(f"/security/keys/{uuid}", response_model=PrivateKeyModel) 34 35 def create(self, model: PrivateKeyCreateModel) -> CoolipyAPIResponse[UUIDResponse]: 36 """Create a private key.""" 37 return self._post("/security/keys", json=_dump(model), response_model=UUIDResponse) 38 39 def update(self, uuid: str, model: PrivateKeyUpdateModel) -> CoolipyAPIResponse[UUIDResponse]: 40 """Update a private key by UUID.""" 41 return self._patch(f"/security/keys/{uuid}", json=_dump(model), response_model=UUIDResponse) 42 43 def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 44 """Delete a private key by UUID.""" 45 return self._delete(f"/security/keys/{uuid}", response_model=MessageResponse)
Synchronous client for Coolify private keys.
27 def list(self) -> CoolipyAPIResponse[PrivateKeyList]: 28 """List all private keys.""" 29 return self._get("/security/keys", response_model=list[PrivateKeyModel])
List all private keys.
31 def get(self, uuid: str) -> CoolipyAPIResponse[PrivateKeyModel]: 32 """Get a private key by UUID.""" 33 return self._get(f"/security/keys/{uuid}", response_model=PrivateKeyModel)
Get a private key by UUID.
def
create( self, model: coolipy.models.security.PrivateKeyCreateModel) -> coolipy.CoolipyAPIResponse[coolipy.models.common.UUIDResponse]:
35 def create(self, model: PrivateKeyCreateModel) -> CoolipyAPIResponse[UUIDResponse]: 36 """Create a private key.""" 37 return self._post("/security/keys", json=_dump(model), response_model=UUIDResponse)
Create a private key.
def
update( self, uuid: str, model: coolipy.models.security.PrivateKeyUpdateModel) -> coolipy.CoolipyAPIResponse[coolipy.models.common.UUIDResponse]:
39 def update(self, uuid: str, model: PrivateKeyUpdateModel) -> CoolipyAPIResponse[UUIDResponse]: 40 """Update a private key by UUID.""" 41 return self._patch(f"/security/keys/{uuid}", json=_dump(model), response_model=UUIDResponse)
Update a private key by UUID.
class
AsyncSecurity(coolipy._base.AsyncResourceBase):
48class AsyncSecurity(AsyncResourceBase): 49 """Asynchronous client for Coolify private keys.""" 50 51 async def list(self) -> CoolipyAPIResponse[PrivateKeyList]: 52 """List all private keys.""" 53 return await self._get("/security/keys", response_model=list[PrivateKeyModel]) 54 55 async def get(self, uuid: str) -> CoolipyAPIResponse[PrivateKeyModel]: 56 """Get a private key by UUID.""" 57 return await self._get(f"/security/keys/{uuid}", response_model=PrivateKeyModel) 58 59 async def create(self, model: PrivateKeyCreateModel) -> CoolipyAPIResponse[UUIDResponse]: 60 """Create a private key.""" 61 return await self._post("/security/keys", json=_dump(model), response_model=UUIDResponse) 62 63 async def update( 64 self, uuid: str, model: PrivateKeyUpdateModel 65 ) -> CoolipyAPIResponse[UUIDResponse]: 66 """Update a private key by UUID.""" 67 return await self._patch( 68 f"/security/keys/{uuid}", json=_dump(model), response_model=UUIDResponse 69 ) 70 71 async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 72 """Delete a private key by UUID.""" 73 return await self._delete(f"/security/keys/{uuid}", response_model=MessageResponse)
Asynchronous client for Coolify private keys.
51 async def list(self) -> CoolipyAPIResponse[PrivateKeyList]: 52 """List all private keys.""" 53 return await self._get("/security/keys", response_model=list[PrivateKeyModel])
List all private keys.
async def
get( self, uuid: str) -> coolipy.CoolipyAPIResponse[coolipy.models.security.PrivateKeyModel]:
55 async def get(self, uuid: str) -> CoolipyAPIResponse[PrivateKeyModel]: 56 """Get a private key by UUID.""" 57 return await self._get(f"/security/keys/{uuid}", response_model=PrivateKeyModel)
Get a private key by UUID.
async def
create( self, model: coolipy.models.security.PrivateKeyCreateModel) -> coolipy.CoolipyAPIResponse[coolipy.models.common.UUIDResponse]:
59 async def create(self, model: PrivateKeyCreateModel) -> CoolipyAPIResponse[UUIDResponse]: 60 """Create a private key.""" 61 return await self._post("/security/keys", json=_dump(model), response_model=UUIDResponse)
Create a private key.
async def
update( self, uuid: str, model: coolipy.models.security.PrivateKeyUpdateModel) -> coolipy.CoolipyAPIResponse[coolipy.models.common.UUIDResponse]:
63 async def update( 64 self, uuid: str, model: PrivateKeyUpdateModel 65 ) -> CoolipyAPIResponse[UUIDResponse]: 66 """Update a private key by UUID.""" 67 return await self._patch( 68 f"/security/keys/{uuid}", json=_dump(model), response_model=UUIDResponse 69 )
Update a private key by UUID.
async def
delete( self, uuid: str) -> coolipy.CoolipyAPIResponse[coolipy.models.common.MessageResponse]:
71 async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]: 72 """Delete a private key by UUID.""" 73 return await self._delete(f"/security/keys/{uuid}", response_model=MessageResponse)
Delete a private key by UUID.