def METHOD_NAME(self, alias="default"):
    """
    Retrieve a connection, construct it if necessary (only configuration
    was passed to us). If a non-string alias has been passed through we
    assume it's already a client instance and will just return it as-is.
    Raises ``KeyError`` if no client (or its definition) is registered
    under the alias.
    """
    # do not check isinstance(OpenSearch) so that people can wrap their
    # clients
    if not isinstance(alias, string_types):
        return alias
    # connection already established
    try:
        return self._conns[alias]
    except KeyError:
        pass
    # if not, try to create it
    try:
        return self.create_connection(alias, **self._kwargs[alias])
    except KeyError:
        # no connection and no kwargs to set one up
        raise KeyError("There is no connection with alias %r." % alias)