def METHOD_NAME(proposal, users=None, post_type="channel", text=None, channel=None, options=None):
    if post_type not in ["channel", "mpim"]:
        raise Exception(f"Unsupported post type {post_type}. Must be 'channel' or 'mpim'")
    if post_type == "mpim" and not users:
        raise Exception(f"Must pass users for 'mpim' vote")
    params = {}
    if users is not None and len(users) > 0:
        if isinstance(users[0], str):
            params["eligible_voters"] = users
        else:
            params["eligible_voters"] = [u.username for u in users]
    action = proposal.action
    policy = proposal.policy
    if options:
        params["poll_type"] = "choice"
        params["title"] = text or "Please vote"
        params["options"] = options
    else:
        params["poll_type"] = "boolean"
        params["title"] = text or default_boolean_vote_message(policy)
    if post_type == "channel":
        params["channel"] = channel or infer_channel(proposal)
        if not params["channel"]:
            raise Exception("Failed to determine which channel to post in")
    return params