Source code for evergreen.resource_type_permissions
# -*- encoding: utf-8 -*-
"""Evergreen representation of a user's permissions."""
from __future__ import absolute_import
from enum import Enum
from typing import TYPE_CHECKING, Any, Dict
from evergreen.base import _BaseEvergreenObject, evg_attrib
if TYPE_CHECKING:
from evergreen.api import EvergreenApi
[docs]class PermissionableResourceType(str, Enum):
"""Represents resource types that a user can be granted permissions to."""
PROJECT = "project"
DISTRO = "distro"
SUPERUSER = "superuser"
[docs]class RemovablePermission(str, Enum):
"""Represents a permission that can be removed from a user."""
PROJECT = "project"
DISTRO = "distro"
SUPERUSER = "superuser"
ALL = "all"
[docs]class ResourceTypePermissions(_BaseEvergreenObject):
"""Representation of a user's permissions on resources of a specific type."""
resource_type = evg_attrib("type")
permissions = evg_attrib("permissions")
def __init__(self, json: Dict[str, Any], api: "EvergreenApi") -> None:
"""
Create an instance of a resource type permission set.
:param json: JSON of resource type permissions.
:param api: Evergreen API.
"""
super(ResourceTypePermissions, self).__init__(json, api)