'Return a InstanceGroupManager object based on a name and optional zone.
:param  name: The name of the Instance Group Manager.
:type   name: ``str``
:keyword  zone: The zone to search for the Instance Group Manager.
Set to \'all\' to search all zones.
:type     zone: ``str`` or :class:`GCEZone` or ``None``
:return:  An Instance Group Manager object.
:rtype:   :class:`GCEInstanceGroupManager`'

def ex_get_instancegroupmanager(self, name, zone=None):

    zone = (self._set_zone(zone) or self._find_zone_or_region(name, 'instanceGroupManagers', region=False, res_name='Instancegroupmanager'))
    request = ('/zones/%s/instanceGroupManagers/%s' % (zone.name, name))
    response = self.connection.request(request, method='GET').object
    return self._to_instancegroupmanager(response)
