code: public <T extends AbstractPutObjectRequest> T withCannedAcl(
              CannedAccessControlList cannedAcl) {
          setCannedAcl(cannedAcl);
          @SuppressWarnings("unchecked") T t = (T) this;
          return t;
      }
docs: Sets the optional pre-configured access control policy to use for the new
  object. Returns this {@link AbstractPutObjectRequest}, enabling additional method
  calls to be chained together.
  
  @param cannedAcl
  The optional pre-configured access control policy to use for
  the new object.
  
  @return This {@link AbstractPutObjectRequest}, enabling additional method
  calls to be chained together.
  
  @see AbstractPutObjectRequest#getCannedAcl()
  @see AbstractPutObjectRequest#setCannedAcl(CannedAccessControlList)