codemie-sdk-python 0.1.513__tar.gz → 0.1.515__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/PKG-INFO +1 -1
  2. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/pyproject.toml +1 -1
  3. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/client/client.py +4 -0
  4. codemie_sdk_python-0.1.515/src/codemie_sdk/models/activity_event.py +45 -0
  5. codemie_sdk_python-0.1.515/src/codemie_sdk/services/activity_event.py +103 -0
  6. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/user.py +16 -0
  7. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/README.md +0 -0
  8. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/__init__.py +0 -0
  9. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/auth/__init__.py +0 -0
  10. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/auth/credentials.py +0 -0
  11. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/client/__init__.py +0 -0
  12. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/exceptions.py +0 -0
  13. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/__init__.py +0 -0
  14. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/admin.py +0 -0
  15. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/analytics.py +0 -0
  16. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/assistant.py +0 -0
  17. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/categories.py +0 -0
  18. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/common.py +0 -0
  19. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/conversation.py +0 -0
  20. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/datasource.py +0 -0
  21. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/errors.py +0 -0
  22. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/file_operation.py +0 -0
  23. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/guardrails.py +0 -0
  24. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/integration.py +0 -0
  25. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/llm.py +0 -0
  26. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/mermaid.py +0 -0
  27. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/project.py +0 -0
  28. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/skill.py +0 -0
  29. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/task.py +0 -0
  30. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/user.py +0 -0
  31. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_assistant.py +0 -0
  32. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_guardrail.py +0 -0
  33. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_knowledgebase.py +0 -0
  34. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_runtime.py +0 -0
  35. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/vendor_workflow.py +0 -0
  36. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow.py +0 -0
  37. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_execution_payload.py +0 -0
  38. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_state.py +0 -0
  39. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/models/workflow_thoughts.py +0 -0
  40. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/admin.py +0 -0
  41. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/analytics.py +0 -0
  42. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/assistant.py +0 -0
  43. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/categories.py +0 -0
  44. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/codemie_guardrails.py +0 -0
  45. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/conversation.py +0 -0
  46. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/datasource.py +0 -0
  47. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/files.py +0 -0
  48. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/integration.py +0 -0
  49. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/llm.py +0 -0
  50. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/mermaid.py +0 -0
  51. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/project.py +0 -0
  52. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/skill.py +0 -0
  53. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/task.py +0 -0
  54. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_assistant.py +0 -0
  55. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_guardrail.py +0 -0
  56. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_knowledgebase.py +0 -0
  57. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_runtime.py +0 -0
  58. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/vendor_workflow.py +0 -0
  59. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/webhook.py +0 -0
  60. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow.py +0 -0
  61. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow_execution.py +0 -0
  62. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/services/workflow_execution_state.py +0 -0
  63. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/utils/__init__.py +0 -0
  64. {codemie_sdk_python-0.1.513 → codemie_sdk_python-0.1.515}/src/codemie_sdk/utils/http.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codemie-sdk-python
3
- Version: 0.1.513
3
+ Version: 0.1.515
4
4
  Summary: CodeMie SDK for Python
5
5
  Author: Vadym Vlasenko
6
6
  Author-email: vadym_vlasenko@epam.com
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemie-sdk-python"
3
- version = "0.1.513"
3
+ version = "0.1.515"
4
4
  description = "CodeMie SDK for Python"
