Get a GDNSReconciler client.

    A factory function that validates configuration, creates an auth
    and :class:`GDNSClient` instance, and returns a GDNSReconciler
    provider.

    Args:
        config (dict): Google Cloud Pub/Sub-related configuration.
        metrics (obj): :interface:`IMetricRelay` implementation.
        rrset_channel (asyncio.Queue): Queue from which to consume
            record set messages to validate.
        changes_channel (asyncio.Queue): Queue to publish message to
            make corrections to Cloud DNS.
        kw (dict): Additional keyword arguments to pass to the
            Reconciler.
    Returns:
        A :class:`GDNSReconciler` instance.

def get_reconciler(config, metrics, rrset_channel, changes_channel, **kw):
    """Get a GDNSReconciler client.

    A factory function that validates configuration, creates an auth
    and :class:`GDNSClient` instance, and returns a GDNSReconciler
    provider.

    Args:
        config (dict): Google Cloud Pub/Sub-related configuration.
        metrics (obj): :interface:`IMetricRelay` implementation.
        rrset_channel (asyncio.Queue): Queue from which to consume
            record set messages to validate.
        changes_channel (asyncio.Queue): Queue to publish message to
            make corrections to Cloud DNS.
        kw (dict): Additional keyword arguments to pass to the
            Reconciler.
    Returns:
        A :class:`GDNSReconciler` instance.
    """
    builder = reconciler.GDNSReconcilerBuilder(
        config, metrics, rrset_channel, changes_channel, **kw)
    return builder.build_reconciler()