async def _verify_provision_request(request, params):
    """Verifies a received 'provision' REST command.

    Args:
        request (aiohttp.Web.Request): The request from the client.
        params (dict-like): A dictionary like object containing the REST command request parameters.

    Returns:
        (boolean, str): A boolean indicating if the request is valid. The other parameter is an error
        message if the boolean is True, and is None otherwise.
    """
    if not params: return False, "ERROR: Request parameters must not be null!"
    if not isinstance(params, dict):
        return False, "ERROR: Request parameters must be a JSON object!"
    if "target" not in params: return False, "ERROR: Request params requires 'target' field!"
    target = params["target"]
    if target != "sensor" and target != "group":
        return False, "ERROR: Invalid 'target' specified! Must be one of {'sensor', 'group'}."
    if target == "sensor":
        if "groupid" not in params: return False, "ERROR: Request params requires 'groupid' field!"
        try: 
            groupid = int(params["groupid"])
        except Exception:
            return False, "ERROR: Request parameter 'groupid' must be an integer!"
        if groupid <= 0: return False, "ERROR: Request parameter 'groupid' must be >= 0!"
    if "alias" in params:
        if not params["alias"]: return False, "ERROR: Request parameter 'alias' must contain at least one (1) character!"
    return True, None