elasticsearch/docs/reference/ml/anomaly-detection/apis/delete-job.asciidoc
David Roberts 10a1d27c7b
[ML] Deleting a job now deletes the datafeed if necessary (#76010)
Previously attempting to delete a job that had a datafeed
would return an exception. However, this was unnecessarily
pedantic - the user would always want to delete both job
and datafeed together, and would react by deleting the
datafeed and then subsequently deleting the job again.

This change makes the delete job API automatically delete
a datafeed associated with the job. The same level of
force is used for this delete datafeed request as was used
on the delete job request. This means that it's possible
to force-delete an open job with a started datafeed (since
force-delete datafeed will automatically stop a started
datafeed). It's still not possible to delete an opened job
without using force.
2021-08-03 17:22:06 +01:00

94 lines
2.6 KiB
Text

[role="xpack"]
[testenv="platinum"]
[[ml-delete-job]]
= Delete {anomaly-jobs} API
++++
<titleabbrev>Delete jobs</titleabbrev>
++++
Deletes an existing {anomaly-job}.
[[ml-delete-job-request]]
== {api-request-title}
`DELETE _ml/anomaly_detectors/<job_id>`
[[ml-delete-job-prereqs]]
== {api-prereq-title}
* Requires the `manage_ml` cluster privilege. This privilege is included in the
`machine_learning_admin` built-in role.
* Before you can delete a job, you must close it (unless you specify the `force`
parameter). See <<ml-close-job>>.
[[ml-delete-job-desc]]
== {api-description-title}
All job configuration, model state and results are deleted.
IMPORTANT: Deleting an {anomaly-job} must be done via this API only. Do not
delete the job directly from the `.ml-*` indices using the {es} delete document
API. When {es} {security-features} are enabled, make sure no `write` privileges
are granted to anyone over the `.ml-*` indices.
It is not currently possible to delete multiple jobs using wildcards or a comma
separated list.
If you delete a job that has a {dfeed}, the request will first attempt to
delete the {dfeed}, as though <<ml-delete-datafeed>> was called with the same
`timeout` and `force` parameters as this delete request.
[[ml-delete-job-path-parms]]
== {api-path-parms-title}
`<job_id>`::
(Required, string)
include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection]
[[ml-delete-job-query-parms]]
== {api-query-parms-title}
`force`::
(Optional, Boolean) Use to forcefully delete an opened job; this method is
quicker than closing and deleting the job.
`wait_for_completion`::
(Optional, Boolean) Specifies whether the request should return immediately or
wait until the job deletion completes. Defaults to `true`.
[[ml-delete-job-example]]
== {api-examples-title}
[source,console]
--------------------------------------------------
DELETE _ml/anomaly_detectors/total-requests
--------------------------------------------------
// TEST[skip:setup:server_metrics_job]
When the job is deleted, you receive the following results:
[source,console-result]
----
{
"acknowledged": true
}
----
In the next example we delete the `total-requests` job asynchronously:
[source,console]
--------------------------------------------------
DELETE _ml/anomaly_detectors/total-requests?wait_for_completion=false
--------------------------------------------------
// TEST[skip:setup:server_metrics_job]
When `wait_for_completion` is set to `false`, the response contains the id
of the job deletion task:
[source,console-result]
----
{
"task": "oTUltX4IQMOUUVeiohTt8A:39"
}
----
// TESTRESPONSE[s/"task": "oTUltX4IQMOUUVeiohTt8A:39"/"task": $body.task/]