@owine/unifi-network-mcp 2.14.2 → 3.0.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.
- package/LICENSE +21 -0
- package/README.md +235 -80
- package/dist/client.d.ts +13 -1
- package/dist/client.js +142 -16
- package/dist/config.d.ts +11 -0
- package/dist/config.js +102 -3
- package/dist/guard.d.ts +46 -0
- package/dist/guard.js +171 -0
- package/dist/index.js +15 -4
- package/dist/instructions.d.ts +9 -0
- package/dist/instructions.js +32 -0
- package/dist/tls.d.ts +14 -0
- package/dist/tls.js +58 -0
- package/dist/tools/acl.js +126 -53
- package/dist/tools/client-history.js +20 -10
- package/dist/tools/clients.js +14 -13
- package/dist/tools/devices.js +30 -29
- package/dist/tools/dns-policies.js +116 -69
- package/dist/tools/firewall.d.ts +2 -1
- package/dist/tools/firewall.js +245 -80
- package/dist/tools/hotspot.js +35 -28
- package/dist/tools/index.d.ts +13 -1
- package/dist/tools/index.js +63 -4
- package/dist/tools/networks.d.ts +2 -1
- package/dist/tools/networks.js +152 -58
- package/dist/tools/sites.js +3 -3
- package/dist/tools/supporting.js +31 -30
- package/dist/tools/switching.js +22 -21
- package/dist/tools/system.js +1 -1
- package/dist/tools/traffic-matching.d.ts +2 -1
- package/dist/tools/traffic-matching.js +31 -28
- package/dist/tools/wifi.js +228 -311
- package/dist/utils/full-put.d.ts +32 -0
- package/dist/utils/full-put.js +74 -0
- package/dist/utils/output-schemas.d.ts +77 -9
- package/dist/utils/output-schemas.js +106 -54
- package/dist/utils/params.d.ts +7 -0
- package/dist/utils/params.js +12 -0
- package/dist/utils/responses.d.ts +2 -0
- package/dist/utils/responses.js +28 -2
- package/dist/utils/safety.d.ts +35 -1
- package/dist/utils/safety.js +53 -3
- package/dist/utils/secrets.d.ts +24 -0
- package/dist/utils/secrets.js +92 -0
- package/dist/utils/wan-exposure.d.ts +69 -0
- package/dist/utils/wan-exposure.js +245 -0
- package/dist/write-log.d.ts +52 -0
- package/dist/write-log.js +178 -0
- package/dist/write-tools.d.ts +27 -0
- package/dist/write-tools.js +50 -0
- package/package.json +19 -15
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-merge-write support for UniFi's full-replacement PUT endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Several Integration API PUTs (WiFi broadcasts, networks, firewall policies,
|
|
5
|
+
* ACL rules, DNS policies) replace the whole resource: required fields must all be present, and some
|
|
6
|
+
* optional fields carry meaning when omitted (a missing `dhcpGuarding`
|
|
7
|
+
* disables DHCP guarding; a missing `reportFlowEnabled` reverts to true). A
|
|
8
|
+
* sparse body therefore either fails or silently resets settings.
|
|
9
|
+
*
|
|
10
|
+
* Instead, tools GET the current resource, keep only the fields the PUT body
|
|
11
|
+
* documents (so read-only response fields like id/metadata never leak into the
|
|
12
|
+
* request), and overlay the caller's changes. `undefined` keeps the current
|
|
13
|
+
* value; `null` is sent as an explicit null, which the API uses to clear.
|
|
14
|
+
*/
|
|
15
|
+
export type JsonObject = Record<string, unknown>;
|
|
16
|
+
export declare function asObject(value: unknown, what: string): JsonObject;
|
|
17
|
+
export declare function mergeForPut(current: JsonObject, updates: JsonObject, allowedFields: readonly string[]): JsonObject;
|
|
18
|
+
/** Fields the caller set that the target variant's PUT body does not accept. */
|
|
19
|
+
export declare function unsupportedFields(updates: JsonObject, allowedFields: readonly string[]): string[];
|
|
20
|
+
/** Required fields that are absent (undefined or null) from a request body. */
|
|
21
|
+
export declare function missingFields(body: JsonObject, requiredFields: readonly string[]): string[];
|
|
22
|
+
/** Copy only the defined entries, so optional inputs the caller skipped are not sent. */
|
|
23
|
+
export declare function definedEntries(values: JsonObject): JsonObject;
|
|
24
|
+
/**
|
|
25
|
+
* Run one read-merge-write cycle at a time per resource. Agents often split
|
|
26
|
+
* "rename X and enable logging" into parallel calls; unserialised, both read
|
|
27
|
+
* the old resource and the second PUT silently reverts the first change.
|
|
28
|
+
* The queue is per process and keyed on the exact path string, so every
|
|
29
|
+
* writer of a resource (including the firewall-policy PATCH) must lock the
|
|
30
|
+
* same path.
|
|
31
|
+
*/
|
|
32
|
+
export declare function withResourceLock<T>(path: string, fn: () => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Read-merge-write support for UniFi's full-replacement PUT endpoints.
|
|
4
|
+
*
|
|
5
|
+
* Several Integration API PUTs (WiFi broadcasts, networks, firewall policies,
|
|
6
|
+
* ACL rules, DNS policies) replace the whole resource: required fields must all be present, and some
|
|
7
|
+
* optional fields carry meaning when omitted (a missing `dhcpGuarding`
|
|
8
|
+
* disables DHCP guarding; a missing `reportFlowEnabled` reverts to true). A
|
|
9
|
+
* sparse body therefore either fails or silently resets settings.
|
|
10
|
+
*
|
|
11
|
+
* Instead, tools GET the current resource, keep only the fields the PUT body
|
|
12
|
+
* documents (so read-only response fields like id/metadata never leak into the
|
|
13
|
+
* request), and overlay the caller's changes. `undefined` keeps the current
|
|
14
|
+
* value; `null` is sent as an explicit null, which the API uses to clear.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.asObject = asObject;
|
|
18
|
+
exports.mergeForPut = mergeForPut;
|
|
19
|
+
exports.unsupportedFields = unsupportedFields;
|
|
20
|
+
exports.missingFields = missingFields;
|
|
21
|
+
exports.definedEntries = definedEntries;
|
|
22
|
+
exports.withResourceLock = withResourceLock;
|
|
23
|
+
function asObject(value, what) {
|
|
24
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
25
|
+
throw new Error(`Expected ${what} to be a JSON object`);
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
function mergeForPut(current, updates, allowedFields) {
|
|
30
|
+
const body = {};
|
|
31
|
+
for (const field of allowedFields) {
|
|
32
|
+
if (current[field] !== undefined)
|
|
33
|
+
body[field] = current[field];
|
|
34
|
+
}
|
|
35
|
+
for (const [field, value] of Object.entries(updates)) {
|
|
36
|
+
if (value !== undefined && allowedFields.includes(field))
|
|
37
|
+
body[field] = value;
|
|
38
|
+
}
|
|
39
|
+
return body;
|
|
40
|
+
}
|
|
41
|
+
/** Fields the caller set that the target variant's PUT body does not accept. */
|
|
42
|
+
function unsupportedFields(updates, allowedFields) {
|
|
43
|
+
return Object.keys(updates).filter((field) => updates[field] !== undefined && !allowedFields.includes(field));
|
|
44
|
+
}
|
|
45
|
+
/** Required fields that are absent (undefined or null) from a request body. */
|
|
46
|
+
function missingFields(body, requiredFields) {
|
|
47
|
+
return requiredFields.filter((field) => body[field] === undefined || body[field] === null);
|
|
48
|
+
}
|
|
49
|
+
/** Copy only the defined entries, so optional inputs the caller skipped are not sent. */
|
|
50
|
+
function definedEntries(values) {
|
|
51
|
+
return Object.fromEntries(Object.entries(values).filter(([, value]) => value !== undefined));
|
|
52
|
+
}
|
|
53
|
+
const resourceQueues = new Map();
|
|
54
|
+
/**
|
|
55
|
+
* Run one read-merge-write cycle at a time per resource. Agents often split
|
|
56
|
+
* "rename X and enable logging" into parallel calls; unserialised, both read
|
|
57
|
+
* the old resource and the second PUT silently reverts the first change.
|
|
58
|
+
* The queue is per process and keyed on the exact path string, so every
|
|
59
|
+
* writer of a resource (including the firewall-policy PATCH) must lock the
|
|
60
|
+
* same path.
|
|
61
|
+
*/
|
|
62
|
+
async function withResourceLock(path, fn) {
|
|
63
|
+
const previous = resourceQueues.get(path) ?? Promise.resolve();
|
|
64
|
+
const run = previous.then(fn);
|
|
65
|
+
const settled = run.then(() => undefined, () => undefined);
|
|
66
|
+
resourceQueues.set(path, settled);
|
|
67
|
+
try {
|
|
68
|
+
return await run;
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
if (resourceQueues.get(path) === settled)
|
|
72
|
+
resourceQueues.delete(path);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Output schemas for
|
|
3
|
-
*
|
|
2
|
+
* Output schemas for every read tool, and for write tools whose response
|
|
3
|
+
* echoes the resource (loose strategy: every non-key
|
|
4
|
+
* field optional, every nested object uses .loose() to allow
|
|
4
5
|
* firmware/hardware-specific fields to flow through unchanged).
|
|
5
6
|
*
|
|
6
|
-
* Verified against UniFi Network API
|
|
7
|
+
* Verified against UniFi Network API 11.0.83. Where the docs collapse
|
|
7
8
|
* nested arrays/objects (e.g. interfaces.ports[], radios[]), the schema
|
|
8
|
-
* uses
|
|
9
|
-
* haven't verified.
|
|
9
|
+
* uses loose records so the contract doesn't lock to fields we
|
|
10
|
+
* haven't verified. Tools register these raw shapes, and registerAllTools()
|
|
11
|
+
* publishes each as a loose object (src/tools/index.ts), so fields a schema
|
|
12
|
+
* does not list never fail client-side validation.
|
|
10
13
|
*/
|
|
11
14
|
import { z } from "zod";
|
|
15
|
+
/**
|
|
16
|
+
* The outputSchema to publish for a tool: always a loose object, whether the
|
|
17
|
+
* tool passed a raw shape or a Zod object (the SDK accepts both). Wrapping a
|
|
18
|
+
* Zod object in z.looseObject() would build a broken schema that makes
|
|
19
|
+
* tools/list throw for every tool.
|
|
20
|
+
*/
|
|
21
|
+
export declare function looseOutput(schema: z.ZodRawShape | z.ZodObject): z.ZodObject;
|
|
22
|
+
export declare function writeResult<T extends z.ZodRawShape>(shape: T): { -readonly [k in keyof { -readonly [P in keyof T]: T[P]; }]: z.ZodOptional<{ -readonly [P in keyof T]: T[P]; }[k]>; } & {
|
|
23
|
+
readonly dryRun: z.ZodOptional<z.ZodLiteral<true>>;
|
|
24
|
+
readonly wouldExecute: z.ZodOptional<z.ZodObject<{
|
|
25
|
+
method: z.ZodString;
|
|
26
|
+
path: z.ZodString;
|
|
27
|
+
body: z.ZodOptional<z.ZodUnknown>;
|
|
28
|
+
}, z.core.$loose>>;
|
|
29
|
+
readonly confirmationRequired: z.ZodOptional<z.ZodString>;
|
|
30
|
+
};
|
|
12
31
|
export declare const getInfoOutputSchema: {
|
|
13
32
|
applicationVersion: z.ZodOptional<z.ZodString>;
|
|
14
33
|
};
|
|
@@ -40,6 +59,7 @@ export declare const networkOutputSchema: {
|
|
|
40
59
|
ipv6Configuration: z.ZodOptional<z.ZodUnknown>;
|
|
41
60
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
42
61
|
origin: z.ZodOptional<z.ZodString>;
|
|
62
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
43
63
|
}, z.core.$loose>>;
|
|
44
64
|
};
|
|
45
65
|
export declare const listNetworksOutputSchema: {
|
|
@@ -64,6 +84,7 @@ export declare const listNetworksOutputSchema: {
|
|
|
64
84
|
ipv6Configuration: z.ZodOptional<z.ZodUnknown>;
|
|
65
85
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
66
86
|
origin: z.ZodOptional<z.ZodString>;
|
|
87
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
67
88
|
}, z.core.$loose>>;
|
|
68
89
|
}, z.core.$loose>>;
|
|
69
90
|
};
|
|
@@ -129,6 +150,7 @@ export declare const firewallZoneOutputSchema: {
|
|
|
129
150
|
networkIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
130
151
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
131
152
|
origin: z.ZodOptional<z.ZodString>;
|
|
153
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
132
154
|
}, z.core.$loose>>;
|
|
133
155
|
};
|
|
134
156
|
export declare const listFirewallZonesOutputSchema: {
|
|
@@ -142,6 +164,7 @@ export declare const listFirewallZonesOutputSchema: {
|
|
|
142
164
|
networkIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
143
165
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
144
166
|
origin: z.ZodOptional<z.ZodString>;
|
|
167
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
145
168
|
}, z.core.$loose>>;
|
|
146
169
|
}, z.core.$loose>>;
|
|
147
170
|
};
|
|
@@ -157,10 +180,12 @@ export declare const firewallPolicyOutputSchema: {
|
|
|
157
180
|
ipsecFilter: z.ZodOptional<z.ZodUnknown>;
|
|
158
181
|
schedule: z.ZodOptional<z.ZodUnknown>;
|
|
159
182
|
loggingEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
183
|
+
reportFlowEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
160
184
|
index: z.ZodOptional<z.ZodNumber>;
|
|
161
185
|
description: z.ZodOptional<z.ZodString>;
|
|
162
186
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
163
187
|
origin: z.ZodOptional<z.ZodString>;
|
|
188
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
164
189
|
}, z.core.$loose>>;
|
|
165
190
|
};
|
|
166
191
|
export declare const listFirewallPoliciesOutputSchema: {
|
|
@@ -180,10 +205,12 @@ export declare const listFirewallPoliciesOutputSchema: {
|
|
|
180
205
|
ipsecFilter: z.ZodOptional<z.ZodUnknown>;
|
|
181
206
|
schedule: z.ZodOptional<z.ZodUnknown>;
|
|
182
207
|
loggingEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
208
|
+
reportFlowEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
183
209
|
index: z.ZodOptional<z.ZodNumber>;
|
|
184
210
|
description: z.ZodOptional<z.ZodString>;
|
|
185
211
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
186
212
|
origin: z.ZodOptional<z.ZodString>;
|
|
213
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
187
214
|
}, z.core.$loose>>;
|
|
188
215
|
}, z.core.$loose>>;
|
|
189
216
|
};
|
|
@@ -199,14 +226,15 @@ export declare const aclRuleOutputSchema: {
|
|
|
199
226
|
name: z.ZodOptional<z.ZodString>;
|
|
200
227
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
201
228
|
action: z.ZodOptional<z.ZodString>;
|
|
202
|
-
description: z.ZodOptional<z.ZodString
|
|
203
|
-
protocolFilter: z.ZodOptional<z.ZodArray<z.ZodString
|
|
229
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
230
|
+
protocolFilter: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
204
231
|
sourceFilter: z.ZodOptional<z.ZodUnknown>;
|
|
205
232
|
destinationFilter: z.ZodOptional<z.ZodUnknown>;
|
|
206
233
|
enforcingDeviceFilter: z.ZodOptional<z.ZodUnknown>;
|
|
207
234
|
index: z.ZodOptional<z.ZodNumber>;
|
|
208
235
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
209
236
|
origin: z.ZodOptional<z.ZodString>;
|
|
237
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
210
238
|
}, z.core.$loose>>;
|
|
211
239
|
};
|
|
212
240
|
export declare const listAclRulesOutputSchema: {
|
|
@@ -220,14 +248,15 @@ export declare const listAclRulesOutputSchema: {
|
|
|
220
248
|
name: z.ZodOptional<z.ZodString>;
|
|
221
249
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
222
250
|
action: z.ZodOptional<z.ZodString>;
|
|
223
|
-
description: z.ZodOptional<z.ZodString
|
|
224
|
-
protocolFilter: z.ZodOptional<z.ZodArray<z.ZodString
|
|
251
|
+
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
252
|
+
protocolFilter: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString>>>;
|
|
225
253
|
sourceFilter: z.ZodOptional<z.ZodUnknown>;
|
|
226
254
|
destinationFilter: z.ZodOptional<z.ZodUnknown>;
|
|
227
255
|
enforcingDeviceFilter: z.ZodOptional<z.ZodUnknown>;
|
|
228
256
|
index: z.ZodOptional<z.ZodNumber>;
|
|
229
257
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
230
258
|
origin: z.ZodOptional<z.ZodString>;
|
|
259
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
231
260
|
}, z.core.$loose>>;
|
|
232
261
|
}, z.core.$loose>>;
|
|
233
262
|
};
|
|
@@ -243,6 +272,7 @@ export declare const switchStackOutputSchema: {
|
|
|
243
272
|
lags: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
244
273
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
245
274
|
origin: z.ZodOptional<z.ZodString>;
|
|
275
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
246
276
|
}, z.core.$loose>>;
|
|
247
277
|
};
|
|
248
278
|
export declare const listSwitchStacksOutputSchema: {
|
|
@@ -259,6 +289,7 @@ export declare const listSwitchStacksOutputSchema: {
|
|
|
259
289
|
lags: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
260
290
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
261
291
|
origin: z.ZodOptional<z.ZodString>;
|
|
292
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
262
293
|
}, z.core.$loose>>;
|
|
263
294
|
}, z.core.$loose>>;
|
|
264
295
|
};
|
|
@@ -269,6 +300,7 @@ export declare const mcLagDomainOutputSchema: {
|
|
|
269
300
|
lags: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
270
301
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
271
302
|
origin: z.ZodOptional<z.ZodString>;
|
|
303
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
272
304
|
}, z.core.$loose>>;
|
|
273
305
|
};
|
|
274
306
|
export declare const listMcLagDomainsOutputSchema: {
|
|
@@ -283,6 +315,7 @@ export declare const listMcLagDomainsOutputSchema: {
|
|
|
283
315
|
lags: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
284
316
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
285
317
|
origin: z.ZodOptional<z.ZodString>;
|
|
318
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
286
319
|
}, z.core.$loose>>;
|
|
287
320
|
}, z.core.$loose>>;
|
|
288
321
|
};
|
|
@@ -295,6 +328,7 @@ export declare const lagOutputSchema: {
|
|
|
295
328
|
}, z.core.$loose>>>;
|
|
296
329
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
297
330
|
origin: z.ZodOptional<z.ZodString>;
|
|
331
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
298
332
|
}, z.core.$loose>>;
|
|
299
333
|
};
|
|
300
334
|
export declare const listLagsOutputSchema: {
|
|
@@ -311,6 +345,7 @@ export declare const listLagsOutputSchema: {
|
|
|
311
345
|
}, z.core.$loose>>>;
|
|
312
346
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
313
347
|
origin: z.ZodOptional<z.ZodString>;
|
|
348
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
314
349
|
}, z.core.$loose>>;
|
|
315
350
|
}, z.core.$loose>>;
|
|
316
351
|
};
|
|
@@ -321,8 +356,20 @@ export declare const dnsPolicyOutputSchema: {
|
|
|
321
356
|
domain: z.ZodOptional<z.ZodString>;
|
|
322
357
|
ipv4Address: z.ZodOptional<z.ZodString>;
|
|
323
358
|
ttlSeconds: z.ZodOptional<z.ZodNumber>;
|
|
359
|
+
ipv6Address: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
360
|
+
targetDomain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
361
|
+
mailServerDomain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
362
|
+
text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
363
|
+
serverDomain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
364
|
+
service: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
365
|
+
protocol: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
366
|
+
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
367
|
+
priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
368
|
+
weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
369
|
+
ipAddress: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
324
370
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
325
371
|
origin: z.ZodOptional<z.ZodString>;
|
|
372
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
326
373
|
}, z.core.$loose>>;
|
|
327
374
|
};
|
|
328
375
|
export declare const listDnsPoliciesOutputSchema: {
|
|
@@ -337,8 +384,20 @@ export declare const listDnsPoliciesOutputSchema: {
|
|
|
337
384
|
domain: z.ZodOptional<z.ZodString>;
|
|
338
385
|
ipv4Address: z.ZodOptional<z.ZodString>;
|
|
339
386
|
ttlSeconds: z.ZodOptional<z.ZodNumber>;
|
|
387
|
+
ipv6Address: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
388
|
+
targetDomain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
389
|
+
mailServerDomain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
390
|
+
text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
391
|
+
serverDomain: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
392
|
+
service: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
393
|
+
protocol: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
394
|
+
port: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
395
|
+
priority: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
396
|
+
weight: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
397
|
+
ipAddress: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
340
398
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
341
399
|
origin: z.ZodOptional<z.ZodString>;
|
|
400
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
342
401
|
}, z.core.$loose>>;
|
|
343
402
|
}, z.core.$loose>>;
|
|
344
403
|
};
|
|
@@ -349,6 +408,7 @@ export declare const trafficMatchingListOutputSchema: {
|
|
|
349
408
|
items: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
350
409
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
351
410
|
origin: z.ZodOptional<z.ZodString>;
|
|
411
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
352
412
|
}, z.core.$loose>>;
|
|
353
413
|
};
|
|
354
414
|
export declare const listTrafficMatchingListsOutputSchema: {
|
|
@@ -363,6 +423,7 @@ export declare const listTrafficMatchingListsOutputSchema: {
|
|
|
363
423
|
items: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
364
424
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
365
425
|
origin: z.ZodOptional<z.ZodString>;
|
|
426
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
366
427
|
}, z.core.$loose>>;
|
|
367
428
|
}, z.core.$loose>>;
|
|
368
429
|
};
|
|
@@ -495,6 +556,7 @@ export declare const listWifiOutputSchema: {
|
|
|
495
556
|
broadcastingDeviceFilter: z.ZodOptional<z.ZodUnknown>;
|
|
496
557
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
497
558
|
origin: z.ZodOptional<z.ZodString>;
|
|
559
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
498
560
|
}, z.core.$loose>>;
|
|
499
561
|
}, z.core.$loose>>;
|
|
500
562
|
};
|
|
@@ -512,6 +574,7 @@ export declare const getWifiOutputSchema: {
|
|
|
512
574
|
broadcastingDeviceFilter: z.ZodOptional<z.ZodUnknown>;
|
|
513
575
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
514
576
|
origin: z.ZodOptional<z.ZodString>;
|
|
577
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
515
578
|
}, z.core.$loose>>;
|
|
516
579
|
};
|
|
517
580
|
export declare const listWansOutputSchema: {
|
|
@@ -536,6 +599,7 @@ export declare const listVpnServersOutputSchema: {
|
|
|
536
599
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
537
600
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
538
601
|
origin: z.ZodOptional<z.ZodString>;
|
|
602
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
539
603
|
}, z.core.$loose>>;
|
|
540
604
|
}, z.core.$loose>>;
|
|
541
605
|
};
|
|
@@ -559,6 +623,7 @@ export declare const listRadiusProfilesOutputSchema: {
|
|
|
559
623
|
name: z.ZodOptional<z.ZodString>;
|
|
560
624
|
metadata: z.ZodOptional<z.ZodObject<{
|
|
561
625
|
origin: z.ZodOptional<z.ZodString>;
|
|
626
|
+
configurable: z.ZodOptional<z.ZodBoolean>;
|
|
562
627
|
}, z.core.$loose>>;
|
|
563
628
|
}, z.core.$loose>>;
|
|
564
629
|
};
|
|
@@ -663,6 +728,9 @@ export declare const listClientHistoryOutputSchema: {
|
|
|
663
728
|
status: z.ZodOptional<z.ZodString>;
|
|
664
729
|
}, z.core.$loose>>;
|
|
665
730
|
readonly count: z.ZodNumber;
|
|
731
|
+
readonly totalCount: z.ZodNumber;
|
|
732
|
+
readonly limit: z.ZodNumber;
|
|
733
|
+
readonly truncated: z.ZodBoolean;
|
|
666
734
|
readonly withinHours: z.ZodNumber;
|
|
667
735
|
readonly coverage: z.ZodString;
|
|
668
736
|
};
|