def METHOD_NAME(self, group_parameter_name: Optional[str]) -> Dict[str, Input]:
    # Return the flattened result of self
    group_parameter_name = group_parameter_name if group_parameter_name else ""
    flattened_parameters = {}
    msg = "'%s' in parameter group should be a azure.ai.ml.entities._job._io.NodeInput, got '%s'."
    for k, v in self.items():
        flattened_name = ".".join([group_parameter_name, k])
        if isinstance(v, _GroupAttrDict):
            flattened_parameters.update(v.METHOD_NAME(flattened_name))
        elif isinstance(v, NodeInput):
            flattened_parameters[flattened_name] = v._to_job_input()  # pylint: disable=protected-access
        else:
            raise ValidationException(
                message=msg % (flattened_name, type(v)),
                no_personal_data_message=msg % ("name", "type"),
                target=ErrorTarget.PIPELINE,
            )
    return flattened_parameters