From 5a2eb12856b5fefc7de965049d63a7b36406442e Mon Sep 17 00:00:00 2001 From: Saimon Michelson Date: Tue, 14 Apr 2026 00:54:37 -0400 Subject: [PATCH 1/2] add compliance info to portal resource --- cterasdk/cio/core/types.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/cterasdk/cio/core/types.py b/cterasdk/cio/core/types.py index 93e8345a..c98f0356 100644 --- a/cterasdk/cio/core/types.py +++ b/cterasdk/cio/core/types.py @@ -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. @@ -410,9 +426,10 @@ 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, size, permalink, last_modified, volume, worm): super().__init__( name, path, is_dir, size, None if last_modified is None else datetime.fromisoformat(last_modified), @@ -421,6 +438,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): @@ -433,7 +451,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 From 9e508299d4d3e906f7832fe5693f199b4bc5f967 Mon Sep 17 00:00:00 2001 From: Saimon Michelson Date: Tue, 14 Apr 2026 01:08:21 -0400 Subject: [PATCH 2/2] lint too many args --- cterasdk/cio/core/types.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cterasdk/cio/core/types.py b/cterasdk/cio/core/types.py index c98f0356..151a7139 100644 --- a/cterasdk/cio/core/types.py +++ b/cterasdk/cio/core/types.py @@ -429,7 +429,8 @@ class PortalResource(BaseResource): :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, worm): + 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),