coolipy.resources.projects

Projects resource clients (sync + async).

Classes

class AsyncProjects (transport: AsyncTransport)
Expand source code
class AsyncProjects(AsyncResourceBase):
    """Asynchronous client for Coolify projects."""

    async def list(self) -> CoolipyAPIResponse[ProjectList]:
        """List all projects."""
        return await self._get("/projects", response_model=list[ProjectModel])

    async def get(self, uuid: str) -> CoolipyAPIResponse[ProjectModel]:
        """Get a project by UUID."""
        return await self._get(f"/projects/{uuid}", response_model=ProjectModel)

    async def create(self, model: ProjectCreateModel) -> CoolipyAPIResponse[UUIDResponse]:
        """Create a project."""
        return await self._post("/projects", json=_dump(model), response_model=UUIDResponse)

    async def update(self, uuid: str, model: ProjectUpdateModel) -> CoolipyAPIResponse[dict]:
        """Update a project by UUID."""
        return await self._patch(f"/projects/{uuid}", json=_dump(model), response_model=dict)

    async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]:
        """Delete a project by UUID."""
        return await self._delete(f"/projects/{uuid}", response_model=MessageResponse)

    async def environment(
        self, uuid: str, environment_name_or_uuid: str
    ) -> CoolipyAPIResponse[EnvironmentModel]:
        """Get an environment by name or UUID."""
        return await self._get(
            f"/projects/{uuid}/{environment_name_or_uuid}", response_model=EnvironmentModel
        )

    async def environments(self, uuid: str) -> CoolipyAPIResponse[EnvironmentList]:
        """List environments for a project."""
        return await self._get(
            f"/projects/{uuid}/environments", response_model=list[EnvironmentModel]
        )

    async def create_environment(
        self, uuid: str, model: EnvironmentCreateModel
    ) -> CoolipyAPIResponse[UUIDResponse]:
        """Create an environment for a project."""
        return await self._post(
            f"/projects/{uuid}/environments", json=_dump(model), response_model=UUIDResponse
        )

    async def update_environment(
        self, uuid: str, environment_name_or_uuid: str, model: EnvironmentUpdateModel
    ) -> CoolipyAPIResponse[EnvironmentModel]:
        """Update an environment by name or UUID."""
        return await self._patch(
            f"/projects/{uuid}/environments/{environment_name_or_uuid}",
            json=_dump(model),
            response_model=EnvironmentModel,
        )

    async def delete_environment(
        self, uuid: str, environment_name_or_uuid: str
    ) -> CoolipyAPIResponse[MessageResponse]:
        """Delete an environment by name or UUID."""
        return await self._delete(
            f"/projects/{uuid}/environments/{environment_name_or_uuid}",
            response_model=MessageResponse,
        )

Asynchronous client for Coolify projects.

Ancestors

  • coolipy._base.AsyncResourceBase

Methods

async def create(self, model: ProjectCreateModel) ‑> coolipy._response.CoolipyAPIResponse[UUIDResponse]
Expand source code
async def create(self, model: ProjectCreateModel) -> CoolipyAPIResponse[UUIDResponse]:
    """Create a project."""
    return await self._post("/projects", json=_dump(model), response_model=UUIDResponse)

Create a project.

async def create_environment(self, uuid: str, model: EnvironmentCreateModel) ‑> coolipy._response.CoolipyAPIResponse[UUIDResponse]
Expand source code
async def create_environment(
    self, uuid: str, model: EnvironmentCreateModel
) -> CoolipyAPIResponse[UUIDResponse]:
    """Create an environment for a project."""
    return await self._post(
        f"/projects/{uuid}/environments", json=_dump(model), response_model=UUIDResponse
    )

Create an environment for a project.

async def delete(self, uuid: str) ‑> coolipy._response.CoolipyAPIResponse[MessageResponse]
Expand source code
async def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]:
    """Delete a project by UUID."""
    return await self._delete(f"/projects/{uuid}", response_model=MessageResponse)

Delete a project by UUID.

async def delete_environment(self, uuid: str, environment_name_or_uuid: str) ‑> coolipy._response.CoolipyAPIResponse[MessageResponse]
Expand source code
async def delete_environment(
    self, uuid: str, environment_name_or_uuid: str
) -> CoolipyAPIResponse[MessageResponse]:
    """Delete an environment by name or UUID."""
    return await self._delete(
        f"/projects/{uuid}/environments/{environment_name_or_uuid}",
        response_model=MessageResponse,
    )

Delete an environment by name or UUID.

