code: public Copy copy(final CopyObjectRequest copyObjectRequest,
                       final TransferStateChangeListener stateChangeListener) throws
                                                                              AmazonServiceException,
                                                                              AmazonClientException {
          return copy(copyObjectRequest, s3, stateChangeListener);
      }
docs: <p>
  Schedules a new transfer to copy data from one Amazon S3 location to
  another Amazon S3 location. This method is non-blocking and returns
  immediately (i.e. before the copy has finished).
  </p>
  <p>
  <code>TransferManager</code> doesn't support copying of encrypted objects
  whose encryption materials are stored in an instruction file.
  </p>
  <p>
  Use the returned <code>Copy</code> object to check if the copy is
  complete.
  </p>
  <p>
  If resources are available, the copy request will begin immediately.
  Otherwise, the copy is scheduled and started as soon as resources become
  available.
  </p>
  <p>
  <b>Note:</b> If the {@link TransferManager} is created with a regional S3 client and
  the source & destination buckets are in different regions, use the
  {@link #copy(CopyObjectRequest, AmazonS3, TransferStateChangeListener)} method.
  </p>
  
  @param copyObjectRequest
  The request containing all the parameters for the copy.
  @param stateChangeListener
  The transfer state change listener to monitor the copy request
  @return A new <code>Copy</code> object to use to check the state of the
  copy request being processed.
  
  @throws AmazonClientException
  If any errors are encountered in the client while making the
  request or handling the response.
  @throws AmazonServiceException
  If any errors occurred in Amazon S3 while processing the
  request.
  
  @see TransferManager#copy(CopyObjectRequest, AmazonS3, TransferStateChangeListener)