Skip to content

Commit 48f800b

Browse files
authored
ARK-600: ISP Session Monitoring / Activites Support (#6)
* ARK-600: ISP Session Monitoring / Activites Support * ARK-600: ISP Session Monitoring / Activites Support * ARK-600: ISP Session Monitoring / Activites Support
1 parent c9ce376 commit 48f800b

25 files changed

+724
-2
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ test:
6262

6363
package:
6464
@echo Package sdk
65-
poetry build
65+
poetry build --format wheel
66+
poetry run scripts/wheel_editor.sh dist/ark_sdk_python*x86_64.whl
6667

6768
publish-test:
6869
@echo Release to test.pypi.org and create git tag

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ CyberArk's Official SDK and CLI for different services operations
2121
- [x] DPA SSO Service
2222
- [x] DPA K8S Service
2323
- [x] DPA DB Service
24+
- [x] Session Monitoring Service
2425
- [x] All services contains CRUD and Statistics per respective service
2526
- [x] Ready to use SDK in Python
2627
- [x] CLI and SDK Examples

ark_sdk_python/ark_api.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,3 +175,15 @@ def dpa_k8s(self) -> "ArkDPAK8SService":
175175
from ark_sdk_python.services.dpa.k8s import ArkDPAK8SService
176176

177177
return cast(ArkDPAK8SService, self.service(ArkDPAK8SService))
178+
179+
@property
180+
def sm(self) -> "ArkSMService":
181+
"""
182+
Returns the SM service if the appropriate authenticators were given
183+
184+
Returns:
185+
ArkSMService: _description_
186+
"""
187+
from ark_sdk_python.services.sm import ArkSMService
188+
189+
return cast(ArkSMService, self.service(ArkSMService))
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
from typing import Any, List
22

33
from ark_sdk_python.models.actions.services.ark_dpa_exec_action_consts import DPA_ACTIONS
4+
from ark_sdk_python.models.actions.services.ark_sm_exec_action_consts import SM_ACTIONS
45

56
SUPPORTED_SERVICE_ACTIONS: List[Any] = [
67
DPA_ACTIONS,
8+
SM_ACTIONS,
79
]
810

911
__all__ = [
1012
'DPA_ACTIONS',
13+
'SM_ACTIONS',
1114
'SUPPORTED_SERVICE_ACTIONS',
1215
]
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from typing import Any, Dict, Final, Optional, Type
2+
3+
from ark_sdk_python.models import ArkModel
4+
from ark_sdk_python.models.actions.ark_service_action_definition import ArkServiceActionDefinition
5+
from ark_sdk_python.models.services.sm import ArkSMGetSession, ArkSMGetSessionActivities, ArkSMSessionActivitiesFilter, ArkSMSessionsFilter
6+
7+
# Session Monitoring Definitions
8+
SM_ACTION_TO_SCHEMA_MAP: Final[Dict[str, Optional[Type[ArkModel]]]] = {
9+
'list-sessions': None,
10+
'count-sessions': None,
11+
'list-sessions-by': ArkSMSessionsFilter,
12+
'count-sessions-by': ArkSMSessionsFilter,
13+
'session': ArkSMGetSession,
14+
'list-session-activities': ArkSMGetSessionActivities,
15+
'count-session-activities': ArkSMGetSessionActivities,
16+
'list-session-activities-by': ArkSMSessionActivitiesFilter,
17+
'count-session-activities-by': ArkSMSessionActivitiesFilter,
18+
'sessions-stats': None,
19+
}
20+
SM_ACTION_DEFAULTS_MAP: Final[Dict[str, Dict[str, Any]]] = {}
21+
22+
# Service Actions Definition
23+
SM_ACTIONS: Final[ArkServiceActionDefinition] = ArkServiceActionDefinition(
24+
action_name='sm',
25+
schemas=SM_ACTION_TO_SCHEMA_MAP,
26+
defaults=SM_ACTION_DEFAULTS_MAP,
27+
)

ark_sdk_python/models/common/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from ark_sdk_python.models.common.ark_access_method import ArkAccessMethod
2+
from ark_sdk_python.models.common.ark_application_code import ArkApplicationCode
13
from ark_sdk_python.models.common.ark_async_request_settings import ArkAsyncRequestSettings
24
from ark_sdk_python.models.common.ark_async_status import ArkAsyncStatus
35
from ark_sdk_python.models.common.ark_async_task import ArkAsyncTask
@@ -29,9 +31,11 @@
2931
'ArkWorkspaceType',
3032
'ArkNetworkEntityType',
3133
'ArkConnectorType',
34+
'ArkApplicationCode',
3235
'ArkProtocolType',
3336
'VALID_DATE_REGEX',
3437
'VALID_LOGIN_MAX_LENGTH',
3538
'VALID_LOGIN_NAME_REGEX',
3639
'ArkConnectionMethod',
40+
'ArkAccessMethod',
3741
]
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from enum import Enum
2+
3+
4+
class ArkAccessMethod(str, Enum):
5+
VAULTED = 'Vaulted'
6+
JIT = 'JIT'
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
from enum import Enum
2+
3+
4+
class ArkApplicationCode(str, Enum):
5+
DPA = 'DPA'
6+
CSM = 'CSM'
7+
PAM = 'PAM'
8+
DAP = 'DAP'
9+
ITI = 'ITI'
10+
UBA = 'UBA'
11+
ADM = 'ADM'
12+
USR = 'USR'
13+
AUD = 'AUD'
14+
ALR = 'ALR'
15+
CEM = 'CEM'
16+
EPM = 'EPM'
17+
SCA = 'SCA'
18+
SHSM = 'SHSM'
19+
CLO = 'CLO'
20+
CMS = 'CMS'

