coolipy.resources.deployments

Deployments resource clients (sync + async).

  1"""Deployments resource clients (sync + async)."""
  2
  3from __future__ import annotations
  4
  5from coolipy._base import AsyncResourceBase, ResourceBase
  6from coolipy._response import CoolipyAPIResponse
  7from coolipy.models.applications import ApplicationModel
  8from coolipy.models.deployments import DeploymentModel, DeployResponse
  9
 10DeploymentList = list[DeploymentModel]
 11ApplicationList = list[ApplicationModel]
 12
 13
 14class Deployments(ResourceBase):
 15    """Synchronous client for Coolify deployments."""
 16
 17    def list(self) -> CoolipyAPIResponse[DeploymentList]:
 18        """List currently running deployments."""
 19        return self._get("/deployments", response_model=list[DeploymentModel])
 20
 21    def get(self, uuid: str) -> CoolipyAPIResponse[DeploymentModel]:
 22        """Get a deployment by UUID."""
 23        return self._get(f"/deployments/{uuid}", response_model=DeploymentModel)
 24
 25    def cancel(self, uuid: str) -> CoolipyAPIResponse[dict]:
 26        """Cancel a deployment by UUID."""
 27        return self._post(f"/deployments/{uuid}/cancel", response_model=dict)
 28
 29    def deploy(
 30        self,
 31        *,
 32        tag: str | None = None,
 33        uuid: str | None = None,
 34        force: bool | None = None,
 35        pr: int | None = None,
 36        pull_request_id: int | None = None,
 37        docker_tag: str | None = None,
 38    ) -> CoolipyAPIResponse[DeployResponse]:
 39        """Deploy resources by tag or UUID."""
 40        params: dict[str, object] = {}
 41        if tag is not None:
 42            params["tag"] = tag
 43        if uuid is not None:
 44            params["uuid"] = uuid
 45        if force is not None:
 46            params["force"] = force
 47        if pr is not None:
 48            params["pr"] = pr
 49        if pull_request_id is not None:
 50            params["pull_request_id"] = pull_request_id
 51        if docker_tag is not None:
 52            params["docker_tag"] = docker_tag
 53        return self._post("/deploy", params=params, response_model=DeployResponse)
 54
 55    def application_deployments(
 56        self, uuid: str, *, skip: int = 0, take: int = 10
 57    ) -> CoolipyAPIResponse[ApplicationList]:
 58        """List deployments for an application."""
 59        return self._get(
 60            f"/deployments/applications/{uuid}",
 61            params={"skip": skip, "take": take},
 62            response_model=list[ApplicationModel],
 63        )
 64
 65
 66class AsyncDeployments(AsyncResourceBase):
 67    """Asynchronous client for Coolify deployments."""
 68
 69    async def list(self) -> CoolipyAPIResponse[DeploymentList]:
 70        """List currently running deployments."""
 71        return await self._get("/deployments", response_model=list[DeploymentModel])
 72
 73    async def get(self, uuid: str) -> CoolipyAPIResponse[DeploymentModel]:
 74        """Get a deployment by UUID."""
 75        return await self._get(f"/deployments/{uuid}", response_model=DeploymentModel)
 76
 77    async def cancel(self, uuid: str) -> CoolipyAPIResponse[dict]:
 78        """Cancel a deployment by UUID."""
 79        return await self._post(f"/deployments/{uuid}/cancel", response_model=dict)
 80
 81    async def deploy(
 82        self,
 83        *,
 84        tag: str | None = None,
 85        uuid: str | None = None,
 86        force: bool | None = None,
 87        pr: int | None = None,
 88        pull_request_id: int | None = None,
 89        docker_tag: str | None = None,
 90    ) -> CoolipyAPIResponse[DeployResponse]:
 91        """Deploy resources by tag or UUID."""
 92        params: dict[str, object] = {}
 93        if tag is not None:
 94            params["tag"] = tag
 95        if uuid is not None:
 96            params["uuid"] = uuid
 97        if force is not None:
 98            params["force"] = force
 99        if pr is not None:
