/** * @param ResponseClassMap $responseClassMap * @param string $relativeUriPath * @param string $clientMetaInfo * @param DataObject|null $requestBodyObject * @param RequestObject|null $requestParameters * @param CallContext $callContext * @return DataObject * @throws Exception */ public function put(ResponseClassMap $responseClassMap, $relativeUriPath, $clientMetaInfo = '', DataObject $requestBodyObject = null, RequestObject $requestParameters = null, CallContext $callContext = null) { $relativeUriPathWithRequestParameters = $this->getRelativeUriPathWithRequestParameters($relativeUriPath, $requestParameters); $requestHeaders = $this->getRequestHeaders('PUT', $relativeUriPathWithRequestParameters, $clientMetaInfo, $callContext); $requestBody = $requestBodyObject ? $requestBodyObject->toJson() : ''; $connectionResponse = $this->getConnection()->put($this->communicatorConfiguration->getApiEndpoint() . $relativeUriPathWithRequestParameters, $requestHeaders, $requestBody, $this->communicatorConfiguration->getProxyConfiguration()); $response = $this->getResponseFactory()->createResponse($connectionResponse, $responseClassMap, $callContext); $httpStatusCode = $connectionResponse->getHttpStatusCode(); if ($httpStatusCode >= 400) { throw $this->getResponseExceptionFactory()->createException($httpStatusCode, $response, $callContext); } return $response; }