import * as plugins from '../plugins.js'; import type * as authInterfaces from '../data/auth.js'; import type { ISecurityProfile, IRouteSecurity } from '../data/route-management.js'; // ============================================================================ // Security Profile Endpoints // ============================================================================ /** * Get all security profiles. */ export interface IReq_GetSecurityProfiles extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityProfiles > { method: 'getSecurityProfiles'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; }; response: { profiles: ISecurityProfile[]; }; } /** * Get a single security profile by ID. */ export interface IReq_GetSecurityProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityProfile > { method: 'getSecurityProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { profile: ISecurityProfile | null; }; } /** * Create a new security profile. */ export interface IReq_CreateSecurityProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateSecurityProfile > { method: 'createSecurityProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; name: string; description?: string; security: IRouteSecurity; extendsProfiles?: string[]; }; response: { success: boolean; id?: string; message?: string; }; } /** * Update a security profile. */ export interface IReq_UpdateSecurityProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_UpdateSecurityProfile > { method: 'updateSecurityProfile'; 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 security profile. */ export interface IReq_DeleteSecurityProfile extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_DeleteSecurityProfile > { method: 'deleteSecurityProfile'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; force?: boolean; }; response: { success: boolean; message?: string; }; } /** * Get which routes reference a security profile. */ export interface IReq_GetSecurityProfileUsage extends plugins.typedrequestInterfaces.implementsTR< plugins.typedrequestInterfaces.ITypedRequest, IReq_GetSecurityProfileUsage > { method: 'getSecurityProfileUsage'; request: { identity?: authInterfaces.IIdentity; apiToken?: string; id: string; }; response: { routes: Array<{ id: string; name: string }>; }; }