1from gitlab.base import RequiredOptional, RESTManager, RESTObject
2from gitlab.mixins import CreateMixin, DeleteMixin, ListMixin, ObjectDeleteMixin
3
4__all__ = [
5    "Application",
6    "ApplicationManager",
7]
8
9
10class Application(ObjectDeleteMixin, RESTObject):
11    _url = "/applications"
12    _short_print_attr = "name"
13
14
15class ApplicationManager(ListMixin, CreateMixin, DeleteMixin, RESTManager):
16    _path = "/applications"
17    _obj_cls = Application
18    _create_attrs = RequiredOptional(
19        required=("name", "redirect_uri", "scopes"), optional=("confidential",)
20    )
21