'Retrieve a list of all the available regions.
:param service_type: If specified, only return regions for this
service type.
:type service_type: ``str``
:rtype: ``list`` of ``str``'

def get_regions(self, service_type=None):

    regions = set()
    for entry in self._entries:
        if (service_type and (entry.service_type != service_type)):
            continue
        for endpoint in entry.endpoints:
            if endpoint.region:
                regions.add(endpoint.region)
    return sorted(list(regions))
