Files
ladill-servers/app/Services/Hosting/Contracts/SharedHostingProviderInterface.php
T
isaaccladandCursor b6c8ac343f Extract Ladill Servers as standalone app at servers.ladill.com.
VPS and dedicated server ordering, managed panels, SSO, billing, and launcher integration — forked from hosting infrastructure with server-focused routes and dashboard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-06 19:18:30 +00:00

50 lines
1.7 KiB
PHP

<?php
namespace App\Services\Hosting\Contracts;
use App\Models\HostingAccount;
use App\Models\HostedSite;
use App\Models\HostedDatabase;
interface SharedHostingProviderInterface
{
public function createAccount(HostingAccount $account): array;
public function suspendAccount(HostingAccount $account, string $reason): bool;
public function unsuspendAccount(HostingAccount $account): bool;
public function terminateAccount(HostingAccount $account): bool;
public function changePassword(HostingAccount $account, string $newPassword): bool;
public function installTeamMemberSshKey(HostingAccount $account, string $marker, string $publicKey): void;
public function removeTeamMemberSshKey(HostingAccount $account, string $marker): void;
public function addSite(HostedSite $site): array;
public function removeSite(HostedSite $site): bool;
public function requestLetsEncryptCertificate(HostedSite $site): bool;
public function createDatabase(HostedDatabase $database, string $password): array;
public function deleteDatabase(HostedDatabase $database): bool;
public function changeDatabasePassword(HostedDatabase $database, string $newPassword): bool;
public function setPhpVersion(HostedSite $site, string $version): bool;
public function changeAccountPhpVersion(HostingAccount $account, string $version): bool;
/**
* @return list<string> PHP versions that currently have a pool config for this account.
*/
public function findPhpFpmPoolVersions(HostingAccount $account): array;
public function getUsageStats(HostingAccount $account): array;
public function executeCommand(HostingAccount $account, string $command, int $timeout = 600): array;
}