code: public <T extends AbstractPutObjectRequest> T withSSECustomerKey(
              SSECustomerKey sseKey) {
          setSSECustomerKey(sseKey);
          @SuppressWarnings("unchecked") T t = (T)this;
          return t;
      }
docs: Sets the optional customer-provided server-side encryption key to use to
  encrypt the uploaded object, and returns the updated request object so
  that additional method calls can be chained together.
  
  @param sseKey
  The optional customer-provided server-side encryption key to
  use to encrypt the uploaded object.
  
  @return This updated request object so that additional method calls can
  be chained together.