def get_event_consumer(config, success_channel, error_channel, metrics,
                       **kwargs):
    """Get a GPSEventConsumer client.

    A factory function that validates configuration, creates schema
    validator and parser clients, creates an auth and a pubsub client,
    and returns an event consumer (:interface:`gordon.interfaces.
    IRunnable` and :interface:`gordon.interfaces.IMessageHandler`)
    provider.

    Args:
        config (dict): Google Cloud Pub/Sub-related configuration.
        success_channel (asyncio.Queue): Queue to place a successfully
            consumed message to be further handled by the ``gordon``
            core system.
        error_channel (asyncio.Queue): Queue to place a message met
            with errors to be further handled by the ``gordon`` core
            system.
        metrics (obj): :interface:`IMetricRelay` implementation.
        kwargs (dict): Additional keyword arguments to pass to the
            event consumer.
    Returns:
        A :class:`GPSEventConsumer` instance.
    """
    builder = event_consumer.GPSEventConsumerBuilder(
        config, success_channel, error_channel, metrics, **kwargs)
    return builder.build_event_consumer()
Get a GPSEventConsumer client.

    A factory function that validates configuration, creates schema
    validator and parser clients, creates an auth and a pubsub client,
    and returns an event consumer (:interface:`gordon.interfaces.
    IRunnable` and :interface:`gordon.interfaces.IMessageHandler`)
    provider.

    Args:
        config (dict): Google Cloud Pub/Sub-related configuration.
        success_channel (asyncio.Queue): Queue to place a successfully
            consumed message to be further handled by the ``gordon``
            core system.
        error_channel (asyncio.Queue): Queue to place a message met
            with errors to be further handled by the ``gordon`` core
            system.
        metrics (obj): :interface:`IMetricRelay` implementation.
        kwargs (dict): Additional keyword arguments to pass to the
            event consumer.
    Returns:
        A :class:`GPSEventConsumer` instance.