. * * This software is licensed under the terms of the MIT license. * https://opensource.org/licenses/MIT */ namespace Pterodactyl\Contracts\Repository; use Pterodactyl\Contracts\Repository\Attributes\SearchableInterface; interface NodeRepositoryInterface extends RepositoryInterface, SearchableInterface { /** * Return the usage stats for a single node. * * @param int $id * @return array */ public function getUsageStats($id); /** * Return all available nodes with a searchable interface. * * @param int $count * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator */ public function getNodeListingData($count = 25); /** * Return a single node with location and server information. * * @param int $id * @return mixed * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function getSingleNode($id); /** * Return a node with all of the associated allocations and servers that are attached to said allocations. * * @param int $id * @return mixed * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function getNodeAllocations($id); /** * Return a node with all of the servers attached to that node. * * @param int $id * @return mixed * * @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException */ public function getNodeServers($id); /** * Return a collection of nodes beloning to a specific location for use on frontend display. * * @param int $location * @return mixed */ public function getNodesForLocation($location); }