def METHOD_NAME(models: Union[Dict[str, Any], List[str]], included_model_types: List[str]) -> Union[Dict[str, Any], List[str]]:
    """
    Only include models specified in `included_model_types`, other models will be removed
    If model specified in `included_model_types` doesn't present in `models`, will warn users and ignore
    Parameters
    ----------
    models: Union[Dict[str, Any], List[str]]
        A dictionary containing models and their hyperparameters
    included_model_types: List[str]
        List of model types to be included
    Return
    ------
    Union[Dict[str, Any], List[str]]
        Updated dictionary or list with correct models
    """
    if isinstance(models, dict):
        included_models = {model: val for model, val in models.items() if model in included_model_types}
        missing_models = set(included_model_types) - set(included_models.keys())
    elif isinstance(models, list):
        included_models = [model for model in models if model in included_model_types]
        missing_models = set(included_model_types) - set(included_models)
    if included_model_types is not None:
        logger.log(20, f"Included models: {list(included_model_types)} (Specified by `included_model_types`, all other model types will be skipped)")
    if len(missing_models) > 0:
        logger.warning(f"\tThe models types {list(missing_models)} are not present in the model list specified by the user and will be ignored:")
    return included_models