@joshuanode/n8n-nodes-sophos-central 0.1.0

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 (40) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +148 -0
  3. package/dist/credentials/SophosCentralApi.credentials.d.ts +9 -0
  4. package/dist/credentials/SophosCentralApi.credentials.js +72 -0
  5. package/dist/credentials/SophosCentralApi.credentials.js.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.js +19 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/nodes/SophosCentral/GenericFunctions.d.ts +12 -0
  10. package/dist/nodes/SophosCentral/GenericFunctions.js +296 -0
  11. package/dist/nodes/SophosCentral/GenericFunctions.js.map +1 -0
  12. package/dist/nodes/SophosCentral/SophosCentral.node.d.ts +13 -0
  13. package/dist/nodes/SophosCentral/SophosCentral.node.js +577 -0
  14. package/dist/nodes/SophosCentral/SophosCentral.node.js.map +1 -0
  15. package/dist/nodes/SophosCentral/SophosCentral.node.json +17 -0
  16. package/dist/nodes/SophosCentral/descriptions/AlertDescription.d.ts +3 -0
  17. package/dist/nodes/SophosCentral/descriptions/AlertDescription.js +211 -0
  18. package/dist/nodes/SophosCentral/descriptions/AlertDescription.js.map +1 -0
  19. package/dist/nodes/SophosCentral/descriptions/FirewallDescription.d.ts +3 -0
  20. package/dist/nodes/SophosCentral/descriptions/FirewallDescription.js +223 -0
  21. package/dist/nodes/SophosCentral/descriptions/FirewallDescription.js.map +1 -0
  22. package/dist/nodes/SophosCentral/descriptions/FirewallGroupDescription.d.ts +3 -0
  23. package/dist/nodes/SophosCentral/descriptions/FirewallGroupDescription.js +132 -0
  24. package/dist/nodes/SophosCentral/descriptions/FirewallGroupDescription.js.map +1 -0
  25. package/dist/nodes/SophosCentral/descriptions/FirmwareDescription.d.ts +3 -0
  26. package/dist/nodes/SophosCentral/descriptions/FirmwareDescription.js +316 -0
  27. package/dist/nodes/SophosCentral/descriptions/FirmwareDescription.js.map +1 -0
  28. package/dist/nodes/SophosCentral/descriptions/HealthDescription.d.ts +3 -0
  29. package/dist/nodes/SophosCentral/descriptions/HealthDescription.js +163 -0
  30. package/dist/nodes/SophosCentral/descriptions/HealthDescription.js.map +1 -0
  31. package/dist/nodes/SophosCentral/descriptions/index.d.ts +2 -0
  32. package/dist/nodes/SophosCentral/descriptions/index.js +23 -0
  33. package/dist/nodes/SophosCentral/descriptions/index.js.map +1 -0
  34. package/dist/nodes/SophosCentral/sophosCentral.svg +18 -0
  35. package/dist/nodes/SophosCentral/types.d.ts +74 -0
  36. package/dist/nodes/SophosCentral/types.js +3 -0
  37. package/dist/nodes/SophosCentral/types.js.map +1 -0
  38. package/dist/package.json +68 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -0
  40. package/package.json +68 -0
