[[put-shutdown]] === Put shutdown API NOTE: {cloud-only} Prepares a node to be shut down. [[put-shutdown-api-request]] ==== {api-request-title} `PUT _nodes//shutdown` [[put-shutdown-api-prereqs]] ==== {api-prereq-title} * If the {es} {security-features} are enabled, you must have the `manage` <> to use this API. * If the <> is enabled, you must be an operator to use this API. [[put-shutdown-api-desc]] ==== {api-description-title} Migrates ongoing tasks and index shards to other nodes as needed to prepare a node to be restarted or shut down and removed from the cluster. This ensures that {es} can be stopped safely with minimal disruption to the cluster. You must specify the type of shutdown: `restart` or `remove`. If a node is already being prepared for shutdown, you can use this API to change the shutdown type. IMPORTANT: This API does *NOT* terminate the {es} process. Monitor the <> to determine when it is safe to stop {es}. [[put-shutdown-api-path-params]] ==== {api-path-parms-title} ``:: (Required, string) The ID of the node you want to prepare for shutdown. If you specify a node that is offline, it will be prepared for shut down when it rejoins the cluster. IMPORTANT: This parameter is *NOT* validated against the cluster's active nodes. This enables you to register a node for shut down while it is offline. No error is thrown if you specify an invalid node ID. [[put-shutdown-api-params]] ==== {api-query-parms-title} include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=timeoutparms] [role="child_attributes"] [[put-shutdown-api-request-body]] ==== {api-request-body-title} `type`:: (Required, string) Valid values are `restart` and `remove`. Use `restart` when you need to temporarily shut down a node to perform an upgrade, make configuration changes, or perform other maintenance. Because the node is expected to rejoin the cluster, data is not migrated off of the node. Use `remove` when you need to permanently remove a node from the cluster. The node is not marked ready for shutdown until data is migrated off of the node `reason`:: (Required, string) A human-readable reason that the node is being shut down. This field provides information for other cluster operators; it does not affect the shut down process. `allocation_delay`:: (Optional, string) Only valid if `type` is `restart`. Controls how long {es} will wait for the node to restart and join the cluster before reassigning its shards to other nodes. This works the same as <> with the `index.unassigned.node_left.delayed_timeout` setting. If you specify both a restart allocation delay and an index-level allocation delay, the longer of the two is used. [[put-shutdown-api-example]] ==== {api-examples-title} Register a node for shutdown: [source,console] -------------------------------------------------- PUT /_nodes/USpTGYaBSIKbgSUJR2Z9lg/shutdown { "type": "restart", <1> "reason": "Demonstrating how the node shutdown API works", "allocation_delay": "20m" } -------------------------------------------------- //// [source,console-result] -------------------------------------------------- { "acknowledged": true } -------------------------------------------------- //// <1> Prepares the node to be restarted. Use `remove` for nodes that will be permanently removed from the cluster.