in x-pack/platform/plugins/shared/ml/server/lib/ml_client/ml_audit_logger.ts [142:382]
private createPartialLogEntry(
taskType: TaskType,
p: MlClientParams
): { message: string; type: EventTypes[] } {
switch (taskType) {
/* Anomaly Detection */
case 'ml_put_ad_job': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Creating anomaly detection job ${jobId}`, type: [EVENT_TYPES.creation] };
}
case 'ml_delete_ad_job': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Deleting anomaly detection job ${jobId}`, type: [EVENT_TYPES.deletion] };
}
case 'ml_delete_model_snapshot': {
const [jobId] = getADJobIdsFromRequest(p);
const [params] = p as Parameters<MlClient['deleteModelSnapshot']>;
const snapshotId = params.snapshot_id;
return {
message: `Deleting model snapshot ${snapshotId} from job ${jobId}`,
type: [EVENT_TYPES.deletion],
};
}
case 'ml_open_ad_job': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Opening anomaly detection job ${jobId}`, type: [EVENT_TYPES.change] };
}
case 'ml_close_ad_job': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Closing anomaly detection job ${jobId}`, type: [EVENT_TYPES.change] };
}
case 'ml_update_ad_job': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Updating anomaly detection job ${jobId}`, type: [EVENT_TYPES.change] };
}
case 'ml_reset_ad_job': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Resetting anomaly detection job ${jobId}`, type: [EVENT_TYPES.change] };
}
case 'ml_revert_ad_snapshot': {
const [jobId] = getADJobIdsFromRequest(p);
const [params] = p as Parameters<MlClient['revertModelSnapshot']>;
const snapshotId = params.snapshot_id;
return {
message: `Reverting anomaly detection snapshot ${snapshotId} in job ${jobId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_put_ad_datafeed': {
const [datafeedId] = getDatafeedIdsFromRequest(p);
const [jobId] = getADJobIdsFromRequest(p);
return {
message: `Creating anomaly detection datafeed ${datafeedId} for job ${jobId}`,
type: [EVENT_TYPES.creation],
};
}
case 'ml_delete_ad_datafeed': {
const [datafeedId] = getDatafeedIdsFromRequest(p);
return {
message: `Deleting anomaly detection datafeed ${datafeedId}`,
type: [EVENT_TYPES.deletion],
};
}
case 'ml_start_ad_datafeed': {
const [datafeedId] = getDatafeedIdsFromRequest(p);
return {
message: `Starting anomaly detection datafeed ${datafeedId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_stop_ad_datafeed': {
const [datafeedId] = getDatafeedIdsFromRequest(p);
return {
message: `Stopping anomaly detection datafeed ${datafeedId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_update_ad_datafeed': {
const [datafeedId] = getDatafeedIdsFromRequest(p);
return {
message: `Updating anomaly detection datafeed ${datafeedId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_put_calendar': {
const [params] = p as Parameters<MlClient['putCalendar']>;
const calendarId = params.calendar_id;
// @ts-expect-error body is optional
const jobIds = (params.body ?? params).job_ids;
return {
message: `Creating calendar ${calendarId} ${jobIds ? `with job(s) ${jobIds}` : ''}`,
type: [EVENT_TYPES.creation],
};
}
case 'ml_delete_calendar': {
const [params] = p as Parameters<MlClient['deleteCalendar']>;
const calendarId = params.calendar_id;
return { message: `Deleting calendar ${calendarId}`, type: [EVENT_TYPES.deletion] };
}
case 'ml_put_calendar_job': {
const [params] = p as Parameters<MlClient['putCalendarJob']>;
const calendarId = params.calendar_id;
const jobIds = params.job_id;
return {
message: `Adding job(s) ${jobIds} to calendar ${calendarId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_delete_calendar_job': {
const [params] = p as Parameters<MlClient['deleteCalendarJob']>;
const calendarId = params.calendar_id;
const jobIds = params.job_id;
return {
message: `Removing job(s) ${jobIds} from calendar ${calendarId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_post_calendar_events': {
const [params] = p as Parameters<MlClient['postCalendarEvents']>;
const calendarId = params.calendar_id;
// @ts-expect-error body is optional
const eventsCount = (params.body ?? params).events;
return {
message: `Adding ${eventsCount} event(s) to calendar ${calendarId}`,
type: [EVENT_TYPES.creation],
};
}
case 'ml_delete_calendar_event': {
const [params] = p as Parameters<MlClient['deleteCalendarEvent']>;
const calendarId = params.calendar_id;
const eventId = params.event_id;
return {
message: `Removing event(s) ${eventId} from calendar ${calendarId}`,
type: [EVENT_TYPES.deletion],
};
}
case 'ml_put_filter': {
const [params] = p as Parameters<MlClient['putFilter']>;
const filterId = params.filter_id;
return { message: `Creating filter ${filterId}`, type: [EVENT_TYPES.creation] };
}
case 'ml_update_filter': {
const [params] = p as Parameters<MlClient['updateFilter']>;
const filterId = params.filter_id;
return { message: `Updating filter ${filterId}`, type: [EVENT_TYPES.change] };
}
case 'ml_delete_filter': {
const [params] = p as Parameters<MlClient['deleteFilter']>;
const filterId = params.filter_id;
return { message: `Deleting filter ${filterId}`, type: [EVENT_TYPES.deletion] };
}
case 'ml_forecast': {
const [jobId] = getADJobIdsFromRequest(p);
return { message: `Forecasting for job ${jobId}`, type: [EVENT_TYPES.creation] };
}
case 'ml_delete_forecast': {
const [params] = p as Parameters<MlClient['deleteForecast']>;
const forecastId = params.forecast_id;
const [jobId] = getADJobIdsFromRequest(p);
return {
message: `Deleting forecast ${forecastId} for job ${jobId}`,
type: [EVENT_TYPES.deletion],
};
}
/* Data Frame Analytics */
case 'ml_put_dfa_job': {
const [analyticsId] = getDFAJobIdsFromRequest(p);
return {
message: `Creating data frame analytics job ${analyticsId}`,
type: [EVENT_TYPES.creation],
};
}
case 'ml_delete_dfa_job': {
const [analyticsId] = getDFAJobIdsFromRequest(p);
return {
message: `Deleting data frame analytics job ${analyticsId}`,
type: [EVENT_TYPES.deletion],
};
}
case 'ml_start_dfa_job': {
const [analyticsId] = getDFAJobIdsFromRequest(p);
return {
message: `Starting data frame analytics job ${analyticsId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_stop_dfa_job': {
const [analyticsId] = getDFAJobIdsFromRequest(p);
return {
message: `Stopping data frame analytics job ${analyticsId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_update_dfa_job': {
const [analyticsId] = getDFAJobIdsFromRequest(p);
return {
message: `Updating data frame analytics job ${analyticsId}`,
type: [EVENT_TYPES.change],
};
}
/* Trained Models */
case 'ml_put_trained_model': {
const [modelId] = getModelIdsFromRequest(p);
return { message: `Creating trained model ${modelId}`, type: [EVENT_TYPES.creation] };
}
case 'ml_delete_trained_model': {
const [modelId] = getModelIdsFromRequest(p);
return { message: `Deleting trained model ${modelId}`, type: [EVENT_TYPES.deletion] };
}
case 'ml_start_trained_model_deployment': {
const [modelId] = getModelIdsFromRequest(p);
return {
message: `Starting trained model deployment for model ${modelId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_stop_trained_model_deployment': {
const [modelId] = getModelIdsFromRequest(p);
return {
message: `Stopping trained model deployment for model ${modelId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_update_trained_model_deployment': {
const [modelId] = getModelIdsFromRequest(p);
return {
message: `Updating trained model deployment for model ${modelId}`,
type: [EVENT_TYPES.change],
};
}
case 'ml_infer_trained_model': {
const [modelId] = getModelIdsFromRequest(p);
return { message: `Inferring trained model ${modelId}`, type: [EVENT_TYPES.access] };
}
default:
throw new Error(`Unsupported task type: ${taskType}`);
}
}