from typing import Any


def table_input(name: str, label: str, subparameters: list[Any], **kwargs: Any) -> dict[str, Any]:
    """Allows to have a table input for SLimsGate.

    Args:
        name (String): the name of the input
        label (String): the label of the input
        subparameters (list): the list of parameters that need to be in the table
        **kwargs -- every additional and optional parameter
                it needs to be of the form defaultValue="it is a default value"

    Returns: (dict) a dictionary containing all these elements
    """
    values = {'name': name, 'label': label, 'type': "TABLE", 'subParameters': subparameters}
    values.update(kwargs)
    return values