async def environment(self, uuid: str, environment_name_or_uuid: str) ‑> coolipy._response.CoolipyAPIResponse[EnvironmentModel]
Expand source code
async def environment(
    self, uuid: str, environment_name_or_uuid: str
) -> CoolipyAPIResponse[EnvironmentModel]:
    """Get an environment by name or UUID."""
    return await self._get(
        f"/projects/{uuid}/{environment_name_or_uuid}", response_model=EnvironmentModel
    )

Get an environment by name or UUID.

async def environments(self, uuid: str) ‑> coolipy._response.CoolipyAPIResponse[list[EnvironmentModel]]
Expand source code
async def environments(self, uuid: str) -> CoolipyAPIResponse[EnvironmentList]:
    """List environments for a project."""
    return await self._get(
        f"/projects/{uuid}/environments", response_model=list[EnvironmentModel]
    )

List environments for a project.

async def get(self, uuid: str) ‑> coolipy._response.CoolipyAPIResponse[ProjectModel]
Expand source code
async def get(self, uuid: str) -> CoolipyAPIResponse[ProjectModel]:
    """Get a project by UUID."""
    return await self._get(f"/projects/{uuid}", response_model=ProjectModel)

Get a project by UUID.

async def list(self) ‑> coolipy._response.CoolipyAPIResponse[list[ProjectModel]]
Expand source code
async def list(self) -> CoolipyAPIResponse[ProjectList]:
    """List all projects."""
    return await self._get("/projects", response_model=list[ProjectModel])

List all projects.

async def update(self, uuid: str, model: ProjectUpdateModel) ‑> coolipy._response.CoolipyAPIResponse[dict]
Expand source code
async def update(self, uuid: str, model: ProjectUpdateModel) -> CoolipyAPIResponse[dict]:
    """Update a project by UUID."""
    return await self._patch(f"/projects/{uuid}", json=_dump(model), response_model=dict)

Update a project by UUID.

async def update_environment(self, uuid: str, environment_name_or_uuid: str, model: EnvironmentUpdateModel) ‑> coolipy._response.CoolipyAPIResponse[EnvironmentModel]
Expand source code
async def update_environment(
    self, uuid: str, environment_name_or_uuid: str, model: EnvironmentUpdateModel
) -> CoolipyAPIResponse[EnvironmentModel]:
    """Update an environment by name or UUID."""
    return await self._patch(
        f"/projects/{uuid}/environments/{environment_name_or_uuid}",
        json=_dump(model),
        response_model=EnvironmentModel,
    )

Update an environment by name or UUID.

class Projects (transport: SyncTransport)
Expand source code
class Projects(ResourceBase):
    """Synchronous client for Coolify projects."""

    def list(self) -> CoolipyAPIResponse[ProjectList]:
        """List all projects."""
        return self._get("/projects", response_model=list[ProjectModel])

    def get(self, uuid: str) -> CoolipyAPIResponse[ProjectModel]:
        """Get a project by UUID."""
        return self._get(f"/projects/{uuid}", response_model=ProjectModel)

    def create(self, model: ProjectCreateModel) -> CoolipyAPIResponse[UUIDResponse]:
        """Create a project."""
        return self._post("/projects", json=_dump(model), response_model=UUIDResponse)

    def update(self, uuid: str, model: ProjectUpdateModel) -> CoolipyAPIResponse[dict]:
        """Update a project by UUID."""
        return self._patch(f"/projects/{uuid}", json=_dump(model), response_model=dict)

    def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]:
        """Delete a project by UUID."""
        return self._delete(f"/projects/{uuid}", response_model=MessageResponse)

    def environment(
        self, uuid: str, environment_name_or_uuid: str
    ) -> CoolipyAPIResponse[EnvironmentModel]:
        """Get an environment by name or UUID."""
        return self._get(
            f"/projects/{uuid}/{environment_name_or_uuid}", response_model=EnvironmentModel
        )

    def environments(self, uuid: str) -> CoolipyAPIResponse[EnvironmentList]:
        """List environments for a project."""
        return self._get(f"/projects/{uuid}/environments", response_model=list[EnvironmentModel])

    def create_environment(
        self, uuid: str, model: EnvironmentCreateModel
    ) -> CoolipyAPIResponse[UUIDResponse]:
        """Create an environment for a project."""
        return self._post(
            f"/projects/{uuid}/environments", json=_dump(model), response_model=UUIDResponse
        )

    def update_environment(
        self, uuid: str, environment_name_or_uuid: str, model: EnvironmentUpdateModel
    ) -> CoolipyAPIResponse[EnvironmentModel]:
        """Update an environment by name or UUID."""
        return self._patch(
            f"/projects/{uuid}/environments/{environment_name_or_uuid}",
            json=_dump(model),
            response_model=EnvironmentModel,
        )

    def delete_environment(
        self, uuid: str, environment_name_or_uuid: str
    ) -> CoolipyAPIResponse[MessageResponse]:
        """Delete an environment by name or UUID."""
        return self._delete(
            f"/projects/{uuid}/environments/{environment_name_or_uuid}",
            response_model=MessageResponse,
        )