@@ -0,0 +1,316 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.firmwareFields = exports.firmwareOperations = void 0;
4
+ exports.firmwareOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: {
11
+ show: {
12
+ resource: ['firmware'],
13
+ },
14
+ },
15
+ options: [
16
+ {
17
+ name: 'Cancel Upgrade',
18
+ value: 'cancelUpgrade',
19
+ description: 'Cancel a scheduled firmware upgrade',
20
+ action: 'Cancel firmware upgrade',
21
+ },
22
+ {
23
+ name: 'Check Upgrades',
24
+ value: 'getCurrent',
25
+ description: 'Check firmware version and available upgrades for a firewall',
26
+ action: 'Check firmware upgrades',
27
+ },
28
+ {
29
+ name: 'Upgrade',
30
+ value: 'upgrade',
31
+ description: 'Trigger a firmware upgrade for a firewall',
32
+ action: 'Upgrade firmware',
33
+ },
34
+ ],
35
+ default: 'getCurrent',
36
+ },
37
+ ];
38
+ exports.firmwareFields = [
39
+ {
40
+ displayName: 'Tenant',
41
+ name: 'tenantId',
42
+ type: 'resourceLocator',
43
+ default: { mode: 'list', value: '' },
44
+ description: 'Tenant to perform the operation on',
45
+ displayOptions: {
46
+ show: {
47
+ resource: ['firmware'],
48
+ operation: ['upgrade', 'cancelUpgrade'],
49
+ },
50
+ },
51
+ modes: [
52
+ {
53
+ displayName: 'From List',
54
+ name: 'list',
55
+ type: 'list',
56
+ typeOptions: {
57
+ searchListMethod: 'tenantSearch',
58
+ searchable: true,
59
+ },
60
+ },
61
+ {
62
+ displayName: 'By ID',
63
+ name: 'id',
64
+ type: 'string',
65
+ placeholder: 'e.g. {{ $json.tenantId }}',
66
+ },
67
+ ],
68
+ },
69
+ {
70
+ displayName: 'Tenant',
71
+ name: 'tenantId',
72
+ type: 'resourceLocator',
73
+ default: { mode: 'list', value: '' },
74
+ description: 'Leave empty to check ALL tenants (Partner accounts only). Select a specific tenant to filter results.',
75
+ displayOptions: {
76
+ show: {
77
+ resource: ['firmware'],
78
+ operation: ['getCurrent', 'getUpgradeStatus'],
79
+ },
80
+ },
81
+ modes: [
82
+ {
83
+ displayName: 'All Tenants',
84
+ name: 'all',
85
+ type: 'string',
86
+ placeholder: 'Leave empty for all tenants',
87
+ hint: 'Leave this field empty to check firewalls from all tenants',
88
+ },
89
+ {
90
+ displayName: 'From List',
91
+ name: 'list',
92
+ type: 'list',
93
+ typeOptions: {
94
+ searchListMethod: 'tenantSearch',
95
+ searchable: true,
96
+ },
97
+ },
98
+ {
99
+ displayName: 'By ID',
100
+ name: 'id',
101
+ type: 'string',
102
+ placeholder: 'e.g. a1b2c3d4-e5f6-7890-abcd-ef1234567890',
103
+ },
104
+ ],
105
+ },
106
+ {
107
+ displayName: 'Firewall',
108
+ name: 'firewallId',
109
+ type: 'resourceLocator',
110
+ default: { mode: 'list', value: '' },
111
+ required: true,
112
+ description: 'Select from the list or provide the Firewall UUID (not Serial Number). The list displays names/serials for readability but uses UUIDs internally.',
113
+ displayOptions: {
114
+ show: {
115
+ resource: ['firmware'],
116
+ },
117
+ },
118
+ modes: [
119
+ {
120
+ displayName: 'From List',
121
+ name: 'list',
122
+ type: 'list',
123
+ typeOptions: {
124
+ searchListMethod: 'firewallSearch',
125
+ searchable: true,
126
+ },
127
+ },
128
+ {
129
+ displayName: 'By ID',
130
+ name: 'id',
131
+ type: 'string',
132
+ placeholder: 'e.g. {{ $json.firewallId }}',
133
+ },
134
+ ],
135
+ },
136
+ {
137
+ displayName: 'Target Version',
138
+ name: 'targetVersion',
139
+ type: 'resourceLocator',
140
+ default: { mode: 'list', value: '' },
141
+ required: true,
142
+ displayOptions: {
143
+ show: {
144
+ resource: ['firmware'],
145
+ operation: ['upgrade'],
146
+ },
147
+ },
148
+ modes: [
149
+ {
150
+ displayName: 'From List',
151
+ name: 'list',
152
+ type: 'list',
153
+ typeOptions: {
154
+ searchListMethod: 'firmwareVersionSearch',
155
+ searchable: true,
156
+ },
157
+ },
158
+ {
159
+ displayName: 'By Version',
160
+ name: 'version',
161
+ type: 'string',
162
+ placeholder: 'e.g. 19.5.4 MR-4 or {{ $json.targetVersion }}',
163
+ },
164
+ ],
165
+ },
166
+ {
167
+ displayName: 'Schedule Type',
168
+ name: 'scheduleType',
169
+ type: 'options',
170
+ options: [
171
+ {
172
+ name: 'Immediate',
173
+ value: 'immediate',
174
+ description: 'Start upgrade immediately',
175
+ },
176
+ {
177
+ name: 'Scheduled',
178
+ value: 'scheduled',
179
+ description: 'Schedule upgrade for later',
180
+ },
181
+ ],
182
+ default: 'immediate',
183
+ displayOptions: {
184
+ show: {
185
+ resource: ['firmware'],
186
+ operation: ['upgrade'],
187
+ },
188
+ },
189
+ },
190
+ {
191
+ displayName: 'Scheduled Time',
192
+ name: 'scheduledTime',
193
+ type: 'dateTime',
194
+ default: '',
195
+ required: true,
196
+ displayOptions: {
197
+ show: {
198
+ resource: ['firmware'],
199
+ operation: ['upgrade'],
200
+ scheduleType: ['scheduled'],
201
+ },
202
+ },
203
+ description: 'When to start the upgrade (ISO 8601 format)',
204
+ placeholder: 'e.g. 2026-01-20T02:00:00Z or {{ $json.maintenanceWindow }}',
205
+ },
206
+ {
207
+ displayName: 'Create Backup Before Upgrade',
208
+ name: 'createBackup',
209
+ type: 'boolean',
210
+ default: false,
211
+ displayOptions: {
212
+ show: {
213
+ resource: ['firmware'],
214
+ operation: ['upgrade'],
215
+ },
216
+ },
217
+ description: 'Whether to create a backup before upgrading (not supported by Sophos Central Firewall API v1)',
218
+ },
219
+ {
220
+ displayName: 'Wait for Completion',
221
+ name: 'waitForCompletion',
222
+ type: 'boolean',
223
+ default: false,
224
+ displayOptions: {
225
+ show: {
226
+ resource: ['firmware'],
227
+ operation: ['upgrade'],
228
+ },
229
+ },
230
+ description: 'Whether to wait for completion by polling until the firewall reports the target firmware version',
231
+ },
232
+ {
233
+ displayName: 'Additional Fields',
234
+ name: 'additionalFields',
235
+ type: 'collection',
236
+ placeholder: 'Add Field',
237
+ default: {},
238
+ displayOptions: {
239
+ show: {
240
+ resource: ['firmware'],
241
+ operation: ['upgrade'],
242
+ },
243
+ },
244
+ options: [
245
+ {
246
+ displayName: 'Auto Revert on Failure',
247
+ name: 'autoRevert',
248
+ type: 'boolean',
249
+ default: true,
250
+ description: 'Whether to automatically revert on failure (not supported by Sophos Central Firewall API v1)',
251
+ },
252
+ {
253
+ displayName: 'Backup Description',
254
+ name: 'backupDescription',
255
+ type: 'string',
256
+ default: '=Pre-upgrade backup - {{ $now.toFormat("yyyy-MM-dd HH:mm") }}',
257
+ description: 'Unused unless backup is supported in the future',
258
+ displayOptions: {
259
+ show: {
260
+ '/createBackup': [true],
261
+ },
262
+ },
263
+ },
264
+ {
265
+ displayName: 'Polling Interval (Seconds)',
266
+ name: 'pollingInterval',
267
+ type: 'number',
268
+ default: 30,
269
+ typeOptions: {
270
+ minValue: 10,
271
+ maxValue: 300,
272
+ },
273
+ description: 'How often to check the firewall firmware version (seconds)',
274
+ displayOptions: {
275
+ show: {
276
+ '/waitForCompletion': [true],
277
+ },
278
+ },
279
+ },
280
+ {
281
+ displayName: 'Timeout (Seconds)',
282
+ name: 'timeout',
283
+ type: 'number',
284
+ default: 1800,
285
+ typeOptions: {
286
+ minValue: 60,
287
+ maxValue: 7200,
288
+ },
289
+ description: 'Maximum time to wait (seconds)',
290
+ displayOptions: {
291
+ show: {
292
+ '/waitForCompletion': [true],
293
+ },
294
+ },
295
+ },
296
+ ],
297
+ },
298
+ {
299
+ displayName: 'Limit',
300
+ name: 'limit',
301
+ type: 'number',
302
+ default: 50,
303
+ typeOptions: {
304
+ minValue: 1,
305
+ maxValue: 100,
306
+ },
307
+ displayOptions: {
308
+ show: {
309
+ resource: ['firmware'],
310
+ operation: ['getUpgradeHistory'],
311
+ },
312
+ },
313
+ description: 'Max number of results to return',
314
+ },
315
+ ];
316
+ //# sourceMappingURL=FirmwareDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FirmwareDescription.js","sourceRoot":"","sources":["../../../../nodes/SophosCentral/descriptions/FirmwareDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const healthOperations: INodeProperties[];
3
+ export declare const healthFields: INodeProperties[];
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.healthFields = exports.healthOperations = void 0;
4
+ exports.healthOperations = [
5
+ {
6
+ displayName: 'Operation',
7
+ name: 'operation',
8
+ type: 'options',
9
+ noDataExpression: true,
10
+ displayOptions: {
11
+ show: {
12
+ resource: ['health'],
13
+ },
14
+ },
15
+ options: [
16
+ {
17
+ name: 'Get',
18
+ value: 'get',
19
+ description: 'Get firewall details that can be used as a basic health signal',
20
+ action: 'Get firewall health',
21
+ },
22
+ {
23
+ name: 'Get Many',
24
+ value: 'getAll',
25
+ description: 'Get many firewalls (basic health signals)',
26
+ action: 'Get many firewall health items',
27
+ },
28
+ ],
29
+ default: 'get',
30
+ },
31
+ ];
32
+ exports.healthFields = [
33
+ {
34
+ displayName: 'Tenant',
35
+ name: 'tenantId',
36
+ type: 'resourceLocator',
37
+ default: { mode: 'list', value: '' },
38
+ description: 'Tenant to perform the operation on (required for Get operation)',
39
+ displayOptions: {
40
+ show: {
41
+ resource: ['health'],
42
+ operation: ['get'],
43
+ },
44
+ },
45
+ modes: [
46
+ {
47
+ displayName: 'From List',
48
+ name: 'list',
49
+ type: 'list',
50
+ typeOptions: {
51
+ searchListMethod: 'tenantSearch',
52
+ searchable: true,
53
+ },
54
+ },
55
+ {
56
+ displayName: 'By ID',
57
+ name: 'id',
58
+ type: 'string',
59
+ placeholder: 'e.g. {{ $json.tenantId }}',
60
+ },
61
+ ],
62
+ },
63
+ {
64
+ displayName: 'Tenant',
65
+ name: 'tenantId',
66
+ type: 'resourceLocator',
67
+ default: { mode: 'list', value: '' },
68
+ description: 'Leave empty to get health from ALL tenants (Partner accounts only). Select a specific tenant to filter results.',
69
+ displayOptions: {
70
+ show: {
71
+ resource: ['health'],
72
+ operation: ['getAll'],
73
+ },
74
+ },
75
+ modes: [
76
+ {
77
+ displayName: 'All Tenants',
78
+ name: 'all',
79
+ type: 'string',
80
+ placeholder: 'Leave empty for all tenants',
81
+ hint: 'Leave this field empty to get firewalls from all tenants',
82
+ },
83
+ {
84
+ displayName: 'From List',
85
+ name: 'list',
86
+ type: 'list',
87
+ typeOptions: {
88
+ searchListMethod: 'tenantSearch',
89
+ searchable: true,
90
+ },
91
+ },
92
+ {
93
+ displayName: 'By ID',
94
+ name: 'id',
95
+ type: 'string',
96
+ placeholder: 'e.g. a1b2c3d4-e5f6-7890-abcd-ef1234567890',
97
+ },
98
+ ],
99
+ },
100
+ {
101
+ displayName: 'Firewall',
102
+ name: 'firewallId',
103
+ type: 'resourceLocator',
104
+ default: { mode: 'list', value: '' },
105
+ required: true,
106
+ description: 'Firewall to check',
107
+ displayOptions: {
108
+ show: {
109
+ resource: ['health'],
110
+ operation: ['get'],
111
+ },
112
+ },
113
+ modes: [
114
+ {
115
+ displayName: 'From List',
116
+ name: 'list',
117
+ type: 'list',
118
+ typeOptions: {
119
+ searchListMethod: 'firewallSearch',
120
+ searchable: true,
121
+ },
122
+ },
123
+ {
124
+ displayName: 'By ID',
125
+ name: 'id',
126
+ type: 'string',
127
+ placeholder: 'e.g. {{ $json.firewallId }}',
128
+ },
129
+ ],
130
+ },
131
+ {
132
+ displayName: 'Return All',
133
+ name: 'returnAll',
134
+ type: 'boolean',
135
+ default: false,
136
+ displayOptions: {
137
+ show: {
138
+ resource: ['health'],
139
+ operation: ['getAll'],
140
+ },
141
+ },
142
+ description: 'Whether to return all results or only up to a given limit',
143
+ },
144
+ {
145
+ displayName: 'Limit',
146
+ name: 'limit',
147
+ type: 'number',
148
+ default: 50,
149
+ typeOptions: {
150
+ minValue: 1,
151
+ maxValue: 1000,
152
+ },
153
+ displayOptions: {
154
+ show: {
155
+ resource: ['health'],
156
+ operation: ['getAll'],
157
+ returnAll: [false],
158
+ },
159
+ },
160
+ description: 'Max number of results to return',
161
+ },
162
+ ];
163
+ //# sourceMappingURL=HealthDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HealthDescription.js","sourceRoot":"","sources":["../../../../nodes/SophosCentral/descriptions/HealthDescription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const operationFields: import("n8n-workflow").INodeProperties[];
2
+ export declare const resourceFields: import("n8n-workflow").INodeProperties[];
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resourceFields = exports.operationFields = void 0;
4
+ const AlertDescription_1 = require("./AlertDescription");
5
+ const FirewallDescription_1 = require("./FirewallDescription");
6
+ const FirewallGroupDescription_1 = require("./FirewallGroupDescription");
7
+ const FirmwareDescription_1 = require("./FirmwareDescription");
8
+ const HealthDescription_1 = require("./HealthDescription");
9
+ exports.operationFields = [
10
+ ...AlertDescription_1.alertOperations,
11
+ ...FirewallDescription_1.firewallOperations,
12
+ ...FirewallGroupDescription_1.firewallGroupOperations,
13
+ ...FirmwareDescription_1.firmwareOperations,
14
+ ...HealthDescription_1.healthOperations,
15
+ ];
16
+ exports.resourceFields = [
17
+ ...AlertDescription_1.alertFields,
18
+ ...FirewallDescription_1.firewallFields,
19
+ ...FirewallGroupDescription_1.firewallGroupFields,
20
+ ...FirmwareDescription_1.firmwareFields,
21
+ ...HealthDescription_1.healthFields,
22
+ ];
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../nodes/SophosCentral/descriptions/index.ts"],"names":[],"mappings":";;;AACA,yDAAkE;AAClE,+DAA2E;AAC3E,yEAA0F;AAC1F,+DAA2E;AAC3E,2DAAqE;AAExD,QAAA,eAAe,GAAG;IAC9B,GAAG,kCAAe;IAClB,GAAG,wCAAkB;IACrB,GAAG,kDAAuB;IAC1B,GAAG,wCAAkB;IACrB,GAAG,oCAAgB;CACnB,CAAC;AAEW,QAAA,cAAc,GAAG;IAC7B,GAAG,8BAAW;IACd,GAAG,oCAAc;IACjB,GAAG,8CAAmB;IACtB,GAAG,oCAAc;IACjB,GAAG,gCAAY;CACf,CAAC"}
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 1024 1024" style="enable-background:new 0 0 1024 1024;" xml:space="preserve">
5
+ <style type="text/css">
6
+ .st0{fill:#055BB5;}
7
+ .st1{fill:#FFFFFF;}
8
+ </style>
9
+ <g id="Guides">
10
+ </g>
11
+ <g id="Icon">
12
+ <circle class="st0" cx="512" cy="512" r="512"/>
13
+ <path class="st1" d="M560.1,658.9H390.7v-58.3l169.3,0.7c16.7,0,30.3-13.6,30.3-30.3c0-16.7-13.6-30.3-30.3-30.3h-94h0
14
+ c-48.4,0-88-39.6-88-88l0,0c0-48.4,39.6-87.9,88-87.9h0h169.3v58.3l-169.3-0.7c-16.7,0-30.3,13.6-30.3,30.3
15
+ c0,16.7,13.6,30.3,30.3,30.3h94c48.4,0,87.9,39.6,87.9,88C648,619.3,608.4,658.9,560.1,658.9L560.1,658.9z M256,285.8v323.7
16
+ c0,33.7,18.3,64.7,47.7,81.1l208.1,115.6l208.4-115.7c29.5-16.4,47.8-47.4,47.8-81.1V285.8H256L256,285.8z"/>
17
+ </g>
18
+ </svg>
@@ -0,0 +1,74 @@
1
+ import type { IDataObject } from 'n8n-workflow';
2
+ export interface ISophosCentralCredentials {
3
+ clientId: string;
4
+ clientSecret: string;
5
+ accountType: 'partner' | 'organization';
6
+ tenantId?: string;
7
+ }
8
+ export interface IAuthToken {
9
+ token: string;
10
+ expiresAt: number;
11
+ partnerId?: string;
12
+ dataRegion: string;
13
+ }
14
+ export interface ITenant {
15
+ id: string;
16
+ name: string;
17
+ showAs?: string;
18
+ dataGeography?: string;
19
+ dataRegion: string;
20
+ apiHost: string;
21
+ status: string;
22
+ billingType?: string;
23
+ }
24
+ export interface IFirewall {
25
+ id: string;
26
+ name: string;
27
+ serial: string;
28
+ model: string;
29
+ firmwareVersion: string;
30
+ status: 'online' | 'offline';
31
+ group?: string;
32
+ tags?: string[];
33
+ lastSeen?: string;
34
+ }
35
+ export interface IFirmwareVersion {
36
+ version: string;
37
+ releaseDate: string;
38
+ releaseNotes?: string;
39
+ releaseNotesUrl?: string;
40
+ upgradeType: 'automatic' | 'manual';
41
+ }
42
+ export interface IFirmwareInfo {
43
+ currentVersion: string;
44
+ availableVersions: IFirmwareVersion[];
45
+ upgradeStatus: 'idle' | 'downloading' | 'installing' | 'rebooting' | 'complete' | 'failed';
46
+ }
47
+ export interface IUpgradeStatus {
48
+ status: 'pending' | 'downloading' | 'installing' | 'rebooting' | 'complete' | 'failed';
49
+ progress: number;
50
+ currentStep: string;
51
+ estimatedCompletion?: string;
52
+ error?: string;
53
+ }
54
+ export interface IBackup {
55
+ id: string;
56
+ description: string;
57
+ timestamp: string;
58
+ size?: number;
59
+ status: 'creating' | 'completed' | 'failed';
60
+ }
61
+ export interface IHealthStatus {
62
+ status: 'healthy' | 'warning' | 'critical';
63
+ cpu: number;
64
+ memory: number;
65
+ disk: number;
66
+ services: IDataObject;
67
+ interfaces: IDataObject;
68
+ }
69
+ export interface ILogEntry {
70
+ timestamp: string;
71
+ severity: 'critical' | 'error' | 'warning' | 'info';
72
+ message: string;
73
+ component: string;
74
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../nodes/SophosCentral/types.ts"],"names":[],"mappings":""}