* SPDX-License-Identifier: AGPL-3.0-or-later */ namespace KTXF\Resource\Provider; /** * Resource Service Location Socket Split * * Split socket-based service location for services using separate inbound/outbound servers * (e.g., traditional IMAP/SMTP configurations). * * @since 2025.05.01 */ interface ResourceServiceLocationSocketSplit extends ResourceServiceLocationInterface { /** * Gets the complete inbound location string * * @since 2025.05.01 * * @return string Inbound location (e.g., "imap.example.com:993") */ public function locationInbound(): string; /** * Gets the complete outbound location string * * @since 2025.05.01 * * @return string Outbound location (e.g., "smtp.example.com:465") */ public function locationOutbound(): string; /** * Gets the inbound host * * @since 2025.05.01 * * @return string Inbound host (e.g., "imap.example.com") */ public function getInboundHost(): string; /** * Sets the inbound host * * @since 2025.05.01 * * @param string $value * * @return void */ public function setInboundHost(string $value): void; /** * Gets the outbound host * * @since 2025.05.01 * * @return string Outbound host (e.g., "smtp.example.com") */ public function getOutboundHost(): string; /** * Sets the outbound host * * @since 2025.05.01 * * @param string $value * * @return void */ public function setOutboundHost(string $value): void; /** * Gets the inbound port * * @since 2025.05.01 * * @return int Inbound port number */ public function getInboundPort(): int; /** * Sets the inbound port * * @since 2025.05.01 * * @param int $value * * @return void */ public function setInboundPort(int $value): void; /** * Gets the outbound port * * @since 2025.05.01 * * @return int Outbound port number */ public function getOutboundPort(): int; /** * Sets the outbound port * * @since 2025.05.01 * * @param int $value * * @return void */ public function setOutboundPort(int $value): void; /** * Gets the inbound encryption/security mode * * @since 2025.12.01 * * @return string One of: 'none', 'ssl', 'tls', 'starttls' */ public function getInboundEncryption(): string; /** * Sets the inbound encryption/security mode * * @since 2025.12.01 * * @param string $value One of: 'none', 'ssl', 'tls', 'starttls' * * @return void */ public function setInboundEncryption(string $value): void; /** * Gets the outbound encryption/security mode * * @since 2025.12.01 * * @return string One of: 'none', 'ssl', 'tls', 'starttls' */ public function getOutboundEncryption(): string; /** * Sets the outbound encryption/security mode * * @since 2025.12.01 * * @param string $value One of: 'none', 'ssl', 'tls', 'starttls' * * @return void */ public function setOutboundEncryption(string $value): void; /** * Gets whether to verify inbound SSL/TLS peer certificate * * @since 2025.12.01 * * @return bool */ public function getInboundVerifyPeer(): bool; /** * Sets whether to verify inbound SSL/TLS peer certificate * * @since 2025.12.01 * * @param bool $value * * @return void */ public function setInboundVerifyPeer(bool $value): void; /** * Gets whether to verify inbound SSL/TLS certificate host * * @since 2025.12.01 * * @return bool */ public function getInboundVerifyHost(): bool; /** * Sets whether to verify inbound SSL/TLS certificate host * * @since 2025.12.01 * * @param bool $value * * @return void */ public function setInboundVerifyHost(bool $value): void; /** * Gets whether to verify outbound SSL/TLS peer certificate * * @since 2025.12.01 * * @return bool */ public function getOutboundVerifyPeer(): bool; /** * Sets whether to verify outbound SSL/TLS peer certificate * * @since 2025.12.01 * * @param bool $value * * @return void */ public function setOutboundVerifyPeer(bool $value): void; /** * Gets whether to verify outbound SSL/TLS certificate host * * @since 2025.12.01 * * @return bool */ public function getOutboundVerifyHost(): bool; /** * Sets whether to verify outbound SSL/TLS certificate host * * @since 2025.12.01 * * @param bool $value * * @return void */ public function setOutboundVerifyHost(bool $value): void; }