Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 23 additions & 3 deletions cterasdk/cio/core/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,22 @@ def __str__(self):
)


class ComplianceSettings(Object):
"""
Class Representing Compliance Retention Settings

:ivar bool enabled: Current
:ivar str mode: Current
:ivar datetime.datetime expires_at: Retention Expiration Date
"""
def __init__(self, server_object):
super().__init__(
enabled=server_object.worm,
mode=server_object.retentionMode.lower(),
expires_at=datetime.fromisoformat(server_object.retainUntil)
)


class PortalResource(BaseResource):
"""
Class for a Portal Filesystem Resource.
Expand All @@ -410,9 +426,11 @@ class PortalResource(BaseResource):
:ivar datetime.datetime last_modified: Last Modified
:ivar str extension: Extension
:ivar str permalink: Permalink
:ivar cterasdk.core.types.Volume,optional volume: Volume information.
:ivar cterasdk.cio.core.types.PortalVolume,optional volume: Volume information.
:ivar cterasdk.cio.core.types.ComplianceSettings,optional worm: Compliance Retention Settings.
"""
def __init__(self, i, name, path, is_dir, deleted, size, permalink, last_modified, volume):
def __init__(self, i, name, path, is_dir, deleted, # pylint: disable=too-many-arguments
size, permalink, last_modified, volume, worm):
super().__init__(
name, path, is_dir, size,
None if last_modified is None else datetime.fromisoformat(last_modified),
Expand All @@ -421,6 +439,7 @@ def __init__(self, i, name, path, is_dir, deleted, size, permalink, last_modifie
self.deleted = deleted
self.permalink = permalink
self.volume = PortalVolume.from_server_object(volume) if volume else None
self.worm = ComplianceSettings(worm) if worm else None

@staticmethod
def from_server_object(server_object):
Expand All @@ -433,7 +452,8 @@ def from_server_object(server_object):
server_object.size,
server_object.permalink,
server_object.lastmodified,
server_object.cloudFolderInfo
server_object.cloudFolderInfo,
getattr(server_object, 'complianceInfo', None)
)

@property
Expand Down
Loading