5
5
  authors = [
6
6
  "Vadym Vlasenko <vadym_vlasenko@epam.com>",
@@ -24,6 +24,7 @@ from ..services.vendor_workflow import VendorWorkflowService
24
24
  from ..services.vendor_knowledgebase import VendorKnowledgeBaseService
25
25
  from ..services.vendor_guardrail import VendorGuardrailService
26
26
  from ..services.vendor_runtime import VendorRuntimeService
27
+ from ..services.activity_event import ActivityEventService
27
28
  from ..services.codemie_guardrails import CodemieGuardrailService
28
29
 
29
30
 
@@ -157,6 +158,9 @@ class CodeMieClient:
157
158
  self.codemie_guardrails = CodemieGuardrailService(
158
159
  self._api_domain, _token_source, verify_ssl=self._verify_ssl
159
160
  )
161
+ self.activity_events = ActivityEventService(
162
+ self._api_domain, _token_source, verify_ssl=self._verify_ssl
163
+ )
160
164
 
161
165
  @property
162
166
  def token(self) -> str:
@@ -0,0 +1,45 @@
1
+ """Models for activity event data structures."""
2
+
3
+ from datetime import datetime
4
+ from typing import Any, Dict, List, Optional
5
+
6
+ from pydantic import BaseModel, ConfigDict
7
+
8
+
9
+ class ActivityEventListItem(BaseModel):
10
+ model_config = ConfigDict(extra="ignore")
11
+
12
+ id: str
13
+ domain: str
14
+ event_type: str
15
+ entity_type: Optional[str] = None
16
+ entity_id: Optional[str] = None
17
+ actor_id: Optional[str] = None
18
+ actor_email: Optional[str] = None
19
+ actor_name: Optional[str] = None
20
+ attributes: Optional[Dict[str, Any]] = None
21
+ created_at: datetime
22
+
23
+
24
+ class ActivityEventPagination(BaseModel):
25
+ model_config = ConfigDict(extra="ignore")
26
+
27
+ total: int
28
+ page: int = 0
29
+ per_page: int
30
+ pages: int = 1
31
+
32
+
33
+ class PaginatedActivityEventResponse(BaseModel):
34
+ model_config = ConfigDict(extra="ignore")
35
+
36
+ data: List[ActivityEventListItem]
37
+ pagination: ActivityEventPagination
38
+
39
+
40
+ class ActivityEventFilterOptions(BaseModel):
41
+ model_config = ConfigDict(extra="ignore")
42
+
43
+ domains: List[str]
44
+ event_types: List[str]
45
+ entity_types: List[str]
@@ -0,0 +1,103 @@
1
+ """Activity event service implementation (maintainer only)."""
2
+
3
+ from typing import List, Optional
4
+
5
+ from ..models.activity_event import (
6
+ ActivityEventFilterOptions,
7
+ PaginatedActivityEventResponse,
8
+ )
9
+ from ..utils import ApiRequestHandler, TokenSource
10
+
11
+
12
+ class ActivityEventService:
13
+ """Service for querying the activity events audit log.
14
+
15
+ Requires maintainer privileges — all methods raise HTTP 403 for
16
+ non-maintainer callers.
17
+ """
18
+
19
+ def __init__(self, api_domain: str, token: TokenSource, verify_ssl: bool = True):
20
+ """Initialize the activity event service.
21
+
22
+ Args:
23
+ api_domain: Base URL for the CodeMie API
24
+ token: Authentication token source
25
+ verify_ssl: Whether to verify SSL certificates
26
+ """
27
+ self._api = ApiRequestHandler(api_domain, token, verify_ssl)
28
+
29
+ def list_events(
30
+ self,
31
+ *,
32
+ actor_id: Optional[str] = None,
33
+ domain: Optional[List[str]] = None,
34
+ event_type: Optional[List[str]] = None,
35
+ entity_type: Optional[List[str]] = None,
36
+ entity_id: Optional[str] = None,
37
+ from_dt: Optional[str] = None,
38
+ to_dt: Optional[str] = None,
39
+ sort_dir: Optional[str] = None,
40
+ limit: Optional[int] = None,
41
+ offset: Optional[int] = None,
42
+ ) -> PaginatedActivityEventResponse:
43
+ """List activity events with optional filters.
44
+
45
+ Multi-value parameters (domain, event_type, entity_type) are serialised
46
+ as repeated query params: e.g. ?domain=user_management&domain=budget_management.
47
+
48
+ Args:
49
+ actor_id: Filter by actor user ID
50
+ domain: Filter by domain(s)
51
+ event_type: Filter by event type(s)
52
+ entity_type: Filter by entity type(s)
53
+ entity_id: Filter by entity ID
54
+ from_dt: ISO 8601 lower bound datetime (maps to 'from' query param)
55
+ to_dt: ISO 8601 upper bound datetime (maps to 'to' query param)
56
+ sort_dir: 'asc' or 'desc' (default 'desc')
57
+ limit: Results per page, 1-1000 (default 50)
58
+ offset: Pagination offset (default 0)
59
+
60
+ Returns:
61
+ PaginatedActivityEventResponse
62
+ """
63
+ params: dict = {}
64
+ if actor_id is not None:
65
+ params["actor_id"] = actor_id
66
+ if domain is not None:
67
+ params["domain"] = domain
68
+ if event_type is not None:
69
+ params["event_type"] = event_type
70
+ if entity_type is not None:
71
+ params["entity_type"] = entity_type
72
+ if entity_id is not None:
73
+ params["entity_id"] = entity_id
74
+ if from_dt is not None:
75
+ params["from"] = from_dt
76
+ if to_dt is not None:
77
+ params["to"] = to_dt
78
+ if sort_dir is not None:
79
+ params["sort_dir"] = sort_dir
80
+ if limit is not None:
81
+ params["limit"] = limit
82
+ if offset is not None:
83
+ params["offset"] = offset
84
+
85
+ return self._api.get(
86
+ "/v1/admin/activity-events",
87
+ PaginatedActivityEventResponse,
88
+ params=params if params else None,
89
+ wrap_response=False,
90
+ )
91
+
92
+ def get_filter_options(self) -> ActivityEventFilterOptions:
93
+ """Get distinct filter options available for activity events.
94
+
95
+ Returns:
96
+ ActivityEventFilterOptions with distinct domains, event_types,
97
+ and entity_types present in the audit log.
98
+ """
99
+ return self._api.get(
100
+ "/v1/admin/activity-events/filter-options",
101
+ ActivityEventFilterOptions,
102
+ wrap_response=False,
103
+ )
@@ -170,3 +170,19 @@ class UserService:
170
170
  dict,
171
171
  wrap_response=False,
172
172
  )
173
+
174
+ def reactivate_user(self, user_id: str) -> CodeMieUserDetail:
175
+ """Reactivate a previously deactivated user (SuperAdmin only).
176
+
177
+ Args:
178
+ user_id: The user's unique identifier
179
+
180
+ Returns:
181
+ Updated user details with is_active=True
182
+ """
183
+ return self._api.put(
184
+ f"/v1/admin/users/{user_id}",
185
+ CodeMieUserDetail,
186
+ json_data={"is_active": True},
187
+ wrap_response=False,
188
+ )