List zones for a user.

        :param    user_key:  key for authentication of user
        :type     user_key:  str
        :param    limit: limit of zones shown
        :type     limit: int
        :param    offset: offset of zones to be shown
        :type     offset: int
        :param    zone_name: name of zone to lookup
        :type     zone_name: str
        :param    sub_id: subscription id of reseller (only for use by resellers)
        :type     sub_id: str
        :param    zone_status: status of zones to be shown
        :type     zone_status: str (one of: V(active), D(deleted), ALL)
        :param    sub_status: status of subscription of zones to be shown
        :type     zone_name: str (one of: V(active), CNL(cancelled), ALL )

        :returns:
        :rtype:   dict

def zone_list(
        self,
        user_key,
        limit=100,
        offset=0,
        zone_name=None,
        sub_id=None,
        zone_status='ALL',
        sub_status='ALL',
            ):
        """
        List zones for a user.

        :param    user_key:  key for authentication of user
        :type     user_key:  str
        :param    limit: limit of zones shown
        :type     limit: int
        :param    offset: offset of zones to be shown
        :type     offset: int
        :param    zone_name: name of zone to lookup
        :type     zone_name: str
        :param    sub_id: subscription id of reseller (only for use by resellers)
        :type     sub_id: str
        :param    zone_status: status of zones to be shown
        :type     zone_status: str (one of: V(active), D(deleted), ALL)
        :param    sub_status: status of subscription of zones to be shown
        :type     zone_name: str (one of: V(active), CNL(cancelled), ALL )

        :returns:
        :rtype:   dict
        """
        if zone_status not in ['V', 'D', 'ALL']:
            raise ValueError('zone_status has to be V, D or ALL')
        if sub_status not in ['V', 'CNL', 'ALL']:
            raise ValueError('sub_status has to be V, CNL or ALL')
        params = {
            'act': 'zone_list',
            'user_key': user_key,
            'limit': limit,
            'offset': offset,
            'zone_status': zone_status,
            'sub_status': sub_status
        }
        if zone_name:
            params['zone_name'] = zone_name
        if sub_id:
            params['sub_id'] = sub_id

        return self._request(params)