code: @DoesServiceRequest
      public final String startCopy(final URI source, final AccessCondition sourceAccessCondition,
              final AccessCondition destinationAccessCondition, FileRequestOptions options, OperationContext opContext)
              throws StorageException, URISyntaxException {
          if (opContext == null) {
              opContext = new OperationContext();
          }
  
          this.getShare().assertNoSnapshot();
  
          opContext.initialize();
          options = FileRequestOptions.populateAndApplyDefaults(options, this.fileServiceClient);
  
          return ExecutionEngine.executeWithRetry(this.fileServiceClient, this,
                  this.startCopyImpl(source, sourceAccessCondition, destinationAccessCondition, options),
                  options.getRetryPolicyFactory(), opContext);
      }
docs: Requests the service to start copying a URI's contents, properties, and metadata to a new Azure File,
  using the specified access conditions, lease ID, request options, and operation context.
  
  @param source
  The source's <code>java.net.URI</code>.
  @param sourceAccessCondition
  An {@link AccessCondition} object that represents the access conditions for the source.
  @param destinationAccessCondition
  An {@link AccessCondition} object that represents the access conditions for the destination.
  @param options
  A {@link FileRequestOptions} object that specifies any additional options for the request.
  Specifying <code>null</code> will use the default request options from the associated
  service client ({@link CloudFileClient}).
  @param opContext
  An {@link OperationContext} object that represents the context for the current operation.
  This object is used to track requests to the storage service, and to provide additional
  runtime information about the operation.
  
  @return A <code>String</code> which represents the copy ID associated with the copy operation.
  
  @throws StorageException
  If a storage service error occurred.
  @throws URISyntaxException