ark_sdk_python/models/common/ark_protocol_type.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ class ArkProtocolType(str, MultiValueEnum):
99
CLI = 'cli', 'CLI'
1010
CONSOLE = 'console', 'Console'
1111
HTTPS = 'https', 'HTTPS'
12+
K8S = 'K8S', 'k8s'
13+
DB = 'Database', 'database', 'DATABASE'
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from ark_sdk_python.models.services.sm.ark_sm_get_session import ArkSMGetSession
2+
from ark_sdk_python.models.services.sm.ark_sm_get_session_activities import ArkSMGetSessionActivities
3+
from ark_sdk_python.models.services.sm.ark_sm_protocol_type_serializer import serialize_sm_protocol_type
4+
from ark_sdk_python.models.services.sm.ark_sm_session import ArkSMSession, ArkSMSessions, ArkSMSessionStatus
5+
from ark_sdk_python.models.services.sm.ark_sm_session_activity import ArkSMSessionActivities, ArkSMSessionActivity
6+
from ark_sdk_python.models.services.sm.ark_sm_session_activity_filter import ArkSMSessionActivitiesFilter
7+
from ark_sdk_python.models.services.sm.ark_sm_sessions_filter import ArkSMSessionsFilter
8+
from ark_sdk_python.models.services.sm.ark_sm_sessions_stats import ArkSMSessionsStats
9+
from ark_sdk_python.models.services.sm.ark_sm_workspace_type_serializer import serialize_sm_workspace_type
10+
11+
__all__ = [
12+
'ArkSMSession',
13+
'ArkSMSessions',
14+
'ArkSMSessionStatus',
15+
'ArkSMSessionsFilter',
16+
'ArkSMSessionsStats',
17+
'ArkSMGetSession',
18+
'ArkSMGetSessionActivities',
19+
'ArkSMSessionActivity',
20+
'ArkSMSessionActivities',
21+
'ArkSMSessionActivitiesFilter',
22+
'serialize_sm_workspace_type',
23+
'serialize_sm_protocol_type',
24+
]

0 commit comments

Comments
 (0)