@yawlabs/tailscale-mcp 0.2.1 → 0.4.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/README.md +25 -19
- package/dist/index.js +22921 -101
- package/package.json +10 -11
- package/dist/api.d.ts +0 -35
- package/dist/api.js +0 -134
- package/dist/api.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/tools/acl.d.ts +0 -86
- package/dist/tools/acl.js +0 -105
- package/dist/tools/acl.js.map +0 -1
- package/dist/tools/audit.d.ts +0 -50
- package/dist/tools/audit.js +0 -60
- package/dist/tools/audit.js.map +0 -1
- package/dist/tools/devices.d.ts +0 -290
- package/dist/tools/devices.js +0 -254
- package/dist/tools/devices.js.map +0 -1
- package/dist/tools/dns.d.ts +0 -130
- package/dist/tools/dns.js +0 -139
- package/dist/tools/dns.js.map +0 -1
- package/dist/tools/invites.d.ts +0 -158
- package/dist/tools/invites.js +0 -160
- package/dist/tools/invites.js.map +0 -1
- package/dist/tools/keys.d.ts +0 -94
- package/dist/tools/keys.js +0 -92
- package/dist/tools/keys.js.map +0 -1
- package/dist/tools/log-streaming.d.ts +0 -90
- package/dist/tools/log-streaming.js +0 -89
- package/dist/tools/log-streaming.js.map +0 -1
- package/dist/tools/network-lock.d.ts +0 -14
- package/dist/tools/network-lock.js +0 -20
- package/dist/tools/network-lock.js.map +0 -1
- package/dist/tools/oauth-clients.d.ts +0 -118
- package/dist/tools/oauth-clients.js +0 -102
- package/dist/tools/oauth-clients.js.map +0 -1
- package/dist/tools/posture.d.ts +0 -126
- package/dist/tools/posture.js +0 -103
- package/dist/tools/posture.js.map +0 -1
- package/dist/tools/services.d.ts +0 -124
- package/dist/tools/services.js +0 -106
- package/dist/tools/services.js.map +0 -1
- package/dist/tools/status.d.ts +0 -26
- package/dist/tools/status.js +0 -38
- package/dist/tools/status.js.map +0 -1
- package/dist/tools/tailnet.d.ts +0 -130
- package/dist/tools/tailnet.js +0 -96
- package/dist/tools/tailnet.js.map +0 -1
- package/dist/tools/users.d.ts +0 -118
- package/dist/tools/users.js +0 -108
- package/dist/tools/users.js.map +0 -1
- package/dist/tools/webhooks.d.ts +0 -126
- package/dist/tools/webhooks.js +0 -121
- package/dist/tools/webhooks.js.map +0 -1
- package/dist/tools/workload-identity.d.ts +0 -118
- package/dist/tools/workload-identity.js +0 -105
- package/dist/tools/workload-identity.js.map +0 -1
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const logStreamingTools: readonly [{
|
|
3
|
-
readonly name: "tailscale_list_log_stream_configs";
|
|
4
|
-
readonly description: "List all log streaming configurations for your tailnet. Log streaming sends logs to external destinations like Axiom, Datadog, Splunk, Elasticsearch, S3, or GCS.";
|
|
5
|
-
readonly annotations: {
|
|
6
|
-
readonly title: "List log stream configs";
|
|
7
|
-
readonly readOnlyHint: true;
|
|
8
|
-
readonly destructiveHint: false;
|
|
9
|
-
readonly idempotentHint: true;
|
|
10
|
-
readonly openWorldHint: true;
|
|
11
|
-
};
|
|
12
|
-
readonly inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
13
|
-
readonly handler: () => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
14
|
-
}, {
|
|
15
|
-
readonly name: "tailscale_get_log_stream_config";
|
|
16
|
-
readonly description: "Get the log streaming configuration for a specific log type.";
|
|
17
|
-
readonly annotations: {
|
|
18
|
-
readonly title: "Get log stream config";
|
|
19
|
-
readonly readOnlyHint: true;
|
|
20
|
-
readonly destructiveHint: false;
|
|
21
|
-
readonly idempotentHint: true;
|
|
22
|
-
readonly openWorldHint: true;
|
|
23
|
-
};
|
|
24
|
-
readonly inputSchema: z.ZodObject<{
|
|
25
|
-
logType: z.ZodEnum<["configuration", "network"]>;
|
|
26
|
-
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
logType: "configuration" | "network";
|
|
28
|
-
}, {
|
|
29
|
-
logType: "configuration" | "network";
|
|
30
|
-
}>;
|
|
31
|
-
readonly handler: (input: {
|
|
32
|
-
logType: string;
|
|
33
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
34
|
-
}, {
|
|
35
|
-
readonly name: "tailscale_set_log_stream_config";
|
|
36
|
-
readonly description: "Set the log streaming configuration for a specific log type. Configures where logs are sent (e.g. Axiom, Datadog, Splunk, Elasticsearch, S3, GCS).";
|
|
37
|
-
readonly annotations: {
|
|
38
|
-
readonly title: "Set log stream config";
|
|
39
|
-
readonly readOnlyHint: false;
|
|
40
|
-
readonly destructiveHint: false;
|
|
41
|
-
readonly idempotentHint: true;
|
|
42
|
-
readonly openWorldHint: true;
|
|
43
|
-
};
|
|
44
|
-
readonly inputSchema: z.ZodObject<{
|
|
45
|
-
logType: z.ZodEnum<["configuration", "network"]>;
|
|
46
|
-
destinationType: z.ZodString;
|
|
47
|
-
url: z.ZodOptional<z.ZodString>;
|
|
48
|
-
token: z.ZodOptional<z.ZodString>;
|
|
49
|
-
user: z.ZodOptional<z.ZodString>;
|
|
50
|
-
}, "strip", z.ZodTypeAny, {
|
|
51
|
-
logType: "configuration" | "network";
|
|
52
|
-
destinationType: string;
|
|
53
|
-
url?: string | undefined;
|
|
54
|
-
user?: string | undefined;
|
|
55
|
-
token?: string | undefined;
|
|
56
|
-
}, {
|
|
57
|
-
logType: "configuration" | "network";
|
|
58
|
-
destinationType: string;
|
|
59
|
-
url?: string | undefined;
|
|
60
|
-
user?: string | undefined;
|
|
61
|
-
token?: string | undefined;
|
|
62
|
-
}>;
|
|
63
|
-
readonly handler: (input: {
|
|
64
|
-
logType: string;
|
|
65
|
-
destinationType: string;
|
|
66
|
-
url?: string;
|
|
67
|
-
token?: string;
|
|
68
|
-
user?: string;
|
|
69
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
70
|
-
}, {
|
|
71
|
-
readonly name: "tailscale_delete_log_stream_config";
|
|
72
|
-
readonly description: "Delete a log streaming configuration. Logs will stop being sent to the configured destination.";
|
|
73
|
-
readonly annotations: {
|
|
74
|
-
readonly title: "Delete log stream config";
|
|
75
|
-
readonly readOnlyHint: false;
|
|
76
|
-
readonly destructiveHint: true;
|
|
77
|
-
readonly idempotentHint: true;
|
|
78
|
-
readonly openWorldHint: true;
|
|
79
|
-
};
|
|
80
|
-
readonly inputSchema: z.ZodObject<{
|
|
81
|
-
logType: z.ZodEnum<["configuration", "network"]>;
|
|
82
|
-
}, "strip", z.ZodTypeAny, {
|
|
83
|
-
logType: "configuration" | "network";
|
|
84
|
-
}, {
|
|
85
|
-
logType: "configuration" | "network";
|
|
86
|
-
}>;
|
|
87
|
-
readonly handler: (input: {
|
|
88
|
-
logType: string;
|
|
89
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
90
|
-
}];
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { apiDelete, apiGet, apiPut, encPath, getTailnet } from "../api.js";
|
|
3
|
-
export const logStreamingTools = [
|
|
4
|
-
{
|
|
5
|
-
name: "tailscale_list_log_stream_configs",
|
|
6
|
-
description: "List all log streaming configurations for your tailnet. Log streaming sends logs to external destinations like Axiom, Datadog, Splunk, Elasticsearch, S3, or GCS.",
|
|
7
|
-
annotations: {
|
|
8
|
-
title: "List log stream configs",
|
|
9
|
-
readOnlyHint: true,
|
|
10
|
-
destructiveHint: false,
|
|
11
|
-
idempotentHint: true,
|
|
12
|
-
openWorldHint: true,
|
|
13
|
-
},
|
|
14
|
-
inputSchema: z.object({}),
|
|
15
|
-
handler: async () => {
|
|
16
|
-
return apiGet(`/tailnet/${getTailnet()}/logging/stream`);
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: "tailscale_get_log_stream_config",
|
|
21
|
-
description: "Get the log streaming configuration for a specific log type.",
|
|
22
|
-
annotations: {
|
|
23
|
-
title: "Get log stream config",
|
|
24
|
-
readOnlyHint: true,
|
|
25
|
-
destructiveHint: false,
|
|
26
|
-
idempotentHint: true,
|
|
27
|
-
openWorldHint: true,
|
|
28
|
-
},
|
|
29
|
-
inputSchema: z.object({
|
|
30
|
-
logType: z
|
|
31
|
-
.enum(["configuration", "network"])
|
|
32
|
-
.describe("The log type: 'configuration' for audit logs, 'network' for network flow logs"),
|
|
33
|
-
}),
|
|
34
|
-
handler: async (input) => {
|
|
35
|
-
return apiGet(`/tailnet/${getTailnet()}/logging/stream/${encPath(input.logType)}`);
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: "tailscale_set_log_stream_config",
|
|
40
|
-
description: "Set the log streaming configuration for a specific log type. Configures where logs are sent (e.g. Axiom, Datadog, Splunk, Elasticsearch, S3, GCS).",
|
|
41
|
-
annotations: {
|
|
42
|
-
title: "Set log stream config",
|
|
43
|
-
readOnlyHint: false,
|
|
44
|
-
destructiveHint: false,
|
|
45
|
-
idempotentHint: true,
|
|
46
|
-
openWorldHint: true,
|
|
47
|
-
},
|
|
48
|
-
inputSchema: z.object({
|
|
49
|
-
logType: z
|
|
50
|
-
.enum(["configuration", "network"])
|
|
51
|
-
.describe("The log type: 'configuration' for audit logs, 'network' for network flow logs"),
|
|
52
|
-
destinationType: z
|
|
53
|
-
.string()
|
|
54
|
-
.describe("The destination type (e.g. 'axiom', 'datadog', 'splunk', 'elasticsearch', 'panther', 's3', 'gcs', 'cribl')"),
|
|
55
|
-
url: z.string().optional().describe("Destination URL (required for most destination types)"),
|
|
56
|
-
token: z.string().optional().describe("Authentication token or API key for the destination"),
|
|
57
|
-
user: z.string().optional().describe("Username for the destination (if required)"),
|
|
58
|
-
}),
|
|
59
|
-
handler: async (input) => {
|
|
60
|
-
const { logType, ...body } = input;
|
|
61
|
-
const cleanBody = {};
|
|
62
|
-
for (const [key, value] of Object.entries(body)) {
|
|
63
|
-
if (value !== undefined)
|
|
64
|
-
cleanBody[key] = value;
|
|
65
|
-
}
|
|
66
|
-
return apiPut(`/tailnet/${getTailnet()}/logging/stream/${encPath(logType)}`, cleanBody);
|
|
67
|
-
},
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
name: "tailscale_delete_log_stream_config",
|
|
71
|
-
description: "Delete a log streaming configuration. Logs will stop being sent to the configured destination.",
|
|
72
|
-
annotations: {
|
|
73
|
-
title: "Delete log stream config",
|
|
74
|
-
readOnlyHint: false,
|
|
75
|
-
destructiveHint: true,
|
|
76
|
-
idempotentHint: true,
|
|
77
|
-
openWorldHint: true,
|
|
78
|
-
},
|
|
79
|
-
inputSchema: z.object({
|
|
80
|
-
logType: z
|
|
81
|
-
.enum(["configuration", "network"])
|
|
82
|
-
.describe("The log type to stop streaming: 'configuration' or 'network'"),
|
|
83
|
-
}),
|
|
84
|
-
handler: async (input) => {
|
|
85
|
-
return apiDelete(`/tailnet/${getTailnet()}/logging/stream/${encPath(input.logType)}`);
|
|
86
|
-
},
|
|
87
|
-
},
|
|
88
|
-
];
|
|
89
|
-
//# sourceMappingURL=log-streaming.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"log-streaming.js","sourceRoot":"","sources":["../../src/tools/log-streaming.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAW,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEpF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B;QACE,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,mKAAmK;QACrK,WAAW,EAAE;YACX,KAAK,EAAE,yBAAyB;YAChC,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC,YAAY,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC3D,CAAC;KACF;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE;YACX,KAAK,EAAE,uBAAuB;YAC9B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;iBAClC,QAAQ,CAAC,+EAA+E,CAAC;SAC7F,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE;YAC5C,OAAO,MAAM,CAAC,YAAY,UAAU,EAAE,mBAAmB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;KACF;IACD;QACE,IAAI,EAAE,iCAAiC;QACvC,WAAW,EACT,oJAAoJ;QACtJ,WAAW,EAAE;YACX,KAAK,EAAE,uBAAuB;YAC9B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;iBAClC,QAAQ,CAAC,+EAA+E,CAAC;YAC5F,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,CACP,4GAA4G,CAC7G;YACH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YAC5F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;YAC5F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;SACnF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAMf,EAAE,EAAE;YACH,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;YACnC,MAAM,SAAS,GAA4B,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,CAAC,YAAY,UAAU,EAAE,mBAAmB,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC1F,CAAC;KACF;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,WAAW,EAAE,gGAAgG;QAC7G,WAAW,EAAE;YACX,KAAK,EAAE,0BAA0B;YACjC,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;iBAClC,QAAQ,CAAC,8DAA8D,CAAC;SAC5E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAA0B,EAAE,EAAE;YAC5C,OAAO,SAAS,CAAC,YAAY,UAAU,EAAE,mBAAmB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;KACF;CACO,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const networkLockTools: readonly [{
|
|
3
|
-
readonly name: "tailscale_get_network_lock_status";
|
|
4
|
-
readonly description: "Get the tailnet lock (network lock) status, including whether it is enabled and the list of trusted signing keys.";
|
|
5
|
-
readonly annotations: {
|
|
6
|
-
readonly title: "Get network lock status";
|
|
7
|
-
readonly readOnlyHint: true;
|
|
8
|
-
readonly destructiveHint: false;
|
|
9
|
-
readonly idempotentHint: true;
|
|
10
|
-
readonly openWorldHint: true;
|
|
11
|
-
};
|
|
12
|
-
readonly inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
13
|
-
readonly handler: () => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
14
|
-
}];
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { apiGet, getTailnet } from "../api.js";
|
|
3
|
-
export const networkLockTools = [
|
|
4
|
-
{
|
|
5
|
-
name: "tailscale_get_network_lock_status",
|
|
6
|
-
description: "Get the tailnet lock (network lock) status, including whether it is enabled and the list of trusted signing keys.",
|
|
7
|
-
annotations: {
|
|
8
|
-
title: "Get network lock status",
|
|
9
|
-
readOnlyHint: true,
|
|
10
|
-
destructiveHint: false,
|
|
11
|
-
idempotentHint: true,
|
|
12
|
-
openWorldHint: true,
|
|
13
|
-
},
|
|
14
|
-
inputSchema: z.object({}),
|
|
15
|
-
handler: async () => {
|
|
16
|
-
return apiGet(`/tailnet/${getTailnet()}/network-lock/status`);
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
];
|
|
20
|
-
//# sourceMappingURL=network-lock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"network-lock.js","sourceRoot":"","sources":["../../src/tools/network-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,IAAI,EAAE,mCAAmC;QACzC,WAAW,EACT,mHAAmH;QACrH,WAAW,EAAE;YACX,KAAK,EAAE,yBAAyB;YAChC,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC,YAAY,UAAU,EAAE,sBAAsB,CAAC,CAAC;QAChE,CAAC;KACF;CACO,CAAC"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const oauthClientTools: readonly [{
|
|
3
|
-
readonly name: "tailscale_list_oauth_clients";
|
|
4
|
-
readonly description: "List all OAuth clients configured for your tailnet.";
|
|
5
|
-
readonly annotations: {
|
|
6
|
-
readonly title: "List OAuth clients";
|
|
7
|
-
readonly readOnlyHint: true;
|
|
8
|
-
readonly destructiveHint: false;
|
|
9
|
-
readonly idempotentHint: true;
|
|
10
|
-
readonly openWorldHint: true;
|
|
11
|
-
};
|
|
12
|
-
readonly inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
13
|
-
readonly handler: () => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
14
|
-
}, {
|
|
15
|
-
readonly name: "tailscale_get_oauth_client";
|
|
16
|
-
readonly description: "Get details for a specific OAuth client.";
|
|
17
|
-
readonly annotations: {
|
|
18
|
-
readonly title: "Get OAuth client";
|
|
19
|
-
readonly readOnlyHint: true;
|
|
20
|
-
readonly destructiveHint: false;
|
|
21
|
-
readonly idempotentHint: true;
|
|
22
|
-
readonly openWorldHint: true;
|
|
23
|
-
};
|
|
24
|
-
readonly inputSchema: z.ZodObject<{
|
|
25
|
-
clientId: z.ZodString;
|
|
26
|
-
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
clientId: string;
|
|
28
|
-
}, {
|
|
29
|
-
clientId: string;
|
|
30
|
-
}>;
|
|
31
|
-
readonly handler: (input: {
|
|
32
|
-
clientId: string;
|
|
33
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
34
|
-
}, {
|
|
35
|
-
readonly name: "tailscale_create_oauth_client";
|
|
36
|
-
readonly description: "Create a new OAuth client for programmatic API access. Returns the client secret — save it immediately, as it cannot be retrieved again.";
|
|
37
|
-
readonly annotations: {
|
|
38
|
-
readonly title: "Create OAuth client";
|
|
39
|
-
readonly readOnlyHint: false;
|
|
40
|
-
readonly destructiveHint: false;
|
|
41
|
-
readonly idempotentHint: false;
|
|
42
|
-
readonly openWorldHint: true;
|
|
43
|
-
};
|
|
44
|
-
readonly inputSchema: z.ZodObject<{
|
|
45
|
-
name: z.ZodString;
|
|
46
|
-
scopes: z.ZodArray<z.ZodString, "many">;
|
|
47
|
-
tags: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
48
|
-
description: z.ZodOptional<z.ZodString>;
|
|
49
|
-
}, "strip", z.ZodTypeAny, {
|
|
50
|
-
name: string;
|
|
51
|
-
scopes: string[];
|
|
52
|
-
tags?: string[] | undefined;
|
|
53
|
-
description?: string | undefined;
|
|
54
|
-
}, {
|
|
55
|
-
name: string;
|
|
56
|
-
scopes: string[];
|
|
57
|
-
tags?: string[] | undefined;
|
|
58
|
-
description?: string | undefined;
|
|
59
|
-
}>;
|
|
60
|
-
readonly handler: (input: {
|
|
61
|
-
name: string;
|
|
62
|
-
scopes: string[];
|
|
63
|
-
tags?: string[];
|
|
64
|
-
description?: string;
|
|
65
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
66
|
-
}, {
|
|
67
|
-
readonly name: "tailscale_update_oauth_client";
|
|
68
|
-
readonly description: "Update an OAuth client's name, description, or scopes.";
|
|
69
|
-
readonly annotations: {
|
|
70
|
-
readonly title: "Update OAuth client";
|
|
71
|
-
readonly readOnlyHint: false;
|
|
72
|
-
readonly destructiveHint: false;
|
|
73
|
-
readonly idempotentHint: true;
|
|
74
|
-
readonly openWorldHint: true;
|
|
75
|
-
};
|
|
76
|
-
readonly inputSchema: z.ZodObject<{
|
|
77
|
-
clientId: z.ZodString;
|
|
78
|
-
name: z.ZodOptional<z.ZodString>;
|
|
79
|
-
scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
80
|
-
description: z.ZodOptional<z.ZodString>;
|
|
81
|
-
}, "strip", z.ZodTypeAny, {
|
|
82
|
-
clientId: string;
|
|
83
|
-
name?: string | undefined;
|
|
84
|
-
description?: string | undefined;
|
|
85
|
-
scopes?: string[] | undefined;
|
|
86
|
-
}, {
|
|
87
|
-
clientId: string;
|
|
88
|
-
name?: string | undefined;
|
|
89
|
-
description?: string | undefined;
|
|
90
|
-
scopes?: string[] | undefined;
|
|
91
|
-
}>;
|
|
92
|
-
readonly handler: (input: {
|
|
93
|
-
clientId: string;
|
|
94
|
-
name?: string;
|
|
95
|
-
scopes?: string[];
|
|
96
|
-
description?: string;
|
|
97
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
98
|
-
}, {
|
|
99
|
-
readonly name: "tailscale_delete_oauth_client";
|
|
100
|
-
readonly description: "Delete an OAuth client. This is irreversible — any integrations using this client will lose access immediately.";
|
|
101
|
-
readonly annotations: {
|
|
102
|
-
readonly title: "Delete OAuth client";
|
|
103
|
-
readonly readOnlyHint: false;
|
|
104
|
-
readonly destructiveHint: true;
|
|
105
|
-
readonly idempotentHint: true;
|
|
106
|
-
readonly openWorldHint: true;
|
|
107
|
-
};
|
|
108
|
-
readonly inputSchema: z.ZodObject<{
|
|
109
|
-
clientId: z.ZodString;
|
|
110
|
-
}, "strip", z.ZodTypeAny, {
|
|
111
|
-
clientId: string;
|
|
112
|
-
}, {
|
|
113
|
-
clientId: string;
|
|
114
|
-
}>;
|
|
115
|
-
readonly handler: (input: {
|
|
116
|
-
clientId: string;
|
|
117
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
118
|
-
}];
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
import { apiDelete, apiGet, apiPatch, apiPost, encPath, getTailnet } from "../api.js";
|
|
3
|
-
export const oauthClientTools = [
|
|
4
|
-
{
|
|
5
|
-
name: "tailscale_list_oauth_clients",
|
|
6
|
-
description: "List all OAuth clients configured for your tailnet.",
|
|
7
|
-
annotations: {
|
|
8
|
-
title: "List OAuth clients",
|
|
9
|
-
readOnlyHint: true,
|
|
10
|
-
destructiveHint: false,
|
|
11
|
-
idempotentHint: true,
|
|
12
|
-
openWorldHint: true,
|
|
13
|
-
},
|
|
14
|
-
inputSchema: z.object({}),
|
|
15
|
-
handler: async () => {
|
|
16
|
-
return apiGet(`/tailnet/${getTailnet()}/oauth-clients`);
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
name: "tailscale_get_oauth_client",
|
|
21
|
-
description: "Get details for a specific OAuth client.",
|
|
22
|
-
annotations: {
|
|
23
|
-
title: "Get OAuth client",
|
|
24
|
-
readOnlyHint: true,
|
|
25
|
-
destructiveHint: false,
|
|
26
|
-
idempotentHint: true,
|
|
27
|
-
openWorldHint: true,
|
|
28
|
-
},
|
|
29
|
-
inputSchema: z.object({
|
|
30
|
-
clientId: z.string().describe("The OAuth client ID"),
|
|
31
|
-
}),
|
|
32
|
-
handler: async (input) => {
|
|
33
|
-
return apiGet(`/tailnet/${getTailnet()}/oauth-clients/${encPath(input.clientId)}`);
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
name: "tailscale_create_oauth_client",
|
|
38
|
-
description: "Create a new OAuth client for programmatic API access. Returns the client secret — save it immediately, as it cannot be retrieved again.",
|
|
39
|
-
annotations: {
|
|
40
|
-
title: "Create OAuth client",
|
|
41
|
-
readOnlyHint: false,
|
|
42
|
-
destructiveHint: false,
|
|
43
|
-
idempotentHint: false,
|
|
44
|
-
openWorldHint: true,
|
|
45
|
-
},
|
|
46
|
-
inputSchema: z.object({
|
|
47
|
-
name: z.string().describe("A human-readable name for this OAuth client"),
|
|
48
|
-
scopes: z
|
|
49
|
-
.array(z.string())
|
|
50
|
-
.describe("OAuth scopes to grant (e.g. ['devices:read', 'dns', 'acl']). See Tailscale docs for available scopes."),
|
|
51
|
-
tags: z.array(z.string()).optional().describe("ACL tags to assign to the OAuth client"),
|
|
52
|
-
description: z.string().optional().describe("Description for this OAuth client"),
|
|
53
|
-
}),
|
|
54
|
-
handler: async (input) => {
|
|
55
|
-
return apiPost(`/tailnet/${getTailnet()}/oauth-clients`, input);
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "tailscale_update_oauth_client",
|
|
60
|
-
description: "Update an OAuth client's name, description, or scopes.",
|
|
61
|
-
annotations: {
|
|
62
|
-
title: "Update OAuth client",
|
|
63
|
-
readOnlyHint: false,
|
|
64
|
-
destructiveHint: false,
|
|
65
|
-
idempotentHint: true,
|
|
66
|
-
openWorldHint: true,
|
|
67
|
-
},
|
|
68
|
-
inputSchema: z.object({
|
|
69
|
-
clientId: z.string().describe("The OAuth client ID to update"),
|
|
70
|
-
name: z.string().optional().describe("Updated name"),
|
|
71
|
-
scopes: z.array(z.string()).optional().describe("Updated OAuth scopes"),
|
|
72
|
-
description: z.string().optional().describe("Updated description"),
|
|
73
|
-
}),
|
|
74
|
-
handler: async (input) => {
|
|
75
|
-
const { clientId, ...body } = input;
|
|
76
|
-
const cleanBody = {};
|
|
77
|
-
for (const [key, value] of Object.entries(body)) {
|
|
78
|
-
if (value !== undefined)
|
|
79
|
-
cleanBody[key] = value;
|
|
80
|
-
}
|
|
81
|
-
return apiPatch(`/tailnet/${getTailnet()}/oauth-clients/${encPath(clientId)}`, cleanBody);
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
name: "tailscale_delete_oauth_client",
|
|
86
|
-
description: "Delete an OAuth client. This is irreversible — any integrations using this client will lose access immediately.",
|
|
87
|
-
annotations: {
|
|
88
|
-
title: "Delete OAuth client",
|
|
89
|
-
readOnlyHint: false,
|
|
90
|
-
destructiveHint: true,
|
|
91
|
-
idempotentHint: true,
|
|
92
|
-
openWorldHint: true,
|
|
93
|
-
},
|
|
94
|
-
inputSchema: z.object({
|
|
95
|
-
clientId: z.string().describe("The OAuth client ID to delete"),
|
|
96
|
-
}),
|
|
97
|
-
handler: async (input) => {
|
|
98
|
-
return apiDelete(`/tailnet/${getTailnet()}/oauth-clients/${encPath(input.clientId)}`);
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
];
|
|
102
|
-
//# sourceMappingURL=oauth-clients.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-clients.js","sourceRoot":"","sources":["../../src/tools/oauth-clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtF,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,MAAM,CAAC,YAAY,UAAU,EAAE,gBAAgB,CAAC,CAAC;QAC1D,CAAC;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,KAAK,EAAE,kBAAkB;YACzB,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACrD,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAA2B,EAAE,EAAE;YAC7C,OAAO,MAAM,CAAC,YAAY,UAAU,EAAE,kBAAkB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;KACF;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,0IAA0I;QAC5I,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACxE,MAAM,EAAE,CAAC;iBACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CACP,uGAAuG,CACxG;YACH,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACvF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACjF,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAKf,EAAE,EAAE;YACH,OAAO,OAAO,CAAC,YAAY,UAAU,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;KACF;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EAAE,wDAAwD;QACrE,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YAC9D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACpD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACvE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACnE,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAKf,EAAE,EAAE;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;YACpC,MAAM,SAAS,GAA4B,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAClD,CAAC;YACD,OAAO,QAAQ,CAAC,YAAY,UAAU,EAAE,kBAAkB,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC5F,CAAC;KACF;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,iHAAiH;QACnH,WAAW,EAAE;YACX,KAAK,EAAE,qBAAqB;YAC5B,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,IAAI;SACpB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SAC/D,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,KAA2B,EAAE,EAAE;YAC7C,OAAO,SAAS,CAAC,YAAY,UAAU,EAAE,kBAAkB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;KACF;CACO,CAAC"}
|
package/dist/tools/posture.d.ts
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
export declare const postureTools: readonly [{
|
|
3
|
-
readonly name: "tailscale_list_posture_integrations";
|
|
4
|
-
readonly description: "List all device posture integrations configured for your tailnet.";
|
|
5
|
-
readonly annotations: {
|
|
6
|
-
readonly title: "List posture integrations";
|
|
7
|
-
readonly readOnlyHint: true;
|
|
8
|
-
readonly destructiveHint: false;
|
|
9
|
-
readonly idempotentHint: true;
|
|
10
|
-
readonly openWorldHint: true;
|
|
11
|
-
};
|
|
12
|
-
readonly inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
13
|
-
readonly handler: () => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
14
|
-
}, {
|
|
15
|
-
readonly name: "tailscale_get_posture_integration";
|
|
16
|
-
readonly description: "Get details for a specific device posture integration.";
|
|
17
|
-
readonly annotations: {
|
|
18
|
-
readonly title: "Get posture integration";
|
|
19
|
-
readonly readOnlyHint: true;
|
|
20
|
-
readonly destructiveHint: false;
|
|
21
|
-
readonly idempotentHint: true;
|
|
22
|
-
readonly openWorldHint: true;
|
|
23
|
-
};
|
|
24
|
-
readonly inputSchema: z.ZodObject<{
|
|
25
|
-
integrationId: z.ZodString;
|
|
26
|
-
}, "strip", z.ZodTypeAny, {
|
|
27
|
-
integrationId: string;
|
|
28
|
-
}, {
|
|
29
|
-
integrationId: string;
|
|
30
|
-
}>;
|
|
31
|
-
readonly handler: (input: {
|
|
32
|
-
integrationId: string;
|
|
33
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
34
|
-
}, {
|
|
35
|
-
readonly name: "tailscale_create_posture_integration";
|
|
36
|
-
readonly description: "Create a new device posture integration.";
|
|
37
|
-
readonly annotations: {
|
|
38
|
-
readonly title: "Create posture integration";
|
|
39
|
-
readonly readOnlyHint: false;
|
|
40
|
-
readonly destructiveHint: false;
|
|
41
|
-
readonly idempotentHint: false;
|
|
42
|
-
readonly openWorldHint: true;
|
|
43
|
-
};
|
|
44
|
-
readonly inputSchema: z.ZodObject<{
|
|
45
|
-
provider: z.ZodString;
|
|
46
|
-
clientId: z.ZodString;
|
|
47
|
-
clientSecret: z.ZodString;
|
|
48
|
-
tenantId: z.ZodOptional<z.ZodString>;
|
|
49
|
-
cloudEnvironment: z.ZodOptional<z.ZodString>;
|
|
50
|
-
}, "strip", z.ZodTypeAny, {
|
|
51
|
-
provider: string;
|
|
52
|
-
clientId: string;
|
|
53
|
-
clientSecret: string;
|
|
54
|
-
tenantId?: string | undefined;
|
|
55
|
-
cloudEnvironment?: string | undefined;
|
|
56
|
-
}, {
|
|
57
|
-
provider: string;
|
|
58
|
-
clientId: string;
|
|
59
|
-
clientSecret: string;
|
|
60
|
-
tenantId?: string | undefined;
|
|
61
|
-
cloudEnvironment?: string | undefined;
|
|
62
|
-
}>;
|
|
63
|
-
readonly handler: (input: {
|
|
64
|
-
provider: string;
|
|
65
|
-
clientId: string;
|
|
66
|
-
clientSecret: string;
|
|
67
|
-
tenantId?: string;
|
|
68
|
-
cloudEnvironment?: string;
|
|
69
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
70
|
-
}, {
|
|
71
|
-
readonly name: "tailscale_update_posture_integration";
|
|
72
|
-
readonly description: "Update an existing posture integration's credentials or configuration.";
|
|
73
|
-
readonly annotations: {
|
|
74
|
-
readonly title: "Update posture integration";
|
|
75
|
-
readonly readOnlyHint: false;
|
|
76
|
-
readonly destructiveHint: false;
|
|
77
|
-
readonly idempotentHint: true;
|
|
78
|
-
readonly openWorldHint: true;
|
|
79
|
-
};
|
|
80
|
-
readonly inputSchema: z.ZodObject<{
|
|
81
|
-
integrationId: z.ZodString;
|
|
82
|
-
clientId: z.ZodOptional<z.ZodString>;
|
|
83
|
-
clientSecret: z.ZodOptional<z.ZodString>;
|
|
84
|
-
tenantId: z.ZodOptional<z.ZodString>;
|
|
85
|
-
cloudEnvironment: z.ZodOptional<z.ZodString>;
|
|
86
|
-
}, "strip", z.ZodTypeAny, {
|
|
87
|
-
integrationId: string;
|
|
88
|
-
clientId?: string | undefined;
|
|
89
|
-
clientSecret?: string | undefined;
|
|
90
|
-
tenantId?: string | undefined;
|
|
91
|
-
cloudEnvironment?: string | undefined;
|
|
92
|
-
}, {
|
|
93
|
-
integrationId: string;
|
|
94
|
-
clientId?: string | undefined;
|
|
95
|
-
clientSecret?: string | undefined;
|
|
96
|
-
tenantId?: string | undefined;
|
|
97
|
-
cloudEnvironment?: string | undefined;
|
|
98
|
-
}>;
|
|
99
|
-
readonly handler: (input: {
|
|
100
|
-
integrationId: string;
|
|
101
|
-
clientId?: string;
|
|
102
|
-
clientSecret?: string;
|
|
103
|
-
tenantId?: string;
|
|
104
|
-
cloudEnvironment?: string;
|
|
105
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
106
|
-
}, {
|
|
107
|
-
readonly name: "tailscale_delete_posture_integration";
|
|
108
|
-
readonly description: "Delete a posture integration. This is irreversible.";
|
|
109
|
-
readonly annotations: {
|
|
110
|
-
readonly title: "Delete posture integration";
|
|
111
|
-
readonly readOnlyHint: false;
|
|
112
|
-
readonly destructiveHint: true;
|
|
113
|
-
readonly idempotentHint: true;
|
|
114
|
-
readonly openWorldHint: true;
|
|
115
|
-
};
|
|
116
|
-
readonly inputSchema: z.ZodObject<{
|
|
117
|
-
integrationId: z.ZodString;
|
|
118
|
-
}, "strip", z.ZodTypeAny, {
|
|
119
|
-
integrationId: string;
|
|
120
|
-
}, {
|
|
121
|
-
integrationId: string;
|
|
122
|
-
}>;
|
|
123
|
-
readonly handler: (input: {
|
|
124
|
-
integrationId: string;
|
|
125
|
-
}) => Promise<import("../api.js").ApiResponse<unknown>>;
|
|
126
|
-
}];
|