void setAmbryHeadersForPut(HttpHeaders httpHeaders, Long ttlInSecs, boolean isPrivate, String serviceId,
      String contentType, String ownerId, String targetAccountName, String targetContainerName) {
    if (httpHeaders != null && serviceId != null && contentType != null) {
      if (ttlInSecs != null && ttlInSecs > -1) {
        httpHeaders.add(RestUtils.Headers.TTL, ttlInSecs);
      }
      httpHeaders.add(RestUtils.Headers.SERVICE_ID, serviceId);
      httpHeaders.add(RestUtils.Headers.AMBRY_CONTENT_TYPE, contentType);
      httpHeaders.add(RestUtils.Headers.NAMED_UPSERT, true);
      if (targetAccountName != null) {
        httpHeaders.add(TARGET_ACCOUNT_NAME, targetAccountName);
      }
      if (targetContainerName != null) {
        httpHeaders.add(RestUtils.Headers.TARGET_CONTAINER_NAME, targetContainerName);
      } else {
        httpHeaders.add(RestUtils.Headers.PRIVATE, isPrivate);
      }
      if (ownerId != null) {
        httpHeaders.add(RestUtils.Headers.OWNER_ID, ownerId);
      }
    } else {
      throw new IllegalArgumentException("Some required arguments are null. Cannot set ambry headers");
    }
  }
Sets headers that helps build {@link BlobProperties} on the server. See argument list for the headers that are set.
Any other headers have to be set explicitly.
@param httpHeaders the {@link HttpHeaders} where the headers should be set.
@param ttlInSecs sets the {@link RestUtils.Headers#TTL} header. Set to {@link Utils#Infinite_Time} if no
                 expiry.
@param isPrivate sets the {@link RestUtils.Headers#PRIVATE} header. Allowed values: true, false.
@param serviceId sets the {@link RestUtils.Headers#SERVICE_ID} header. Required.
@param contentType sets the {@link RestUtils.Headers#AMBRY_CONTENT_TYPE} header. Required and has to be a valid MIME
                   type.
@param ownerId sets the {@link RestUtils.Headers#OWNER_ID} header. Optional - if not required, send null.
@param targetAccountName sets the {@link RestUtils.Headers#TARGET_ACCOUNT_NAME} header. Can be {@code null}.
@param targetContainerName sets the {@link RestUtils.Headers#TARGET_CONTAINER_NAME} header. Can be {@code null}.
@throws IllegalArgumentException if any of {@code headers}, {@code serviceId}, {@code contentType} is null or if
                                 {@code contentLength} < 0 or if {@code ttlInSecs} < -1.
ambry-frontend/src/integration-test/java/com/github/ambry/frontend/FrontendIntegrationTestBase.java