86 lines
1.8 KiB
PHP
86 lines
1.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace KTXF\Resource\Provider;
|
|
|
|
use KTXF\Json\JsonSerializable;
|
|
|
|
interface ResourceServiceBaseInterface extends JsonSerializable {
|
|
|
|
// JSON Constants
|
|
public const JSON_TYPE = 'resource.service';
|
|
public const JSON_PROPERTY_TYPE = '@type';
|
|
public const JSON_PROPERTY_ID = 'id';
|
|
public const JSON_PROPERTY_LABEL = 'label';
|
|
public const JSON_PROPERTY_ENABLED = 'enabled';
|
|
public const JSON_PROPERTY_CAPABILITIES = 'capabilities';
|
|
|
|
/**
|
|
* Confirms if specific capability is supported
|
|
*
|
|
* @since 2025.11.01
|
|
*
|
|
* @param string $value required ability e.g. 'EntityList'
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function capable(string $value): bool;
|
|
|
|
/**
|
|
* Lists all supported capabilities
|
|
*
|
|
* @since 2025.11.01
|
|
*
|
|
* @return array<string,bool>
|
|
*/
|
|
public function capabilities(): array;
|
|
|
|
/**
|
|
* Unique identifier of the provider this service belongs to
|
|
*
|
|
* @since 2025.11.01
|
|
*/
|
|
public function in(): string;
|
|
|
|
/**
|
|
* Unique arbitrary text string identifying this service (e.g. 1 or service1 or anything else)
|
|
*
|
|
* @since 2025.11.01
|
|
*/
|
|
public function id(): string|int;
|
|
|
|
/**
|
|
* Gets the localized human friendly name of this service (e.g. ACME Company File Service)
|
|
*
|
|
* @since 2025.11.01
|
|
*/
|
|
public function getLabel(): string;
|
|
|
|
/**
|
|
* Gets the active status of this service
|
|
*
|
|
* @since 2025.11.01
|
|
*/
|
|
public function getEnabled(): bool;
|
|
|
|
/**
|
|
* Gets the location information of this service
|
|
*
|
|
* @since 2025.05.01
|
|
*
|
|
* @return ResourceServiceLocationInterface
|
|
*/
|
|
public function getLocation(): ResourceServiceLocationInterface;
|
|
|
|
/**
|
|
* Gets the identity information of this service
|
|
*
|
|
* @since 2025.05.01
|
|
*
|
|
* @return ResourceServiceIdentityInterface
|
|
*/
|
|
public function getIdentity(): ResourceServiceIdentityInterface;
|
|
|
|
}
|