def METHOD_NAME(self, tag: t.Union[Tag, str]) -> Item:
    """
    store.get("my_bento")
    store.get("my_bento:v1.0.0")
    store.get(Tag("my_bento", "latest"))
    """
    _tag = Tag.from_taglike(tag)
    if _tag.version is None or _tag.version == "latest":
        try:
            _tag.version = self._fs.readtext(_tag.latest_path())
            if not self._fs.exists(_tag.path()):
                self._recreate_latest(_tag)
        except fs.errors.ResourceNotFound:
            self._recreate_latest(_tag)
    path = _tag.path()
    if self._fs.exists(path):
        return self._get_item(_tag)
    matches = self._fs.glob(f"{path}*/")
    counts = matches.count().directories
    if counts == 0:
        raise NotFound(
            f"{self._item_type.get_typename()} '{tag}' is not found in BentoML store {self._fs}, "
            "you may need to run `bentoml models pull` first"
        )
    elif counts == 1:
        match = next(iter(matches))
        return self._get_item(Tag(_tag.name, match.info.name))
    else:
        vers: t.List[str] = []
        for match in matches:
            vers += match.info.name
        raise BentoMLException(
            f"multiple versions matched by {_tag.version}: {vers}"
        )