Get a GDNSPublisher client.

    A factory function that validates configuration and returns a
    publisher client (:interface:`gordon.interfaces.IMessageHandler`)
    provider.

    Args:
        config (dict): Google Cloud DNS API related configuration.
        metrics (obj): :interface:`IMetricRelay` implementation.
        kwargs (dict): Additional keyword arguments to pass to the
            publisher.
    Returns:
        A :class:`GDNSPublisher` instance.

def get_gdns_publisher(config, metrics, **kwargs):
    """Get a GDNSPublisher client.

    A factory function that validates configuration and returns a
    publisher client (:interface:`gordon.interfaces.IMessageHandler`)
    provider.

    Args:
        config (dict): Google Cloud DNS API related configuration.
        metrics (obj): :interface:`IMetricRelay` implementation.
        kwargs (dict): Additional keyword arguments to pass to the
            publisher.
    Returns:
        A :class:`GDNSPublisher` instance.
    """
    builder = gdns_publisher.GDNSPublisherBuilder(
        config, metrics, **kwargs)
    return builder.build_publisher()