n8n-nodes-binalyze-air
Version:
Binalyze AIR nodes for automating DFIR with n8n workflows
315 lines (314 loc) • 9.5 kB
TypeScript
import { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-workflow';
import { AirCredentials } from '../../../../credentials/AirApi.credentials';
export interface Case {
_id: string;
name: string;
notes: any[];
createdAt: string;
updatedAt: string;
ownerUserId: string;
organizationId: number;
status: 'open' | 'closed' | 'archived';
startedOn: string;
visibility: string;
source: string;
totalDays: number;
totalEndpoints: number;
assignedUserIds: string[];
closedOn?: string;
}
export interface CasesResponse {
success: boolean;
result: {
entities: Case[];
filters: Array<{
name: string;
type: string;
options: string[];
filterUrl: string | null;
}>;
sortables: string[];
totalEntityCount: number;
currentPage: number;
pageSize: number;
previousPage: number;
totalPageCount: number;
nextPage: number;
};
statusCode: number;
errors: string[];
}
export interface CaseActivity {
_id: number;
createdAt: string;
updatedAt: string;
type: string;
performedBy: string;
data: any;
organizationIds: number[];
description: string;
}
export interface CaseActivitiesResponse {
success: boolean;
result: {
entities: CaseActivity[];
filters: Array<{
name: string;
type: string;
options: string[];
filterUrl: string | null;
}>;
sortables: string[];
totalEntityCount: number;
currentPage: number;
pageSize: number;
previousPage: number;
totalPageCount: number;
nextPage: number;
};
statusCode: number;
errors: string[];
}
export interface CaseEndpoint {
platform: string;
tags: string[];
isolationStatus: string;
_id: string;
createdAt: string;
updatedAt: string;
organizationId: number;
ipAddress: string;
name: string;
groupId: string;
groupFullPath: string;
os: string;
isServer: boolean;
isManaged: boolean;
lastSeen: string;
version: string;
versionNo: number;
registeredAt: string;
securityToken: string;
onlineStatus: string;
issues: string[];
label: string | null;
waitingForVersionUpdateFix: boolean;
}
export interface CaseEndpointsResponse {
success: boolean;
result: {
entities: CaseEndpoint[];
filters: Array<{
name: string;
type: string;
options: any[];
filterUrl: string | null;
}>;
sortables: string[];
totalEntityCount: number;
currentPage: number;
pageSize: number;
previousPage: number;
totalPageCount: number;
nextPage: number;
};
statusCode: number;
errors: string[];
}
export interface CaseTask {
_id: string;
taskId: string;
name: string;
type: string;
endpointId: string;
endpointName: string;
organizationId: number;
status: string;
recurrence: string | null;
progress: number;
duration: number | null;
caseIds: string[];
isComparable: boolean;
createdAt: string;
updatedAt: string;
response: any | null;
}
export interface CaseTasksResponse {
success: boolean;
result: {
entities: CaseTask[];
filters: Array<{
name: string;
type: string;
options: string[];
filterUrl: string | null;
}>;
sortables: string[];
totalEntityCount: number;
currentPage: number;
pageSize: number;
previousPage: number;
totalPageCount: number;
nextPage: number;
};
statusCode: number;
errors: string[];
}
export interface UserProfile {
name: string;
surname: string;
department: string;
}
export interface Role {
_id: string;
name: string;
createdBy: string;
tag: string;
privilegeTypes: string[];
createdAt: string;
updatedAt: string;
}
export interface User {
_id: string;
email: string;
username: string;
organizationIds: number[] | string;
strategy: string;
profile: UserProfile;
tfaEnabled: boolean;
createdAt: string;
updatedAt: string;
roles: Role[];
}
export interface CaseUsersResponse {
success: boolean;
result: {
entities: User[];
filters: Array<{
name: string;
type: string;
options: string[];
filterUrl: string | null;
}>;
sortables: string[];
totalEntityCount: number;
currentPage: number;
pageSize: number;
previousPage: number;
totalPageCount: number;
nextPage: number;
};
statusCode: number;
errors: string[];
}
export declare const api: {
getCases(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, organizationIds?: string | string[], additionalParams?: {
pageNumber?: number;
pageSize?: number;
status?: string;
ownerUserId?: string;
sortBy?: string;
sortType?: string;
searchTerm?: string;
}): Promise<CasesResponse>;
createCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, caseData: {
organizationId: number;
name: string;
ownerUserId: string;
visibility: string;
assignedUserIds: string[];
}): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
updateCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string, updateData: Partial<{
name: string;
ownerUserId: string;
visibility: string;
status: "open" | "closed" | "archived";
notes: any[];
assignedUserIds: string[];
}>): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
getCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
closeCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
openCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
archiveCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
changeOwner(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string, newOwnerId: string): Promise<{
success: boolean;
result: Case;
statusCode: number;
errors: string[];
}>;
checkCaseName(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, name: string): Promise<{
success: boolean;
result: boolean;
statusCode: number;
errors: string[];
}>;
getCaseActivities(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string): Promise<CaseActivitiesResponse>;
getCaseEndpoints(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string, organizationIds?: string | number): Promise<CaseEndpointsResponse>;
getCaseTasksById(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string, organizationIds?: string | number): Promise<CaseTasksResponse>;
getCaseUsers(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, caseId: string, organizationIds?: string): Promise<CaseUsersResponse>;
removeEndpointsFromCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, id: string, filter: {
searchTerm?: string;
name?: string;
ipAddress?: string;
groupId?: string;
groupFullPath?: string;
managedStatus?: string[];
isolationStatus?: string[];
platform?: string[];
issue?: string;
onlineStatus?: string[];
tags?: string[];
version?: string;
policy?: string;
includedEndpointIds?: string[];
excludedEndpointIds?: string[];
organizationIds?: number[];
}): Promise<{
success: boolean;
result: null;
statusCode: number;
errors: string[];
}>;
removeTaskAssignmentFromCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, caseId: string, taskAssignmentId: string): Promise<{
success: boolean;
result: null;
statusCode: number;
errors: string[];
}>;
importTaskAssignmentsToCase(context: IExecuteFunctions | ILoadOptionsFunctions, credentials: AirCredentials, caseId: string, taskAssignmentIds: string[]): Promise<{
success: boolean;
result: null;
statusCode: number;
errors: string[];
}>;
};