import * as plugins from '../plugins.js'; import * as authInterfaces from '../data/auth.js'; import type { IRemoteIngress, IRemoteIngressEgressPolicyConfig, IRemoteIngressHubSettings, IRemoteIngressPerformanceConfig, IRemoteIngressStatus } from '../data/remoteingress.js'; /** * Create a new remote ingress edge registration. */ export interface IReq_CreateRemoteIngress extends plugins.typedrequestInterfaces.implementsTR { method: 'createRemoteIngress'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; name: string; listenPorts?: number[]; autoDerivePorts?: boolean; performance?: IRemoteIngressPerformanceConfig; egress?: IRemoteIngressEgressPolicyConfig; tags?: string[]; publicIp?: string; publicIpV6?: string; mailHostname?: string; }; response: { success: boolean; edge: IRemoteIngress; /** Failure reason (e.g. rejected publicIp) when success is false. */ message?: string; }; } /** * Delete a remote ingress edge registration. */ export interface IReq_DeleteRemoteIngress extends plugins.typedrequestInterfaces.implementsTR { method: 'deleteRemoteIngress'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { success: boolean; message?: string; }; } /** * Update a remote ingress edge registration. */ export interface IReq_UpdateRemoteIngress extends plugins.typedrequestInterfaces.implementsTR { method: 'updateRemoteIngress'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; name?: string; listenPorts?: number[]; autoDerivePorts?: boolean; enabled?: boolean; performance?: IRemoteIngressPerformanceConfig; egress?: IRemoteIngressEgressPolicyConfig; tags?: string[]; /** null clears the stored value. */ publicIp?: string | null; publicIpV6?: string | null; mailHostname?: string | null; }; response: { success: boolean; edge: IRemoteIngress; /** Failure reason (e.g. rejected publicIp) when success is false. */ message?: string; }; } /** * Regenerate the secret for a remote ingress edge. */ export interface IReq_RegenerateRemoteIngressSecret extends plugins.typedrequestInterfaces.implementsTR { method: 'regenerateRemoteIngressSecret'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { success: boolean; secret: string; }; } /** * Get all remote ingress edge registrations. */ export interface IReq_GetRemoteIngresses extends plugins.typedrequestInterfaces.implementsTR { method: 'getRemoteIngresses'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { edges: IRemoteIngress[]; }; } /** * Get runtime status of all remote ingress edges. */ export interface IReq_GetRemoteIngressStatus extends plugins.typedrequestInterfaces.implementsTR { method: 'getRemoteIngressStatus'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { statuses: IRemoteIngressStatus[]; }; } /** * Get a connection token for a remote ingress edge. * The token is a single opaque base64url string that encodes hubHost, hubPort, edgeId, and secret. */ export interface IReq_GetRemoteIngressConnectionToken extends plugins.typedrequestInterfaces.implementsTR { method: 'getRemoteIngressConnectionToken'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; edgeId: string; hubHost?: string; }; response: { success: boolean; token?: string; message?: string; }; } /** * Get hub-level RemoteIngress settings. */ export interface IReq_GetRemoteIngressHubSettings extends plugins.typedrequestInterfaces.implementsTR { method: 'getRemoteIngressHubSettings'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { settings: IRemoteIngressHubSettings; }; } /** * Update hub-level RemoteIngress settings. */ export interface IReq_UpdateRemoteIngressHubSettings extends plugins.typedrequestInterfaces.implementsTR { method: 'updateRemoteIngressHubSettings'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; enabled?: boolean; tunnelPort?: number; hubDomain?: string | null; performance?: IRemoteIngressPerformanceConfig | null; }; response: { success: boolean; settings?: IRemoteIngressHubSettings; message?: string; }; }