binalyze-air-sdk 1.0.1__py3-none-any.whl

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 (82) hide show
  1. binalyze_air/__init__.py +77 -0
  2. binalyze_air/apis/__init__.py +27 -0
  3. binalyze_air/apis/authentication.py +27 -0
  4. binalyze_air/apis/auto_asset_tags.py +75 -0
  5. binalyze_air/apis/endpoints.py +22 -0
  6. binalyze_air/apis/event_subscription.py +97 -0
  7. binalyze_air/apis/evidence.py +53 -0
  8. binalyze_air/apis/evidences.py +216 -0
  9. binalyze_air/apis/interact.py +36 -0
  10. binalyze_air/apis/params.py +40 -0
  11. binalyze_air/apis/settings.py +27 -0
  12. binalyze_air/apis/user_management.py +74 -0
  13. binalyze_air/apis/users.py +68 -0
  14. binalyze_air/apis/webhooks.py +231 -0
  15. binalyze_air/base.py +133 -0
  16. binalyze_air/client.py +1338 -0
  17. binalyze_air/commands/__init__.py +146 -0
  18. binalyze_air/commands/acquisitions.py +387 -0
  19. binalyze_air/commands/assets.py +363 -0
  20. binalyze_air/commands/authentication.py +37 -0
  21. binalyze_air/commands/auto_asset_tags.py +231 -0
  22. binalyze_air/commands/baseline.py +396 -0
  23. binalyze_air/commands/cases.py +603 -0
  24. binalyze_air/commands/event_subscription.py +102 -0
  25. binalyze_air/commands/evidences.py +988 -0
  26. binalyze_air/commands/interact.py +58 -0
  27. binalyze_air/commands/organizations.py +221 -0
  28. binalyze_air/commands/policies.py +203 -0
  29. binalyze_air/commands/settings.py +29 -0
  30. binalyze_air/commands/tasks.py +56 -0
  31. binalyze_air/commands/triage.py +360 -0
  32. binalyze_air/commands/user_management.py +126 -0
  33. binalyze_air/commands/users.py +101 -0
  34. binalyze_air/config.py +245 -0
  35. binalyze_air/exceptions.py +50 -0
  36. binalyze_air/http_client.py +306 -0
  37. binalyze_air/models/__init__.py +285 -0
  38. binalyze_air/models/acquisitions.py +251 -0
  39. binalyze_air/models/assets.py +439 -0
  40. binalyze_air/models/audit.py +273 -0
  41. binalyze_air/models/authentication.py +70 -0
  42. binalyze_air/models/auto_asset_tags.py +117 -0
  43. binalyze_air/models/baseline.py +232 -0
  44. binalyze_air/models/cases.py +276 -0
  45. binalyze_air/models/endpoints.py +76 -0
  46. binalyze_air/models/event_subscription.py +172 -0
  47. binalyze_air/models/evidence.py +66 -0
  48. binalyze_air/models/evidences.py +349 -0
  49. binalyze_air/models/interact.py +136 -0
  50. binalyze_air/models/organizations.py +294 -0
  51. binalyze_air/models/params.py +128 -0
  52. binalyze_air/models/policies.py +250 -0
  53. binalyze_air/models/settings.py +84 -0
  54. binalyze_air/models/tasks.py +149 -0
  55. binalyze_air/models/triage.py +143 -0
  56. binalyze_air/models/user_management.py +97 -0
  57. binalyze_air/models/users.py +82 -0
  58. binalyze_air/queries/__init__.py +134 -0
  59. binalyze_air/queries/acquisitions.py +156 -0
  60. binalyze_air/queries/assets.py +105 -0
  61. binalyze_air/queries/audit.py +417 -0
  62. binalyze_air/queries/authentication.py +56 -0
  63. binalyze_air/queries/auto_asset_tags.py +60 -0
  64. binalyze_air/queries/baseline.py +185 -0
  65. binalyze_air/queries/cases.py +293 -0
  66. binalyze_air/queries/endpoints.py +25 -0
  67. binalyze_air/queries/event_subscription.py +55 -0
  68. binalyze_air/queries/evidence.py +140 -0
  69. binalyze_air/queries/evidences.py +280 -0
  70. binalyze_air/queries/interact.py +28 -0
  71. binalyze_air/queries/organizations.py +223 -0
  72. binalyze_air/queries/params.py +115 -0
  73. binalyze_air/queries/policies.py +150 -0
  74. binalyze_air/queries/settings.py +20 -0
  75. binalyze_air/queries/tasks.py +82 -0
  76. binalyze_air/queries/triage.py +231 -0
  77. binalyze_air/queries/user_management.py +83 -0
  78. binalyze_air/queries/users.py +69 -0
  79. binalyze_air_sdk-1.0.1.dist-info/METADATA +635 -0
  80. binalyze_air_sdk-1.0.1.dist-info/RECORD +82 -0
  81. binalyze_air_sdk-1.0.1.dist-info/WHEEL +5 -0
  82. binalyze_air_sdk-1.0.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,84 @@
