def _get_required_data(description=False):
    """
    Provides a list of the required inputs for all possible ensembles.

    Parameters
    ----------
    description :  bool, default = False.
        If True, it prints the descriptions of the input_variables (i.e. dict),
        If False, it only prints the input_variables without the descriptions (i.e. list)

    Returns
    ---------
    required_data : dict or list, default = list.
        If the description = True then a dict is provided with the key and value.
        if the description = False then a list of the dict keys is provided.

    Note:
    Variables and text extracted with permission from the GOMC manual version 2.60.
    Some of the text was modified from its original version.
    Cite: Potoff, Jeffrey; Schwiebert, Loren; et al. GOMC Documentation.
    https://raw.githubusercontent.com/GOMC-WSU/GOMC/master/GOMC_Manual.pdf, 2021.
    """

    required_data = {
        "charmm_object": "Charmm object, "
        "A Charmm object, which by definition has been parameterized "
        "from the selected force field.",
        "ensemble_type": "Required files or System Info (all ensembles): str, "
        "(valid strings are 'NVT', 'NPT', 'GEMC_NPT', 'GCMC-NVT', or 'GCMC'), "
        "the ensemble type for the simulation.",
        "RunSteps": "Required files or System Info (all ensembles): int (> 0), "
        "The number or run steps for the simulation.",
        "Temperature": "Required files or System Info (all ensembles): float or integer (> 0), "
        "Temperature of system in Kelvin (K)",
    }

    if description:
        return required_data
    else:
        return list(required_data.keys())