100            params["pr"] = pr
101        if pull_request_id is not None:
102            params["pull_request_id"] = pull_request_id
103        if docker_tag is not None:
104            params["docker_tag"] = docker_tag
105        return await self._post("/deploy", params=params, response_model=DeployResponse)
106
107    async def application_deployments(
108        self, uuid: str, *, skip: int = 0, take: int = 10
109    ) -> CoolipyAPIResponse[ApplicationList]:
110        """List deployments for an application."""
111        return await self._get(
112            f"/deployments/applications/{uuid}",
113            params={"skip": skip, "take": take},
114            response_model=list[ApplicationModel],
115        )
class Deployments(coolipy._base.ResourceBase):
15class Deployments(ResourceBase):
16    """Synchronous client for Coolify deployments."""
17
18    def list(self) -> CoolipyAPIResponse[DeploymentList]:
19        """List currently running deployments."""
20        return self._get("/deployments", response_model=list[DeploymentModel])
21
22    def get(self, uuid: str) -> CoolipyAPIResponse[DeploymentModel]:
23        """Get a deployment by UUID."""
24        return self._get(f"/deployments/{uuid}", response_model=DeploymentModel)
25
26    def cancel(self, uuid: str) -> CoolipyAPIResponse[dict]:
27        """Cancel a deployment by UUID."""
28        return self._post(f"/deployments/{uuid}/cancel", response_model=dict)
29
30    def deploy(
31        self,
32        *,
33        tag: str | None = None,
34        uuid: str | None = None,
35        force: bool | None = None,
36        pr: int | None = None,
37        pull_request_id: int | None = None,
38        docker_tag: str | None = None,
39    ) -> CoolipyAPIResponse[DeployResponse]:
40        """Deploy resources by tag or UUID."""
41        params: dict[str, object] = {}
42        if tag is not None:
43            params["tag"] = tag
44        if uuid is not None:
45            params["uuid"] = uuid
46        if force is not None:
47            params["force"] = force
48        if pr is not None:
49            params["pr"] = pr
50        if pull_request_id is not None:
51            params["pull_request_id"] = pull_request_id
52        if docker_tag is not None:
53            params["docker_tag"] = docker_tag
54        return self._post("/deploy", params=params, response_model=DeployResponse)
55
56    def application_deployments(
57        self, uuid: str, *, skip: int = 0, take: int = 10
58    ) -> CoolipyAPIResponse[ApplicationList]:
59        """List deployments for an application."""
60        return self._get(
61            f"/deployments/applications/{uuid}",
62            params={"skip": skip, "take": take},
63            response_model=list[ApplicationModel],
64        )

Synchronous client for Coolify deployments.

18    def list(self) -> CoolipyAPIResponse[DeploymentList]:
19        """List currently running deployments."""
20        return self._get("/deployments", response_model=list[DeploymentModel])

List currently running deployments.

def get( self, uuid: str) -> coolipy.CoolipyAPIResponse[coolipy.models.deployments.DeploymentModel]:
22    def get(self, uuid: str) -> CoolipyAPIResponse[DeploymentModel]:
23        """Get a deployment by UUID."""
24        return self._get(f"/deployments/{uuid}", response_model=DeploymentModel)

Get a deployment by UUID.

def cancel(self, uuid: str) -> coolipy.CoolipyAPIResponse[dict]:
26    def cancel(self, uuid: str) -> CoolipyAPIResponse[dict]:
27        """Cancel a deployment by UUID."""
28        return self._post(f"/deployments/{uuid}/cancel", response_model=dict)

Cancel a deployment by UUID.

def deploy( self, *, tag: str | None = None, uuid: str | None = None, force: bool | None = None, pr: int | None = None, pull_request_id: int | None = None, docker_tag: str | None = None) -> coolipy.CoolipyAPIResponse[coolipy.models.deployments.DeployResponse]:
30    def deploy(
31        self,
32        *,
33        tag: str | None = None,
34        uuid: str | None = None,
35        force: bool | None = None,
36        pr: int | None = None,
37        pull_request_id: int | None = None,
38        docker_tag: str | None = None,
39    ) -> CoolipyAPIResponse[DeployResponse]:
40        """Deploy resources by tag or UUID."""
41        params: dict[str, object] = {}
42        if tag is not None:
43            params["tag"] = tag
44        if uuid is not None:
45            params["uuid"] = uuid
46        if force is not None:
47            params["force"] = force
48        if pr is not None:
49            params["pr"] = pr
50        if pull_request_id is not None:
51            params["pull_request_id"] = pull_request_id
52        if docker_tag is not None:
53            params["docker_tag"] = docker_tag
54        return self._post("/deploy", params=params, response_model=DeployResponse)

Deploy resources by tag or UUID.

def application_deployments( self, uuid: str, *, skip: int = 0, take: int = 10) -> coolipy.CoolipyAPIResponse[list[coolipy.models.applications.ApplicationModel]]:
56    def application_deployments(
57        self, uuid: str, *, skip: int = 0, take: int = 10
58    ) -> CoolipyAPIResponse[ApplicationList]:
59        """List deployments for an application."""
60        return self._get(
61            f"/deployments/applications/{uuid}",
62            params={"skip": skip, "take": take},
63            response_model=list[ApplicationModel],
64        )

List deployments for an application.