1
+ """
2
+ Settings API models for the Binalyze AIR SDK.
3
+ """
4
+
5
+ from typing import Optional, Dict, Any
6
+ from datetime import datetime
7
+ from enum import Enum
8
+ from pydantic import Field
9
+
10
+ from ..base import AIRBaseModel
11
+
12
+
13
+ class BannerType(str, Enum):
14
+ """Banner types."""
15
+ INFO = "info"
16
+ WARNING = "warning"
17
+ ERROR = "error"
18
+ SUCCESS = "success"
19
+ MAINTENANCE = "maintenance"
20
+
21
+
22
+ class BannerPosition(str, Enum):
23
+ """Banner display positions."""
24
+ TOP = "top"
25
+ BOTTOM = "bottom"
26
+ CENTER = "center"
27
+
28
+
29
+ class BannerSettings(AIRBaseModel):
30
+ """Banner settings model."""
31
+
32
+ id: Optional[str] = None
33
+ enabled: bool = False
34
+ title: Optional[str] = None
35
+ message: str
36
+ banner_type: BannerType = BannerType.INFO
37
+ position: BannerPosition = BannerPosition.TOP
38
+ dismissible: bool = True
39
+ auto_dismiss: bool = False
40
+ auto_dismiss_timeout: Optional[int] = None # seconds
41
+ show_from: Optional[datetime] = None
42
+ show_until: Optional[datetime] = None
43
+ background_color: Optional[str] = None
44
+ text_color: Optional[str] = None
45
+ border_color: Optional[str] = None
46
+ icon: Optional[str] = None
47
+ link_url: Optional[str] = None
48
+ link_text: Optional[str] = None
49
+ target_roles: Optional[list[str]] = None
50
+ target_organizations: Optional[list[int]] = None
51
+ created_by: Optional[str] = None
52
+ created_at: Optional[datetime] = None
53
+ updated_at: Optional[datetime] = None
54
+ organization_id: Optional[int] = None
55
+
56
+
57
+ class UpdateBannerSettingsRequest(AIRBaseModel):
58
+ """Request model for updating banner settings with proper API field mapping."""
59
+
60
+ enabled: Optional[bool] = None
61
+ title: Optional[str] = None
62
+ message: Optional[str] = None
63
+ # API expects these exact field names - use aliases to map from Python names to API names
64
+ users_can_dismiss: Optional[bool] = Field(default=None, alias="usersCanDismiss")
65
+ color: Optional[str] = None # API expects: general, info, maintenance, warning, alert
66
+ display_time_type: Optional[str] = Field(default=None, alias="displayTimeType") # always or scheduled
67
+ schedule_times: Optional[Dict[str, Any]] = Field(default=None, alias="scheduleTimes")
68
+
69
+ # Legacy/additional fields (may not be used by current API)
70
+ banner_type: Optional[BannerType] = None
71
+ position: Optional[BannerPosition] = None
72
+ dismissible: Optional[bool] = None
73
+ auto_dismiss: Optional[bool] = None
74
+ auto_dismiss_timeout: Optional[int] = None
75
+ show_from: Optional[datetime] = None
76
+ show_until: Optional[datetime] = None
77
+ background_color: Optional[str] = None
78
+ text_color: Optional[str] = None
79
+ border_color: Optional[str] = None
80
+ icon: Optional[str] = None
81
+ link_url: Optional[str] = None
82
+ link_text: Optional[str] = None
83
+ target_roles: Optional[list[str]] = None
84
+ target_organizations: Optional[list[int]] = None
@@ -0,0 +1,149 @@
1
+ """
2
+ Task-related data models for the Binalyze AIR SDK.
3
+ """
4
+
5
+ from typing import List, Optional, Dict, Any
6
+ from datetime import datetime
7
+ from enum import Enum
8
+ from pydantic import Field
9
+
10
+ from ..base import AIRBaseModel, Filter
11
+
12
+
13
+ class TaskStatus(str, Enum):
14
+ """Task status."""
15
+ PENDING = "pending"
16
+ RUNNING = "running"
17
+ COMPLETED = "completed"
18
+ FAILED = "failed"
19
+ CANCELLED = "cancelled"
20
+
21
+
22
+ class TaskType(str, Enum):
23
+ """Task type."""
24
+ ACQUISITION = "acquisition"
25
+ TRIAGE = "triage"
26
+ ISOLATION = "isolation"
27
+ REBOOT = "reboot"
28
+ SHUTDOWN = "shutdown"
29
+ IMAGE_ACQUISITION = "image-acquisition"
30
+
31
+
32
+ class NetworkCaptureConfig(AIRBaseModel):
33
+ """Network capture configuration."""
34
+
35
+ enabled: bool = False
36
+ duration: int = 60
37
+ pcap: Optional[Dict[str, bool]] = None
38
+ network_flow: Optional[Dict[str, bool]] = Field(default=None, alias="networkFlow")
39
+
40
+
41
+ class PlatformEvidenceConfig(AIRBaseModel):
42
+ """Platform-specific evidence configuration."""
43
+
44
+ evidence_types: List[str] = Field(default=[], alias="evidenceTypes")
45
+ custom: List[Any] = []
46
+ network_capture: Optional[NetworkCaptureConfig] = Field(default=None, alias="networkCapture")
47
+
48
+
49
+ class SaveLocationConfig(AIRBaseModel):
50
+ """Save location configuration."""
51
+
52
+ location: str
53
+ path: str
54
+ use_most_free_volume: bool = Field(default=False, alias="useMostFreeVolume")
55
+ volume: str = ""
56
+ tmp: str = ""
57
+
58
+
59
+ class CompressionConfig(AIRBaseModel):
60
+ """Compression configuration."""
61
+
62
+ enabled: bool = False
63
+ encryption: Optional[Dict[str, Any]] = None
64
+
65
+
66
+ class TaskConfig(AIRBaseModel):
67
+ """Task configuration."""
68
+
69
+ choice: Optional[str] = None
70
+ save_to: Optional[Dict[str, SaveLocationConfig]] = Field(default=None, alias="saveTo")
71
+ cpu: Optional[Dict[str, int]] = None
72
+ compression: Optional[CompressionConfig] = None
73
+
74
+
75
+ class DroneConfig(AIRBaseModel):
76
+ """Drone (analysis) configuration."""
77
+
78
+ min_score: int = Field(default=0, alias="minScore")
79
+ auto_pilot: bool = Field(default=False, alias="autoPilot")
80
+ enabled: bool = False
81
+ analyzers: List[str] = []
82
+ keywords: List[str] = []
83
+
84
+
85
+ class TaskData(AIRBaseModel):
86
+ """Task data containing configuration."""
87
+
88
+ profile_id: Optional[str] = Field(default=None, alias="profileId")
89
+ profile_name: Optional[str] = Field(default=None, alias="profileName")
90
+ windows: Optional[PlatformEvidenceConfig] = None
91
+ linux: Optional[PlatformEvidenceConfig] = None
92
+ config: Optional[TaskConfig] = None
93
+ drone: Optional[DroneConfig] = None
94
+
95
+
96
+ class TaskAssignment(AIRBaseModel):
97
+ """Task assignment model representing a task assigned to a specific endpoint."""
98
+
99
+ id: str = Field(alias="_id")
100
+ task_id: str = Field(alias="taskId")
101
+ name: str
102
+ type: str
103
+ endpoint_id: str = Field(alias="endpointId")
104
+ endpoint_name: str = Field(alias="endpointName")
105
+ organization_id: int = Field(default=0, alias="organizationId")
106
+ status: str
107
+ recurrence: Optional[str] = None
108
+ progress: int = 0
109
+ duration: Optional[int] = None
110
+ durations: Optional[Dict[str, int]] = None
111
+ case_ids: List[str] = Field(default=[], alias="caseIds")
112
+ metadata: Optional[Dict[str, Any]] = None
113
+ created_at: Optional[datetime] = Field(default=None, alias="createdAt")
114
+ created_by: Optional[str] = Field(default=None, alias="createdBy")
115
+ updated_at: Optional[datetime] = Field(default=None, alias="updatedAt")
116
+ response: Optional[Dict[str, Any]] = None
117
+
118
+
119
+ class Task(AIRBaseModel):
120
+ """Task model with proper field aliases for API mapping."""
121
+
122
+ id: str = Field(alias="_id")
123
+ source: Optional[str] = None
124
+ total_assigned_endpoints: int = Field(default=0, alias="totalAssignedEndpoints")
125
+ total_completed_endpoints: int = Field(default=0, alias="totalCompletedEndpoints")
126
+ total_failed_endpoints: int = Field(default=0, alias="totalFailedEndpoints")
127
+ total_cancelled_endpoints: int = Field(default=0, alias="totalCancelledEndpoints")
128
+ is_scheduled: bool = Field(default=False, alias="isScheduled")
129
+ name: str
130
+ type: str
131
+ organization_id: int = Field(default=0, alias="organizationId")
132
+ status: str
133
+ created_by: str = Field(alias="createdBy")
134
+ base_task_id: Optional[str] = Field(default=None, alias="baseTaskId")
135
+ start_date: Optional[datetime] = Field(default=None, alias="startDate")
136
+ recurrence: Optional[str] = None
137
+ created_at: Optional[datetime] = Field(default=None, alias="createdAt")
138
+ updated_at: Optional[datetime] = Field(default=None, alias="updatedAt")
139
+ data: Optional[TaskData] = None
140
+
141
+
142
+ class TaskFilter(Filter):
143
+ """Filter for task queries."""
144
+
145
+ name: Optional[str] = None
146
+ type: Optional[List[str]] = None
147
+ status: Optional[List[str]] = None
148
+ created_by: Optional[str] = None
149
+ is_scheduled: Optional[bool] = None
@@ -0,0 +1,143 @@
1
+ """
2
+ Triage-related data models for the Binalyze AIR SDK.
3
+ """
4
+
5
+ from typing import List, Optional, Dict, Any
6
+ from datetime import datetime
7
+ from enum import Enum
8
+
9
+ from ..base import AIRBaseModel, Filter
10
+
11
+
12
+ class TriageStatus(str, Enum):
13
+ """Triage status."""
14
+ PENDING = "pending"
15
+ PROCESSING = "processing"
16
+ COMPLETED = "completed"
17
+ FAILED = "failed"
18
+
19
+
20
+ class TriageSeverity(str, Enum):
21
+ """Triage severity level."""
22
+ LOW = "low"
23
+ MEDIUM = "medium"
24
+ HIGH = "high"
25
+ CRITICAL = "critical"
26
+
27
+
28
+ class TriageRuleType(str, Enum):
29
+ """Triage rule type."""
30
+ YARA = "yara"
31
+ SIGMA = "sigma"
32
+ OSQUERY = "osquery"
33
+ REGEX = "regex"
34
+ HASH = "hash"
35
+ CUSTOM = "custom"
36
+
37
+
38
+ class TriageTag(AIRBaseModel):
39
+ """Triage tag model."""
40
+
41
+ id: str
42
+ name: str
43
+ description: Optional[str] = None
44
+ color: str = "#3498db"
45
+ created_at: Optional[datetime] = None
46
+ created_by: str
47
+ organization_id: int = 0
48
+ usage_count: int = 0
49
+
50
+
51
+ class TriageRule(AIRBaseModel):
52
+ """Triage rule model."""
53
+
54
+ id: str
55
+ name: str
56
+ description: Optional[str] = None
57
+ type: TriageRuleType
58
+ rule_content: str
59
+ enabled: bool = True
60
+ severity: TriageSeverity = TriageSeverity.MEDIUM
61
+ tags: List[str] = []
62
+ search_in: Optional[str] = None
63
+ organization_id: int = 0
64
+ organization_ids: List[int] = []
65
+ created_at: Optional[datetime] = None
66
+ updated_at: Optional[datetime] = None
67
+ created_by: str
68
+ updated_by: Optional[str] = None
69
+ match_count: int = 0
70
+ last_match: Optional[datetime] = None
71
+ deletable: Optional[bool] = None
72
+
73
+
74
+ class TriageProfile(AIRBaseModel):
75
+ """Triage profile model."""
76
+
77
+ id: str
78
+ name: str
79
+ description: Optional[str] = None
80
+ rules: List[str] = [] # Rule IDs
81
+ auto_apply: bool = False
82
+ organization_id: int = 0
83
+ created_at: Optional[datetime] = None
84
+ updated_at: Optional[datetime] = None
85
+ created_by: str
86
+ updated_by: Optional[str] = None
87
+ usage_count: int = 0
88
+
89
+
90
+ class TriageFilter(Filter):
91
+ """Filter for triage queries."""
92
+
93
+ rule_name: Optional[str] = None
94
+ rule_type: Optional[List[TriageRuleType]] = None
95
+ severity: Optional[List[TriageSeverity]] = None
96
+ status: Optional[List[TriageStatus]] = None
97
+ tags: Optional[List[str]] = None
98
+ endpoint_id: Optional[str] = None
99
+ task_id: Optional[str] = None
100
+ created_by: Optional[str] = None
101
+ enabled: Optional[bool] = None
102
+
103
+
104
+ class CreateTriageRuleRequest(AIRBaseModel):
105
+ """Request model for creating a triage rule."""
106
+
107
+ name: str
108
+ description: Optional[str] = None
109
+ type: TriageRuleType
110
+ rule_content: str
111
+ severity: TriageSeverity = TriageSeverity.MEDIUM
112
+ tags: List[str] = []
113
+ organization_id: int = 0
114
+
115
+
116
+ class UpdateTriageRuleRequest(AIRBaseModel):
117
+ """Request model for updating a triage rule."""
118
+
119
+ name: Optional[str] = None
120
+ description: Optional[str] = None
121
+ rule_content: Optional[str] = None
122
+ enabled: Optional[bool] = None
123
+ severity: Optional[TriageSeverity] = None
124
+ tags: Optional[List[str]] = None
125
+
126
+
127
+ class CreateTriageTagRequest(AIRBaseModel):
128
+ """Request model for creating a triage tag."""
129
+
130
+ name: str
131
+ description: Optional[str] = None
132
+ color: str = "#3498db"
133
+ organization_id: int = 0
134
+
135
+
136
+ class CreateTriageProfileRequest(AIRBaseModel):
137
+ """Request model for creating a triage profile."""
138
+
139
+ name: str
140
+ description: Optional[str] = None
141
+ rules: List[str] = [] # Rule IDs
142
+ auto_apply: bool = False
143
+ organization_id: int = 0
@@ -0,0 +1,97 @@
1
+ """
2
+ User Management-related data models for the Binalyze AIR SDK.
3
+ """
4
+
5
+ from typing import Optional, List, Dict, Any
6
+ from datetime import datetime
7
+
8
+ from ..base import AIRBaseModel, Filter
9
+
10
+
11
+ class UserManagementUser(AIRBaseModel):
12
+ """User management user model."""
13
+
14
+ id: str
15
+ username: str
16
+ email: str
17
+ firstName: Optional[str] = None
18
+ lastName: Optional[str] = None
19
+ organizationId: int
20
+ role: Optional[str] = None
21
+ isActive: bool = True
22
+ createdAt: Optional[datetime] = None
23
+ updatedAt: Optional[datetime] = None
24
+
25
+
26
+ class CreateUserRequest(AIRBaseModel):
27
+ """Create user request model."""
28
+
29
+ username: str
30
+ email: str
31
+ password: str
32
+ firstName: Optional[str] = None
33
+ lastName: Optional[str] = None
34
+ organizationId: int
35
+ role: Optional[str] = None
36
+
37
+
38
+ class UpdateUserRequest(AIRBaseModel):
39
+ """Update user request model."""
40
+
41
+ username: Optional[str] = None
42
+ email: Optional[str] = None
43
+ firstName: Optional[str] = None
44
+ lastName: Optional[str] = None
45
+ role: Optional[str] = None
46
+ isActive: Optional[bool] = None
47
+
48
+
49
+ class AIUser(AIRBaseModel):
50
+ """AI user model."""
51
+
52
+ id: str
53
+ name: str
54
+ description: Optional[str] = None
55
+ capabilities: List[str] = []
56
+ organizationId: int
57
+ isActive: bool = True
58
+
59
+
60
+ class CreateAIUserRequest(AIRBaseModel):
61
+ """Create AI user request model."""
62
+
63
+ name: str
64
+ description: Optional[str] = None
65
+ capabilities: List[str] = []
66
+ organizationId: int
67
+
68
+
69
+ class APIUser(AIRBaseModel):
70
+ """API user model."""
71
+
72
+ id: str
73
+ name: str
74
+ description: Optional[str] = None
75
+ permissions: List[str] = []
76
+ organizationId: int
77
+ apiKey: Optional[str] = None
78
+ isActive: bool = True
79
+
80
+
81
+ class CreateAPIUserRequest(AIRBaseModel):
82
+ """Create API user request model."""
83
+
84
+ name: str
85
+ description: Optional[str] = None
86
+ permissions: List[str] = []
87
+ organizationId: int
88
+
89
+
90
+ class UserFilter(Filter):
91
+ """Filter for user queries."""
92
+
93
+ username: Optional[str] = None
94
+ email: Optional[str] = None
95
+ role: Optional[str] = None
96
+ organizationId: Optional[int] = None
97
+ isActive: Optional[bool] = None
@@ -0,0 +1,82 @@
1
+ """
2
+ Users-related data models for the Binalyze AIR SDK.
3
+ """
4
+
5
+ from typing import Optional, List, Dict, Any, Union
6
+ from datetime import datetime
7
+ from pydantic import Field
8
+
9
+ from ..base import AIRBaseModel, Filter
10
+
11
+
12
+ class User(AIRBaseModel):
13
+ """User model."""
14
+
15
+ id: str = Field(alias="_id")
16
+ username: str
17
+ email: str
18
+ organization_ids: Optional[Union[List[int], str]] = Field(default=None, alias="organizationIds")
19
+ strategy: Optional[str] = None
20
+ profile: Optional[Dict[str, str]] = None
21
+ tfa_enabled: Optional[bool] = Field(default=False, alias="tfaEnabled")
22
+ first_name: Optional[str] = Field(default=None, alias="firstName")
23
+ last_name: Optional[str] = Field(default=None, alias="lastName")
24
+ organization_id: Optional[int] = Field(default=None, alias="organizationId")
25
+ role: Optional[str] = None
26
+ is_active: bool = Field(default=True, alias="isActive")
27
+ created_at: Optional[datetime] = Field(default=None, alias="createdAt")
28
+ updated_at: Optional[datetime] = Field(default=None, alias="updatedAt")
29
+
30
+
31
+ class CreateUserRequest(AIRBaseModel):
32
+ """Create user request model."""
33
+
34
+ username: str
35
+ email: str
36
+ password: str
37
+ firstName: Optional[str] = None
38
+ lastName: Optional[str] = None
39
+ organizationId: int
40
+ role: Optional[str] = None
41
+
42
+
43
+ class UpdateUserRequest(AIRBaseModel):
44
+ """Update user request model."""
45
+
46
+ username: Optional[str] = None
47
+ email: Optional[str] = None
48
+ firstName: Optional[str] = None
49
+ lastName: Optional[str] = None
50
+ role: Optional[str] = None
51
+ isActive: Optional[bool] = None
52
+
53
+
54
+ class APIUser(AIRBaseModel):
55
+ """API user model."""
56
+
57
+ id: str
58
+ name: str
59
+ description: Optional[str] = None
60
+ permissions: List[str] = []
61
+ organizationId: int
62
+ apiKey: Optional[str] = None
63
+ isActive: bool = True
64
+
65
+
66
+ class CreateAPIUserRequest(AIRBaseModel):
67
+ """Create API user request model."""
68
+
69
+ name: str
70
+ description: Optional[str] = None
71
+ permissions: List[str] = []
72
+ organizationId: int
73
+
74
+
75
+ class UserFilter(Filter):
76
+ """Filter for user queries."""
77
+
78
+ username: Optional[str] = None
79
+ email: Optional[str] = None
80
+ role: Optional[str] = None
81
+ organizationId: Optional[int] = None
82
+ isActive: Optional[bool] = None
@@ -0,0 +1,134 @@
1
+ """
2
+ Query implementations for the Binalyze AIR SDK (CQRS pattern).
3
+ """
4
+
5
+ from .assets import (
6
+ ListAssetsQuery,
7
+ GetAssetQuery,
8
+ GetAssetTasksQuery,
9
+ )
10
+ from .cases import (
11
+ ListCasesQuery,
12
+ GetCaseQuery,
13
+ GetCaseActivitiesQuery,
14
+ GetCaseEndpointsQuery,
15
+ GetCaseTasksQuery,
16
+ GetCaseUsersQuery,
17
+ CheckCaseNameQuery,
18
+ )
19
+ from .tasks import (
20
+ ListTasksQuery,
21
+ GetTaskQuery,
22
+ )
23
+ from .acquisitions import (
24
+ ListAcquisitionProfilesQuery,
25
+ GetAcquisitionProfileQuery,
26
+ )
27
+ from .policies import (
28
+ ListPoliciesQuery,
29
+ GetPolicyQuery,
30
+ GetPolicyAssignmentsQuery,
31
+ GetPolicyExecutionsQuery,
32
+ )
33
+ from .organizations import (
34
+ ListOrganizationsQuery,
35
+ GetOrganizationQuery,
36
+ GetOrganizationUsersQuery,
37
+ GetOrganizationRolesQuery,
38
+ GetOrganizationLicensesQuery,
39
+ GetOrganizationSettingsQuery,
40
+ )
41
+ from .triage import (
42
+ ListTriageRulesQuery,
43
+ GetTriageRuleQuery,
44
+ GetTriageResultsQuery,
45
+ GetTriageMatchesQuery,
46
+ ListTriageTagsQuery,
47
+ ListTriageProfilesQuery,
48
+ GetTriageProfileQuery,
49
+ )
50
+ from .audit import (
51
+ ListAuditLogsQuery,
52
+ GetAuditLogQuery,
53
+ GetAuditSummaryQuery,
54
+ GetUserActivityQuery,
55
+ GetSystemEventsQuery,
56
+ GetAuditRetentionPolicyQuery,
57
+ ExportAuditLogsQuery,
58
+ )
59
+ from .baseline import (
60
+ ListBaselinesQuery,
61
+ GetBaselineQuery,
62
+ GetBaselineComparisonsQuery,
63
+ GetBaselineComparisonQuery,
64
+ ListBaselineProfilesQuery,
65
+ GetBaselineProfileQuery,
66
+ GetBaselineSchedulesQuery,
67
+ )
68
+
69
+ # TODO: Add imports when implementing other endpoints
70
+
71
+ __all__ = [
72
+ # Asset queries
73
+ "ListAssetsQuery",
74
+ "GetAssetQuery",
75
+ "GetAssetTasksQuery",
76
+
77
+ # Case queries
78
+ "ListCasesQuery",
79
+ "GetCaseQuery",
80
+ "GetCaseActivitiesQuery",
81
+ "GetCaseEndpointsQuery",
82
+ "GetCaseTasksQuery",
83
+ "GetCaseUsersQuery",
84
+ "CheckCaseNameQuery",
85
+
86
+ # Task queries
87
+ "ListTasksQuery",
88
+ "GetTaskQuery",
89
+
90
+ # Acquisition queries
91
+ "ListAcquisitionProfilesQuery",
92
+ "GetAcquisitionProfileQuery",
93
+
94
+ # Policy queries
95
+ "ListPoliciesQuery",
96
+ "GetPolicyQuery",
97
+ "GetPolicyAssignmentsQuery",
98
+ "GetPolicyExecutionsQuery",
99
+
100
+ # Organization queries
101
+ "ListOrganizationsQuery",
102
+ "GetOrganizationQuery",
103
+ "GetOrganizationUsersQuery",
104
+ "GetOrganizationRolesQuery",
105
+ "GetOrganizationLicensesQuery",
106
+ "GetOrganizationSettingsQuery",
107
+
108
+ # Triage queries
109
+ "ListTriageRulesQuery",
110
+ "GetTriageRuleQuery",
111
+ "GetTriageResultsQuery",
112
+ "GetTriageMatchesQuery",
113
+ "ListTriageTagsQuery",
114
+ "ListTriageProfilesQuery",
115
+ "GetTriageProfileQuery",
116
+
117
+ # Audit queries
118
+ "ListAuditLogsQuery",
119
+ "GetAuditLogQuery",
120
+ "GetAuditSummaryQuery",
121
+ "GetUserActivityQuery",
122
+ "GetSystemEventsQuery",
123
+ "GetAuditRetentionPolicyQuery",
124
+ "ExportAuditLogsQuery",
125
+
126
+ # Baseline queries
127
+ "ListBaselinesQuery",
128
+ "GetBaselineQuery",
129
+ "GetBaselineComparisonsQuery",
130
+ "GetBaselineComparisonQuery",
131
+ "ListBaselineProfilesQuery",
132
+ "GetBaselineProfileQuery",
133
+ "GetBaselineSchedulesQuery",
134
+ ]