UNPKG

@devoinc/alerts-api-client

Version:
755 lines (754 loc) 24.4 kB
export declare class ClientBase { private readonly config; protected constructor(config: IConfig); protected transformOptions(options: RequestInit): Promise<RequestInit>; protected transformResult(url: string, response: Response, processor: (response: Response) => any): any; } export interface IClient { /** * Add Alert comment * @param body Add comment to one alert */ addComment(body: AlertCommentSecOps): Promise<boolean>; /** * Add comment to multiple Alerts * @param body Comment to add to several alert ids */ addComments(body: AlertCommentSecOpsBulk): Promise<string[]>; /** * Delete Alert comment * @param body List of ID comments to delete */ deleteComment(body: number[]): Promise<boolean>; /** * Get all Alert comments * @param body Alert ID lists */ getList(body: number[]): Promise<AlertComments[]>; /** * Update Alert comment * @param commentId Comment id * @param body Updated comment */ updateComment(commentId: string, body: AlertCommentSecOps): Promise<boolean>; /** * Update bulk Alert comments * @param body Bulk comment update resource */ updateComments(body: AlertCommentSecOpsBulkUpdate): Promise<string>; /** * Get Alert without context * @param id Alert ID * @param tags (optional) If the parameter exists and the value is TRUE all the alert tags will be included in the response. * @param annotations (optional) If the parameter exists and the value is TRUE all the alert annotations will be included in the response. */ get(id: string, tags: boolean | undefined, annotations: boolean | undefined): Promise<Alert>; /** * Get Alerts * @param limit The limit, max number of elements returned * @param offset The offset, start element in the element number * @param from The date from in epoch time,with milliseconds obtain from new Date(Long.parseLong(from)) * @param to The date to in epoch time,with milliseconds,obtain from new Date(Long.parseLong(from)) * @param orderby (optional) Field to order, must be: id, domain, priority, context, category, srcPort, srcIp, srcHost, dstIp, dstPort, dstHost, protocol, username, application, engine, extraData, status, ack_status_date, createDate, updateDate. * @param orderasc (optional) Order Ascending * @param showAll (optional) Obtain all (false positive and close status included) Default:False */ getListByCriterias(limit: string, offset: string, from: string, to: string, orderby: string | undefined, orderasc: boolean | undefined, showAll: boolean | undefined): Promise<AlertExtended[]>; /** * Get Alert Statistics * @param showAll (optional) Obtain all (false positive and close status included) Default:False * @deprecated */ getListByCriteriasOverview(showAll: boolean | undefined): Promise<string>; /** * Get Alert statistics * @param hours (optional) Hours back to obtain data * @param from (optional) From to obtain data * @param type (optional) Type of result, may be 'raw', 'funnel, 'list' * @param filterName (optional) filter by name context * @param showAll (optional) Obtain all (false positive and close status included) Default:False */ getStatistics(hours: number | undefined, from: number | undefined, type: string | undefined, filterName: string | undefined, showAll: boolean | undefined): Promise<FunnelStatistics[]>; /** * Get Alert statuses * @param from (optional) The date from in epoch time, with miliseconds. Default value 24 hours before petition */ listStatus(from: string | undefined): Promise<string>; /** * Update Alert status * @param id Alert ID * @param status Alert status with this possible values: UNREAD = 0; UPDATED = 1; FALSE POSTIVE = 2; WATCHED = 100; CLOSED = 300; REMINDER = 500; RECOVERY = 600; ANTI FLOOD = 700; */ updateStatus(id: string, status: number): Promise<Alert>; /** * Update Alert status * @param status Alert status with this possible values: UNREAD = 0; UPDATED = 1; FALSE POSTIVE = 2; WATCHED = 100; CLOSED = 300; REMINDER = 500; RECOVERY = 600; ANTI FLOOD = 700; * @param body (optional) */ updateStatusLists(status: number, body: Blob | undefined): Promise<any>; /** * Get Alert definitions * @param nameFilter (optional) Alert name to filter * @param idFilter (optional) Alert id to filter * @param body (optional) */ getAlerts(nameFilter: string | undefined, idFilter: string | undefined, body: Pageable | undefined): Promise<AlertDefinition[]>; /** * Updated Alert definitions * @param body (optional) */ putAlerts(body: AlertDefinition | undefined): Promise<AlertDefinition>; /** * Create Alert definition * @param body (optional) */ postAlerts(body: AlertDefinition | undefined): Promise<AlertDefinition>; /** * Delete Alert definitions * @param alertIds List of alert definitions IDs * @return Deletion was successful */ deleteAlerts(alertIds: string[]): Promise<void>; /** * Updates a batch of Alert definitions * @param body (optional) */ putAlertsBatch(body: AlertDefinition[] | undefined): Promise<AlertDefinition[]>; /** * Create batch of Alert definitions * @param body (optional) */ postAlertsBatch(body: AlertDefinition[] | undefined): Promise<AlertDefinition[]>; /** * Update Alert definition statuses * @param alertIds List of alert definitions IDs * @param enable Enable/disable alert definitions */ putAlertStatus(alertIds: string[], enable: boolean): Promise<AlertSubscriptionUpdate>; /** * Assign Tag to Alert * @param body Alert IDs and tags to be set to the alerts */ setTags(body: AlertTagsRequest): Promise<any>; } export declare class Client extends ClientBase implements IClient { private http; private baseUrl; protected jsonParseReviver: ((key: string, value: any) => any) | undefined; constructor(configuration: IConfig, baseUrl?: string, http?: { fetch(url: RequestInfo, init?: RequestInit): Promise<Response>; }); /** * Add Alert comment * @param body Add comment to one alert */ addComment(body: AlertCommentSecOps): Promise<boolean>; protected processAddComment(response: Response): Promise<boolean>; /** * Add comment to multiple Alerts * @param body Comment to add to several alert ids */ addComments(body: AlertCommentSecOpsBulk): Promise<string[]>; protected processAddComments(response: Response): Promise<string[]>; /** * Delete Alert comment * @param body List of ID comments to delete */ deleteComment(body: number[]): Promise<boolean>; protected processDeleteComment(response: Response): Promise<boolean>; /** * Get all Alert comments * @param body Alert ID lists */ getList(body: number[]): Promise<AlertComments[]>; protected processGetList(response: Response): Promise<AlertComments[]>; /** * Update Alert comment * @param commentId Comment id * @param body Updated comment */ updateComment(commentId: string, body: AlertCommentSecOps): Promise<boolean>; protected processUpdateComment(response: Response): Promise<boolean>; /** * Update bulk Alert comments * @param body Bulk comment update resource */ updateComments(body: AlertCommentSecOpsBulkUpdate): Promise<string>; protected processUpdateComments(response: Response): Promise<string>; /** * Get Alert without context * @param id Alert ID * @param tags (optional) If the parameter exists and the value is TRUE all the alert tags will be included in the response. * @param annotations (optional) If the parameter exists and the value is TRUE all the alert annotations will be included in the response. */ get(id: string, tags: boolean | undefined, annotations: boolean | undefined): Promise<Alert>; protected processGet(response: Response): Promise<Alert>; /** * Get Alerts * @param limit The limit, max number of elements returned * @param offset The offset, start element in the element number * @param from The date from in epoch time,with milliseconds obtain from new Date(Long.parseLong(from)) * @param to The date to in epoch time,with milliseconds,obtain from new Date(Long.parseLong(from)) * @param orderby (optional) Field to order, must be: id, domain, priority, context, category, srcPort, srcIp, srcHost, dstIp, dstPort, dstHost, protocol, username, application, engine, extraData, status, ack_status_date, createDate, updateDate. * @param orderasc (optional) Order Ascending * @param showAll (optional) Obtain all (false positive and close status included) Default:False */ getListByCriterias(limit: string, offset: string, from: string, to: string, orderby: string | undefined, orderasc: boolean | undefined, showAll: boolean | undefined): Promise<AlertExtended[]>; protected processGetListByCriterias(response: Response): Promise<AlertExtended[]>; /** * Get Alert Statistics * @param showAll (optional) Obtain all (false positive and close status included) Default:False * @deprecated */ getListByCriteriasOverview(showAll: boolean | undefined): Promise<string>; protected processGetListByCriteriasOverview(response: Response): Promise<string>; /** * Get Alert statistics * @param hours (optional) Hours back to obtain data * @param from (optional) From to obtain data * @param type (optional) Type of result, may be 'raw', 'funnel, 'list' * @param filterName (optional) filter by name context * @param showAll (optional) Obtain all (false positive and close status included) Default:False */ getStatistics(hours: number | undefined, from: number | undefined, type: string | undefined, filterName: string | undefined, showAll: boolean | undefined): Promise<FunnelStatistics[]>; protected processGetStatistics(response: Response): Promise<FunnelStatistics[]>; /** * Get Alert statuses * @param from (optional) The date from in epoch time, with miliseconds. Default value 24 hours before petition */ listStatus(from: string | undefined): Promise<string>; protected processListStatus(response: Response): Promise<string>; /** * Update Alert status * @param id Alert ID * @param status Alert status with this possible values: UNREAD = 0; UPDATED = 1; FALSE POSTIVE = 2; WATCHED = 100; CLOSED = 300; REMINDER = 500; RECOVERY = 600; ANTI FLOOD = 700; */ updateStatus(id: string, status: number): Promise<Alert>; protected processUpdateStatus(response: Response): Promise<Alert>; /** * Update Alert status * @param status Alert status with this possible values: UNREAD = 0; UPDATED = 1; FALSE POSTIVE = 2; WATCHED = 100; CLOSED = 300; REMINDER = 500; RECOVERY = 600; ANTI FLOOD = 700; * @param body (optional) */ updateStatusLists(status: number, body: Blob | undefined): Promise<any>; protected processUpdateStatusLists(response: Response): Promise<any>; /** * Get Alert definitions * @param nameFilter (optional) Alert name to filter * @param idFilter (optional) Alert id to filter * @param body (optional) */ getAlerts(nameFilter: string | undefined, idFilter: string | undefined, pagination: Pageable | undefined): Promise<AlertDefinition[]>; protected processGetAlerts(response: Response): Promise<AlertDefinition[]>; /** * Updated Alert definitions * @param body (optional) */ putAlerts(body: AlertDefinition | undefined): Promise<AlertDefinition>; protected processPutAlerts(response: Response): Promise<AlertDefinition>; /** * Create Alert definition * @param body (optional) */ postAlerts(body: AlertDefinition | undefined): Promise<AlertDefinition>; protected processPostAlerts(response: Response): Promise<AlertDefinition>; /** * Delete Alert definitions * @param alertIds List of alert definitions IDs * @return Deletion was successful */ deleteAlerts(alertIds: string[]): Promise<void>; protected processDeleteAlerts(response: Response): Promise<void>; /** * Updates a batch of Alert definitions * @param body (optional) */ putAlertsBatch(body: AlertDefinition[] | undefined): Promise<AlertDefinition[]>; protected processPutAlertsBatch(response: Response): Promise<AlertDefinition[]>; /** * Create batch of Alert definitions * @param body (optional) */ postAlertsBatch(body: AlertDefinition[] | undefined): Promise<AlertDefinition[]>; protected processPostAlertsBatch(response: Response): Promise<AlertDefinition[]>; /** * Update Alert definition statuses * @param alertIds List of alert definitions IDs * @param enable Enable/disable alert definitions */ putAlertStatus(alertIds: string[], enable: boolean): Promise<AlertSubscriptionUpdate>; protected processPutAlertStatus(response: Response): Promise<AlertSubscriptionUpdate>; /** * Assign Tag to Alert * @param body Alert IDs and tags to be set to the alerts */ setTags(body: AlertTagsRequest): Promise<any>; protected processSetTags(response: Response): Promise<any>; } export interface AlertCommentSecOps { elementId?: string; commentType?: AlertCommentSecOpsCommentType; commentMsg?: string; commentTitle?: string; validContent?: boolean; } export interface AlertCommentSecOpsBulk { elementIds?: string[]; commentMsg?: string; commentTitle?: string; commentType?: AlertCommentSecOpsBulkCommentType; } export interface AlertComments { idAlert?: number; comments?: Comment[]; } export interface Comment { id?: number; author?: UserDomain; msg?: string; ack?: string; creationDate?: Date; updateDate?: Date; elementType?: string; elementId?: string; domain?: Domain; title?: string; status?: string; task?: boolean; } export interface Domain { id?: string; name?: string; status?: number; type?: number; updateDate?: Date; creationDate?: Date; subscribed?: number; daysLeft?: number; showLanding?: boolean; reseller?: Reseller; groupId?: number; alertsLastReseted?: Date; } export interface Reseller { id?: number; name?: string; preferences?: string; contactInformation?: string; pricePlans?: string; updateDate?: Date; creationDate?: Date; permPolicy?: string; menuView?: string; limits?: string; groupId?: number; webPreferences?: string; } export interface User { id?: string; email?: string; username?: string; telephone?: string; pwd?: string; status?: number; validation_token?: string; defaultDomain?: string; updateDate?: Date; creationDate?: Date; otpSecret?: string; loginAttempts?: number; recoveryAttempts?: number; } export interface UserDomain { id?: number; user?: User; domain?: Domain; lastTimeLogged?: Date; status?: number; creationDate?: Date; updateDate?: Date; pwd?: string; validationToken?: string; roleCustom?: number; rolesCustom?: number[]; externalId?: string; owner?: boolean; alertsLastVisited?: Date; } export interface AlertCommentSecOpsBulkUpdate { idMap?: { [key: string]: number[]; }; commentMsg?: string; commentTitle?: string; commentType?: AlertCommentSecOpsBulkUpdateCommentType; } export interface Alert { id?: number; domain?: string; priority?: number; context?: string; category?: string; srcPort?: number; srcIp?: string; srcHost?: string; dstIp?: string; dstPort?: number; dstHost?: string; protocol?: string; username?: string; application?: string; engine?: string; extraData?: string; alertDate?: Date; status?: number; ack_status_date?: Date; createDate?: Date; updateDate?: Date; scaled?: boolean; digest?: string; uniquedigest?: string; contexto?: Context; postAlertAction?: string; contextLabel?: string; contextSubscription?: number; shouldSend?: boolean; alertOwner?: string; fullExtraData?: string; alertLabel?: string; } export interface Category { id?: number; name?: string; owner?: string; subCategories?: SubCategory[]; } export interface Context { id?: number; pilotContextId?: string; name?: string; category?: Category; subCategory?: SubCategory; application_id?: number; defaultParams?: string; includefields?: string; excludefields?: string; } export interface SubCategory { id?: number; name?: string; hasContext?: boolean; alert_category_id?: number; contextList?: Context[]; } export interface AlertCorrelationContext { id?: string; nameId?: string; ownerEmail?: string; querySourceCode?: string; priority?: number; correlationTrigger?: CorrelationTrigger; } export interface AlertDefinition { id?: string; creationDate?: Date; name?: string; message?: string; description?: string; categoryId?: string; subcategory?: string; subcategoryId?: string; isActive?: boolean; isFavorite?: boolean; isAlertChain?: boolean; alertCorrelationContext?: AlertCorrelationContext; actionPolicyId?: string[]; } export interface AlertExtended { id?: number; domain?: string; priority?: number; context?: string; category?: string; srcPort?: number; srcIp?: string; srcHost?: string; dstIp?: string; dstPort?: number; dstHost?: string; protocol?: string; username?: string; application?: string; engine?: string; extraData?: string; alertDate?: Date; status?: number; ack_status_date?: Date; createDate?: Date; updateDate?: Date; scaled?: boolean; digest?: string; uniquedigest?: string; contexto?: Context; postAlertAction?: string; contextLabel?: string; contextSubscription?: number; shouldSend?: boolean; alertOwner?: string; fullExtraData?: string; alertType?: string; alertMitreTactics?: string; alertMitreTechniques?: string; alertPriority?: string; alertDefinition?: AlertDefinition; allExtraDataFields?: { [key: string]: string; }; tags?: string[]; entities?: Entity[]; commentsList?: Comment[]; alertLabel?: string; } export interface CorrelationTrigger { kind: string; } export interface CorrelationTriggerDeviation extends CorrelationTrigger { threshold?: number; absolute?: boolean; aggregationColumn?: string[]; } export interface CorrelationTriggerEach extends CorrelationTrigger { externalPeriod?: number; externalOffset?: number; internalPeriod?: number; internalOffset?: number; } export interface CorrelationTriggerGradient extends CorrelationTrigger { threshold?: number; absolute?: boolean; aggregationColumn?: string[]; } export interface CorrelationTriggerLow extends CorrelationTrigger { period?: number; threshold?: number; } export interface CorrelationTriggerRolling extends CorrelationTrigger { period?: number; backPeriod?: number; } export interface CorrelationTriggerSeveral extends CorrelationTrigger { period?: number; threshold?: number; keys?: string[]; } export interface Entity { id?: string; hostname?: string; url?: string; ip?: string; mac?: string; name?: string; location?: EntityLocation; email?: string; windowsDomain?: string; account?: string; hash?: string; impact?: string; creationDate?: number; modificationDate?: number; json?: string; domain?: string; extraDataMaps?: { [key: string]: string; }; entityType?: EntityType; entitySuperTypes?: EntitySuperTypes[]; entityFamily?: EntityFamily; direction?: EntityDirection; internalEntity?: boolean; } export interface EntityLocation { locationCountry?: string; locationCity?: string; locationState?: string; locationLat?: number; locationLon?: number; } export interface FunnelStatistics { total?: FunnelStatisticsValues; types?: { [key: string]: FunnelStatisticsValues; }; } export interface FunnelStatisticsValues { total?: number; enriched?: number; } export interface Pageable { pageSize?: number; pageNumber?: number; sort?: Sort; offset?: number; } export interface Sort { } export interface AlertSubscriptionUpdate { correlationId?: string; updated?: { [key: string]: boolean; }; } export interface AlertTagsRequest { alertIds?: string[]; tags?: string[]; } export declare enum AlertCommentSecOpsCommentType { ALERT = "ALERT", REPLY = "REPLY" } export declare enum AlertCommentSecOpsBulkCommentType { ALERT = "ALERT", REPLY = "REPLY" } export declare enum AlertCommentSecOpsBulkUpdateCommentType { ALERT = "ALERT", REPLY = "REPLY" } export declare enum EntityType { SOURCEIP = "SOURCEIP", DSTIP = "DSTIP", SOURCEDOMAIN = "SOURCEDOMAIN", DSTDOMAIN = "DSTDOMAIN", SOURCEHOST = "SOURCEHOST", DSTHOST = "DSTHOST", SOURCESYSTEMLOCATIONCOUNTRY = "SOURCESYSTEMLOCATIONCOUNTRY", SOURCESYSTEMLOCATIONCITY = "SOURCESYSTEMLOCATIONCITY", SOURCESYSTEMLOCATIONSTATE = "SOURCESYSTEMLOCATIONSTATE", SOURCESYSTEMLOCATIONLAT = "SOURCESYSTEMLOCATIONLAT", SOURCESYSTEMLOCATIONLON = "SOURCESYSTEMLOCATIONLON", DSTLOCATION = "DSTLOCATION", SOURCEUSER = "SOURCEUSER", DSTUSER = "DSTUSER", SOURCEUSERDOMAIN = "SOURCEUSERDOMAIN", DSTUSERDOMAIN = "DSTUSERDOMAIN", SOURCEUSERNAME = "SOURCEUSERNAME", DSTUSERNAME = "DSTUSERNAME", SOURCEURL = "SOURCEURL", DSTURL = "DSTURL", SOURCEMAC = "SOURCEMAC", DSTMAC = "DSTMAC", SOURCEEMAIL = "SOURCEEMAIL", DSTEMAIL = "DSTEMAIL", HASH = "HASH" } export declare enum EntitySuperTypes { DOMAIN = "DOMAIN", URL = "URL", IP = "IP", MAC = "MAC", USER = "USER", LOCATION = "LOCATION", EMAIL = "EMAIL", HASH = "HASH", HOSTNAME = "HOSTNAME", OTHER = "OTHER" } export declare enum EntityFamily { SYSTEM = "SYSTEM", USER = "USER", OTHER = "OTHER" } export declare enum EntityDirection { NONE = "NONE", SOURCE = "SOURCE", DESTINATION = "DESTINATION" } export declare class SwaggerException extends Error { message: string; status: number; response: string; headers: { [key: string]: any; }; result: any; constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any); protected isSwaggerException: boolean; static isSwaggerException(obj: any): obj is SwaggerException; } export interface IConfig { getAuthorization: () => string; }