protected function sendRequest(Operation $operation, array $userValues = [], $async = false) { $operation->validate($userValues); $options = (new RequestSerializer())->serializeOptions($operation, $userValues); $method = $async ? 'requestAsync' : 'request'; $uri = uri_template($operation->getPath(), $userValues); return $this->client->{$method}($operation->getMethod(), $uri, $options); }