Files
dcrouter/ts_interfaces/requests/source-profiles.ts

128 lines
3.0 KiB
TypeScript
Raw Normal View History

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 }>;
};
}