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

##### ISSUE TYPE
- Feature Idea

##### COMPONENT NAME
gitlab_project_variable
purge=dict(type='bool', required=False, default=False),
        vars=dict(type='dict', required=False, default=dict(), no_log=True),
        state=dict(type='str', default="present", choices=["absent", "present"])
    )
    module = AnsibleModule(
        argument_spec=argument_spec,
        mutually_exclusive=[
            ['api_username', 'api_token'],
            ['api_password', 'api_token'],
        ],
        required_together=[
            ['api_username', 'api_password'],
        ],
        required_one_of=[
            ['api_username', 'api_token']
        ],
        supports_check_mode=True
    )
    purge = module.params['purge']
    var_list = module.params['vars']
    state = module.params['state']
    if not HAS_GITLAB_PACKAGE:
        module.fail_json(msg=missing_required_lib("python-gitlab"), exception=GITLAB_IMP_ERR)
    gitlab_instance = gitlabAuthentication(module)
    this_gitlab = GitlabProjectVariables(module=module, gitlab_instance=gitlab_instance)
    change, return_value = native_python_main(this_gitlab, purge, var_list, state)
    module.exit_json(changed=change, project_variable=return_value)
if __name__ == '__main__':
    main()