code: public <T extends AbstractPutObjectRequest> T withStorageClass(
              String storageClass) {
          setStorageClass(storageClass);
          @SuppressWarnings("unchecked") T t = (T)this;
          return t;
      }
docs: Sets the optional Amazon S3 storage class to use when storing the new
  object. Returns this {@link AbstractPutObjectRequest}, enabling additional method
  calls to be chained together. If not specified, the default standard
  storage class will be used when storing the object.
  <p>
  For more information on Amazon S3 storage classes and available values,
  see the {@link StorageClass} enumeration.
  </p>
  
  @param storageClass
  The storage class to use when storing the new object.
  
  @return This {@link AbstractPutObjectRequest}, enabling additional method calls to be
  chained together.
  
  @see AbstractPutObjectRequest#getStorageClass()
  @see AbstractPutObjectRequest#setStorageClass(StorageClass)
  @see AbstractPutObjectRequest#setStorageClass(String)
  @see AbstractPutObjectRequest#withStorageClass(StorageClass)