import * as plugins from '../plugins.js'; import type * as authInterfaces from '../data/auth.js'; import type { ISourceProfile, IRouteSecurity } from '../data/route-management.js'; // ============================================================================ // Source Profile Endpoints (source-side: who can access) // ============================================================================ /** * Get all source profiles. */ export interface IReq_GetSourceProfiles extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSourceProfiles > { method: 'getSourceProfiles'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { profiles: ISourceProfile[]; }; } /** * Get a single source profile by ID. */ export interface IReq_GetSourceProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSourceProfile > { method: 'getSourceProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { profile: ISourceProfile | null; }; } /** * Create a new source profile. */ export interface IReq_CreateSourceProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateSourceProfile > { method: 'createSourceProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; name: string; description?: string; security: IRouteSecurity; extendsProfiles?: string[]; }; response: { success: boolean; id?: string; message?: string; }; } /** * Update a source profile. */ export interface IReq_UpdateSourceProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateSourceProfile > { method: 'updateSourceProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; name?: string; description?: string; security?: IRouteSecurity; extendsProfiles?: string[]; }; response: { success: boolean; affectedRouteCount?: number; message?: string; }; } /** * Delete a source profile. */ export interface IReq_DeleteSourceProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteSourceProfile > { method: 'deleteSourceProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; force?: boolean; }; response: { success: boolean; message?: string; }; } /** * Get which routes reference a source profile. */ export interface IReq_GetSourceProfileUsage extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSourceProfileUsage > { method: 'getSourceProfileUsage'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { routes: Array<{ id: string; name: string }>; }; }