Source code for pydelfini.delfini_core.models.group
import datetime
from typing import Any
from typing import Dict
from typing import Type
from typing import TypeVar
from attrs import define as _attrs_define
from dateutil.parser import isoparse
from ..models.group_metadata import GroupMetadata
from ..models.visibility_level import VisibilityLevel
T = TypeVar("T", bound="Group")
[docs]
@_attrs_define
class Group:
"""Group model
Attributes:
account_linked (bool):
controlled_access (bool):
created_on (datetime.datetime):
id (str):
metadata (GroupMetadata):
name (str):
visibility_level (VisibilityLevel):
"""
account_linked: bool
controlled_access: bool
created_on: datetime.datetime
id: str
metadata: "GroupMetadata"
name: str
visibility_level: VisibilityLevel
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Convert to a dict"""
account_linked = self.account_linked
controlled_access = self.controlled_access
created_on = self.created_on.isoformat()
id = self.id
metadata = self.metadata.to_dict()
name = self.name
visibility_level = self.visibility_level.value
field_dict: Dict[str, Any] = {}
field_dict.update(
{
"accountLinked": account_linked,
"controlledAccess": controlled_access,
"createdOn": created_on,
"id": id,
"metadata": metadata,
"name": name,
"visibilityLevel": visibility_level,
}
)
return field_dict
[docs]
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
"""Create an instance of :py:class:`Group` from a dict"""
d = src_dict.copy()
account_linked = d.pop("accountLinked")
controlled_access = d.pop("controlledAccess")
created_on = isoparse(d.pop("createdOn"))
id = d.pop("id")
metadata = GroupMetadata.from_dict(d.pop("metadata"))
name = d.pop("name")
visibility_level = VisibilityLevel(d.pop("visibilityLevel"))
group = cls(
account_linked=account_linked,
controlled_access=controlled_access,
created_on=created_on,
id=id,
metadata=metadata,
name=name,
visibility_level=visibility_level,
)
return group