async def METHOD_NAME(self, name: str) -> StackReferenceOutputDetails:
    """
    Fetches the value of the named stack output
    and builds a StackReferenceOutputDetails object from it.
    The returned object has its `value` or `secret_value` fields set
    depending on whether the output is a secret.
    Neither field is set if the output was not found.
    """
    is_secret = await ensure_future(self.__is_secret_name(name))
    output_val = self.outputs.apply(lambda os: os[name])
    if not await output_val.is_known():
        return StackReferenceOutputDetails()
    value = await output_val.future()
    if is_secret:
        return StackReferenceOutputDetails(secret_value=value)
    return StackReferenceOutputDetails(value=value)