code: public Response invokeSignedRequest(Client apiClient, String accessKey, String secretKey,
  			String httpMethod, String endpointURL, String reqPath, Map<String, String> headers,
  			MultivaluedMap<String, String> params, Entity<?> entity) {
  		byte[] jsonEntity = null;
  		if (entity != null) {
  			try {
  				jsonEntity = ParaObjectUtils.getJsonWriter().writeValueAsBytes(entity.getEntity());
  			} catch (JsonProcessingException ex) {
  				jsonEntity = null;
  				logger.error(null, ex);
  			}
  		}
  		return invokeSignedRequest(apiClient, accessKey, secretKey, httpMethod,
  				endpointURL, reqPath, headers, params, jsonEntity);
  	}
docs: Builds, signs and executes a request to an API endpoint using the provided credentials.
  Signs the request using the Amazon Signature 4 algorithm and returns the response.
  @param apiClient Jersey Client object
  @param accessKey access key
  @param secretKey secret key
  @param httpMethod the method (GET, POST...)
  @param endpointURL protocol://host:port
  @param reqPath the API resource path relative to the endpointURL
  @param headers headers map
  @param params parameters map
  @param entity an entity containing any Java object (payload), could be null
  @return a response object