Synchronous client for Coolify projects.

Ancestors

  • coolipy._base.ResourceBase

Methods

def create(self, model: ProjectCreateModel) ‑> coolipy._response.CoolipyAPIResponse[UUIDResponse]
Expand source code
def create(self, model: ProjectCreateModel) -> CoolipyAPIResponse[UUIDResponse]:
    """Create a project."""
    return self._post("/projects", json=_dump(model), response_model=UUIDResponse)

Create a project.

def create_environment(self, uuid: str, model: EnvironmentCreateModel) ‑> coolipy._response.CoolipyAPIResponse[UUIDResponse]
Expand source code
def create_environment(
    self, uuid: str, model: EnvironmentCreateModel
) -> CoolipyAPIResponse[UUIDResponse]:
    """Create an environment for a project."""
    return self._post(
        f"/projects/{uuid}/environments", json=_dump(model), response_model=UUIDResponse
    )

Create an environment for a project.

def delete(self, uuid: str) ‑> coolipy._response.CoolipyAPIResponse[MessageResponse]
Expand source code
def delete(self, uuid: str) -> CoolipyAPIResponse[MessageResponse]:
    """Delete a project by UUID."""
    return self._delete(f"/projects/{uuid}", response_model=MessageResponse)

Delete a project by UUID.

def delete_environment(self, uuid: str, environment_name_or_uuid: str) ‑> coolipy._response.CoolipyAPIResponse[MessageResponse]
Expand source code
def delete_environment(
    self, uuid: str, environment_name_or_uuid: str
) -> CoolipyAPIResponse[MessageResponse]:
    """Delete an environment by name or UUID."""
    return self._delete(
        f"/projects/{uuid}/environments/{environment_name_or_uuid}",
        response_model=MessageResponse,
    )

Delete an environment by name or UUID.

def environment(self, uuid: str, environment_name_or_uuid: str) ‑> coolipy._response.CoolipyAPIResponse[EnvironmentModel]
Expand source code
def environment(
    self, uuid: str, environment_name_or_uuid: str
) -> CoolipyAPIResponse[EnvironmentModel]:
    """Get an environment by name or UUID."""
    return self._get(
        f"/projects/{uuid}/{environment_name_or_uuid}", response_model=EnvironmentModel
    )

Get an environment by name or UUID.

def environments(self, uuid: str) ‑> coolipy._response.CoolipyAPIResponse[list[EnvironmentModel]]
Expand source code
def environments(self, uuid: str) -> CoolipyAPIResponse[EnvironmentList]:
    """List environments for a project."""
    return self._get(f"/projects/{uuid}/environments", response_model=list[EnvironmentModel])

List environments for a project.

def get(self, uuid: str) ‑> coolipy._response.CoolipyAPIResponse[ProjectModel]
Expand source code
def get(self, uuid: str) -> CoolipyAPIResponse[ProjectModel]:
    """Get a project by UUID."""
    return self._get(f"/projects/{uuid}", response_model=ProjectModel)

Get a project by UUID.

def list(self) ‑> coolipy._response.CoolipyAPIResponse[list[ProjectModel]]
Expand source code
def list(self) -> CoolipyAPIResponse[ProjectList]:
    """List all projects."""
    return self._get("/projects", response_model=list[ProjectModel])

List all projects.

def update(self, uuid: str, model: ProjectUpdateModel) ‑> coolipy._response.CoolipyAPIResponse[dict]
Expand source code
def update(self, uuid: str, model: ProjectUpdateModel) -> CoolipyAPIResponse[dict]:
    """Update a project by UUID."""
    return self._patch(f"/projects/{uuid}", json=_dump(model), response_model=dict)

Update a project by UUID.

def update_environment(self, uuid: str, environment_name_or_uuid: str, model: EnvironmentUpdateModel) ‑> coolipy._response.CoolipyAPIResponse[EnvironmentModel]
Expand source code
def update_environment(
    self, uuid: str, environment_name_or_uuid: str, model: EnvironmentUpdateModel
) -> CoolipyAPIResponse[EnvironmentModel]:
    """Update an environment by name or UUID."""
    return self._patch(
        f"/projects/{uuid}/environments/{environment_name_or_uuid}",
        json=_dump(model),
        response_model=EnvironmentModel,
    )

Update an environment by name or UUID.