Module coolipy.services.coolify_api.databases
Classes
class Databases (http_service: HttpService, base_service_url: str)
-
Provides methods for managing databases via the Coolify API.
Initializes the Coolify API service with an HTTP service instance and a specific service URL.
Args
http_service
:HttpService
- Instance of the HttpService class for making HTTP requests.
base_service_url
:str
- The endpoint URL for the specific service (e.g., '/servers', '/teams').
Expand source code
class Databases(CoolifyApiBase): """ Provides methods for managing databases via the Coolify API. """ def list(self) -> CoolifyAPIResponse: """ Retrieves a list of all databases. Returns: CoolifyAPIResponse: Response containing a list of databases. """ content = self._http.get(self._base_url) return self._handle_response(content, COOLIFY_RETURN_TYPES.list, DatabaseModel) def get(self, database_uuid: str) -> CoolifyAPIResponse: """ Retrieves details of a specific database. Args: database_uuid: Unique identifier of the database. Returns: CoolifyAPIResponse: Response containing database details. """ content = self._http.get(f"{self._base_url}/{database_uuid}") return self._handle_response( content, COOLIFY_RETURN_TYPES.single, DatabaseModel ) def delete( self, database_uuid: str, delete_configurations: bool, delete_volumes: bool, docker_cleanup: bool, delete_connected_networks: bool, ) -> CoolifyAPIResponse: """ Deletes a specific database with configurable options. Args: database_uuid: Unique identifier of the database. delete_configurations: Whether to delete configuration files. delete_volumes: Whether to delete data volumes. docker_cleanup: Whether to perform Docker cleanup. delete_connected_networks: Whether to delete connected networks. Returns: CoolifyAPIResponse: Raw response indicating the deletion status. """ params = { "delete_configurations": delete_configurations, "delete_volumes": delete_volumes, "docker_cleanup": docker_cleanup, "delete_connected_networks": delete_connected_networks, } query_p = self._build_url_params_from_dict(params) content = self._http.delete(f"{self._base_url}/{database_uuid}?{query_p}") return self._handle_response(content, COOLIFY_RETURN_TYPES.raw) def create( self, database_model_create: Union[ PostgreSQLModelCreate, ClickHouseModelCreate, DragonFlyModelCreate, RedisModelCreate, KeyDBModelCreate, MariaDBModelCreate, MySQLModelCreate, MongoDBModelCreate, ], ) -> CoolifyAPIResponse: """ Creates a new database using the specified model. Args: database_model_create: The database creation model to use. Returns: CoolifyAPIResponse: Response containing the created database. """ url_complement = self._infer_url_sufix_from_model( database_model_create, DATABASE_TYPES_MAP ) db_as_dict = asdict(database_model_create) content = self._http.post( f"{self._base_url}/{url_complement}", data=json.dumps(db_as_dict) ) return self._handle_response( content, COOLIFY_RETURN_TYPES.single, DatabaseModel ) def update( self, database_uuid: str, database_model_update: DatabaseUpdateModel ) -> CoolifyAPIResponse: """ Updates an existing database with new data. Args: database_uuid: Unique identifier of the database. database_model_update: Updated database model. Returns: CoolifyAPIResponse: Raw response indicating the update status. """ as_dict = asdict(database_model_update) content = self._http.patch( f"{self._base_url}/{database_uuid}", data=json.dumps(as_dict) ) return self._handle_response(content, COOLIFY_RETURN_TYPES.raw) def start(self, database_uuid: str) -> CoolifyAPIResponse: """ Starts a specific database. Args: database_uuid: Unique identifier of the database. Returns: CoolifyAPIResponse: Raw response indicating the start status. """ content = self._http.get(f"{self._base_url}/{database_uuid}{URL_MAP.start}") return self._handle_response(content, COOLIFY_RETURN_TYPES.raw) def stop(self, database_uuid: str) -> CoolifyAPIResponse: """ Stops a specific database. Args: database_uuid: Unique identifier of the database. Returns: CoolifyAPIResponse: Raw response indicating the stop status. """ content = self._http.get(f"{self._base_url}/{database_uuid}{URL_MAP.stop}") return self._handle_response(content, COOLIFY_RETURN_TYPES.raw) def restart(self, database_uuid: str) -> CoolifyAPIResponse: """ Restarts a specific database. Args: database_uuid: Unique identifier of the database. Returns: CoolifyAPIResponse: Raw response indicating the restart status. """ content = self._http.get(f"{self._base_url}/{database_uuid}{URL_MAP.restart}") return self._handle_response(content, COOLIFY_RETURN_TYPES.raw)
Ancestors
Methods
def create(self, database_model_create: Union[PostgreSQLModelCreate, ClickHouseModelCreate, DragonFlyModelCreate, RedisModelCreate, KeyDBModelCreate, MariaDBModelCreate, MySQLModelCreate, MongoDBModelCreate]) ‑> CoolifyAPIResponse
-
Creates a new database using the specified model.
Args
database_model_create
- The database creation model to use.
Returns
CoolifyAPIResponse
- Response containing the created database.
def delete(self, database_uuid: str, delete_configurations: bool, delete_volumes: bool, docker_cleanup: bool, delete_connected_networks: bool) ‑> CoolifyAPIResponse
-
Deletes a specific database with configurable options.
Args
database_uuid
- Unique identifier of the database.
delete_configurations
- Whether to delete configuration files.
delete_volumes
- Whether to delete data volumes.
docker_cleanup
- Whether to perform Docker cleanup.
delete_connected_networks
- Whether to delete connected networks.
Returns
CoolifyAPIResponse
- Raw response indicating the deletion status.
def get(self, database_uuid: str) ‑> CoolifyAPIResponse
-
Retrieves details of a specific database.
Args
database_uuid
- Unique identifier of the database.
Returns
CoolifyAPIResponse
- Response containing database details.
def list(self) ‑> CoolifyAPIResponse
-
Retrieves a list of all databases.
Returns
CoolifyAPIResponse
- Response containing a list of databases.
def restart(self, database_uuid: str) ‑> CoolifyAPIResponse
-
Restarts a specific database.
Args
database_uuid
- Unique identifier of the database.
Returns
CoolifyAPIResponse
- Raw response indicating the restart status.
def start(self, database_uuid: str) ‑> CoolifyAPIResponse
-
Starts a specific database.
Args
database_uuid
- Unique identifier of the database.
Returns
CoolifyAPIResponse
- Raw response indicating the start status.
def stop(self, database_uuid: str) ‑> CoolifyAPIResponse
-
Stops a specific database.
Args
database_uuid
- Unique identifier of the database.
Returns
CoolifyAPIResponse
- Raw response indicating the stop status.
def update(self, database_uuid: str, database_model_update: DatabaseUpdateModel) ‑> CoolifyAPIResponse
-
Updates an existing database with new data.
Args
database_uuid
- Unique identifier of the database.
database_model_update
- Updated database model.
Returns
CoolifyAPIResponse
- Raw response indicating the update status.