Replace jail lifecycle hooks
PUT
/jail/{ctid}/options/lifecycle-hooks
const url = 'https://sylve.lan:8181/api/jail/1/options/lifecycle-hooks';const options = { method: 'PUT', headers: {Authorization: '<Authorization>', 'Content-Type': 'application/json'}, body: '{"hooks":{"poststart":{"enabled":true,"script":"example"},"poststop":{"enabled":true,"script":"example"},"prestart":{"enabled":true,"script":"example"},"prestop":{"enabled":true,"script":"example"},"start":{"enabled":true,"script":"example"},"stop":{"enabled":true,"script":"example"}}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://sylve.lan:8181/api/jail/1/options/lifecycle-hooks \ --header 'Authorization: <Authorization>' \ --header 'Content-Type: application/json' \ --data '{ "hooks": { "poststart": { "enabled": true, "script": "example" }, "poststop": { "enabled": true, "script": "example" }, "prestart": { "enabled": true, "script": "example" }, "prestop": { "enabled": true, "script": "example" }, "start": { "enabled": true, "script": "example" }, "stop": { "enabled": true, "script": "example" } } }'Replace all six jail exec.* lifecycle-hook phases; every phase, enabled flag, and script must be supplied, and disabled empty scripts explicitly clear a phase
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”ctid
required
integer
Jail CTID
Request Body
Section titled “Request Body”Lifecycle hooks
Media typeapplication/json
object
hooks
required
object
poststart
required
object
enabled
required
boolean
script
required
string
poststop
required
object
enabled
required
boolean
script
required
string
prestart
required
object
enabled
required
boolean
script
required
string
prestop
required
object
enabled
required
boolean
script
required
string
start
required
object
enabled
required
boolean
script
required
string
stop
required
object
enabled
required
boolean
script
required
string
Examplegenerated
{ "hooks": { "poststart": { "enabled": true, "script": "example" }, "poststop": { "enabled": true, "script": "example" }, "prestart": { "enabled": true, "script": "example" }, "prestop": { "enabled": true, "script": "example" }, "start": { "enabled": true, "script": "example" }, "stop": { "enabled": true, "script": "example" } }}Responses
Section titled “Responses”Success
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Bad Request
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Unauthorized
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Forbidden
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Not Found
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Conflict
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Request Entity Too Large
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}Internal Server Error
Media typeapplication/json
object
data
error
string
message
string
status
string
Examplegenerated
{ "data": "example", "error": "example", "message": "example", "status": "example"}