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