def METHOD_NAME(self, ftsJob=None, sourceSEName=None, destSEName=None, **kwargs):
    """
    This method has to return an ordered list of protocols
    that will be used by the source/dest StorageElements to agree
    on a common TPC protocol.
    There are two ways to invoke the plugin. Either with an FTS3Job instance, or
    with specific parameters.
    The FTS3Job object passed as parameter can be used to make a choice
    based on various parameters.
    Specific parameters are passed when there is access to an FTS3Job already,
    like in the ``__needsMultiHopStaging`` function of
    :py:mod:`~DIRAC.DataManagementSystem.Client.FTS3Operation.FTS3Operation`.
    Thus, it is possible that there is not enough information to make a decision without the FTS3Job.
    In that case, it is up to the plugin to decide whether to return the best possible answer or to raise
    a ``ValueError`` exception
    In this default implementation, we just return the preference list
    that we have in the CS
    :param ftsJob: :py:class:`~DIRAC.DataManagementSystem.Client.FTS3Job.FTS3Job` that will submit the transfer
    :param sourceSEName: Name of the source StorageElement
    :param destSEName: Name of the destination StorageElement
    :returns: an ordered TPC protocols list
    :raise ValueError: in case the plugin cannot select a protocol with the given info
    """
    return self.thirdPartyProtocols