mongodb-mcp-server 1.11.0 → 1.13.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 +9 -8
- package/dist/cjs/common/atlas/apiClient.d.ts +3 -0
- package/dist/cjs/common/atlas/apiClient.d.ts.map +1 -1
- package/dist/cjs/common/atlas/apiClient.js +22 -1
- package/dist/cjs/common/atlas/apiClient.js.map +1 -1
- package/dist/cjs/common/atlas/cluster.d.ts +1 -0
- package/dist/cjs/common/atlas/cluster.d.ts.map +1 -1
- package/dist/cjs/common/atlas/cluster.js +2 -0
- package/dist/cjs/common/atlas/cluster.js.map +1 -1
- package/dist/cjs/common/config/userConfig.d.ts +1 -0
- package/dist/cjs/common/config/userConfig.d.ts.map +1 -1
- package/dist/cjs/common/config/userConfig.js +7 -0
- package/dist/cjs/common/config/userConfig.js.map +1 -1
- package/dist/cjs/common/connectionInfo.d.ts.map +1 -1
- package/dist/cjs/common/connectionInfo.js +3 -0
- package/dist/cjs/common/connectionInfo.js.map +1 -1
- package/dist/cjs/common/connectionManager.d.ts.map +1 -1
- package/dist/cjs/common/connectionManager.js +2 -0
- package/dist/cjs/common/connectionManager.js.map +1 -1
- package/dist/cjs/common/errors.d.ts +2 -1
- package/dist/cjs/common/errors.d.ts.map +1 -1
- package/dist/cjs/common/errors.js +1 -0
- package/dist/cjs/common/errors.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +2 -2
- package/dist/cjs/helpers/mqlGuards.d.ts +12 -0
- package/dist/cjs/helpers/mqlGuards.d.ts.map +1 -0
- package/dist/cjs/helpers/mqlGuards.js +53 -0
- package/dist/cjs/helpers/mqlGuards.js.map +1 -0
- package/dist/cjs/telemetry/types.d.ts +20 -1
- package/dist/cjs/telemetry/types.d.ts.map +1 -1
- package/dist/cjs/telemetry/types.js.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.js +1 -0
- package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +1 -0
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.js +34 -27
- package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createCluster.d.ts +125 -0
- package/dist/cjs/tools/atlas/create/createCluster.d.ts.map +1 -0
- package/dist/cjs/tools/atlas/create/createCluster.js +219 -0
- package/dist/cjs/tools/atlas/create/createCluster.js.map +1 -0
- package/dist/cjs/tools/atlas/create/loadSampleDataset.d.ts +46 -0
- package/dist/cjs/tools/atlas/create/loadSampleDataset.d.ts.map +1 -0
- package/dist/cjs/tools/atlas/create/loadSampleDataset.js +77 -0
- package/dist/cjs/tools/atlas/create/loadSampleDataset.js.map +1 -0
- package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.js +3 -0
- package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/tools.d.ts +3 -0
- package/dist/cjs/tools/atlas/tools.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/tools.js +7 -1
- package/dist/cjs/tools/atlas/tools.js.map +1 -1
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.d.ts +51 -0
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.d.ts.map +1 -0
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.js +84 -0
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.js.map +1 -0
- package/dist/cjs/tools/mongodb/create/createIndex.d.ts +8 -4
- package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/createIndex.js +6 -0
- package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.js +1 -0
- package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts +22 -4
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.js +7 -4
- package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts +16 -0
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +43 -0
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +0 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +3 -19
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts +0 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.js +3 -21
- package/dist/cjs/tools/mongodb/read/aggregateDB.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/count.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/count.js +1 -0
- package/dist/cjs/tools/mongodb/read/count.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.js +2 -0
- package/dist/cjs/tools/mongodb/read/export.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.js +1 -0
- package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
- package/dist/cjs/tools/mongodb/update/renameCollection.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/update/renameCollection.js +8 -0
- package/dist/cjs/tools/mongodb/update/renameCollection.js.map +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.js +1 -0
- package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/cjs/ui/lib/tools/list-databases.d.ts +1 -1
- package/dist/cjs/ui/lib/tools/list-databases.d.ts.map +1 -1
- package/dist/cjs/ui/lib/tools/list-databases.js +1 -1
- package/dist/cjs/ui/lib/tools/list-databases.js.map +1 -1
- package/dist/esm/common/atlas/apiClient.d.ts +3 -0
- package/dist/esm/common/atlas/apiClient.d.ts.map +1 -1
- package/dist/esm/common/atlas/apiClient.js +22 -1
- package/dist/esm/common/atlas/apiClient.js.map +1 -1
- package/dist/esm/common/atlas/cluster.d.ts +1 -0
- package/dist/esm/common/atlas/cluster.d.ts.map +1 -1
- package/dist/esm/common/atlas/cluster.js +2 -0
- package/dist/esm/common/atlas/cluster.js.map +1 -1
- package/dist/esm/common/config/userConfig.d.ts +1 -0
- package/dist/esm/common/config/userConfig.d.ts.map +1 -1
- package/dist/esm/common/config/userConfig.js +7 -0
- package/dist/esm/common/config/userConfig.js.map +1 -1
- package/dist/esm/common/connectionInfo.d.ts.map +1 -1
- package/dist/esm/common/connectionInfo.js +4 -1
- package/dist/esm/common/connectionInfo.js.map +1 -1
- package/dist/esm/common/connectionManager.d.ts.map +1 -1
- package/dist/esm/common/connectionManager.js +2 -0
- package/dist/esm/common/connectionManager.js.map +1 -1
- package/dist/esm/common/errors.d.ts +2 -1
- package/dist/esm/common/errors.d.ts.map +1 -1
- package/dist/esm/common/errors.js +1 -0
- package/dist/esm/common/errors.js.map +1 -1
- package/dist/esm/common/packageInfo.js +2 -2
- package/dist/esm/helpers/mqlGuards.d.ts +12 -0
- package/dist/esm/helpers/mqlGuards.d.ts.map +1 -0
- package/dist/esm/helpers/mqlGuards.js +49 -0
- package/dist/esm/helpers/mqlGuards.js.map +1 -0
- package/dist/esm/telemetry/types.d.ts +20 -1
- package/dist/esm/telemetry/types.d.ts.map +1 -1
- package/dist/esm/telemetry/types.js.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.js +1 -0
- package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts +1 -0
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.js +34 -27
- package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createCluster.d.ts +125 -0
- package/dist/esm/tools/atlas/create/createCluster.d.ts.map +1 -0
- package/dist/esm/tools/atlas/create/createCluster.js +215 -0
- package/dist/esm/tools/atlas/create/createCluster.js.map +1 -0
- package/dist/esm/tools/atlas/create/loadSampleDataset.d.ts +46 -0
- package/dist/esm/tools/atlas/create/loadSampleDataset.d.ts.map +1 -0
- package/dist/esm/tools/atlas/create/loadSampleDataset.js +73 -0
- package/dist/esm/tools/atlas/create/loadSampleDataset.js.map +1 -0
- package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.js +3 -0
- package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/tools.d.ts +3 -0
- package/dist/esm/tools/atlas/tools.d.ts.map +1 -1
- package/dist/esm/tools/atlas/tools.js +3 -0
- package/dist/esm/tools/atlas/tools.js.map +1 -1
- package/dist/esm/tools/atlas/update/pauseResumeCluster.d.ts +51 -0
- package/dist/esm/tools/atlas/update/pauseResumeCluster.d.ts.map +1 -0
- package/dist/esm/tools/atlas/update/pauseResumeCluster.js +80 -0
- package/dist/esm/tools/atlas/update/pauseResumeCluster.js.map +1 -0
- package/dist/esm/tools/mongodb/create/createIndex.d.ts +8 -4
- package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/createIndex.js +6 -0
- package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.js +1 -0
- package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts +22 -4
- package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.js +7 -4
- package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts +16 -0
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +43 -0
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +0 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +3 -19
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts +0 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.js +3 -21
- package/dist/esm/tools/mongodb/read/aggregateDB.js.map +1 -1
- package/dist/esm/tools/mongodb/read/count.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/count.js +1 -0
- package/dist/esm/tools/mongodb/read/count.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/export.js +2 -0
- package/dist/esm/tools/mongodb/read/export.js.map +1 -1
- package/dist/esm/tools/mongodb/read/find.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/find.js +1 -0
- package/dist/esm/tools/mongodb/read/find.js.map +1 -1
- package/dist/esm/tools/mongodb/update/renameCollection.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/update/renameCollection.js +8 -0
- package/dist/esm/tools/mongodb/update/renameCollection.js.map +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.js +1 -0
- package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/esm/ui/lib/tools/list-databases.d.ts +1 -1
- package/dist/esm/ui/lib/tools/list-databases.d.ts.map +1 -1
- package/dist/esm/ui/lib/tools/list-databases.js +1 -1
- package/dist/esm/ui/lib/tools/list-databases.js.map +1 -1
- package/package.json +18 -24
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateClusterTool = exports.CreateClusterArgsShape = exports.ATLAS_CREATE_CLUSTER_README_DESCRIPTION = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const atlasTool_js_1 = require("../atlasTool.js");
|
|
6
|
+
const args_js_1 = require("../../args.js");
|
|
7
|
+
/** @public */
|
|
8
|
+
exports.ATLAS_CREATE_CLUSTER_README_DESCRIPTION = "Create a MongoDB Atlas cluster (M10–M80, replica set or single shard). " +
|
|
9
|
+
"Compute autoscaling is enabled by default: min instance size is set to the selected instance size, max is set two tiers above. " +
|
|
10
|
+
"Disk autoscaling is always enabled. The tool returns immediately, use the atlas-inspect-cluster tool to poll the cluster state for readiness (state: IDLE). " +
|
|
11
|
+
"Connection strings are unavailable until the cluster reaches IDLE state.";
|
|
12
|
+
// Keeping this region recommendation string and the one for atlas-upgrade-cluster independent in the short term. The current effort is intentionally limited to additive changes only.
|
|
13
|
+
// Differences include the mention of "non-exhaustive" and a nudge to respect user-specified regions when not in the mapping.
|
|
14
|
+
const REGION_RECOMMENDATIONS = `Common, non-exhaustive region default mappings by provider:
|
|
15
|
+
AWS: "East Coast"/"Virginia"/"US East" → US_EAST_1, "Ohio" → US_EAST_2, "California"/"West Coast" → US_WEST_2, "Southeast Asia"/"APAC"/"Singapore" → AP_SOUTHEAST_1, "Europe"/"EU"/"Ireland" → EU_WEST_1.
|
|
16
|
+
GCP: "Central US" → CENTRAL_US, "Western US" → WESTERN_US, "Southeast Asia"/"APAC" → SOUTHEASTERN_ASIA_PACIFIC, "Europe"/"EU" → WESTERN_EUROPE.
|
|
17
|
+
AZURE: "East US" → US_EAST_2, "West US" → US_WEST_2, "Europe North" → EUROPE_NORTH, "Europe West" → EUROPE_WEST.
|
|
18
|
+
Default recommendation: AWS US_EAST_1.
|
|
19
|
+
User-specified regions not present in the mapping MUST be respected, rely on the tool to surface errors if a region is not supported.
|
|
20
|
+
`;
|
|
21
|
+
const instanceSizeEnum = zod_1.z.enum(["M10", "M20", "M30", "M40", "M50", "M60", "M80"]);
|
|
22
|
+
const cloudProviderEnum = zod_1.z.enum(["AWS", "GCP", "AZURE"]);
|
|
23
|
+
const clusterTypeEnum = zod_1.z.enum(["REPLICASET", "SHARDED"]);
|
|
24
|
+
const mongoDBVersionEnum = zod_1.z.enum(["7.0", "8.0", "LATEST"]);
|
|
25
|
+
const backupEnum = zod_1.z.enum(["OFF", "SNAPSHOT", "CONTINUOUS"]);
|
|
26
|
+
function getMaxAutoScalingSize(size, provider) {
|
|
27
|
+
// M60 and M80 extend beyond the selectable range. M140 is not supported on Azure.
|
|
28
|
+
if (size === "M80")
|
|
29
|
+
return "M200";
|
|
30
|
+
if (size === "M60")
|
|
31
|
+
return provider === "AZURE" ? "M200" : "M140";
|
|
32
|
+
return instanceSizeEnum.options[instanceSizeEnum.options.indexOf(size) + 2] ?? "M80";
|
|
33
|
+
}
|
|
34
|
+
function buildAutoScaling(instanceSize, computeEnabled, provider) {
|
|
35
|
+
return {
|
|
36
|
+
compute: {
|
|
37
|
+
enabled: computeEnabled,
|
|
38
|
+
scaleDownEnabled: computeEnabled,
|
|
39
|
+
minInstanceSize: computeEnabled ? instanceSize : undefined,
|
|
40
|
+
maxInstanceSize: computeEnabled ? getMaxAutoScalingSize(instanceSize, provider) : undefined,
|
|
41
|
+
},
|
|
42
|
+
diskGB: { enabled: true },
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
function buildReplicationSpecs(provider, region, instanceSize, autoScaling, diskSizeGB) {
|
|
46
|
+
return [
|
|
47
|
+
{
|
|
48
|
+
regionConfigs: [
|
|
49
|
+
{
|
|
50
|
+
providerName: provider,
|
|
51
|
+
regionName: region,
|
|
52
|
+
priority: 7,
|
|
53
|
+
electableSpecs: { instanceSize, nodeCount: 3, diskSizeGB },
|
|
54
|
+
autoScaling,
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
}
|
|
60
|
+
function buildBackupConfig(backups) {
|
|
61
|
+
switch (backups) {
|
|
62
|
+
case "OFF":
|
|
63
|
+
return { backupEnabled: false, pitEnabled: false };
|
|
64
|
+
case "SNAPSHOT":
|
|
65
|
+
return { backupEnabled: true, pitEnabled: false };
|
|
66
|
+
case "CONTINUOUS":
|
|
67
|
+
return { backupEnabled: true, pitEnabled: true };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function buildVersionConfig(version) {
|
|
71
|
+
if (version === "LATEST") {
|
|
72
|
+
return { versionReleaseSystem: "CONTINUOUS" };
|
|
73
|
+
}
|
|
74
|
+
return { versionReleaseSystem: "LTS", mongoDBMajorVersion: version };
|
|
75
|
+
}
|
|
76
|
+
class CreateClusterError extends Error {
|
|
77
|
+
}
|
|
78
|
+
exports.CreateClusterArgsShape = {
|
|
79
|
+
projectId: args_js_1.AtlasArgs.projectId().describe("Atlas project ID to create the cluster in. Use the atlas-list-projects to find project IDs if not provided."),
|
|
80
|
+
clusterName: args_js_1.AtlasArgs.clusterName().describe("Name of the cluster."),
|
|
81
|
+
provider: cloudProviderEnum.describe("Cloud provider for the cluster."),
|
|
82
|
+
region: args_js_1.AtlasArgs.region().describe("Cloud provider region in Atlas format using uppercase letters and underscores (e.g. US_EAST_1)."),
|
|
83
|
+
clusterType: clusterTypeEnum
|
|
84
|
+
.default("REPLICASET")
|
|
85
|
+
.describe("Cluster topology. Use `SHARDED` for single-shard clusters, requires M30 or higher. Defaults to `REPLICASET`."),
|
|
86
|
+
instanceSize: instanceSizeEnum
|
|
87
|
+
.optional()
|
|
88
|
+
.describe("Instance size. NVME and high-memory instances are not supported. Minimum M30 when clusterType is SHARDED. Defaults to M10 for projects with fewer than 2 existing clusters, M30 otherwise. Omit unless explicitly specified by the user."),
|
|
89
|
+
computeAutoScaling: zod_1.z
|
|
90
|
+
.boolean()
|
|
91
|
+
.default(true)
|
|
92
|
+
.describe("When true, enables compute autoscaling. Min instance size is set to the selected instance size, max is set two tiers above. Omit unless explicitly specified by the user."),
|
|
93
|
+
diskSizeGB: zod_1.z
|
|
94
|
+
.number()
|
|
95
|
+
.positive()
|
|
96
|
+
.optional()
|
|
97
|
+
.describe("Initial disk size in GB. Disk autoscaling is always enabled regardless of this value. Omit unless explicitly specified by the user."),
|
|
98
|
+
mongoDBVersion: mongoDBVersionEnum
|
|
99
|
+
.default("LATEST")
|
|
100
|
+
.describe("MongoDB version to deploy. Use a pinned version for production environments where version stability is required. Defaults to `LATEST`."),
|
|
101
|
+
backup: backupEnum
|
|
102
|
+
.default("SNAPSHOT")
|
|
103
|
+
.describe("`OFF`: no backups. `SNAPSHOT`: cloud backup snapshots, recommended for most workloads. `CONTINUOUS`: point-in-time restore, required for RPO-sensitive production workloads. Defaults to `SNAPSHOT`."),
|
|
104
|
+
terminationProtectionEnabled: zod_1.z
|
|
105
|
+
.boolean()
|
|
106
|
+
.default(false)
|
|
107
|
+
.describe("When true, prevents the cluster from being deleted until protection is explicitly disabled. Recommended for production clusters. Defaults to false."),
|
|
108
|
+
};
|
|
109
|
+
const CreateClusterOutputSchema = {
|
|
110
|
+
clusterId: zod_1.z.string().optional(),
|
|
111
|
+
provider: cloudProviderEnum,
|
|
112
|
+
region: zod_1.z.string(),
|
|
113
|
+
instanceSize: instanceSizeEnum,
|
|
114
|
+
clusterType: clusterTypeEnum,
|
|
115
|
+
mongoDBVersion: mongoDBVersionEnum,
|
|
116
|
+
backup: backupEnum,
|
|
117
|
+
computeAutoScaling: zod_1.z.boolean(),
|
|
118
|
+
terminationProtectionEnabled: zod_1.z.boolean(),
|
|
119
|
+
diskSizeGB: zod_1.z.number().optional(),
|
|
120
|
+
};
|
|
121
|
+
class CreateClusterTool extends atlasTool_js_1.AtlasToolBase {
|
|
122
|
+
constructor() {
|
|
123
|
+
super(...arguments);
|
|
124
|
+
this.description = "Create a MongoDB Atlas cluster (M10–M80, replica set or single shard). " +
|
|
125
|
+
"Compute autoscaling is enabled by default: min instance size is set to the selected instance size, max is set two tiers above. " +
|
|
126
|
+
"Disk autoscaling is always enabled. The tool returns immediately, use the atlas-inspect-cluster tool to poll the cluster state for readiness (state: IDLE). " +
|
|
127
|
+
"Connection strings are unavailable until the cluster reaches IDLE state. " +
|
|
128
|
+
"Note to LLM: Omit instance size unless specified by the user. If provider and region are not already known, ask for both together in a single question before calling this tool. " +
|
|
129
|
+
REGION_RECOMMENDATIONS;
|
|
130
|
+
this.outputSchema = CreateClusterOutputSchema;
|
|
131
|
+
this.argsShape = exports.CreateClusterArgsShape;
|
|
132
|
+
}
|
|
133
|
+
async execute(args) {
|
|
134
|
+
const { projectId, clusterName, provider, region, clusterType, terminationProtectionEnabled } = args;
|
|
135
|
+
if (clusterType === "SHARDED" && (args.instanceSize === "M10" || args.instanceSize === "M20")) {
|
|
136
|
+
throw new CreateClusterError("SHARDED clusters require M30 or higher instance size.");
|
|
137
|
+
}
|
|
138
|
+
let instanceSize;
|
|
139
|
+
if (args.instanceSize !== undefined) {
|
|
140
|
+
instanceSize = args.instanceSize;
|
|
141
|
+
}
|
|
142
|
+
else if (clusterType === "SHARDED") {
|
|
143
|
+
instanceSize = "M30";
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// REPLICASET defaults to M10 if there are less than 2 clusters in the project, M30 otherwise.
|
|
147
|
+
const existing = await this.apiClient.listClusters({ params: { path: { groupId: projectId } } });
|
|
148
|
+
instanceSize = (existing.results?.length ?? 0) < 2 ? "M10" : "M30";
|
|
149
|
+
}
|
|
150
|
+
const autoScaling = buildAutoScaling(instanceSize, args.computeAutoScaling, provider);
|
|
151
|
+
const replicationSpecs = buildReplicationSpecs(provider, region, instanceSize, autoScaling, args.diskSizeGB);
|
|
152
|
+
const backupConfig = buildBackupConfig(args.backup);
|
|
153
|
+
const versionConfig = buildVersionConfig(args.mongoDBVersion);
|
|
154
|
+
const body = {
|
|
155
|
+
name: clusterName,
|
|
156
|
+
clusterType,
|
|
157
|
+
replicationSpecs,
|
|
158
|
+
terminationProtectionEnabled,
|
|
159
|
+
...backupConfig,
|
|
160
|
+
...versionConfig,
|
|
161
|
+
};
|
|
162
|
+
const result = await this.apiClient.createCluster({
|
|
163
|
+
params: { path: { groupId: projectId } },
|
|
164
|
+
body,
|
|
165
|
+
});
|
|
166
|
+
return {
|
|
167
|
+
content: [
|
|
168
|
+
{
|
|
169
|
+
type: "text",
|
|
170
|
+
text: `Cluster "${clusterName}" is being created in project "${projectId}" (${instanceSize} ${clusterType} on ${provider}/${region}). ` +
|
|
171
|
+
`Use the atlas-inspect-cluster tool with projectId "${projectId}" and clusterName "${clusterName}" to poll for readiness. ` +
|
|
172
|
+
`The cluster is ready when its state is IDLE, connection strings are unavailable until then.`,
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
structuredContent: {
|
|
176
|
+
clusterId: result.id,
|
|
177
|
+
provider,
|
|
178
|
+
region,
|
|
179
|
+
instanceSize,
|
|
180
|
+
clusterType,
|
|
181
|
+
mongoDBVersion: args.mongoDBVersion,
|
|
182
|
+
backup: args.backup,
|
|
183
|
+
computeAutoScaling: args.computeAutoScaling,
|
|
184
|
+
terminationProtectionEnabled,
|
|
185
|
+
diskSizeGB: args.diskSizeGB,
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
handleError(error, args) {
|
|
190
|
+
if (error instanceof CreateClusterError) {
|
|
191
|
+
return {
|
|
192
|
+
content: [{ type: "text", text: error.message }],
|
|
193
|
+
isError: true,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
return super.handleError(error, args);
|
|
197
|
+
}
|
|
198
|
+
resolveTelemetryMetadata(args, context) {
|
|
199
|
+
const parentMetadata = super.resolveTelemetryMetadata(args, context);
|
|
200
|
+
const sc = context.result.structuredContent;
|
|
201
|
+
return {
|
|
202
|
+
...parentMetadata,
|
|
203
|
+
cluster_id: sc?.clusterId,
|
|
204
|
+
provider: sc?.provider,
|
|
205
|
+
region: sc?.region,
|
|
206
|
+
instance_size: sc?.instanceSize,
|
|
207
|
+
cluster_type: sc?.clusterType,
|
|
208
|
+
backup: sc?.backup,
|
|
209
|
+
compute_auto_scaling: sc !== undefined ? (sc.computeAutoScaling ? "true" : "false") : undefined,
|
|
210
|
+
termination_protection: sc !== undefined ? (sc.terminationProtectionEnabled ? "true" : "false") : undefined,
|
|
211
|
+
disk_size_gb: sc?.diskSizeGB,
|
|
212
|
+
mongodb_version: sc?.mongoDBVersion,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
exports.CreateClusterTool = CreateClusterTool;
|
|
217
|
+
CreateClusterTool.toolName = "atlas-create-cluster";
|
|
218
|
+
CreateClusterTool.operationType = "create";
|
|
219
|
+
//# sourceMappingURL=createCluster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCluster.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/createCluster.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type ToolArgs, type ToolResult, type OperationType } from "../../tool.js";
|
|
2
|
+
import { AtlasToolBase } from "../atlasTool.js";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
export declare const LoadSampleDatasetArgs: {
|
|
5
|
+
projectId: z.ZodString;
|
|
6
|
+
clusterName: z.ZodOptional<z.ZodString>;
|
|
7
|
+
jobId: z.ZodOptional<z.ZodString>;
|
|
8
|
+
};
|
|
9
|
+
declare const LoadSampleDatasetOutputSchema: {
|
|
10
|
+
jobId: z.ZodString;
|
|
11
|
+
clusterName: z.ZodString;
|
|
12
|
+
state: z.ZodEnum<{
|
|
13
|
+
WORKING: "WORKING";
|
|
14
|
+
FAILED: "FAILED";
|
|
15
|
+
COMPLETED: "COMPLETED";
|
|
16
|
+
}>;
|
|
17
|
+
createDate: z.ZodString;
|
|
18
|
+
completeDate: z.ZodOptional<z.ZodString>;
|
|
19
|
+
errorMessage: z.ZodOptional<z.ZodString>;
|
|
20
|
+
};
|
|
21
|
+
export type LoadSampleDatasetOutput = z.infer<z.ZodObject<typeof LoadSampleDatasetOutputSchema>>;
|
|
22
|
+
export declare class LoadSampleDatasetTool extends AtlasToolBase {
|
|
23
|
+
static toolName: string;
|
|
24
|
+
description: string;
|
|
25
|
+
static operationType: OperationType;
|
|
26
|
+
argsShape: {
|
|
27
|
+
projectId: z.ZodString;
|
|
28
|
+
clusterName: z.ZodOptional<z.ZodString>;
|
|
29
|
+
jobId: z.ZodOptional<z.ZodString>;
|
|
30
|
+
};
|
|
31
|
+
outputSchema: {
|
|
32
|
+
jobId: z.ZodString;
|
|
33
|
+
clusterName: z.ZodString;
|
|
34
|
+
state: z.ZodEnum<{
|
|
35
|
+
WORKING: "WORKING";
|
|
36
|
+
FAILED: "FAILED";
|
|
37
|
+
COMPLETED: "COMPLETED";
|
|
38
|
+
}>;
|
|
39
|
+
createDate: z.ZodString;
|
|
40
|
+
completeDate: z.ZodOptional<z.ZodString>;
|
|
41
|
+
errorMessage: z.ZodOptional<z.ZodString>;
|
|
42
|
+
};
|
|
43
|
+
protected execute({ projectId, clusterName, jobId, }: ToolArgs<typeof this.argsShape>): Promise<ToolResult<typeof this.outputSchema>>;
|
|
44
|
+
}
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=loadSampleDataset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadSampleDataset.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/loadSampleDataset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;CAYjC,CAAC;AAEF,QAAA,MAAM,6BAA6B;;;;;;;;;;;CAUlC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAEjG,qBAAa,qBAAsB,SAAQ,aAAa;IACpD,MAAM,CAAC,QAAQ,SAA+B;IACvC,WAAW,SAImF;IACrG,MAAM,CAAC,aAAa,EAAE,aAAa,CAAY;IACxC,SAAS;;;;MAEd;IACc,YAAY;;;;;;;;;;;MAAiC;cAE7C,OAAO,CAAC,EACpB,SAAS,EACT,WAAW,EACX,KAAK,GACR,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;CAsCrF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LoadSampleDatasetTool = exports.LoadSampleDatasetArgs = void 0;
|
|
4
|
+
const atlasTool_js_1 = require("../atlasTool.js");
|
|
5
|
+
const args_js_1 = require("../../args.js");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
exports.LoadSampleDatasetArgs = {
|
|
8
|
+
projectId: args_js_1.AtlasArgs.projectId().describe("Atlas project ID that owns the cluster"),
|
|
9
|
+
clusterName: args_js_1.AtlasArgs.clusterName()
|
|
10
|
+
.optional()
|
|
11
|
+
.describe("Cluster name to load the sample dataset into. Provide this to initiate a new load. Mutually exclusive with jobId."),
|
|
12
|
+
jobId: args_js_1.CommonArgs.objectId("jobId")
|
|
13
|
+
.optional()
|
|
14
|
+
.describe("Job id returned by a previous load request. Provide this to check the status of an in-progress load. Mutually exclusive with clusterName."),
|
|
15
|
+
};
|
|
16
|
+
const LoadSampleDatasetOutputSchema = {
|
|
17
|
+
jobId: zod_1.z.string().describe("Unique identifier for the sample dataset load job"),
|
|
18
|
+
clusterName: zod_1.z.string().describe("Name of the cluster the sample dataset is being loaded into"),
|
|
19
|
+
state: zod_1.z.enum(["WORKING", "FAILED", "COMPLETED"]).describe("Current state of the load job"),
|
|
20
|
+
createDate: zod_1.z.string().describe("ISO 8601 timestamp (UTC) when the load was initiated"),
|
|
21
|
+
completeDate: zod_1.z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("ISO 8601 timestamp (UTC) when the load completed (only set when state is COMPLETED or FAILED)"),
|
|
25
|
+
errorMessage: zod_1.z.string().optional().describe("Failure reason (only set when state is FAILED)"),
|
|
26
|
+
};
|
|
27
|
+
class LoadSampleDatasetTool extends atlasTool_js_1.AtlasToolBase {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.description = "Load a MongoDB sample dataset into an Atlas cluster, or check the status of a previously-initiated load. " +
|
|
31
|
+
"To start a new load, provide `clusterName` — the load runs asynchronously and the response includes a " +
|
|
32
|
+
"`jobId` and initial state. To check progress, call this tool again with `jobId` " +
|
|
33
|
+
"(sample dataset loads typically take 1–5 minutes). State can be WORKING, COMPLETED, or FAILED.";
|
|
34
|
+
this.argsShape = {
|
|
35
|
+
...exports.LoadSampleDatasetArgs,
|
|
36
|
+
};
|
|
37
|
+
this.outputSchema = LoadSampleDatasetOutputSchema;
|
|
38
|
+
}
|
|
39
|
+
async execute({ projectId, clusterName, jobId, }) {
|
|
40
|
+
let status;
|
|
41
|
+
let headerText;
|
|
42
|
+
if (jobId !== undefined && clusterName === undefined) {
|
|
43
|
+
status = await this.apiClient.getSampleDatasetLoad({
|
|
44
|
+
params: { path: { groupId: projectId, sampleDatasetId: jobId } },
|
|
45
|
+
});
|
|
46
|
+
headerText = `Sample dataset load status for cluster "${status.clusterName}" in project ${projectId}.`;
|
|
47
|
+
}
|
|
48
|
+
else if (clusterName !== undefined && jobId === undefined) {
|
|
49
|
+
status = await this.apiClient.requestSampleDatasetLoad({
|
|
50
|
+
params: { path: { groupId: projectId, name: clusterName } },
|
|
51
|
+
});
|
|
52
|
+
headerText = `Sample dataset load requested for cluster "${status.clusterName}" in project ${projectId}.`;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
throw new Error("Provide exactly one of `clusterName` (to initiate a new sample dataset load) or `jobId` (to check the status of a previous load).");
|
|
56
|
+
}
|
|
57
|
+
const structuredContent = {
|
|
58
|
+
jobId: status._id,
|
|
59
|
+
clusterName: status.clusterName,
|
|
60
|
+
state: status.state || "WORKING",
|
|
61
|
+
createDate: status.createDate,
|
|
62
|
+
...(status.completeDate ? { completeDate: status.completeDate } : {}),
|
|
63
|
+
...(status.errorMessage ? { errorMessage: status.errorMessage } : {}),
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
content: [
|
|
67
|
+
{ type: "text", text: headerText },
|
|
68
|
+
{ type: "text", text: JSON.stringify(structuredContent) },
|
|
69
|
+
],
|
|
70
|
+
structuredContent,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.LoadSampleDatasetTool = LoadSampleDatasetTool;
|
|
75
|
+
LoadSampleDatasetTool.toolName = "atlas-load-sample-dataset";
|
|
76
|
+
LoadSampleDatasetTool.operationType = "create";
|
|
77
|
+
//# sourceMappingURL=loadSampleDataset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadSampleDataset.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/create/loadSampleDataset.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspectCluster.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/read/inspectCluster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAuB,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,aAAa;IACjD,MAAM,CAAC,QAAQ,SAA2B;IACnC,WAAW,SAAiD;IACnE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IACtC,SAAS;;;MAEd;cAEc,OAAO,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAM7G,OAAO,CAAC,YAAY;
|
|
1
|
+
{"version":3,"file":"inspectCluster.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/read/inspectCluster.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAuB,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC;AAEF,qBAAa,kBAAmB,SAAQ,aAAa;IACjD,MAAM,CAAC,QAAQ,SAA2B;IACnC,WAAW,SAAiD;IACnE,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IACtC,SAAS;;;MAEd;cAEc,OAAO,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAM7G,OAAO,CAAC,YAAY;CAiBvB"}
|
|
@@ -26,6 +26,9 @@ class InspectClusterTool extends atlasTool_js_1.AtlasToolBase {
|
|
|
26
26
|
name: formattedCluster.name || "Unknown",
|
|
27
27
|
instanceType: formattedCluster.instanceType,
|
|
28
28
|
instanceSize: formattedCluster.instanceSize || "N/A",
|
|
29
|
+
provider: formattedCluster.provider,
|
|
30
|
+
region: formattedCluster.region,
|
|
31
|
+
paused: formattedCluster.paused,
|
|
29
32
|
state: formattedCluster.state || "UNKNOWN",
|
|
30
33
|
mongoDBVersion: formattedCluster.mongoDBVersion || "N/A",
|
|
31
34
|
connectionStrings: formattedCluster.connectionStrings || {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspectCluster.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/read/inspectCluster.ts"],"names":[],"mappings":";;;AACA,2CAAuF;AACvF,kDAAgD;AAEhD,iEAAkE;AAClE,2CAA0C;AAE7B,QAAA,kBAAkB,GAAG;IAC9B,SAAS,EAAE,mBAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7D,WAAW,EAAE,mBAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CACtE,CAAC;AAEF,MAAa,kBAAmB,SAAQ,4BAAa;IAArD;;QAEW,gBAAW,GAAG,6CAA6C,CAAC;QAE5D,cAAS,GAAG;YACf,GAAG,0BAAkB;SACxB,CAAC;
|
|
1
|
+
{"version":3,"file":"inspectCluster.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/read/inspectCluster.ts"],"names":[],"mappings":";;;AACA,2CAAuF;AACvF,kDAAgD;AAEhD,iEAAkE;AAClE,2CAA0C;AAE7B,QAAA,kBAAkB,GAAG;IAC9B,SAAS,EAAE,mBAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7D,WAAW,EAAE,mBAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CACtE,CAAC;AAEF,MAAa,kBAAmB,SAAQ,4BAAa;IAArD;;QAEW,gBAAW,GAAG,6CAA6C,CAAC;QAE5D,cAAS,GAAG;YACf,GAAG,0BAAkB;SACxB,CAAC;IAyBN,CAAC;IAvBa,KAAK,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,WAAW,EAAmC;QAC/E,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAc,EAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAE7E,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAEO,YAAY,CAAC,gBAAyB;QAC1C,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,gBAAgB,CAAC,IAAI,IAAI,SAAS;YACxC,YAAY,EAAE,gBAAgB,CAAC,YAAY;YAC3C,YAAY,EAAE,gBAAgB,CAAC,YAAY,IAAI,KAAK;YACpD,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,KAAK,EAAE,gBAAgB,CAAC,KAAK,IAAI,SAAS;YAC1C,cAAc,EAAE,gBAAgB,CAAC,cAAc,IAAI,KAAK;YACxD,iBAAiB,EAAE,gBAAgB,CAAC,iBAAiB,IAAI,EAAE;SAC9D,CAAC;QAEF,OAAO;YACH,OAAO,EAAE,IAAA,6BAAmB,EAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;SACnF,CAAC;IACN,CAAC;;AA9BL,gDA+BC;AA9BU,2BAAQ,GAAG,uBAAuB,AAA1B,CAA2B;AAEnC,gCAAa,GAAkB,MAAM,AAAxB,CAAyB"}
|
|
@@ -2,6 +2,8 @@ export { ListClustersTool } from "./read/listClusters.js";
|
|
|
2
2
|
export { ListProjectsTool } from "./read/listProjects.js";
|
|
3
3
|
export { InspectClusterTool } from "./read/inspectCluster.js";
|
|
4
4
|
export { CreateFreeClusterTool } from "./create/createFreeCluster.js";
|
|
5
|
+
export { CreateClusterTool } from "./create/createCluster.js";
|
|
6
|
+
export { LoadSampleDatasetTool, type LoadSampleDatasetOutput } from "./create/loadSampleDataset.js";
|
|
5
7
|
export { CreateAccessListTool } from "./create/createAccessList.js";
|
|
6
8
|
export { InspectAccessListTool } from "./read/inspectAccessList.js";
|
|
7
9
|
export { ListDBUsersTool } from "./read/listDBUsers.js";
|
|
@@ -12,6 +14,7 @@ export { ConnectClusterTool, type ConnectClusterOutput } from "./connect/connect
|
|
|
12
14
|
export { ListAlertsTool } from "./read/listAlerts.js";
|
|
13
15
|
export { GetPerformanceAdvisorTool } from "./read/getPerformanceAdvisor.js";
|
|
14
16
|
export { UpgradeClusterTool } from "./update/upgradeCluster.js";
|
|
17
|
+
export { PauseResumeClusterTool } from "./update/pauseResumeCluster.js";
|
|
15
18
|
export { StreamsDiscoverTool } from "./streams/discover.js";
|
|
16
19
|
export { StreamsBuildTool } from "./streams/build.js";
|
|
17
20
|
export { StreamsManageTool } from "./streams/manage.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../src/tools/atlas/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../src/tools/atlas/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,KAAK,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StreamsTeardownTool = exports.StreamsManageTool = exports.StreamsBuildTool = exports.StreamsDiscoverTool = exports.UpgradeClusterTool = exports.GetPerformanceAdvisorTool = exports.ListAlertsTool = exports.ConnectClusterTool = exports.ListOrganizationsTool = exports.CreateProjectTool = exports.CreateDBUserTool = exports.ListDBUsersTool = exports.InspectAccessListTool = exports.CreateAccessListTool = exports.CreateFreeClusterTool = exports.InspectClusterTool = exports.ListProjectsTool = exports.ListClustersTool = void 0;
|
|
3
|
+
exports.StreamsTeardownTool = exports.StreamsManageTool = exports.StreamsBuildTool = exports.StreamsDiscoverTool = exports.PauseResumeClusterTool = exports.UpgradeClusterTool = exports.GetPerformanceAdvisorTool = exports.ListAlertsTool = exports.ConnectClusterTool = exports.ListOrganizationsTool = exports.CreateProjectTool = exports.CreateDBUserTool = exports.ListDBUsersTool = exports.InspectAccessListTool = exports.CreateAccessListTool = exports.LoadSampleDatasetTool = exports.CreateClusterTool = exports.CreateFreeClusterTool = exports.InspectClusterTool = exports.ListProjectsTool = exports.ListClustersTool = void 0;
|
|
4
4
|
var listClusters_js_1 = require("./read/listClusters.js");
|
|
5
5
|
Object.defineProperty(exports, "ListClustersTool", { enumerable: true, get: function () { return listClusters_js_1.ListClustersTool; } });
|
|
6
6
|
var listProjects_js_1 = require("./read/listProjects.js");
|
|
@@ -9,6 +9,10 @@ var inspectCluster_js_1 = require("./read/inspectCluster.js");
|
|
|
9
9
|
Object.defineProperty(exports, "InspectClusterTool", { enumerable: true, get: function () { return inspectCluster_js_1.InspectClusterTool; } });
|
|
10
10
|
var createFreeCluster_js_1 = require("./create/createFreeCluster.js");
|
|
11
11
|
Object.defineProperty(exports, "CreateFreeClusterTool", { enumerable: true, get: function () { return createFreeCluster_js_1.CreateFreeClusterTool; } });
|
|
12
|
+
var createCluster_js_1 = require("./create/createCluster.js");
|
|
13
|
+
Object.defineProperty(exports, "CreateClusterTool", { enumerable: true, get: function () { return createCluster_js_1.CreateClusterTool; } });
|
|
14
|
+
var loadSampleDataset_js_1 = require("./create/loadSampleDataset.js");
|
|
15
|
+
Object.defineProperty(exports, "LoadSampleDatasetTool", { enumerable: true, get: function () { return loadSampleDataset_js_1.LoadSampleDatasetTool; } });
|
|
12
16
|
var createAccessList_js_1 = require("./create/createAccessList.js");
|
|
13
17
|
Object.defineProperty(exports, "CreateAccessListTool", { enumerable: true, get: function () { return createAccessList_js_1.CreateAccessListTool; } });
|
|
14
18
|
var inspectAccessList_js_1 = require("./read/inspectAccessList.js");
|
|
@@ -29,6 +33,8 @@ var getPerformanceAdvisor_js_1 = require("./read/getPerformanceAdvisor.js");
|
|
|
29
33
|
Object.defineProperty(exports, "GetPerformanceAdvisorTool", { enumerable: true, get: function () { return getPerformanceAdvisor_js_1.GetPerformanceAdvisorTool; } });
|
|
30
34
|
var upgradeCluster_js_1 = require("./update/upgradeCluster.js");
|
|
31
35
|
Object.defineProperty(exports, "UpgradeClusterTool", { enumerable: true, get: function () { return upgradeCluster_js_1.UpgradeClusterTool; } });
|
|
36
|
+
var pauseResumeCluster_js_1 = require("./update/pauseResumeCluster.js");
|
|
37
|
+
Object.defineProperty(exports, "PauseResumeClusterTool", { enumerable: true, get: function () { return pauseResumeCluster_js_1.PauseResumeClusterTool; } });
|
|
32
38
|
var discover_js_1 = require("./streams/discover.js");
|
|
33
39
|
Object.defineProperty(exports, "StreamsDiscoverTool", { enumerable: true, get: function () { return discover_js_1.StreamsDiscoverTool; } });
|
|
34
40
|
var build_js_1 = require("./streams/build.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/tools/atlas/tools.ts"],"names":[],"mappings":";;;AAAA,0DAA0D;AAAjD,mHAAA,gBAAgB,OAAA;AACzB,0DAA0D;AAAjD,mHAAA,gBAAgB,OAAA;AACzB,8DAA8D;AAArD,uHAAA,kBAAkB,OAAA;AAC3B,sEAAsE;AAA7D,6HAAA,qBAAqB,OAAA;AAC9B,oEAAoE;AAA3D,2HAAA,oBAAoB,OAAA;AAC7B,oEAAoE;AAA3D,6HAAA,qBAAqB,OAAA;AAC9B,wDAAwD;AAA/C,iHAAA,eAAe,OAAA;AACxB,4DAA4D;AAAnD,mHAAA,gBAAgB,OAAA;AACzB,8DAA8D;AAArD,qHAAA,iBAAiB,OAAA;AAC1B,kDAA2D;AAAlD,oHAAA,qBAAqB,OAAA;AAC9B,iEAA4F;AAAnF,uHAAA,kBAAkB,OAAA;AAC3B,sDAAsD;AAA7C,+GAAA,cAAc,OAAA;AACvB,4EAA4E;AAAnE,qIAAA,yBAAyB,OAAA;AAClC,gEAAgE;AAAvD,uHAAA,kBAAkB,OAAA;AAC3B,qDAA4D;AAAnD,kHAAA,mBAAmB,OAAA;AAC5B,+CAAsD;AAA7C,4GAAA,gBAAgB,OAAA;AACzB,iDAAwD;AAA/C,8GAAA,iBAAiB,OAAA;AAC1B,qDAA4D;AAAnD,kHAAA,mBAAmB,OAAA"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/tools/atlas/tools.ts"],"names":[],"mappings":";;;AAAA,0DAA0D;AAAjD,mHAAA,gBAAgB,OAAA;AACzB,0DAA0D;AAAjD,mHAAA,gBAAgB,OAAA;AACzB,8DAA8D;AAArD,uHAAA,kBAAkB,OAAA;AAC3B,sEAAsE;AAA7D,6HAAA,qBAAqB,OAAA;AAC9B,8DAA8D;AAArD,qHAAA,iBAAiB,OAAA;AAC1B,sEAAoG;AAA3F,6HAAA,qBAAqB,OAAA;AAC9B,oEAAoE;AAA3D,2HAAA,oBAAoB,OAAA;AAC7B,oEAAoE;AAA3D,6HAAA,qBAAqB,OAAA;AAC9B,wDAAwD;AAA/C,iHAAA,eAAe,OAAA;AACxB,4DAA4D;AAAnD,mHAAA,gBAAgB,OAAA;AACzB,8DAA8D;AAArD,qHAAA,iBAAiB,OAAA;AAC1B,kDAA2D;AAAlD,oHAAA,qBAAqB,OAAA;AAC9B,iEAA4F;AAAnF,uHAAA,kBAAkB,OAAA;AAC3B,sDAAsD;AAA7C,+GAAA,cAAc,OAAA;AACvB,4EAA4E;AAAnE,qIAAA,yBAAyB,OAAA;AAClC,gEAAgE;AAAvD,uHAAA,kBAAkB,OAAA;AAC3B,wEAAwE;AAA/D,+HAAA,sBAAsB,OAAA;AAC/B,qDAA4D;AAAnD,kHAAA,mBAAmB,OAAA;AAC5B,+CAAsD;AAA7C,4GAAA,gBAAgB,OAAA;AACzB,iDAAwD;AAA/C,8GAAA,iBAAiB,OAAA;AAC1B,qDAA4D;AAAnD,kHAAA,mBAAmB,OAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { type OperationType, type ToolArgs, type ToolResult } from "../../tool.js";
|
|
3
|
+
import { AtlasToolBase } from "../atlasTool.js";
|
|
4
|
+
import type { PauseResumeClusterMetadata } from "../../../telemetry/types.js";
|
|
5
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
6
|
+
/** @public */
|
|
7
|
+
export declare const ATLAS_PAUSE_RESUME_CLUSTER_README_DESCRIPTION = "Pause or resume a dedicated (M10+) MongoDB Atlas cluster.";
|
|
8
|
+
export declare const PauseResumeClusterArgsShape: {
|
|
9
|
+
projectId: z.ZodString;
|
|
10
|
+
clusterName: z.ZodString;
|
|
11
|
+
action: z.ZodEnum<{
|
|
12
|
+
PAUSE: "PAUSE";
|
|
13
|
+
RESUME: "RESUME";
|
|
14
|
+
}>;
|
|
15
|
+
};
|
|
16
|
+
export declare const PauseResumeClusterOutputSchema: {
|
|
17
|
+
clusterName: z.ZodString;
|
|
18
|
+
action: z.ZodEnum<{
|
|
19
|
+
PAUSE: "PAUSE";
|
|
20
|
+
RESUME: "RESUME";
|
|
21
|
+
}>;
|
|
22
|
+
clusterId: z.ZodOptional<z.ZodString>;
|
|
23
|
+
disconnected: z.ZodBoolean;
|
|
24
|
+
};
|
|
25
|
+
export declare class PauseResumeClusterTool extends AtlasToolBase {
|
|
26
|
+
static toolName: string;
|
|
27
|
+
static operationType: OperationType;
|
|
28
|
+
description: string;
|
|
29
|
+
outputSchema: {
|
|
30
|
+
clusterName: z.ZodString;
|
|
31
|
+
action: z.ZodEnum<{
|
|
32
|
+
PAUSE: "PAUSE";
|
|
33
|
+
RESUME: "RESUME";
|
|
34
|
+
}>;
|
|
35
|
+
clusterId: z.ZodOptional<z.ZodString>;
|
|
36
|
+
disconnected: z.ZodBoolean;
|
|
37
|
+
};
|
|
38
|
+
argsShape: {
|
|
39
|
+
projectId: z.ZodString;
|
|
40
|
+
clusterName: z.ZodString;
|
|
41
|
+
action: z.ZodEnum<{
|
|
42
|
+
PAUSE: "PAUSE";
|
|
43
|
+
RESUME: "RESUME";
|
|
44
|
+
}>;
|
|
45
|
+
};
|
|
46
|
+
protected execute(args: ToolArgs<typeof this.argsShape>): Promise<ToolResult<typeof this.outputSchema>>;
|
|
47
|
+
protected resolveTelemetryMetadata(args: ToolArgs<typeof this.argsShape>, context: {
|
|
48
|
+
result: CallToolResult;
|
|
49
|
+
}): PauseResumeClusterMetadata;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pauseResumeCluster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pauseResumeCluster.d.ts","sourceRoot":"","sources":["../../../../../src/tools/atlas/update/pauseResumeCluster.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,cAAc;AACd,eAAO,MAAM,6CAA6C,8DACK,CAAC;AAIhE,eAAO,MAAM,2BAA2B;;;;;;;CAIvC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;CAK1C,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,aAAa;IACrD,MAAM,CAAC,QAAQ,SAAgC;IAC/C,MAAM,CAAC,aAAa,EAAE,aAAa,CAAY;IAExC,WAAW,SAO0C;IAE5C,YAAY;;;;;;;;MAAkC;IAEvD,SAAS;;;;;;;MAA+B;cAE/B,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;cA0C1F,wBAAwB,CACvC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrC,OAAO,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,GACpC,0BAA0B;CAUhC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PauseResumeClusterTool = exports.PauseResumeClusterOutputSchema = exports.PauseResumeClusterArgsShape = exports.ATLAS_PAUSE_RESUME_CLUSTER_README_DESCRIPTION = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const atlasTool_js_1 = require("../atlasTool.js");
|
|
6
|
+
const args_js_1 = require("../../args.js");
|
|
7
|
+
/** @public */
|
|
8
|
+
exports.ATLAS_PAUSE_RESUME_CLUSTER_README_DESCRIPTION = "Pause or resume a dedicated (M10+) MongoDB Atlas cluster.";
|
|
9
|
+
const actionEnum = zod_1.z.enum(["PAUSE", "RESUME"]);
|
|
10
|
+
exports.PauseResumeClusterArgsShape = {
|
|
11
|
+
projectId: args_js_1.AtlasArgs.projectId().describe("Atlas project ID the cluster belongs to."),
|
|
12
|
+
clusterName: args_js_1.AtlasArgs.clusterName().describe("Name of the cluster to pause or resume."),
|
|
13
|
+
action: actionEnum.describe("Action to perform on the cluster."),
|
|
14
|
+
};
|
|
15
|
+
exports.PauseResumeClusterOutputSchema = {
|
|
16
|
+
clusterName: zod_1.z.string(),
|
|
17
|
+
action: actionEnum,
|
|
18
|
+
clusterId: zod_1.z.string().optional(),
|
|
19
|
+
disconnected: zod_1.z.boolean(),
|
|
20
|
+
};
|
|
21
|
+
class PauseResumeClusterTool extends atlasTool_js_1.AtlasToolBase {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.description = "Pause or resume a dedicated (M10+) MongoDB Atlas cluster (Free and Flex clusters cannot be paused). " +
|
|
25
|
+
"Pause: paused clusters are unavailable for connections and do not incur compute costs. " +
|
|
26
|
+
"If the cluster being paused is the current active connection, it will be automatically disconnected. " +
|
|
27
|
+
"Returns an error if the cluster is already paused or not in a pausable state (must be IDLE). " +
|
|
28
|
+
"Resume: the cluster will not be immediately available after resuming. " +
|
|
29
|
+
"Use the atlas-inspect-cluster tool to poll the cluster state for readiness (state: IDLE). " +
|
|
30
|
+
"If the cluster is not paused, resuming it is a no-op.";
|
|
31
|
+
this.outputSchema = exports.PauseResumeClusterOutputSchema;
|
|
32
|
+
this.argsShape = exports.PauseResumeClusterArgsShape;
|
|
33
|
+
}
|
|
34
|
+
async execute(args) {
|
|
35
|
+
const { projectId, clusterName, action } = args;
|
|
36
|
+
const isPause = action === "PAUSE";
|
|
37
|
+
const result = await this.apiClient.updateCluster({
|
|
38
|
+
params: { path: { groupId: projectId, clusterName } },
|
|
39
|
+
body: { paused: isPause },
|
|
40
|
+
});
|
|
41
|
+
let text;
|
|
42
|
+
let disconnected = false;
|
|
43
|
+
if (isPause) {
|
|
44
|
+
text =
|
|
45
|
+
`Cluster "${clusterName}" in project "${projectId}" is being paused. ` +
|
|
46
|
+
`Paused clusters are unavailable for connections and do not incur compute costs.`;
|
|
47
|
+
// Disconnect if the cluster being paused is the one with the active connection.
|
|
48
|
+
const connection = this.session.connectedAtlasCluster;
|
|
49
|
+
if (connection?.projectId === projectId && connection?.clusterName === clusterName) {
|
|
50
|
+
await this.session.disconnect();
|
|
51
|
+
text += ` The connection to cluster "${clusterName}" is now disconnected.`;
|
|
52
|
+
disconnected = true;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
text =
|
|
57
|
+
`Cluster "${clusterName}" in project "${projectId}" is being resumed. ` +
|
|
58
|
+
`Use the atlas-inspect-cluster tool with projectId "${projectId}" and clusterName "${clusterName}" to poll for readiness. ` +
|
|
59
|
+
`The cluster is ready when its state is IDLE.`;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
content: [{ type: "text", text }],
|
|
63
|
+
structuredContent: {
|
|
64
|
+
clusterName,
|
|
65
|
+
action,
|
|
66
|
+
clusterId: result.id,
|
|
67
|
+
disconnected,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
resolveTelemetryMetadata(args, context) {
|
|
72
|
+
const parentMetadata = super.resolveTelemetryMetadata(args, context);
|
|
73
|
+
const sc = context.result.structuredContent;
|
|
74
|
+
return {
|
|
75
|
+
...parentMetadata,
|
|
76
|
+
cluster_id: sc?.clusterId,
|
|
77
|
+
action: sc?.action,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
exports.PauseResumeClusterTool = PauseResumeClusterTool;
|
|
82
|
+
PauseResumeClusterTool.toolName = "atlas-pause-resume-cluster";
|
|
83
|
+
PauseResumeClusterTool.operationType = "update";
|
|
84
|
+
//# sourceMappingURL=pauseResumeCluster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pauseResumeCluster.js","sourceRoot":"","sources":["../../../../../src/tools/atlas/update/pauseResumeCluster.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,kDAAgD;AAChD,2CAA0C;AAK1C,cAAc;AACD,QAAA,6CAA6C,GACtD,2DAA2D,CAAC;AAEhE,MAAM,UAAU,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElC,QAAA,2BAA2B,GAAG;IACvC,SAAS,EAAE,mBAAS,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACrF,WAAW,EAAE,mBAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACxF,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CACnE,CAAC;AAEW,QAAA,8BAA8B,GAAG;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,OAAC,CAAC,OAAO,EAAE;CAC5B,CAAC;AAEF,MAAa,sBAAuB,SAAQ,4BAAa;IAAzD;;QAIW,gBAAW,GACd,sGAAsG;YACtG,yFAAyF;YACzF,uGAAuG;YACvG,+FAA+F;YAC/F,wEAAwE;YACxE,4FAA4F;YAC5F,uDAAuD,CAAC;QAE5C,iBAAY,GAAG,sCAA8B,CAAC;QAEvD,cAAS,GAAG,mCAA2B,CAAC;IAyDnD,CAAC;IAvDa,KAAK,CAAC,OAAO,CAAC,IAAqC;QACzD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC;QAEnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;YAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE;YACrD,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAA2C;SACrE,CAAC,CAAC;QAEH,IAAI,IAAY,CAAC;QACjB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,IAAI,OAAO,EAAE,CAAC;YACV,IAAI;gBACA,YAAY,WAAW,iBAAiB,SAAS,qBAAqB;oBACtE,iFAAiF,CAAC;YAEtF,gFAAgF;YAChF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;YACtD,IAAI,UAAU,EAAE,SAAS,KAAK,SAAS,IAAI,UAAU,EAAE,WAAW,KAAK,WAAW,EAAE,CAAC;gBACjF,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBAChC,IAAI,IAAI,+BAA+B,WAAW,wBAAwB,CAAC;gBAC3E,YAAY,GAAG,IAAI,CAAC;YACxB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI;gBACA,YAAY,WAAW,iBAAiB,SAAS,sBAAsB;oBACvE,sDAAsD,SAAS,sBAAsB,WAAW,2BAA2B;oBAC3H,8CAA8C,CAAC;QACvD,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACjC,iBAAiB,EAAE;gBACf,WAAW;gBACX,MAAM;gBACN,SAAS,EAAE,MAAM,CAAC,EAAE;gBACpB,YAAY;aACf;SACJ,CAAC;IACN,CAAC;IAEkB,wBAAwB,CACvC,IAAqC,EACrC,OAAmC;QAEnC,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAErE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAuC,CAAC;QAClE,OAAO;YACH,GAAG,cAAc;YACjB,UAAU,EAAE,EAAE,EAAE,SAAS;YACzB,MAAM,EAAE,EAAE,EAAE,MAAM;SACrB,CAAC;IACN,CAAC;;AAvEL,wDAwEC;AAvEU,+BAAQ,GAAG,4BAA4B,AAA/B,CAAgC;AACxC,oCAAa,GAAkB,QAAQ,AAA1B,CAA2B"}
|