coolipy.models.services

Service models for the Coolify API.

 1"""Service models for the Coolify API."""
 2
 3from __future__ import annotations
 4
 5from datetime import datetime
 6
 7from coolipy.models.base import CoolipyBaseModel
 8
 9
10class ServiceURL(CoolipyBaseModel):
11    """A per-service URL mapping for docker-compose services."""
12
13    name: str | None = None
14    url: str | None = None
15
16
17class ServiceModel(CoolipyBaseModel):
18    """A service as returned by the API."""
19
20    id: int | None = None
21    uuid: str | None = None
22    name: str | None = None
23    environment_id: int | None = None
24    server_id: int | None = None
25    description: str | None = None
26    docker_compose_raw: str | None = None
27    docker_compose: str | None = None
28    destination_type: str | None = None
29    destination_id: int | None = None
30    connect_to_docker_network: bool | None = None
31    is_container_label_escape_enabled: bool | None = None
32    is_container_label_readonly_enabled: bool | None = None
33    config_hash: str | None = None
34    service_type: str | None = None
35    created_at: datetime | None = None
36    updated_at: datetime | None = None
37    deleted_at: datetime | None = None
38
39
40class ServiceCreateModel(CoolipyBaseModel):
41    """Body for creating a service (one-click or custom)."""
42
43    type: str | None = None
44    name: str | None = None
45    description: str | None = None
46    project_uuid: str | None = None
47    environment_name: str | None = None
48    environment_uuid: str | None = None
49    server_uuid: str | None = None
50    destination_uuid: str | None = None
51    instant_deploy: bool | None = None
52    docker_compose_raw: str | None = None
53    urls: list[ServiceURL] | None = None
54    force_domain_override: bool | None = None
55    is_container_label_escape_enabled: bool | None = None
56    tags: list[str] | None = None
57
58
59class ServiceUpdateModel(CoolipyBaseModel):
60    """Body for updating a service."""
61
62    name: str | None = None
63    description: str | None = None
64    docker_compose_raw: str | None = None
65    is_container_label_escape_enabled: bool | None = None
66    force_domain_override: bool | None = None
67    urls: list[ServiceURL] | None = None
class ServiceURL(coolipy.models.base.CoolipyBaseModel):
11class ServiceURL(CoolipyBaseModel):
12    """A per-service URL mapping for docker-compose services."""
13
14    name: str | None = None
15    url: str | None = None

A per-service URL mapping for docker-compose services.

name: str | None = None
url: str | None = None
class ServiceModel(coolipy.models.base.CoolipyBaseModel):
18class ServiceModel(CoolipyBaseModel):
19    """A service as returned by the API."""
20
21    id: int | None = None
22    uuid: str | None = None
23    name: str | None = None
24    environment_id: int | None = None
25    server_id: int | None = None
26    description: str | None = None
27    docker_compose_raw: str | None = None
28    docker_compose: str | None = None
29    destination_type: str | None = None
30    destination_id: int | None = None
31    connect_to_docker_network: bool | None = None
32    is_container_label_escape_enabled: bool | None = None
33    is_container_label_readonly_enabled: bool | None = None
34    config_hash: str | None = None
35    service_type: str | None = None
36    created_at: datetime | None = None
37    updated_at: datetime | None = None
38    deleted_at: datetime | None = None

A service as returned by the API.

id: int | None = None
uuid: str | None = None
name: str | None = None
environment_id: int | None = None
server_id: int | None = None
description: str | None = None
docker_compose_raw: str | None = None
docker_compose: str | None = None
destination_type: str | None = None
destination_id: int | None = None
connect_to_docker_network: bool | None = None
is_container_label_escape_enabled: bool | None = None
is_container_label_readonly_enabled: bool | None = None
config_hash: str | None = None
service_type: str | None = None
created_at: datetime.datetime | None = None
updated_at: datetime.datetime | None = None
deleted_at: datetime.datetime | None = None
class ServiceCreateModel(coolipy.models.base.CoolipyBaseModel):
41class ServiceCreateModel(CoolipyBaseModel):
42    """Body for creating a service (one-click or custom)."""
43
44    type: str | None = None
45    name: str | None = None
46    description: str | None = None
47    project_uuid: str | None = None
48    environment_name: str | None = None
49    environment_uuid: str | None = None
50    server_uuid: str | None = None
51    destination_uuid: str | None = None
52    instant_deploy: bool | None = None
53    docker_compose_raw: str | None = None
54    urls: list[ServiceURL] | None = None
55    force_domain_override: bool | None = None
56    is_container_label_escape_enabled: bool | None = None
57    tags: list[str] | None = None

Body for creating a service (one-click or custom).

type: str | None = None
name: str | None = None
description: str | None = None
project_uuid: str | None = None
environment_name: str | None = None
environment_uuid: str | None = None
server_uuid: str | None = None
destination_uuid: str | None = None
instant_deploy: bool | None = None
docker_compose_raw: str | None = None
urls: list[ServiceURL] | None = None
force_domain_override: bool | None = None
is_container_label_escape_enabled: bool | None = None
tags: list[str] | None = None
class ServiceUpdateModel(coolipy.models.base.CoolipyBaseModel):
60class ServiceUpdateModel(CoolipyBaseModel):
61    """Body for updating a service."""
62
63    name: str | None = None
64    description: str | None = None
65    docker_compose_raw: str | None = None
66    is_container_label_escape_enabled: bool | None = None
67    force_domain_override: bool | None = None
68    urls: list[ServiceURL] | None = None

Body for updating a service.

name: str | None = None
description: str | None = None
docker_compose_raw: str | None = None
is_container_label_escape_enabled: bool | None = None
force_domain_override: bool | None = None
urls: list[ServiceURL] | None = None