public async Task <ResourceConfig> GetTopicConfigAsync(string topic, TimeSpan timeout)
    {
        var resource = new ConfigResource
        {
            Name = topic,
            Type = ResourceType.Topic
        };

        var options = new DescribeConfigsOptions
        {
            RequestTimeout = timeout
        };

        ICollection <DescribeConfigsResult> results;

        try
        {
            results = await _adminClient.DescribeConfigsAsync(new[] { resource }, options);
        }
        catch (KafkaException e)
        {
            throw new AdminClientException("Unable to get topic config.", e);
        }

        return(Map(results.First()));
    }