coolipy.models.common
Shared models reused across multiple coolipy resources.
1"""Shared models reused across multiple coolipy resources.""" 2 3from __future__ import annotations 4 5from datetime import datetime 6 7from pydantic import Field 8 9from coolipy.models.base import CoolipyBaseModel 10 11 12class EnvironmentVariable(CoolipyBaseModel): 13 """An environment variable as returned by the API.""" 14 15 id: int | None = None 16 uuid: str | None = None 17 resourceable_type: str | None = None 18 resourceable_id: int | None = None 19 is_literal: bool | None = None 20 is_multiline: bool | None = None 21 is_preview: bool | None = None 22 is_runtime: bool | None = None 23 is_buildtime: bool | None = None 24 is_shared: bool | None = None 25 is_shown_once: bool | None = None 26 key: str | None = None 27 value: str | None = None 28 real_value: str | None = None 29 comment: str | None = None 30 version: str | None = None 31 created_at: datetime | None = None 32 updated_at: datetime | None = None 33 34 35class EnvironmentVariableCreate(CoolipyBaseModel): 36 """Body for creating an environment variable.""" 37 38 key: str | None = None 39 value: str | None = None 40 is_preview: bool | None = None 41 is_literal: bool | None = None 42 is_multiline: bool | None = None 43 is_shown_once: bool | None = None 44 45 46class EnvironmentVariableUpdate(CoolipyBaseModel): 47 """Body for updating an environment variable.""" 48 49 key: str | None = None 50 value: str | None = None 51 is_preview: bool | None = None 52 is_literal: bool | None = None 53 is_multiline: bool | None = None 54 is_shown_once: bool | None = None 55 56 57class BulkEnvsUpdate(CoolipyBaseModel): 58 """Body for bulk-updating environment variables.""" 59 60 data: list[EnvironmentVariableCreate] = Field(default_factory=list) 61 62 63class ScheduledTask(CoolipyBaseModel): 64 """A scheduled task as returned by the API.""" 65 66 id: int | None = None 67 uuid: str | None = None 68 enabled: bool | None = None 69 name: str | None = None 70 command: str | None = None 71 frequency: str | None = None 72 container: str | None = None 73 timeout: int | None = None 74 created_at: datetime | None = None 75 updated_at: datetime | None = None 76 77 78class ScheduledTaskCreate(CoolipyBaseModel): 79 """Body for creating a scheduled task.""" 80 81 enabled: bool | None = None 82 name: str | None = None 83 command: str | None = None 84 frequency: str | None = None 85 container: str | None = None 86 timeout: int | None = None 87 88 89class ScheduledTaskUpdate(CoolipyBaseModel): 90 """Body for updating a scheduled task.""" 91 92 enabled: bool | None = None 93 name: str | None = None 94 command: str | None = None 95 frequency: str | None = None 96 container: str | None = None 97 timeout: int | None = None 98 99 100class ScheduledTaskExecution(CoolipyBaseModel): 101 """An execution of a scheduled task.""" 102 103 uuid: str | None = None 104 status: str | None = None 105 message: str | None = None 106 retry_count: int | None = None 107 duration: float | None = None 108 started_at: datetime | None = None 109 finished_at: datetime | None = None 110 created_at: datetime | None = None 111 updated_at: datetime | None = None 112 113 114class Destination(CoolipyBaseModel): 115 """A Docker network destination attached to a server.""" 116 117 uuid: str | None = None 118 name: str | None = None 119 network: str | None = None 120 type: str | None = None 121 server_uuid: str | None = None 122 created_at: datetime | None = None 123 updated_at: datetime | None = None 124 125 126class DestinationCreate(CoolipyBaseModel): 127 """Body for creating a destination.""" 128 129 name: str | None = None 130 network: str | None = None 131 type: str | None = None 132 133 134class Tag(CoolipyBaseModel): 135 """A tag attached to a resource.""" 136 137 uuid: str | None = None 138 name: str | None = None 139 created_at: datetime | None = None 140 updated_at: datetime | None = None 141 142 143class TagCreate(CoolipyBaseModel): 144 """Body for creating a global tag.""" 145 146 name: str | None = None 147 148 149class TagUpdate(CoolipyBaseModel): 150 """Body for updating a global tag.""" 151 152 name: str | None = None 153 154 155class Logs(CoolipyBaseModel): 156 """Log output returned by a logs endpoint.""" 157 158 logs: str | None = None 159 160 161class MessageResponse(CoolipyBaseModel): 162 """A response carrying a single ``message``.""" 163 164 message: str | None = None 165 166 167class UUIDResponse(CoolipyBaseModel): 168 """A response carrying a single ``uuid``.""" 169 170 uuid: str | None = None 171 172 173class DeploymentQueuedResponse(CoolipyBaseModel): 174 """A response indicating a deployment was queued.""" 175 176 message: str | None = None 177 deployment_uuid: str | None = None 178 179 180class StorageCreate(CoolipyBaseModel): 181 """Body for creating a persistent or file storage.""" 182 183 type: str | None = None 184 name: str | None = None 185 mount_path: str | None = None 186 host_path: str | None = None 187 content: str | None = None 188 is_directory: bool | None = None 189 fs_path: str | None = None 190 191 192class StorageUpdate(CoolipyBaseModel): 193 """Body for updating a persistent or file storage.""" 194 195 uuid: str | None = None 196 id: int | None = None 197 type: str | None = None 198 is_preview_suffix_enabled: bool | None = None 199 name: str | None = None 200 mount_path: str | None = None 201 host_path: str | None = None 202 content: str | None = None 203 204 205class TagsCreate(CoolipyBaseModel): 206 """Body for adding one or more tags to a resource.""" 207 208 tag_name: str | None = None 209 tag_names: list[str] | None = None 210 211 212class VolumeBackupScheduleRequest(CoolipyBaseModel): 213 """Body for scheduling volume backups.""" 214 215 frequency: str | None = None 216 enabled: bool | None = None 217 save_s3: bool | None = None 218 disable_local_backup: bool | None = None 219 stop_during_backup: bool | None = None 220 s3_storage_uuid: str | None = None 221 retention_amount_locally: int | None = None 222 retention_days_locally: int | None = None 223 retention_max_storage_locally: float | None = None 224 retention_amount_s3: int | None = None 225 retention_days_s3: int | None = None 226 retention_max_storage_s3: float | None = None 227 timeout: int | None = None 228 229 230class VolumeBackupScheduleResponse(CoolipyBaseModel): 231 """A scheduled volume backup as returned by the API.""" 232 233 uuid: str | None = None 234 message: str | None = None 235 storage_uuid: str | None = None 236 storage_type: str | None = None 237 frequency: str | None = None 238 enabled: bool | None = None 239 save_s3: bool | None = None 240 disable_local_backup: bool | None = None 241 stop_during_backup: bool | None = None 242 s3_storage_uuid: str | None = None 243 retention_amount_locally: int | None = None 244 retention_days_locally: int | None = None 245 retention_max_storage_locally: float | None = None 246 retention_amount_s3: int | None = None 247 retention_days_s3: int | None = None 248 retention_max_storage_s3: float | None = None 249 timeout: int | None = None
13class EnvironmentVariable(CoolipyBaseModel): 14 """An environment variable as returned by the API.""" 15 16 id: int | None = None 17 uuid: str | None = None 18 resourceable_type: str | None = None 19 resourceable_id: int | None = None 20 is_literal: bool | None = None 21 is_multiline: bool | None = None 22 is_preview: bool | None = None 23 is_runtime: bool | None = None 24 is_buildtime: bool | None = None 25 is_shared: bool | None = None 26 is_shown_once: bool | None = None 27 key: str | None = None 28 value: str | None = None 29 real_value: str | None = None 30 comment: str | None = None 31 version: str | None = None 32 created_at: datetime | None = None 33 updated_at: datetime | None = None
An environment variable as returned by the API.
36class EnvironmentVariableCreate(CoolipyBaseModel): 37 """Body for creating an environment variable.""" 38 39 key: str | None = None 40 value: str | None = None 41 is_preview: bool | None = None 42 is_literal: bool | None = None 43 is_multiline: bool | None = None 44 is_shown_once: bool | None = None
Body for creating an environment variable.
47class EnvironmentVariableUpdate(CoolipyBaseModel): 48 """Body for updating an environment variable.""" 49 50 key: str | None = None 51 value: str | None = None 52 is_preview: bool | None = None 53 is_literal: bool | None = None 54 is_multiline: bool | None = None 55 is_shown_once: bool | None = None
Body for updating an environment variable.
58class BulkEnvsUpdate(CoolipyBaseModel): 59 """Body for bulk-updating environment variables.""" 60 61 data: list[EnvironmentVariableCreate] = Field(default_factory=list)
Body for bulk-updating environment variables.
64class ScheduledTask(CoolipyBaseModel): 65 """A scheduled task as returned by the API.""" 66 67 id: int | None = None 68 uuid: str | None = None 69 enabled: bool | None = None 70 name: str | None = None 71 command: str | None = None 72 frequency: str | None = None 73 container: str | None = None 74 timeout: int | None = None 75 created_at: datetime | None = None 76 updated_at: datetime | None = None
A scheduled task as returned by the API.
79class ScheduledTaskCreate(CoolipyBaseModel): 80 """Body for creating a scheduled task.""" 81 82 enabled: bool | None = None 83 name: str | None = None 84 command: str | None = None 85 frequency: str | None = None 86 container: str | None = None 87 timeout: int | None = None
Body for creating a scheduled task.
90class ScheduledTaskUpdate(CoolipyBaseModel): 91 """Body for updating a scheduled task.""" 92 93 enabled: bool | None = None 94 name: str | None = None 95 command: str | None = None 96 frequency: str | None = None 97 container: str | None = None 98 timeout: int | None = None
Body for updating a scheduled task.
101class ScheduledTaskExecution(CoolipyBaseModel): 102 """An execution of a scheduled task.""" 103 104 uuid: str | None = None 105 status: str | None = None 106 message: str | None = None 107 retry_count: int | None = None 108 duration: float | None = None 109 started_at: datetime | None = None 110 finished_at: datetime | None = None 111 created_at: datetime | None = None 112 updated_at: datetime | None = None
An execution of a scheduled task.
115class Destination(CoolipyBaseModel): 116 """A Docker network destination attached to a server.""" 117 118 uuid: str | None = None 119 name: str | None = None 120 network: str | None = None 121 type: str | None = None 122 server_uuid: str | None = None 123 created_at: datetime | None = None 124 updated_at: datetime | None = None
A Docker network destination attached to a server.
127class DestinationCreate(CoolipyBaseModel): 128 """Body for creating a destination.""" 129 130 name: str | None = None 131 network: str | None = None 132 type: str | None = None
Body for creating a destination.
135class Tag(CoolipyBaseModel): 136 """A tag attached to a resource.""" 137 138 uuid: str | None = None 139 name: str | None = None 140 created_at: datetime | None = None 141 updated_at: datetime | None = None
A tag attached to a resource.
144class TagCreate(CoolipyBaseModel): 145 """Body for creating a global tag.""" 146 147 name: str | None = None
Body for creating a global tag.
150class TagUpdate(CoolipyBaseModel): 151 """Body for updating a global tag.""" 152 153 name: str | None = None
Body for updating a global tag.
156class Logs(CoolipyBaseModel): 157 """Log output returned by a logs endpoint.""" 158 159 logs: str | None = None
Log output returned by a logs endpoint.
162class MessageResponse(CoolipyBaseModel): 163 """A response carrying a single ``message``.""" 164 165 message: str | None = None
A response carrying a single message.
168class UUIDResponse(CoolipyBaseModel): 169 """A response carrying a single ``uuid``.""" 170 171 uuid: str | None = None
A response carrying a single uuid.
174class DeploymentQueuedResponse(CoolipyBaseModel): 175 """A response indicating a deployment was queued.""" 176 177 message: str | None = None 178 deployment_uuid: str | None = None
A response indicating a deployment was queued.
181class StorageCreate(CoolipyBaseModel): 182 """Body for creating a persistent or file storage.""" 183 184 type: str | None = None 185 name: str | None = None 186 mount_path: str | None = None 187 host_path: str | None = None 188 content: str | None = None 189 is_directory: bool | None = None 190 fs_path: str | None = None
Body for creating a persistent or file storage.
193class StorageUpdate(CoolipyBaseModel): 194 """Body for updating a persistent or file storage.""" 195 196 uuid: str | None = None 197 id: int | None = None 198 type: str | None = None 199 is_preview_suffix_enabled: bool | None = None 200 name: str | None = None 201 mount_path: str | None = None 202 host_path: str | None = None 203 content: str | None = None
Body for updating a persistent or file storage.
206class TagsCreate(CoolipyBaseModel): 207 """Body for adding one or more tags to a resource.""" 208 209 tag_name: str | None = None 210 tag_names: list[str] | None = None
Body for adding one or more tags to a resource.
213class VolumeBackupScheduleRequest(CoolipyBaseModel): 214 """Body for scheduling volume backups.""" 215 216 frequency: str | None = None 217 enabled: bool | None = None 218 save_s3: bool | None = None 219 disable_local_backup: bool | None = None 220 stop_during_backup: bool | None = None 221 s3_storage_uuid: str | None = None 222 retention_amount_locally: int | None = None 223 retention_days_locally: int | None = None 224 retention_max_storage_locally: float | None = None 225 retention_amount_s3: int | None = None 226 retention_days_s3: int | None = None 227 retention_max_storage_s3: float | None = None 228 timeout: int | None = None
Body for scheduling volume backups.
231class VolumeBackupScheduleResponse(CoolipyBaseModel): 232 """A scheduled volume backup as returned by the API.""" 233 234 uuid: str | None = None 235 message: str | None = None 236 storage_uuid: str | None = None 237 storage_type: str | None = None 238 frequency: str | None = None 239 enabled: bool | None = None 240 save_s3: bool | None = None 241 disable_local_backup: bool | None = None 242 stop_during_backup: bool | None = None 243 s3_storage_uuid: str | None = None 244 retention_amount_locally: int | None = None 245 retention_days_locally: int | None = None 246 retention_max_storage_locally: float | None = None 247 retention_amount_s3: int | None = None 248 retention_days_s3: int | None = None 249 retention_max_storage_s3: float | None = None 250 timeout: int | None = None
A scheduled volume backup as returned by the API.