class AsyncDeployments(coolipy._base.AsyncResourceBase):
 67class AsyncDeployments(AsyncResourceBase):
 68    """Asynchronous client for Coolify deployments."""
 69
 70    async def list(self) -> CoolipyAPIResponse[DeploymentList]:
 71        """List currently running deployments."""
 72        return await self._get("/deployments", response_model=list[DeploymentModel])
 73
 74    async def get(self, uuid: str) -> CoolipyAPIResponse[DeploymentModel]:
 75        """Get a deployment by UUID."""
 76        return await self._get(f"/deployments/{uuid}", response_model=DeploymentModel)
 77
 78    async def cancel(self, uuid: str) -> CoolipyAPIResponse[dict]:
 79        """Cancel a deployment by UUID."""
 80        return await self._post(f"/deployments/{uuid}/cancel", response_model=dict)
 81
 82    async def deploy(
 83        self,
 84        *,
 85        tag: str | None = None,
 86        uuid: str | None = None,
 87        force: bool | None = None,
 88        pr: int | None = None,
 89        pull_request_id: int | None = None,
 90        docker_tag: str | None = None,
 91    ) -> CoolipyAPIResponse[DeployResponse]:
 92        """Deploy resources by tag or UUID."""
 93        params: dict[str, object] = {}
 94        if tag is not None:
 95            params["tag"] = tag
 96        if uuid is not None:
 97            params["uuid"] = uuid
 98        if force is not None:
 99            params["force"] = force
100        if pr is not None:
101            params["pr"] = pr
102        if pull_request_id is not None:
103            params["pull_request_id"] = pull_request_id
104        if docker_tag is not None:
105            params["docker_tag"] = docker_tag
106        return await self._post("/deploy", params=params, response_model=DeployResponse)
107
108    async def application_deployments(
109        self, uuid: str, *, skip: int = 0, take: int = 10
110    ) -> CoolipyAPIResponse[ApplicationList]:
111        """List deployments for an application."""
112        return await self._get(
113            f"/deployments/applications/{uuid}",
114            params={"skip": skip, "take": take},
115            response_model=list[ApplicationModel],
116        )

Asynchronous client for Coolify deployments.

async def list( self) -> coolipy.CoolipyAPIResponse[list[coolipy.models.deployments.DeploymentModel]]:
70    async def list(self) -> CoolipyAPIResponse[DeploymentList]:
71        """List currently running deployments."""
72        return await self._get("/deployments", response_model=list[DeploymentModel])

List currently running deployments.

async def get( self, uuid: str) -> coolipy.CoolipyAPIResponse[coolipy.models.deployments.DeploymentModel]:
74    async def get(self, uuid: str) -> CoolipyAPIResponse[DeploymentModel]:
75        """Get a deployment by UUID."""
76        return await self._get(f"/deployments/{uuid}", response_model=DeploymentModel)

Get a deployment by UUID.

async def cancel(self, uuid: str) -> coolipy.CoolipyAPIResponse[dict]:
78    async def cancel(self, uuid: str) -> CoolipyAPIResponse[dict]:
79        """Cancel a deployment by UUID."""
80        return await self._post(f"/deployments/{uuid}/cancel", response_model=dict)

Cancel a deployment by UUID.

async def deploy( self, *, tag: str | None = None, uuid: str | None = None, force: bool | None = None, pr: int | None = None, pull_request_id: int | None = None, docker_tag: str | None = None) -> coolipy.CoolipyAPIResponse[coolipy.models.deployments.DeployResponse]:
 82    async def deploy(
 83        self,
 84        *,
 85        tag: str | None = None,
 86        uuid: str | None = None,
 87        force: bool | None = None,
 88        pr: int | None = None,
 89        pull_request_id: int | None = None,
 90        docker_tag: str | None = None,
 91    ) -> CoolipyAPIResponse[DeployResponse]:
 92        """Deploy resources by tag or UUID."""
 93        params: dict[str, object] = {}
 94        if tag is not None:
 95            params["tag"] = tag
 96        if uuid is not None:
 97            params["uuid"] = uuid
 98        if force is not None:
 99            params["force"] = force
100        if pr is not None:
101            params["pr"] = pr
102        if pull_request_id is not None:
103            params["pull_request_id"] = pull_request_id
104        if docker_tag is not None:
105            params["docker_tag"] = docker_tag
106        return await self._post("/deploy", params=params, response_model=DeployResponse)

Deploy resources by tag or UUID.

async def application_deployments( self, uuid: str, *, skip: int = 0, take: int = 10) -> coolipy.CoolipyAPIResponse[list[coolipy.models.applications.ApplicationModel]]:
108    async def application_deployments(
109        self, uuid: str, *, skip: int = 0, take: int = 10
110    ) -> CoolipyAPIResponse[ApplicationList]:
111        """List deployments for an application."""
112        return await self._get(
113            f"/deployments/applications/{uuid}",
114            params={"skip": skip, "take": take},
115            response_model=list[ApplicationModel],
116        )

List deployments for an application.