.. versionadded:: Fluorine

    Lists all record sets in a DNS zone.

    :param zone_name: The name of the DNS zone (without a terminating dot).

    :param resource_group: The name of the resource group.

    :param top: The maximum number of record sets to return. If not specified,
    returns up to 100 record sets.

    :param recordsetnamesuffix: The suffix label of the record set name that has
    to be used to filter the record set enumerations.

    CLI Example:

    .. code-block:: bash

        salt-call azurearm_dns.record_sets_list_by_dns_zone myzone testgroup

def record_sets_list_by_dns_zone(zone_name, resource_group, top=None, recordsetnamesuffix=None, **kwargs):
    '''
    .. versionadded:: Fluorine

    Lists all record sets in a DNS zone.

    :param zone_name: The name of the DNS zone (without a terminating dot).

    :param resource_group: The name of the resource group.

    :param top: The maximum number of record sets to return. If not specified,
    returns up to 100 record sets.

    :param recordsetnamesuffix: The suffix label of the record set name that has
    to be used to filter the record set enumerations.

    CLI Example:

    .. code-block:: bash

        salt-call azurearm_dns.record_sets_list_by_dns_zone myzone testgroup

    '''
    result = {}
    dnsconn = __utils__['azurearm.get_client']('dns', **kwargs)
    try:
        record_sets = __utils__['azurearm.paged_object_to_list'](
            dnsconn.record_sets.list_by_dns_zone(
                zone_name=zone_name,
                resource_group_name=resource_group,
                top=top,
                recordsetnamesuffix=recordsetnamesuffix
            )
        )

        for record_set in record_sets:
            result[record_set['name']] = record_set
    except CloudError as exc:
        __utils__['azurearm.log_cloud_error']('dns', str(exc), **kwargs)
        result = {'error': str(exc)}

    return result