The definition for cluster.put_settings is out of sync with Serverless.
The source code labels it as stable/public.
* @availability serverless stability=stable visibility=public
However, when running this API against Serverless we get a 404 error:
> client.cluster.put_settings(body: {})
[404] {"error":"Request for uri [/_cluster/settings] with method [PUT] exists but is not available when running in serverless mode"}
(Elastic::Transport::Transport::Errors::NotFound)