http = $http; } /** @return array> */ public function list(string $sessionId): array { return $this->http->request('GET', "/api/sessions/{$this->http->encodeSegment($sessionId)}/templates") ?? []; } /** @return array */ public function get(string $sessionId, string $templateId): array { return $this->http->request('GET', "/api/sessions/{$this->http->encodeSegment($sessionId)}/templates/{$this->http->encodeSegment($templateId)}"); } /** * Create a template. Requires an OPERATOR-level key. * * @param array $body Must contain 'name' and 'body'; 'header'/'footer' optional. * @return array */ public function create(string $sessionId, array $body): array { return $this->http->request('POST', "/api/sessions/{$this->http->encodeSegment($sessionId)}/templates", [], $body); } /** * Update a template. Requires an OPERATOR-level key. * * @param array $body * @return array */ public function update(string $sessionId, string $templateId, array $body): array { return $this->http->request('PUT', "/api/sessions/{$this->http->encodeSegment($sessionId)}/templates/{$this->http->encodeSegment($templateId)}", [], $body); } /** Delete a template. Requires an OPERATOR-level key. */ public function delete(string $sessionId, string $templateId): void { $this->http->request('DELETE', "/api/sessions/{$this->http->encodeSegment($sessionId)}/templates/{$this->http->encodeSegment($templateId)}"); } }