/**
  * @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;
 }