---
title: "Replace jail lifecycle hooks"
method: PUT
path: "/jail/{ctid}/options/lifecycle-hooks"
tags: ["Jail"]
---

# Replace jail lifecycle hooks

`PUT /jail/{ctid}/options/lifecycle-hooks`

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

## Path parameters

- `ctid` integer, required

## Request body

- InternalHandlersJailModifyLifecycleHooksRequest
  - `hooks` InternalHandlersJailModifyLifecycleHooksPayload, required
    - `poststart` InternalHandlersJailModifyLifecycleHookPhaseRequest, required
      - `enabled` boolean, required
      - `script` string, required
    - `poststop` InternalHandlersJailModifyLifecycleHookPhaseRequest, required
      - `enabled` boolean, required
      - `script` string, required
    - `prestart` InternalHandlersJailModifyLifecycleHookPhaseRequest, required
      - `enabled` boolean, required
      - `script` string, required
    - `prestop` InternalHandlersJailModifyLifecycleHookPhaseRequest, required
      - `enabled` boolean, required
      - `script` string, required
    - `start` InternalHandlersJailModifyLifecycleHookPhaseRequest, required
      - `enabled` boolean, required
      - `script` string, required
    - `stop` InternalHandlersJailModifyLifecycleHookPhaseRequest, required
      - `enabled` boolean, required
      - `script` string, required

## Response `200`

Success

- GithubComAlchemillahqSylveInternalAPIResponseAny
  - `data` unknown
  - `error` string
  - `message` string
  - `status` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `413` — Request Entity Too Large
- `500` — Internal Server Error

---

[API](https://skmtc.net/alchemillahq/apis/sylve-api.md) · [All operations](https://skmtc.net/alchemillahq/apis/sylve-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alchemillahq/sylve-api/revisions/7a7bea85004e/schema)
