Update mTLS Config
Enable, switch mode, or disable mutual-TLS verification on an endpoint. Replaces the trusted-CA list wholesale on each call — pass the full list each time, the platform doesn't merge. mTLS works on HTTP(S) endpoints only: TCP and UDP tunnels never check client certificates.
Enabling mTLS (mode != "disabled") is gated behind the mtls entitlement on your plan; disabling is unrestricted so a downgraded user can clear it themselves. optional and required modes need at least one CA in ca_uuids — without one, the tunnel-server has nothing to validate against. Maximum 32 CAs per endpoint.
Every CA in the list is resolved in your active account before anything is persisted. The mode change + CA list replacement happen in a single transaction; partial state is impossible.
Path parameters
Request body
disabled | optional | required.uuids of the trusted client CAs (from /client-cas). Empty when mode: "disabled"; required (length ≥ 1) for optional and required. Max length 32.Deprecated: ca_ids (integers) is still accepted until the sunset. Send ca_uuids; sending both for different sets of CAs is a 400 id_uuid_mismatch.
Response (200 OK)
Returns the updated config — same shape as GET /v1/endpoints/{uuid}/mtls.
Deprecated: until the sunset this response also carries the legacy integer endpoint_id and ca_ids fields. Don't use them; read endpoint_uuid and ca_uuids.
Errors
mode, empty ca_uuids with non-disabled mode, > 32 CAs, a malformed entry in ca_uuids, or ca_ids and ca_uuids naming different CAs (id_uuid_mismatch).mtls entitlement (only when enabling — disabling is always allowed).ca_uuids entry names no client CA you own (another account's CA reads like an unknown one).