HEX
Server: LiteSpeed
System: Linux cde2.duelhost.dk 4.18.0-553.34.1.lve.el8.x86_64 #1 SMP Thu Jan 9 16:30:32 UTC 2025 x86_64
User: dtptviut (1121)
PHP: 8.0.30
Disabled: exec,system,passthru,shell_exec,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/dtptviut/public_html/wp-content/plugins/easy-wp-smtp/src/Abilities/AbilityInterface.php
<?php

namespace EasyWPSMTP\Abilities;

use WP_Error; // phpcs:ignore WPForms.PHP.UseStatement.UnusedUseStatement

/**
 * Contract every Easy WP SMTP ability implements.
 *
 * Concrete abilities are instantiated by {@see AbilityRegistrar} and registered
 * against the WordPress Abilities API on the `wp_abilities_api_init` hook.
 *
 * @since 2.15.0
 */
interface AbilityInterface {

	/**
	 * Get the ability slug, without the namespace prefix.
	 *
	 * @since 2.15.0
	 *
	 * @return string
	 */
	public function get_name();

	/**
	 * Get the human-readable label.
	 *
	 * @since 2.15.0
	 *
	 * @return string
	 */
	public function get_label();

	/**
	 * Get the human-readable description.
	 *
	 * @since 2.15.0
	 *
	 * @return string
	 */
	public function get_description();

	/**
	 * Get the JSON Schema describing accepted input.
	 *
	 * @since 2.15.0
	 *
	 * @return array
	 */
	public function get_input_schema();

	/**
	 * Get the JSON Schema describing the response.
	 *
	 * @since 2.15.0
	 *
	 * @return array
	 */
	public function get_output_schema();

	/**
	 * Execute the ability with validated input.
	 *
	 * @since 2.15.0
	 *
	 * @param mixed $input Input data validated against the input schema.
	 *
	 * @return array|WP_Error
	 */
	public function execute( $input );

	/**
	 * Permission gate.
	 *
	 * @since 2.15.0
	 *
	 * @return true|WP_Error True when allowed, WP_Error otherwise.
	 */
	public function check_permission();

	/**
	 * Annotation flags surfaced to MCP / abilities consumers.
	 *
	 * @since 2.15.0
	 *
	 * @return array
	 */
	public function get_annotations();

	/**
	 * Whether the ability is exposed via the REST API.
	 *
	 * @since 2.15.0
	 *
	 * @return bool
	 */
	public function show_in_rest();

	/**
	 * Whether the ability is publicly listed for MCP clients.
	 *
	 * @since 2.15.0
	 *
	 * @return bool
	 */
	public function is_mcp_public();
}