##### SUMMARY
gitlab_project_variable: support hidden/protected variables

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
gitlab_project_variable
return self.repo.projects.get(project_name)
    def list_all_project_variables(self):
        return self.project.variables.list()
    def create_variable(self, key, value):
        if self._module.check_mode:
            return
        return self.project.variables.create({"key": key, "value": value})
    def update_variable(self, var, value):
        if var.value == value:
            return False
        if self._module.check_mode:
            return True
        var.value = value
        var.save()
        return True
    def delete_variable(self, key):
        if self._module.check_mode:
            return
        return self.project.variables.delete(key)
def native_python_main(this_gitlab, purge, var_list, state):
    change = False
    return_value = dict(added=list(), updated=list(), removed=list(), untouched=list())
    gitlab_keys = this_gitlab.list_all_project_variables()
    existing_variables = [x.get_id() for x in gitlab_keys]
    for key in var_list:
        if key in existing_variables:
            index = existing_variables.index(key)
            existing_variables[index] = None