@runpod/mcp-server 4.9.0 → 4.10.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/CHANGELOG.md +20 -0
- package/README.md +3 -1
- package/dist/alp.cjs +21 -2
- package/dist/alp.cjs.map +1 -1
- package/dist/alp.d.cts +2 -1
- package/dist/alp.d.ts +2 -1
- package/dist/alp.mjs +3 -1
- package/dist/{chunk-6IETGSON.mjs → chunk-FQJFKWUV.mjs} +32 -1
- package/dist/chunk-FQJFKWUV.mjs.map +1 -0
- package/dist/{chunk-VKLWTK4O.mjs → chunk-JTK6RETN.mjs} +1707 -151
- package/dist/chunk-JTK6RETN.mjs.map +1 -0
- package/dist/{chunk-H3NZYQIB.mjs → chunk-WWXM5EES.mjs} +20 -3
- package/dist/chunk-WWXM5EES.mjs.map +1 -0
- package/dist/hosted.cjs +1757 -142
- package/dist/hosted.cjs.map +1 -1
- package/dist/hosted.mjs +16 -5
- package/dist/hosted.mjs.map +1 -1
- package/dist/http.cjs +1736 -149
- package/dist/http.cjs.map +1 -1
- package/dist/http.mjs +2 -2
- package/dist/specgen/profile.cjs +31 -0
- package/dist/specgen/profile.cjs.map +1 -1
- package/dist/specgen/profile.mjs +1 -1
- package/dist/stdio.cjs +1736 -149
- package/dist/stdio.cjs.map +1 -1
- package/dist/stdio.mjs +1736 -149
- package/dist/stdio.mjs.map +1 -1
- package/package.json +4 -7
- package/dist/chunk-6IETGSON.mjs.map +0 -1
- package/dist/chunk-H3NZYQIB.mjs.map +0 -1
- package/dist/chunk-VKLWTK4O.mjs.map +0 -1
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
directoryIncludes,
|
|
10
10
|
directoryOmittedInputs,
|
|
11
11
|
profileForPath
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FQJFKWUV.mjs";
|
|
13
13
|
|
|
14
14
|
// src/http.ts
|
|
15
15
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
@@ -390,6 +390,104 @@ function coerceScalars(value, schema, defs, depth = 0) {
|
|
|
390
390
|
|
|
391
391
|
// src/specgen/generated/tools.gen.ts
|
|
392
392
|
var generatedTools = [
|
|
393
|
+
{
|
|
394
|
+
name: "add-organization-group-member",
|
|
395
|
+
title: "Add organization group member",
|
|
396
|
+
operationId: "addOrganizationGroupMember",
|
|
397
|
+
description: "Add a member to a group. Adds the organization member to the group. The group and user must belong to the current organization. Adding an existing member is idempotent and returns the same no-content response.",
|
|
398
|
+
method: "PUT",
|
|
399
|
+
path: "/v2/organization/groups/{id}/members/{userId}",
|
|
400
|
+
params: [
|
|
401
|
+
{
|
|
402
|
+
name: "id",
|
|
403
|
+
location: "path"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
name: "userId",
|
|
407
|
+
location: "path"
|
|
408
|
+
}
|
|
409
|
+
],
|
|
410
|
+
hasBody: false,
|
|
411
|
+
annotations: {
|
|
412
|
+
readOnlyHint: false,
|
|
413
|
+
destructiveHint: false,
|
|
414
|
+
idempotentHint: true,
|
|
415
|
+
openWorldHint: true
|
|
416
|
+
},
|
|
417
|
+
inputSchema: {
|
|
418
|
+
type: "object",
|
|
419
|
+
properties: {
|
|
420
|
+
id: {
|
|
421
|
+
type: "string",
|
|
422
|
+
minLength: 1,
|
|
423
|
+
description: "Group ID."
|
|
424
|
+
},
|
|
425
|
+
userId: {
|
|
426
|
+
type: "string",
|
|
427
|
+
minLength: 1,
|
|
428
|
+
description: "Organization member user ID."
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
required: ["id", "userId"]
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
name: "attach-cost-center-resource",
|
|
436
|
+
title: "Attach cost center resource",
|
|
437
|
+
operationId: "attachCostCenterResource",
|
|
438
|
+
description: "Attribute a resource to a cost center. Attributes a resource to a cost center. Repeating the request is a no-op. A resource belongs to at most one cost center; one already attributed elsewhere is rejected with 409 rather than moved.",
|
|
439
|
+
method: "PUT",
|
|
440
|
+
path: "/v2/cost-centers/{id}/{resourceType}/{resourceId}",
|
|
441
|
+
params: [
|
|
442
|
+
{
|
|
443
|
+
name: "id",
|
|
444
|
+
location: "path"
|
|
445
|
+
},
|
|
446
|
+
{
|
|
447
|
+
name: "resourceType",
|
|
448
|
+
location: "path"
|
|
449
|
+
},
|
|
450
|
+
{
|
|
451
|
+
name: "resourceId",
|
|
452
|
+
location: "path"
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
hasBody: false,
|
|
456
|
+
annotations: {
|
|
457
|
+
readOnlyHint: false,
|
|
458
|
+
destructiveHint: false,
|
|
459
|
+
idempotentHint: true,
|
|
460
|
+
openWorldHint: true
|
|
461
|
+
},
|
|
462
|
+
inputSchema: {
|
|
463
|
+
type: "object",
|
|
464
|
+
properties: {
|
|
465
|
+
id: {
|
|
466
|
+
type: "string",
|
|
467
|
+
minLength: 1,
|
|
468
|
+
description: "Cost center identifier."
|
|
469
|
+
},
|
|
470
|
+
resourceType: {
|
|
471
|
+
$ref: "#/$defs/ResourceType",
|
|
472
|
+
description: "Kind of resource.",
|
|
473
|
+
type: "string"
|
|
474
|
+
},
|
|
475
|
+
resourceId: {
|
|
476
|
+
type: "string",
|
|
477
|
+
minLength: 1,
|
|
478
|
+
description: "Resource identifier."
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
required: ["id", "resourceType", "resourceId"],
|
|
482
|
+
$defs: {
|
|
483
|
+
ResourceType: {
|
|
484
|
+
type: "string",
|
|
485
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
486
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
},
|
|
393
491
|
{
|
|
394
492
|
name: "create-cluster",
|
|
395
493
|
title: "Create cluster",
|
|
@@ -488,7 +586,6 @@ var generatedTools = [
|
|
|
488
586
|
},
|
|
489
587
|
network: {
|
|
490
588
|
type: "array",
|
|
491
|
-
maxItems: 1,
|
|
492
589
|
items: {
|
|
493
590
|
$ref: "#/$defs/NetworkMount"
|
|
494
591
|
}
|
|
@@ -510,7 +607,7 @@ var generatedTools = [
|
|
|
510
607
|
gpuCountPerPod: {
|
|
511
608
|
type: "integer",
|
|
512
609
|
minimum: 1,
|
|
513
|
-
description: "Number of GPUs on each pod. Bounded above by the GPU type's per-cloud maximum (GpuType.maxCount);
|
|
610
|
+
description: "Number of GPUs on each pod. Bounded above by the GPU type's per-cloud maximum (GpuType.maxCount); values beyond it are rejected.",
|
|
514
611
|
examples: [8]
|
|
515
612
|
},
|
|
516
613
|
podCount: {
|
|
@@ -523,7 +620,7 @@ var generatedTools = [
|
|
|
523
620
|
}
|
|
524
621
|
},
|
|
525
622
|
ClusterMounts: {
|
|
526
|
-
description: "Storage mounts for a cluster create: `persistent` or `network
|
|
623
|
+
description: "Storage mounts for a cluster create: `persistent` or one `network` volume, not both. Clusters cannot mount global volumes, so `global` is rejected.",
|
|
527
624
|
"x-go-type": "BaseMounts",
|
|
528
625
|
allOf: [
|
|
529
626
|
{
|
|
@@ -543,6 +640,7 @@ var generatedTools = [
|
|
|
543
640
|
},
|
|
544
641
|
network: {
|
|
545
642
|
type: "array",
|
|
643
|
+
maxItems: 1,
|
|
546
644
|
items: {
|
|
547
645
|
type: "object",
|
|
548
646
|
properties: {
|
|
@@ -621,7 +719,7 @@ var generatedTools = [
|
|
|
621
719
|
type: "object",
|
|
622
720
|
required: ["volumeId", "path"],
|
|
623
721
|
additionalProperties: false,
|
|
624
|
-
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods.
|
|
722
|
+
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods. On a pod, the volume can be mounted, moved, or unmounted after creation (see `UpdatePodMounts`).",
|
|
625
723
|
properties: {
|
|
626
724
|
volumeId: {
|
|
627
725
|
type: "string",
|
|
@@ -644,7 +742,7 @@ var generatedTools = [
|
|
|
644
742
|
size: {
|
|
645
743
|
type: "integer",
|
|
646
744
|
minimum: 10,
|
|
647
|
-
description: "Host-local persistent storage in GB.
|
|
745
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
648
746
|
examples: [20]
|
|
649
747
|
},
|
|
650
748
|
path: {
|
|
@@ -657,6 +755,77 @@ var generatedTools = [
|
|
|
657
755
|
}
|
|
658
756
|
}
|
|
659
757
|
},
|
|
758
|
+
{
|
|
759
|
+
name: "create-cost-center",
|
|
760
|
+
title: "Create cost center",
|
|
761
|
+
operationId: "createCostCenter",
|
|
762
|
+
description: "Create a cost center. Creates a cost center \u2014 a named label that groups resource spend so it can be broken out in billing. Pass `resources` to attribute resources at creation time; attaching is all-or-nothing, and a resource that already belongs to another cost center is rejected rather than moved.",
|
|
763
|
+
method: "POST",
|
|
764
|
+
path: "/v2/cost-centers",
|
|
765
|
+
params: [],
|
|
766
|
+
hasBody: true,
|
|
767
|
+
annotations: {
|
|
768
|
+
readOnlyHint: false,
|
|
769
|
+
destructiveHint: false,
|
|
770
|
+
idempotentHint: false,
|
|
771
|
+
openWorldHint: true
|
|
772
|
+
},
|
|
773
|
+
inputSchema: {
|
|
774
|
+
type: "object",
|
|
775
|
+
properties: {
|
|
776
|
+
body: {
|
|
777
|
+
$ref: "#/$defs/CreateCostCenterRequest",
|
|
778
|
+
type: "object"
|
|
779
|
+
}
|
|
780
|
+
},
|
|
781
|
+
required: ["body"],
|
|
782
|
+
$defs: {
|
|
783
|
+
CostCenterResource: {
|
|
784
|
+
type: "object",
|
|
785
|
+
additionalProperties: false,
|
|
786
|
+
required: ["id", "type"],
|
|
787
|
+
properties: {
|
|
788
|
+
id: {
|
|
789
|
+
type: "string",
|
|
790
|
+
minLength: 1,
|
|
791
|
+
examples: ["p9k2m4n6q8"]
|
|
792
|
+
},
|
|
793
|
+
type: {
|
|
794
|
+
$ref: "#/$defs/ResourceType"
|
|
795
|
+
}
|
|
796
|
+
}
|
|
797
|
+
},
|
|
798
|
+
CreateCostCenterRequest: {
|
|
799
|
+
type: "object",
|
|
800
|
+
additionalProperties: false,
|
|
801
|
+
required: ["value"],
|
|
802
|
+
properties: {
|
|
803
|
+
value: {
|
|
804
|
+
type: "string",
|
|
805
|
+
minLength: 1,
|
|
806
|
+
maxLength: 50,
|
|
807
|
+
pattern: "^\\s*\\S",
|
|
808
|
+
description: "Leading and trailing whitespace is trimmed.",
|
|
809
|
+
examples: ["team-ml"]
|
|
810
|
+
},
|
|
811
|
+
resources: {
|
|
812
|
+
type: "array",
|
|
813
|
+
description: "Resources to attribute to the new cost center.",
|
|
814
|
+
maxItems: 100,
|
|
815
|
+
items: {
|
|
816
|
+
$ref: "#/$defs/CostCenterResource"
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
}
|
|
820
|
+
},
|
|
821
|
+
ResourceType: {
|
|
822
|
+
type: "string",
|
|
823
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
824
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
825
|
+
}
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
},
|
|
660
829
|
{
|
|
661
830
|
name: "create-delegation",
|
|
662
831
|
title: "Create ECR delegation",
|
|
@@ -1185,6 +1354,7 @@ var generatedTools = [
|
|
|
1185
1354
|
type: "string",
|
|
1186
1355
|
minLength: 1,
|
|
1187
1356
|
maxLength: 191,
|
|
1357
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
1188
1358
|
description: "Human-readable name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.",
|
|
1189
1359
|
examples: ["training-data"]
|
|
1190
1360
|
}
|
|
@@ -1260,6 +1430,169 @@ var generatedTools = [
|
|
|
1260
1430
|
}
|
|
1261
1431
|
}
|
|
1262
1432
|
},
|
|
1433
|
+
{
|
|
1434
|
+
name: "create-organization-group",
|
|
1435
|
+
title: "Create organization group",
|
|
1436
|
+
operationId: "createOrganizationGroup",
|
|
1437
|
+
description: "Create a group in your current organization",
|
|
1438
|
+
method: "POST",
|
|
1439
|
+
path: "/v2/organization/groups",
|
|
1440
|
+
params: [],
|
|
1441
|
+
hasBody: true,
|
|
1442
|
+
annotations: {
|
|
1443
|
+
readOnlyHint: false,
|
|
1444
|
+
destructiveHint: false,
|
|
1445
|
+
idempotentHint: false,
|
|
1446
|
+
openWorldHint: true
|
|
1447
|
+
},
|
|
1448
|
+
inputSchema: {
|
|
1449
|
+
type: "object",
|
|
1450
|
+
properties: {
|
|
1451
|
+
body: {
|
|
1452
|
+
$ref: "#/$defs/CreateOrganizationGroupRequest",
|
|
1453
|
+
type: "object"
|
|
1454
|
+
}
|
|
1455
|
+
},
|
|
1456
|
+
required: ["body"],
|
|
1457
|
+
$defs: {
|
|
1458
|
+
CreateOrganizationGroupRequest: {
|
|
1459
|
+
type: "object",
|
|
1460
|
+
additionalProperties: false,
|
|
1461
|
+
required: ["name"],
|
|
1462
|
+
properties: {
|
|
1463
|
+
name: {
|
|
1464
|
+
type: "string",
|
|
1465
|
+
minLength: 1,
|
|
1466
|
+
maxLength: 191,
|
|
1467
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
1468
|
+
description: "Group name with at least one non-whitespace character; surrounding whitespace is trimmed.",
|
|
1469
|
+
examples: ["Engineering"]
|
|
1470
|
+
}
|
|
1471
|
+
}
|
|
1472
|
+
}
|
|
1473
|
+
}
|
|
1474
|
+
}
|
|
1475
|
+
},
|
|
1476
|
+
{
|
|
1477
|
+
name: "create-organization-invite",
|
|
1478
|
+
title: "Create organization invite",
|
|
1479
|
+
operationId: "createOrganizationInvite",
|
|
1480
|
+
description: "Invite a user to your organization. Sends an invitation to join the authenticated caller's organization and returns the pending invite; `expiresAt` is when it lapses. The invitee receives an email carrying the acceptance link, which is never returned here. Returns 409 when the address already belongs to a member or to a pending invite, or when the organization has reached its pending-invite limit; 404 when the role is unknown to the organization; and 403 when the caller does not hold every capability the role grants. Inviting requires the organization's invite-management capability, which the built-in admin role holds; other members, and callers outside an organization, receive 403, as does a caller for whom organizations are unavailable.",
|
|
1481
|
+
method: "POST",
|
|
1482
|
+
path: "/v2/organization/invites",
|
|
1483
|
+
params: [],
|
|
1484
|
+
hasBody: true,
|
|
1485
|
+
annotations: {
|
|
1486
|
+
readOnlyHint: false,
|
|
1487
|
+
destructiveHint: false,
|
|
1488
|
+
idempotentHint: false,
|
|
1489
|
+
openWorldHint: true
|
|
1490
|
+
},
|
|
1491
|
+
inputSchema: {
|
|
1492
|
+
type: "object",
|
|
1493
|
+
properties: {
|
|
1494
|
+
body: {
|
|
1495
|
+
$ref: "#/$defs/CreateOrganizationInviteRequest",
|
|
1496
|
+
type: "object"
|
|
1497
|
+
}
|
|
1498
|
+
},
|
|
1499
|
+
required: ["body"],
|
|
1500
|
+
$defs: {
|
|
1501
|
+
CreateOrganizationInviteRequest: {
|
|
1502
|
+
type: "object",
|
|
1503
|
+
additionalProperties: false,
|
|
1504
|
+
required: ["email", "role"],
|
|
1505
|
+
properties: {
|
|
1506
|
+
email: {
|
|
1507
|
+
type: "string",
|
|
1508
|
+
format: "email",
|
|
1509
|
+
minLength: 1,
|
|
1510
|
+
maxLength: 254,
|
|
1511
|
+
description: "Address to invite, stored lowercased. The invitee accepts by signing in with a verified account on this address.",
|
|
1512
|
+
examples: ["new-member@example.com"]
|
|
1513
|
+
},
|
|
1514
|
+
role: {
|
|
1515
|
+
$ref: "#/$defs/OrganizationRoleInput"
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
},
|
|
1519
|
+
OrganizationRoleInput: {
|
|
1520
|
+
type: "object",
|
|
1521
|
+
description: "An organization role to assign, by ID.",
|
|
1522
|
+
additionalProperties: false,
|
|
1523
|
+
required: ["id"],
|
|
1524
|
+
properties: {
|
|
1525
|
+
id: {
|
|
1526
|
+
type: "string",
|
|
1527
|
+
minLength: 1,
|
|
1528
|
+
description: "Role ID, as reported on a member or an invite: `builtin:admin`, `builtin:dev`, `builtin:billing`, `builtin:basic`, or a custom role's own ID.",
|
|
1529
|
+
examples: ["builtin:dev"]
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
},
|
|
1536
|
+
{
|
|
1537
|
+
name: "create-organization-role",
|
|
1538
|
+
title: "Create organization role",
|
|
1539
|
+
operationId: "createOrganizationRole",
|
|
1540
|
+
description: "Create a custom organization role. Creates a custom role in the authenticated caller's organization and returns it. Returns 409 when the organization already has a role with this name or has reached its custom-role limit; 422 when a capability is unknown or the name is reserved; and 403 when the caller does not hold every capability the role grants. Creating roles requires the organization's role-management capability, which the built-in admin role holds; other members, and callers outside an organization, receive 403, as does a caller for whom organizations are unavailable.",
|
|
1541
|
+
method: "POST",
|
|
1542
|
+
path: "/v2/organization/roles",
|
|
1543
|
+
params: [],
|
|
1544
|
+
hasBody: true,
|
|
1545
|
+
annotations: {
|
|
1546
|
+
readOnlyHint: false,
|
|
1547
|
+
destructiveHint: false,
|
|
1548
|
+
idempotentHint: false,
|
|
1549
|
+
openWorldHint: true
|
|
1550
|
+
},
|
|
1551
|
+
inputSchema: {
|
|
1552
|
+
type: "object",
|
|
1553
|
+
properties: {
|
|
1554
|
+
body: {
|
|
1555
|
+
$ref: "#/$defs/CreateOrganizationRoleRequest",
|
|
1556
|
+
type: "object"
|
|
1557
|
+
}
|
|
1558
|
+
},
|
|
1559
|
+
required: ["body"],
|
|
1560
|
+
$defs: {
|
|
1561
|
+
CreateOrganizationRoleRequest: {
|
|
1562
|
+
type: "object",
|
|
1563
|
+
additionalProperties: false,
|
|
1564
|
+
required: ["name", "capabilities"],
|
|
1565
|
+
properties: {
|
|
1566
|
+
name: {
|
|
1567
|
+
$ref: "#/$defs/OrganizationRoleName"
|
|
1568
|
+
},
|
|
1569
|
+
capabilities: {
|
|
1570
|
+
$ref: "#/$defs/OrganizationRoleCapabilitiesInput"
|
|
1571
|
+
}
|
|
1572
|
+
}
|
|
1573
|
+
},
|
|
1574
|
+
OrganizationRoleCapabilitiesInput: {
|
|
1575
|
+
type: "array",
|
|
1576
|
+
description: "What the role grants, as `FAMILY:VERB` capabilities from `get-organization-role-capabilities`. The caller must hold every capability it lists.",
|
|
1577
|
+
minItems: 1,
|
|
1578
|
+
uniqueItems: true,
|
|
1579
|
+
items: {
|
|
1580
|
+
type: "string",
|
|
1581
|
+
pattern: "^[A-Z0-9_]+:[A-Z0-9_]+$"
|
|
1582
|
+
},
|
|
1583
|
+
examples: [["POD:VIEW"]]
|
|
1584
|
+
},
|
|
1585
|
+
OrganizationRoleName: {
|
|
1586
|
+
type: "string",
|
|
1587
|
+
minLength: 1,
|
|
1588
|
+
maxLength: 191,
|
|
1589
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
1590
|
+
description: "Display name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed. It must be unique within the organization and cannot be a built-in role's name.",
|
|
1591
|
+
examples: ["Pod viewer"]
|
|
1592
|
+
}
|
|
1593
|
+
}
|
|
1594
|
+
}
|
|
1595
|
+
},
|
|
1263
1596
|
{
|
|
1264
1597
|
name: "create-pod",
|
|
1265
1598
|
title: "Create Pod",
|
|
@@ -1380,6 +1713,7 @@ var generatedTools = [
|
|
|
1380
1713
|
count: {
|
|
1381
1714
|
type: "integer",
|
|
1382
1715
|
minimum: 1,
|
|
1716
|
+
maximum: 1024,
|
|
1383
1717
|
default: 1,
|
|
1384
1718
|
description: "Number of GPUs",
|
|
1385
1719
|
examples: [1]
|
|
@@ -1394,7 +1728,6 @@ var generatedTools = [
|
|
|
1394
1728
|
},
|
|
1395
1729
|
network: {
|
|
1396
1730
|
type: "array",
|
|
1397
|
-
maxItems: 1,
|
|
1398
1731
|
items: {
|
|
1399
1732
|
$ref: "#/$defs/NetworkMount"
|
|
1400
1733
|
}
|
|
@@ -1458,12 +1791,14 @@ var generatedTools = [
|
|
|
1458
1791
|
minRamPerGpu: {
|
|
1459
1792
|
type: "integer",
|
|
1460
1793
|
minimum: 1,
|
|
1794
|
+
maximum: 65536,
|
|
1461
1795
|
description: "Minimum host system RAM in GB per requested GPU. This is a placement filter, not a resource request. The actual total allocated system RAM may be higher and is returned in gpu.memory.",
|
|
1462
1796
|
examples: [8]
|
|
1463
1797
|
},
|
|
1464
1798
|
minVcpuCountPerGpu: {
|
|
1465
1799
|
type: "integer",
|
|
1466
1800
|
minimum: 1,
|
|
1801
|
+
maximum: 4096,
|
|
1467
1802
|
description: "Minimum host vCPU count per requested GPU. This is a placement filter, not a resource request. The actual total allocated vCPU count may be higher and is returned in gpu.vcpuCount.",
|
|
1468
1803
|
examples: [2]
|
|
1469
1804
|
}
|
|
@@ -1554,7 +1889,7 @@ var generatedTools = [
|
|
|
1554
1889
|
type: "object",
|
|
1555
1890
|
required: ["volumeId"],
|
|
1556
1891
|
additionalProperties: false,
|
|
1557
|
-
description: "Reference to a GlobalVolume. Usage-billed, so it has no size.
|
|
1892
|
+
description: "Reference to a GlobalVolume. Usage-billed, so it has no size. On a pod, the volume can be mounted, moved, or unmounted after creation (see `UpdatePodMounts`).",
|
|
1558
1893
|
properties: {
|
|
1559
1894
|
volumeId: {
|
|
1560
1895
|
type: "string",
|
|
@@ -1563,7 +1898,7 @@ var generatedTools = [
|
|
|
1563
1898
|
},
|
|
1564
1899
|
path: {
|
|
1565
1900
|
type: "string",
|
|
1566
|
-
description: "Mount path inside the container. Optional
|
|
1901
|
+
description: "Mount path inside the container. Optional; a default is chosen for you when omitted.",
|
|
1567
1902
|
examples: ["/data"]
|
|
1568
1903
|
}
|
|
1569
1904
|
}
|
|
@@ -1577,10 +1912,18 @@ var generatedTools = [
|
|
|
1577
1912
|
{
|
|
1578
1913
|
type: "object",
|
|
1579
1914
|
properties: {
|
|
1915
|
+
network: {
|
|
1916
|
+
type: "array",
|
|
1917
|
+
maxItems: 4,
|
|
1918
|
+
description: "Up to 4 network volumes, all in the pod's data center.",
|
|
1919
|
+
items: {
|
|
1920
|
+
$ref: "#/$defs/NetworkMount"
|
|
1921
|
+
}
|
|
1922
|
+
},
|
|
1580
1923
|
global: {
|
|
1581
1924
|
type: "array",
|
|
1582
1925
|
maxItems: 1,
|
|
1583
|
-
description: "At most one global volume, on GPU and CPU pods, with no data center constraint. Combinable with `network` but not with `persistent` (rejected):
|
|
1926
|
+
description: "At most one global volume, on GPU and CPU pods, with no data center constraint. Combinable with `network` but not with `persistent` (rejected): a persistent disk is dropped whenever a volume is attached. Same PATCH rules as `network`.",
|
|
1584
1927
|
items: {
|
|
1585
1928
|
$ref: "#/$defs/GlobalMount"
|
|
1586
1929
|
}
|
|
@@ -1594,7 +1937,7 @@ var generatedTools = [
|
|
|
1594
1937
|
type: "object",
|
|
1595
1938
|
required: ["volumeId", "path"],
|
|
1596
1939
|
additionalProperties: false,
|
|
1597
|
-
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods.
|
|
1940
|
+
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods. On a pod, the volume can be mounted, moved, or unmounted after creation (see `UpdatePodMounts`).",
|
|
1598
1941
|
properties: {
|
|
1599
1942
|
volumeId: {
|
|
1600
1943
|
type: "string",
|
|
@@ -1617,7 +1960,7 @@ var generatedTools = [
|
|
|
1617
1960
|
size: {
|
|
1618
1961
|
type: "integer",
|
|
1619
1962
|
minimum: 10,
|
|
1620
|
-
description: "Host-local persistent storage in GB.
|
|
1963
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
1621
1964
|
examples: [20]
|
|
1622
1965
|
},
|
|
1623
1966
|
path: {
|
|
@@ -1914,7 +2257,7 @@ var generatedTools = [
|
|
|
1914
2257
|
size: {
|
|
1915
2258
|
type: "integer",
|
|
1916
2259
|
minimum: 10,
|
|
1917
|
-
description: "Host-local persistent storage in GB.
|
|
2260
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
1918
2261
|
examples: [20]
|
|
1919
2262
|
},
|
|
1920
2263
|
path: {
|
|
@@ -1975,13 +2318,12 @@ var generatedTools = [
|
|
|
1975
2318
|
}
|
|
1976
2319
|
},
|
|
1977
2320
|
{
|
|
1978
|
-
name: "delete-
|
|
1979
|
-
title: "Delete
|
|
1980
|
-
operationId: "
|
|
1981
|
-
description: "Delete a
|
|
1982
|
-
directoryDescription: "Delete a Serverless endpoint permanently and immediately.",
|
|
2321
|
+
name: "delete-cost-center",
|
|
2322
|
+
title: "Delete cost center",
|
|
2323
|
+
operationId: "deleteCostCenter",
|
|
2324
|
+
description: "Delete a cost center. Deletes a cost center. The delete fails with 409 while any resource is still attributed to the cost center; detach those resources first.",
|
|
1983
2325
|
method: "DELETE",
|
|
1984
|
-
path: "/v2/
|
|
2326
|
+
path: "/v2/cost-centers/{id}",
|
|
1985
2327
|
params: [
|
|
1986
2328
|
{
|
|
1987
2329
|
name: "id",
|
|
@@ -2000,21 +2342,54 @@ var generatedTools = [
|
|
|
2000
2342
|
properties: {
|
|
2001
2343
|
id: {
|
|
2002
2344
|
type: "string",
|
|
2003
|
-
|
|
2345
|
+
minLength: 1,
|
|
2346
|
+
description: "Cost center identifier."
|
|
2004
2347
|
}
|
|
2005
2348
|
},
|
|
2006
2349
|
required: ["id"]
|
|
2007
2350
|
}
|
|
2008
2351
|
},
|
|
2009
2352
|
{
|
|
2010
|
-
name: "delete-
|
|
2011
|
-
title: "Delete
|
|
2012
|
-
operationId: "
|
|
2013
|
-
description: "Delete a
|
|
2014
|
-
|
|
2015
|
-
|
|
2016
|
-
|
|
2017
|
-
|
|
2353
|
+
name: "delete-endpoint",
|
|
2354
|
+
title: "Delete endpoint",
|
|
2355
|
+
operationId: "deleteEndpoint",
|
|
2356
|
+
description: "Delete a serverless endpoint permanently and immediately. Verify the id belongs to the intended endpoint (get-endpoint) before deleting; delete only endpoints your own tool calls created in this conversation, or the one the user asked you to delete by id \u2014 a name found by listing is not attribution.",
|
|
2357
|
+
directoryDescription: "Delete a Serverless endpoint permanently and immediately.",
|
|
2358
|
+
method: "DELETE",
|
|
2359
|
+
path: "/v2/serverless/{id}",
|
|
2360
|
+
params: [
|
|
2361
|
+
{
|
|
2362
|
+
name: "id",
|
|
2363
|
+
location: "path"
|
|
2364
|
+
}
|
|
2365
|
+
],
|
|
2366
|
+
hasBody: false,
|
|
2367
|
+
annotations: {
|
|
2368
|
+
readOnlyHint: false,
|
|
2369
|
+
destructiveHint: true,
|
|
2370
|
+
idempotentHint: true,
|
|
2371
|
+
openWorldHint: true
|
|
2372
|
+
},
|
|
2373
|
+
inputSchema: {
|
|
2374
|
+
type: "object",
|
|
2375
|
+
properties: {
|
|
2376
|
+
id: {
|
|
2377
|
+
type: "string",
|
|
2378
|
+
description: "Serverless endpoint identifier"
|
|
2379
|
+
}
|
|
2380
|
+
},
|
|
2381
|
+
required: ["id"]
|
|
2382
|
+
}
|
|
2383
|
+
},
|
|
2384
|
+
{
|
|
2385
|
+
name: "delete-global-volume",
|
|
2386
|
+
title: "Delete global volume",
|
|
2387
|
+
operationId: "deleteGlobalVolume",
|
|
2388
|
+
description: "Delete a global volume. Permanently deletes a global volume and its stored data. Fails with `409` while the volume is still mounted: terminate every pod that mounts it (stopped pods count) and detach it from every serverless endpoint first. Nothing is detached or terminated on your behalf.",
|
|
2389
|
+
method: "DELETE",
|
|
2390
|
+
path: "/v2/global-volumes/{id}",
|
|
2391
|
+
params: [
|
|
2392
|
+
{
|
|
2018
2393
|
name: "id",
|
|
2019
2394
|
location: "path"
|
|
2020
2395
|
}
|
|
@@ -2068,6 +2443,131 @@ var generatedTools = [
|
|
|
2068
2443
|
required: ["id"]
|
|
2069
2444
|
}
|
|
2070
2445
|
},
|
|
2446
|
+
{
|
|
2447
|
+
name: "delete-organization-group",
|
|
2448
|
+
title: "Delete organization group",
|
|
2449
|
+
operationId: "deleteOrganizationGroup",
|
|
2450
|
+
description: "Delete a group in your current organization. Permanently deletes the group and its group memberships. Organization members are not removed. Returns 404 when the group does not exist in your current organization, including when it has already been deleted.",
|
|
2451
|
+
method: "DELETE",
|
|
2452
|
+
path: "/v2/organization/groups/{id}",
|
|
2453
|
+
params: [
|
|
2454
|
+
{
|
|
2455
|
+
name: "id",
|
|
2456
|
+
location: "path"
|
|
2457
|
+
}
|
|
2458
|
+
],
|
|
2459
|
+
hasBody: false,
|
|
2460
|
+
annotations: {
|
|
2461
|
+
readOnlyHint: false,
|
|
2462
|
+
destructiveHint: true,
|
|
2463
|
+
idempotentHint: true,
|
|
2464
|
+
openWorldHint: true
|
|
2465
|
+
},
|
|
2466
|
+
inputSchema: {
|
|
2467
|
+
type: "object",
|
|
2468
|
+
properties: {
|
|
2469
|
+
id: {
|
|
2470
|
+
type: "string",
|
|
2471
|
+
minLength: 1,
|
|
2472
|
+
description: "Group ID."
|
|
2473
|
+
}
|
|
2474
|
+
},
|
|
2475
|
+
required: ["id"]
|
|
2476
|
+
}
|
|
2477
|
+
},
|
|
2478
|
+
{
|
|
2479
|
+
name: "delete-organization-invite",
|
|
2480
|
+
title: "Delete organization invite",
|
|
2481
|
+
operationId: "deleteOrganizationInvite",
|
|
2482
|
+
description: "Cancel an organization invite. Cancels one invitation to the authenticated caller's organization; the invitee can no longer accept it. Returns 404 when the ID is unknown to the caller's organization: never issued, already accepted, already cancelled, or issued by another organization. An expired invite can still be cancelled. Cancelling invites requires the organization's invite-management capability, which the built-in admin role holds; other members, and callers outside an organization, receive 403, as does a caller for whom organizations are unavailable.",
|
|
2483
|
+
method: "DELETE",
|
|
2484
|
+
path: "/v2/organization/invites/{id}",
|
|
2485
|
+
params: [
|
|
2486
|
+
{
|
|
2487
|
+
name: "id",
|
|
2488
|
+
location: "path"
|
|
2489
|
+
}
|
|
2490
|
+
],
|
|
2491
|
+
hasBody: false,
|
|
2492
|
+
annotations: {
|
|
2493
|
+
readOnlyHint: false,
|
|
2494
|
+
destructiveHint: true,
|
|
2495
|
+
idempotentHint: true,
|
|
2496
|
+
openWorldHint: true
|
|
2497
|
+
},
|
|
2498
|
+
inputSchema: {
|
|
2499
|
+
type: "object",
|
|
2500
|
+
properties: {
|
|
2501
|
+
id: {
|
|
2502
|
+
type: "string",
|
|
2503
|
+
description: "Invite identifier"
|
|
2504
|
+
}
|
|
2505
|
+
},
|
|
2506
|
+
required: ["id"]
|
|
2507
|
+
}
|
|
2508
|
+
},
|
|
2509
|
+
{
|
|
2510
|
+
name: "delete-organization-role",
|
|
2511
|
+
title: "Delete organization role",
|
|
2512
|
+
operationId: "deleteOrganizationRole",
|
|
2513
|
+
description: "Delete a custom organization role. Deletes a custom role from the authenticated caller's organization. Returns 409 while a member or a pending invite holds the role: reassign those members and cancel those invites first, since deleting never changes anyone's role. Expired invites do not block deletion. Returns 400 for a built-in role, which cannot be deleted; 404 when the ID is unknown, names another organization's role, or was already deleted. Deleting roles requires the organization's role-management capability, which the built-in admin role holds; other members, and callers outside an organization, receive 403, as does a caller for whom organizations are unavailable.",
|
|
2514
|
+
method: "DELETE",
|
|
2515
|
+
path: "/v2/organization/roles/{id}",
|
|
2516
|
+
params: [
|
|
2517
|
+
{
|
|
2518
|
+
name: "id",
|
|
2519
|
+
location: "path"
|
|
2520
|
+
}
|
|
2521
|
+
],
|
|
2522
|
+
hasBody: false,
|
|
2523
|
+
annotations: {
|
|
2524
|
+
readOnlyHint: false,
|
|
2525
|
+
destructiveHint: true,
|
|
2526
|
+
idempotentHint: true,
|
|
2527
|
+
openWorldHint: true
|
|
2528
|
+
},
|
|
2529
|
+
inputSchema: {
|
|
2530
|
+
type: "object",
|
|
2531
|
+
properties: {
|
|
2532
|
+
id: {
|
|
2533
|
+
type: "string",
|
|
2534
|
+
description: "Role identifier"
|
|
2535
|
+
}
|
|
2536
|
+
},
|
|
2537
|
+
required: ["id"]
|
|
2538
|
+
}
|
|
2539
|
+
},
|
|
2540
|
+
{
|
|
2541
|
+
name: "delete-organization-user",
|
|
2542
|
+
title: "Delete organization user",
|
|
2543
|
+
operationId: "deleteOrganizationUser",
|
|
2544
|
+
description: "Remove an organization member. Removes one member from the authenticated caller's organization by user ID. Their group memberships end and the API keys attributed to them within the organization are revoked; the resources they created stay with the organization. Removing another member requires the organization's member-removal capability, which the built-in admin role holds; any member can remove themselves. The organization keeps at least one member with the built-in admin role, so removing the last one returns 409. A user who is not a member, including one from another organization, returns 404. A member without the capability removing someone else, a caller outside an organization, and a caller for whom organizations are unavailable receive 403.",
|
|
2545
|
+
method: "DELETE",
|
|
2546
|
+
path: "/v2/organization/users/{id}",
|
|
2547
|
+
params: [
|
|
2548
|
+
{
|
|
2549
|
+
name: "id",
|
|
2550
|
+
location: "path"
|
|
2551
|
+
}
|
|
2552
|
+
],
|
|
2553
|
+
hasBody: false,
|
|
2554
|
+
annotations: {
|
|
2555
|
+
readOnlyHint: false,
|
|
2556
|
+
destructiveHint: true,
|
|
2557
|
+
idempotentHint: true,
|
|
2558
|
+
openWorldHint: true
|
|
2559
|
+
},
|
|
2560
|
+
inputSchema: {
|
|
2561
|
+
type: "object",
|
|
2562
|
+
properties: {
|
|
2563
|
+
id: {
|
|
2564
|
+
type: "string",
|
|
2565
|
+
description: "User identifier"
|
|
2566
|
+
}
|
|
2567
|
+
},
|
|
2568
|
+
required: ["id"]
|
|
2569
|
+
}
|
|
2570
|
+
},
|
|
2071
2571
|
{
|
|
2072
2572
|
name: "delete-pod",
|
|
2073
2573
|
title: "Delete Pod",
|
|
@@ -2193,6 +2693,63 @@ var generatedTools = [
|
|
|
2193
2693
|
required: ["id"]
|
|
2194
2694
|
}
|
|
2195
2695
|
},
|
|
2696
|
+
{
|
|
2697
|
+
name: "detach-cost-center-resource",
|
|
2698
|
+
title: "Detach cost center resource",
|
|
2699
|
+
operationId: "detachCostCenterResource",
|
|
2700
|
+
description: "Remove a resource from a cost center. Removes a resource's attribution to a cost center. The resource itself is untouched. Returns 404 when the cost center does not exist or the resource is not attributed to it, so repeating a DELETE that succeeded returns 404.",
|
|
2701
|
+
method: "DELETE",
|
|
2702
|
+
path: "/v2/cost-centers/{id}/{resourceType}/{resourceId}",
|
|
2703
|
+
params: [
|
|
2704
|
+
{
|
|
2705
|
+
name: "id",
|
|
2706
|
+
location: "path"
|
|
2707
|
+
},
|
|
2708
|
+
{
|
|
2709
|
+
name: "resourceType",
|
|
2710
|
+
location: "path"
|
|
2711
|
+
},
|
|
2712
|
+
{
|
|
2713
|
+
name: "resourceId",
|
|
2714
|
+
location: "path"
|
|
2715
|
+
}
|
|
2716
|
+
],
|
|
2717
|
+
hasBody: false,
|
|
2718
|
+
annotations: {
|
|
2719
|
+
readOnlyHint: false,
|
|
2720
|
+
destructiveHint: true,
|
|
2721
|
+
idempotentHint: true,
|
|
2722
|
+
openWorldHint: true
|
|
2723
|
+
},
|
|
2724
|
+
inputSchema: {
|
|
2725
|
+
type: "object",
|
|
2726
|
+
properties: {
|
|
2727
|
+
id: {
|
|
2728
|
+
type: "string",
|
|
2729
|
+
minLength: 1,
|
|
2730
|
+
description: "Cost center identifier."
|
|
2731
|
+
},
|
|
2732
|
+
resourceType: {
|
|
2733
|
+
$ref: "#/$defs/ResourceType",
|
|
2734
|
+
description: "Kind of resource.",
|
|
2735
|
+
type: "string"
|
|
2736
|
+
},
|
|
2737
|
+
resourceId: {
|
|
2738
|
+
type: "string",
|
|
2739
|
+
minLength: 1,
|
|
2740
|
+
description: "Resource identifier."
|
|
2741
|
+
}
|
|
2742
|
+
},
|
|
2743
|
+
required: ["id", "resourceType", "resourceId"],
|
|
2744
|
+
$defs: {
|
|
2745
|
+
ResourceType: {
|
|
2746
|
+
type: "string",
|
|
2747
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
2748
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
2749
|
+
}
|
|
2750
|
+
}
|
|
2751
|
+
}
|
|
2752
|
+
},
|
|
2196
2753
|
{
|
|
2197
2754
|
name: "get-cluster",
|
|
2198
2755
|
title: "Get cluster",
|
|
@@ -2224,6 +2781,38 @@ var generatedTools = [
|
|
|
2224
2781
|
required: ["id"]
|
|
2225
2782
|
}
|
|
2226
2783
|
},
|
|
2784
|
+
{
|
|
2785
|
+
name: "get-cost-center",
|
|
2786
|
+
title: "Get cost center",
|
|
2787
|
+
operationId: "getCostCenter",
|
|
2788
|
+
description: "Get a cost center. Returns one cost center. Its attributed resources are listed by `GET /v2/cost-centers/{id}/resources`. Returns 404 when the cost center does not exist or is not the caller's.",
|
|
2789
|
+
method: "GET",
|
|
2790
|
+
path: "/v2/cost-centers/{id}",
|
|
2791
|
+
params: [
|
|
2792
|
+
{
|
|
2793
|
+
name: "id",
|
|
2794
|
+
location: "path"
|
|
2795
|
+
}
|
|
2796
|
+
],
|
|
2797
|
+
hasBody: false,
|
|
2798
|
+
annotations: {
|
|
2799
|
+
readOnlyHint: true,
|
|
2800
|
+
destructiveHint: false,
|
|
2801
|
+
idempotentHint: true,
|
|
2802
|
+
openWorldHint: true
|
|
2803
|
+
},
|
|
2804
|
+
inputSchema: {
|
|
2805
|
+
type: "object",
|
|
2806
|
+
properties: {
|
|
2807
|
+
id: {
|
|
2808
|
+
type: "string",
|
|
2809
|
+
minLength: 1,
|
|
2810
|
+
description: "Cost center identifier."
|
|
2811
|
+
}
|
|
2812
|
+
},
|
|
2813
|
+
required: ["id"]
|
|
2814
|
+
}
|
|
2815
|
+
},
|
|
2227
2816
|
{
|
|
2228
2817
|
name: "get-cpu-type",
|
|
2229
2818
|
title: "Get CPU type",
|
|
@@ -2376,27 +2965,252 @@ var generatedTools = [
|
|
|
2376
2965
|
properties: {
|
|
2377
2966
|
id: {
|
|
2378
2967
|
type: "string",
|
|
2379
|
-
description: "Serverless endpoint identifier"
|
|
2968
|
+
description: "Serverless endpoint identifier"
|
|
2969
|
+
}
|
|
2970
|
+
},
|
|
2971
|
+
required: ["id"]
|
|
2972
|
+
}
|
|
2973
|
+
},
|
|
2974
|
+
{
|
|
2975
|
+
name: "get-endpoint-build",
|
|
2976
|
+
title: "Get endpoint build",
|
|
2977
|
+
operationId: "getEndpointBuild",
|
|
2978
|
+
description: "Get a serverless endpoint build. Returns one of the endpoint's GitHub builds by id, regardless of age \u2014 no need to page through `GET /v2/serverless/{id}/builds` to reach it.",
|
|
2979
|
+
method: "GET",
|
|
2980
|
+
path: "/v2/serverless/{id}/builds/{buildId}",
|
|
2981
|
+
params: [
|
|
2982
|
+
{
|
|
2983
|
+
name: "id",
|
|
2984
|
+
location: "path"
|
|
2985
|
+
},
|
|
2986
|
+
{
|
|
2987
|
+
name: "buildId",
|
|
2988
|
+
location: "path"
|
|
2989
|
+
}
|
|
2990
|
+
],
|
|
2991
|
+
hasBody: false,
|
|
2992
|
+
annotations: {
|
|
2993
|
+
readOnlyHint: true,
|
|
2994
|
+
destructiveHint: false,
|
|
2995
|
+
idempotentHint: true,
|
|
2996
|
+
openWorldHint: true
|
|
2997
|
+
},
|
|
2998
|
+
inputSchema: {
|
|
2999
|
+
type: "object",
|
|
3000
|
+
properties: {
|
|
3001
|
+
id: {
|
|
3002
|
+
type: "string",
|
|
3003
|
+
description: "Serverless endpoint identifier"
|
|
3004
|
+
},
|
|
3005
|
+
buildId: {
|
|
3006
|
+
type: "string",
|
|
3007
|
+
description: "GitHub build identifier (from `list-endpoint-builds` or a release's `buildId`)"
|
|
3008
|
+
}
|
|
3009
|
+
},
|
|
3010
|
+
required: ["id", "buildId"]
|
|
3011
|
+
}
|
|
3012
|
+
},
|
|
3013
|
+
{
|
|
3014
|
+
name: "get-endpoint-cold-start-metrics",
|
|
3015
|
+
title: "Get endpoint cold start metrics",
|
|
3016
|
+
operationId: "getEndpointColdStartMetrics",
|
|
3017
|
+
description: "Get serverless endpoint cold start metrics. Returns the cold start series shown on the endpoint's Metrics tab in the console. **Window.** `startTime` is inclusive and `endTime` is exclusive. Both are optional: `endTime` defaults to now and `startTime` to 24 hours before `endTime`, rounded down to the start of an `interval` bucket. An `endTime` in the future is treated as now. Metrics are kept for 90 days, so `startTime` must be within the last 90 days. **Interval.** Each record covers one `interval`-sized bucket, aligned to UTC. **Paging.** Records are oldest first, at most `limit` (default 1000) per page. Follow `pagination.nextCursor` while `pagination.hasNextPage` is true. The cursor keeps the first page's window, so `startTime`, `endTime`, and `interval` can be left out on later pages; if sent, they must match the first page or the cursor is rejected with 422. **Sparse series.** Buckets with no activity are omitted, not zero-filled, so `records` can be shorter than the number of buckets in the window, or empty. **Units.** `durationMs` is how long each cold start took, in milliseconds.",
|
|
3018
|
+
method: "GET",
|
|
3019
|
+
path: "/v2/serverless/{id}/metrics/cold-starts",
|
|
3020
|
+
params: [
|
|
3021
|
+
{
|
|
3022
|
+
name: "id",
|
|
3023
|
+
location: "path"
|
|
3024
|
+
},
|
|
3025
|
+
{
|
|
3026
|
+
name: "startTime",
|
|
3027
|
+
location: "query"
|
|
3028
|
+
},
|
|
3029
|
+
{
|
|
3030
|
+
name: "endTime",
|
|
3031
|
+
location: "query"
|
|
3032
|
+
},
|
|
3033
|
+
{
|
|
3034
|
+
name: "interval",
|
|
3035
|
+
location: "query"
|
|
3036
|
+
},
|
|
3037
|
+
{
|
|
3038
|
+
name: "cursor",
|
|
3039
|
+
location: "query"
|
|
3040
|
+
},
|
|
3041
|
+
{
|
|
3042
|
+
name: "limit",
|
|
3043
|
+
location: "query"
|
|
3044
|
+
}
|
|
3045
|
+
],
|
|
3046
|
+
hasBody: false,
|
|
3047
|
+
annotations: {
|
|
3048
|
+
readOnlyHint: true,
|
|
3049
|
+
destructiveHint: false,
|
|
3050
|
+
idempotentHint: true,
|
|
3051
|
+
openWorldHint: true
|
|
3052
|
+
},
|
|
3053
|
+
inputSchema: {
|
|
3054
|
+
type: "object",
|
|
3055
|
+
properties: {
|
|
3056
|
+
id: {
|
|
3057
|
+
type: "string",
|
|
3058
|
+
description: "Serverless endpoint identifier"
|
|
3059
|
+
},
|
|
3060
|
+
startTime: {
|
|
3061
|
+
type: "string",
|
|
3062
|
+
format: "date-time",
|
|
3063
|
+
description: "Start of the window (RFC 3339), inclusive. Defaults to 24 hours before endTime, rounded down to the start of an interval bucket. Must be within the last 90 days."
|
|
3064
|
+
},
|
|
3065
|
+
endTime: {
|
|
3066
|
+
type: "string",
|
|
3067
|
+
format: "date-time",
|
|
3068
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
3069
|
+
},
|
|
3070
|
+
interval: {
|
|
3071
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
3072
|
+
description: "Bucket size. Defaults to 1h.",
|
|
3073
|
+
type: "string"
|
|
3074
|
+
},
|
|
3075
|
+
cursor: {
|
|
3076
|
+
type: "string",
|
|
3077
|
+
minLength: 1,
|
|
3078
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
3079
|
+
},
|
|
3080
|
+
limit: {
|
|
3081
|
+
type: "integer",
|
|
3082
|
+
minimum: 1,
|
|
3083
|
+
maximum: 1e3,
|
|
3084
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3085
|
+
}
|
|
3086
|
+
},
|
|
3087
|
+
required: ["id"],
|
|
3088
|
+
$defs: {
|
|
3089
|
+
EndpointMetricsInterval: {
|
|
3090
|
+
type: "string",
|
|
3091
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
3092
|
+
default: "1h",
|
|
3093
|
+
description: "Bucket size for endpoint metrics."
|
|
3094
|
+
}
|
|
3095
|
+
}
|
|
3096
|
+
}
|
|
3097
|
+
},
|
|
3098
|
+
{
|
|
3099
|
+
name: "get-endpoint-request-metrics",
|
|
3100
|
+
title: "Get endpoint request metrics",
|
|
3101
|
+
operationId: "getEndpointRequestMetrics",
|
|
3102
|
+
description: "Get serverless endpoint request metrics. Returns the request series shown on the endpoint's Metrics tab in the console. **Window.** `startTime` is inclusive and `endTime` is exclusive. Both are optional: `endTime` defaults to now and `startTime` to 24 hours before `endTime`, rounded down to the start of an `interval` bucket. An `endTime` in the future is treated as now. Metrics are kept for 90 days, so `startTime` must be within the last 90 days. **Interval.** Each record covers one `interval`-sized bucket, aligned to UTC. **Paging.** Records are oldest first, at most `limit` (default 1000) per page. Follow `pagination.nextCursor` while `pagination.hasNextPage` is true. The cursor keeps the first page's window, so `startTime`, `endTime`, and `interval` can be left out on later pages; if sent, they must match the first page or the cursor is rejected with 422. **Sparse series.** Buckets with no activity are omitted, not zero-filled, so `records` can be shorter than the number of buckets in the window, or empty. **Units.** Durations are milliseconds. `executionTimeMs` is the time a worker spent running a request; `delayTimeMs` is the time a request waited in the queue before a worker picked it up.",
|
|
3103
|
+
method: "GET",
|
|
3104
|
+
path: "/v2/serverless/{id}/metrics/requests",
|
|
3105
|
+
params: [
|
|
3106
|
+
{
|
|
3107
|
+
name: "id",
|
|
3108
|
+
location: "path"
|
|
3109
|
+
},
|
|
3110
|
+
{
|
|
3111
|
+
name: "startTime",
|
|
3112
|
+
location: "query"
|
|
3113
|
+
},
|
|
3114
|
+
{
|
|
3115
|
+
name: "endTime",
|
|
3116
|
+
location: "query"
|
|
3117
|
+
},
|
|
3118
|
+
{
|
|
3119
|
+
name: "interval",
|
|
3120
|
+
location: "query"
|
|
3121
|
+
},
|
|
3122
|
+
{
|
|
3123
|
+
name: "cursor",
|
|
3124
|
+
location: "query"
|
|
3125
|
+
},
|
|
3126
|
+
{
|
|
3127
|
+
name: "limit",
|
|
3128
|
+
location: "query"
|
|
3129
|
+
}
|
|
3130
|
+
],
|
|
3131
|
+
hasBody: false,
|
|
3132
|
+
annotations: {
|
|
3133
|
+
readOnlyHint: true,
|
|
3134
|
+
destructiveHint: false,
|
|
3135
|
+
idempotentHint: true,
|
|
3136
|
+
openWorldHint: true
|
|
3137
|
+
},
|
|
3138
|
+
inputSchema: {
|
|
3139
|
+
type: "object",
|
|
3140
|
+
properties: {
|
|
3141
|
+
id: {
|
|
3142
|
+
type: "string",
|
|
3143
|
+
description: "Serverless endpoint identifier"
|
|
3144
|
+
},
|
|
3145
|
+
startTime: {
|
|
3146
|
+
type: "string",
|
|
3147
|
+
format: "date-time",
|
|
3148
|
+
description: "Start of the window (RFC 3339), inclusive. Defaults to 24 hours before endTime, rounded down to the start of an interval bucket. Must be within the last 90 days."
|
|
3149
|
+
},
|
|
3150
|
+
endTime: {
|
|
3151
|
+
type: "string",
|
|
3152
|
+
format: "date-time",
|
|
3153
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
3154
|
+
},
|
|
3155
|
+
interval: {
|
|
3156
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
3157
|
+
description: "Bucket size. Defaults to 1h.",
|
|
3158
|
+
type: "string"
|
|
3159
|
+
},
|
|
3160
|
+
cursor: {
|
|
3161
|
+
type: "string",
|
|
3162
|
+
minLength: 1,
|
|
3163
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
3164
|
+
},
|
|
3165
|
+
limit: {
|
|
3166
|
+
type: "integer",
|
|
3167
|
+
minimum: 1,
|
|
3168
|
+
maximum: 1e3,
|
|
3169
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3170
|
+
}
|
|
3171
|
+
},
|
|
3172
|
+
required: ["id"],
|
|
3173
|
+
$defs: {
|
|
3174
|
+
EndpointMetricsInterval: {
|
|
3175
|
+
type: "string",
|
|
3176
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
3177
|
+
default: "1h",
|
|
3178
|
+
description: "Bucket size for endpoint metrics."
|
|
2380
3179
|
}
|
|
2381
|
-
}
|
|
2382
|
-
required: ["id"]
|
|
3180
|
+
}
|
|
2383
3181
|
}
|
|
2384
3182
|
},
|
|
2385
3183
|
{
|
|
2386
|
-
name: "get-endpoint-
|
|
2387
|
-
title: "Get endpoint
|
|
2388
|
-
operationId: "
|
|
2389
|
-
description: "Get
|
|
3184
|
+
name: "get-endpoint-worker-metrics",
|
|
3185
|
+
title: "Get endpoint worker metrics",
|
|
3186
|
+
operationId: "getEndpointWorkerMetrics",
|
|
3187
|
+
description: "Get serverless endpoint worker metrics. Returns the worker state series shown on the endpoint's Metrics tab in the console. For the current worker list, use `GET /v2/serverless/{id}/workers`. **Window.** `startTime` is inclusive and `endTime` is exclusive. Both are optional: `endTime` defaults to now and `startTime` to 24 hours before `endTime`, rounded down to the start of an `interval` bucket. An `endTime` in the future is treated as now. Metrics are kept for 90 days, so `startTime` must be within the last 90 days. **Interval.** Each record covers one `interval`-sized bucket, aligned to UTC. **Paging.** Records are oldest first, at most `limit` (default 1000) per page. Follow `pagination.nextCursor` while `pagination.hasNextPage` is true. The cursor keeps the first page's window, so `startTime`, `endTime`, and `interval` can be left out on later pages; if sent, they must match the first page or the cursor is rejected with 422. **Sparse series.** Buckets with no activity are omitted, not zero-filled, so `records` can be shorter than the number of buckets in the window, or empty. **Snapshots.** Each record holds the last worker-count snapshot in its bucket, as point-in-time counts.",
|
|
2390
3188
|
method: "GET",
|
|
2391
|
-
path: "/v2/serverless/{id}/
|
|
3189
|
+
path: "/v2/serverless/{id}/metrics/workers",
|
|
2392
3190
|
params: [
|
|
2393
3191
|
{
|
|
2394
3192
|
name: "id",
|
|
2395
3193
|
location: "path"
|
|
2396
3194
|
},
|
|
2397
3195
|
{
|
|
2398
|
-
name: "
|
|
2399
|
-
location: "
|
|
3196
|
+
name: "startTime",
|
|
3197
|
+
location: "query"
|
|
3198
|
+
},
|
|
3199
|
+
{
|
|
3200
|
+
name: "endTime",
|
|
3201
|
+
location: "query"
|
|
3202
|
+
},
|
|
3203
|
+
{
|
|
3204
|
+
name: "interval",
|
|
3205
|
+
location: "query"
|
|
3206
|
+
},
|
|
3207
|
+
{
|
|
3208
|
+
name: "cursor",
|
|
3209
|
+
location: "query"
|
|
3210
|
+
},
|
|
3211
|
+
{
|
|
3212
|
+
name: "limit",
|
|
3213
|
+
location: "query"
|
|
2400
3214
|
}
|
|
2401
3215
|
],
|
|
2402
3216
|
hasBody: false,
|
|
@@ -2413,12 +3227,42 @@ var generatedTools = [
|
|
|
2413
3227
|
type: "string",
|
|
2414
3228
|
description: "Serverless endpoint identifier"
|
|
2415
3229
|
},
|
|
2416
|
-
|
|
3230
|
+
startTime: {
|
|
2417
3231
|
type: "string",
|
|
2418
|
-
|
|
3232
|
+
format: "date-time",
|
|
3233
|
+
description: "Start of the window (RFC 3339), inclusive. Defaults to 24 hours before endTime, rounded down to the start of an interval bucket. Must be within the last 90 days."
|
|
3234
|
+
},
|
|
3235
|
+
endTime: {
|
|
3236
|
+
type: "string",
|
|
3237
|
+
format: "date-time",
|
|
3238
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
3239
|
+
},
|
|
3240
|
+
interval: {
|
|
3241
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
3242
|
+
description: "Bucket size. Defaults to 1h.",
|
|
3243
|
+
type: "string"
|
|
3244
|
+
},
|
|
3245
|
+
cursor: {
|
|
3246
|
+
type: "string",
|
|
3247
|
+
minLength: 1,
|
|
3248
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
3249
|
+
},
|
|
3250
|
+
limit: {
|
|
3251
|
+
type: "integer",
|
|
3252
|
+
minimum: 1,
|
|
3253
|
+
maximum: 1e3,
|
|
3254
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
2419
3255
|
}
|
|
2420
3256
|
},
|
|
2421
|
-
required: ["id",
|
|
3257
|
+
required: ["id"],
|
|
3258
|
+
$defs: {
|
|
3259
|
+
EndpointMetricsInterval: {
|
|
3260
|
+
type: "string",
|
|
3261
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
3262
|
+
default: "1h",
|
|
3263
|
+
description: "Bucket size for endpoint metrics."
|
|
3264
|
+
}
|
|
3265
|
+
}
|
|
2422
3266
|
}
|
|
2423
3267
|
},
|
|
2424
3268
|
{
|
|
@@ -2533,7 +3377,7 @@ var generatedTools = [
|
|
|
2533
3377
|
},
|
|
2534
3378
|
cloud: {
|
|
2535
3379
|
$ref: "#/$defs/GpuCloudFilter",
|
|
2536
|
-
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY.
|
|
3380
|
+
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Default when omitted: SECURE.",
|
|
2537
3381
|
type: "string"
|
|
2538
3382
|
},
|
|
2539
3383
|
countryCodes: {
|
|
@@ -2629,6 +3473,146 @@ var generatedTools = [
|
|
|
2629
3473
|
properties: {}
|
|
2630
3474
|
}
|
|
2631
3475
|
},
|
|
3476
|
+
{
|
|
3477
|
+
name: "get-organization-group",
|
|
3478
|
+
title: "Get organization group",
|
|
3479
|
+
operationId: "getOrganizationGroup",
|
|
3480
|
+
description: "Get a group in your current organization. Returns the group without its members. Returns 404 when the ID is unknown or belongs to another organization, or when the caller does not belong to an organization.",
|
|
3481
|
+
method: "GET",
|
|
3482
|
+
path: "/v2/organization/groups/{id}",
|
|
3483
|
+
params: [
|
|
3484
|
+
{
|
|
3485
|
+
name: "id",
|
|
3486
|
+
location: "path"
|
|
3487
|
+
}
|
|
3488
|
+
],
|
|
3489
|
+
hasBody: false,
|
|
3490
|
+
annotations: {
|
|
3491
|
+
readOnlyHint: true,
|
|
3492
|
+
destructiveHint: false,
|
|
3493
|
+
idempotentHint: true,
|
|
3494
|
+
openWorldHint: true
|
|
3495
|
+
},
|
|
3496
|
+
inputSchema: {
|
|
3497
|
+
type: "object",
|
|
3498
|
+
properties: {
|
|
3499
|
+
id: {
|
|
3500
|
+
type: "string",
|
|
3501
|
+
minLength: 1,
|
|
3502
|
+
description: "Group ID."
|
|
3503
|
+
}
|
|
3504
|
+
},
|
|
3505
|
+
required: ["id"]
|
|
3506
|
+
}
|
|
3507
|
+
},
|
|
3508
|
+
{
|
|
3509
|
+
name: "get-organization-invite",
|
|
3510
|
+
title: "Get organization invite",
|
|
3511
|
+
operationId: "getOrganizationInvite",
|
|
3512
|
+
description: "Get a pending organization invite. Returns one pending invitation to the authenticated caller's organization. Only unexpired invites are pending: an invite that has expired, been accepted or been revoked returns 404, as does an ID from another organization. Reading invites requires the organization's invite-management capability, which the built-in admin role holds; other members receive 403. Returns 404 when the caller does not belong to an organization, or 403 when organizations are unavailable to the caller.",
|
|
3513
|
+
method: "GET",
|
|
3514
|
+
path: "/v2/organization/invites/{id}",
|
|
3515
|
+
params: [
|
|
3516
|
+
{
|
|
3517
|
+
name: "id",
|
|
3518
|
+
location: "path"
|
|
3519
|
+
}
|
|
3520
|
+
],
|
|
3521
|
+
hasBody: false,
|
|
3522
|
+
annotations: {
|
|
3523
|
+
readOnlyHint: true,
|
|
3524
|
+
destructiveHint: false,
|
|
3525
|
+
idempotentHint: true,
|
|
3526
|
+
openWorldHint: true
|
|
3527
|
+
},
|
|
3528
|
+
inputSchema: {
|
|
3529
|
+
type: "object",
|
|
3530
|
+
properties: {
|
|
3531
|
+
id: {
|
|
3532
|
+
type: "string",
|
|
3533
|
+
description: "Invite identifier"
|
|
3534
|
+
}
|
|
3535
|
+
},
|
|
3536
|
+
required: ["id"]
|
|
3537
|
+
}
|
|
3538
|
+
},
|
|
3539
|
+
{
|
|
3540
|
+
name: "get-organization-role",
|
|
3541
|
+
title: "Get organization role",
|
|
3542
|
+
operationId: "getOrganizationRole",
|
|
3543
|
+
description: "Get an organization role. Returns one role a member or invite of the authenticated caller's organization can hold: a built-in role, or one of the organization's custom roles. Returns 404 when the ID is unknown or names another organization's custom role, or when the caller does not belong to an organization; 403 when the caller may not view the organization's roles or organizations are unavailable to the caller.",
|
|
3544
|
+
method: "GET",
|
|
3545
|
+
path: "/v2/organization/roles/{id}",
|
|
3546
|
+
params: [
|
|
3547
|
+
{
|
|
3548
|
+
name: "id",
|
|
3549
|
+
location: "path"
|
|
3550
|
+
}
|
|
3551
|
+
],
|
|
3552
|
+
hasBody: false,
|
|
3553
|
+
annotations: {
|
|
3554
|
+
readOnlyHint: true,
|
|
3555
|
+
destructiveHint: false,
|
|
3556
|
+
idempotentHint: true,
|
|
3557
|
+
openWorldHint: true
|
|
3558
|
+
},
|
|
3559
|
+
inputSchema: {
|
|
3560
|
+
type: "object",
|
|
3561
|
+
properties: {
|
|
3562
|
+
id: {
|
|
3563
|
+
type: "string",
|
|
3564
|
+
description: "Role identifier"
|
|
3565
|
+
}
|
|
3566
|
+
},
|
|
3567
|
+
required: ["id"]
|
|
3568
|
+
}
|
|
3569
|
+
},
|
|
3570
|
+
{
|
|
3571
|
+
name: "get-organization-role-capabilities",
|
|
3572
|
+
title: "Get organization role capabilities",
|
|
3573
|
+
operationId: "getOrganizationRoleCapabilities",
|
|
3574
|
+
description: "List grantable role capabilities. Returns the capabilities a custom role can grant, grouped by family: each capability is a family and one of its verbs, written `FAMILY:VERB`. This is the set role creation accepts, not filtered to the caller's own access; saving a role also requires the caller to hold every capability it grants. `family` and `verb` narrow the result and apply together; with neither, the whole catalog is returned. Reading the catalog requires organization membership; other callers receive 403.",
|
|
3575
|
+
method: "GET",
|
|
3576
|
+
path: "/v2/organization/roles/capabilities",
|
|
3577
|
+
params: [
|
|
3578
|
+
{
|
|
3579
|
+
name: "family",
|
|
3580
|
+
location: "query",
|
|
3581
|
+
explode: false
|
|
3582
|
+
},
|
|
3583
|
+
{
|
|
3584
|
+
name: "verb",
|
|
3585
|
+
location: "query",
|
|
3586
|
+
explode: false
|
|
3587
|
+
}
|
|
3588
|
+
],
|
|
3589
|
+
hasBody: false,
|
|
3590
|
+
annotations: {
|
|
3591
|
+
readOnlyHint: true,
|
|
3592
|
+
destructiveHint: false,
|
|
3593
|
+
idempotentHint: true,
|
|
3594
|
+
openWorldHint: true
|
|
3595
|
+
},
|
|
3596
|
+
inputSchema: {
|
|
3597
|
+
type: "object",
|
|
3598
|
+
properties: {
|
|
3599
|
+
family: {
|
|
3600
|
+
type: "array",
|
|
3601
|
+
items: {
|
|
3602
|
+
type: "string"
|
|
3603
|
+
},
|
|
3604
|
+
description: "Only return these capability families, matched exactly. Comma-separated; a family matching any listed value is returned. An empty value is ignored."
|
|
3605
|
+
},
|
|
3606
|
+
verb: {
|
|
3607
|
+
type: "array",
|
|
3608
|
+
items: {
|
|
3609
|
+
type: "string"
|
|
3610
|
+
},
|
|
3611
|
+
description: "Only return these verbs, matched exactly. Comma-separated. Each family lists only the requested verbs it has, and a family with none of them is left out. An empty value is ignored."
|
|
3612
|
+
}
|
|
3613
|
+
}
|
|
3614
|
+
}
|
|
3615
|
+
},
|
|
2632
3616
|
{
|
|
2633
3617
|
name: "get-organization-user",
|
|
2634
3618
|
title: "Get organization user",
|
|
@@ -3008,46 +3992,126 @@ var generatedTools = [
|
|
|
3008
3992
|
},
|
|
3009
3993
|
endTime: {
|
|
3010
3994
|
type: "string",
|
|
3011
|
-
format: "date-time",
|
|
3012
|
-
description: "End of the billing period (RFC 3339), exclusive. Defaults to now. Snapped up to the end of the bucketSize bucket it lands in (unless already on a boundary) so the window aligns with the returned records."
|
|
3013
|
-
},
|
|
3014
|
-
bucketSize: {
|
|
3015
|
-
$ref: "#/$defs/BillingBucketSize",
|
|
3016
|
-
description: "Length of each billing time bucket. Defaults to day.",
|
|
3017
|
-
type: "string"
|
|
3995
|
+
format: "date-time",
|
|
3996
|
+
description: "End of the billing period (RFC 3339), exclusive. Defaults to now. Snapped up to the end of the bucketSize bucket it lands in (unless already on a boundary) so the window aligns with the returned records."
|
|
3997
|
+
},
|
|
3998
|
+
bucketSize: {
|
|
3999
|
+
$ref: "#/$defs/BillingBucketSize",
|
|
4000
|
+
description: "Length of each billing time bucket. Defaults to day.",
|
|
4001
|
+
type: "string"
|
|
4002
|
+
},
|
|
4003
|
+
lastN: {
|
|
4004
|
+
type: "integer",
|
|
4005
|
+
minimum: 1,
|
|
4006
|
+
description: 'Return the last N buckets of bucketSize, ending with the current (in-progress) bucket \u2014 e.g. lastN=100 with bucketSize=day is "last 100 days".'
|
|
4007
|
+
},
|
|
4008
|
+
clusterId: {
|
|
4009
|
+
type: "string",
|
|
4010
|
+
description: "Filter to a specific cluster."
|
|
4011
|
+
}
|
|
4012
|
+
},
|
|
4013
|
+
$defs: {
|
|
4014
|
+
BillingBucketSize: {
|
|
4015
|
+
type: "string",
|
|
4016
|
+
enum: ["hour", "day", "week", "month", "year"],
|
|
4017
|
+
default: "day",
|
|
4018
|
+
description: "Length of each billing time bucket.",
|
|
4019
|
+
examples: ["day"]
|
|
4020
|
+
}
|
|
4021
|
+
}
|
|
4022
|
+
}
|
|
4023
|
+
},
|
|
4024
|
+
{
|
|
4025
|
+
name: "list-cluster-pods",
|
|
4026
|
+
title: "List cluster Pods",
|
|
4027
|
+
operationId: "listClusterPods",
|
|
4028
|
+
description: "List a cluster's pods. Returns the full member pods of a cluster. The cluster summary (`GET /v2/clusters/{id}`) carries only aggregate pod counts; this endpoint returns each member as a complete Pod object.",
|
|
4029
|
+
method: "GET",
|
|
4030
|
+
path: "/v2/clusters/{id}/pods",
|
|
4031
|
+
params: [
|
|
4032
|
+
{
|
|
4033
|
+
name: "id",
|
|
4034
|
+
location: "path"
|
|
4035
|
+
}
|
|
4036
|
+
],
|
|
4037
|
+
hasBody: false,
|
|
4038
|
+
annotations: {
|
|
4039
|
+
readOnlyHint: true,
|
|
4040
|
+
destructiveHint: false,
|
|
4041
|
+
idempotentHint: true,
|
|
4042
|
+
openWorldHint: true
|
|
4043
|
+
},
|
|
4044
|
+
inputSchema: {
|
|
4045
|
+
type: "object",
|
|
4046
|
+
properties: {
|
|
4047
|
+
id: {
|
|
4048
|
+
type: "string",
|
|
4049
|
+
description: "Cluster identifier"
|
|
4050
|
+
}
|
|
4051
|
+
},
|
|
4052
|
+
required: ["id"]
|
|
4053
|
+
}
|
|
4054
|
+
},
|
|
4055
|
+
{
|
|
4056
|
+
name: "list-clusters",
|
|
4057
|
+
title: "List clusters",
|
|
4058
|
+
operationId: "listClusters",
|
|
4059
|
+
description: "List clusters. Returns clusters owned by the authenticated user, cursor-paginated newest-first; an omitted `limit` defaults to 1000. Follow `pagination.nextCursor` until `hasNextPage` is false.",
|
|
4060
|
+
method: "GET",
|
|
4061
|
+
path: "/v2/clusters",
|
|
4062
|
+
params: [
|
|
4063
|
+
{
|
|
4064
|
+
name: "cursor",
|
|
4065
|
+
location: "query"
|
|
4066
|
+
},
|
|
4067
|
+
{
|
|
4068
|
+
name: "limit",
|
|
4069
|
+
location: "query"
|
|
4070
|
+
}
|
|
4071
|
+
],
|
|
4072
|
+
hasBody: false,
|
|
4073
|
+
annotations: {
|
|
4074
|
+
readOnlyHint: true,
|
|
4075
|
+
destructiveHint: false,
|
|
4076
|
+
idempotentHint: true,
|
|
4077
|
+
openWorldHint: true
|
|
4078
|
+
},
|
|
4079
|
+
inputSchema: {
|
|
4080
|
+
type: "object",
|
|
4081
|
+
properties: {
|
|
4082
|
+
cursor: {
|
|
4083
|
+
type: "string",
|
|
4084
|
+
minLength: 1,
|
|
4085
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
3018
4086
|
},
|
|
3019
|
-
|
|
4087
|
+
limit: {
|
|
3020
4088
|
type: "integer",
|
|
3021
4089
|
minimum: 1,
|
|
3022
|
-
|
|
3023
|
-
|
|
3024
|
-
clusterId: {
|
|
3025
|
-
type: "string",
|
|
3026
|
-
description: "Filter to a specific cluster."
|
|
3027
|
-
}
|
|
3028
|
-
},
|
|
3029
|
-
$defs: {
|
|
3030
|
-
BillingBucketSize: {
|
|
3031
|
-
type: "string",
|
|
3032
|
-
enum: ["hour", "day", "week", "month", "year"],
|
|
3033
|
-
default: "day",
|
|
3034
|
-
description: "Length of each billing time bucket.",
|
|
3035
|
-
examples: ["day"]
|
|
4090
|
+
maximum: 1e3,
|
|
4091
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3036
4092
|
}
|
|
3037
4093
|
}
|
|
3038
4094
|
}
|
|
3039
4095
|
},
|
|
3040
4096
|
{
|
|
3041
|
-
name: "list-
|
|
3042
|
-
title: "List
|
|
3043
|
-
operationId: "
|
|
3044
|
-
description: "List a
|
|
4097
|
+
name: "list-cost-center-resources",
|
|
4098
|
+
title: "List cost center resources",
|
|
4099
|
+
operationId: "listCostCenterResources",
|
|
4100
|
+
description: "List a cost center's resources. Returns the resources attributed to one cost center, cursor-paginated; an omitted `limit` defaults to 1000. Each entry is the `{type}/{id}` pair `DELETE /v2/cost-centers/{id}/{resourceType}/{resourceId}` takes. A cost center with nothing attributed returns an empty list; one that does not exist or is not the caller's returns 404.",
|
|
3045
4101
|
method: "GET",
|
|
3046
|
-
path: "/v2/
|
|
4102
|
+
path: "/v2/cost-centers/{id}/resources",
|
|
3047
4103
|
params: [
|
|
3048
4104
|
{
|
|
3049
4105
|
name: "id",
|
|
3050
4106
|
location: "path"
|
|
4107
|
+
},
|
|
4108
|
+
{
|
|
4109
|
+
name: "cursor",
|
|
4110
|
+
location: "query"
|
|
4111
|
+
},
|
|
4112
|
+
{
|
|
4113
|
+
name: "limit",
|
|
4114
|
+
location: "query"
|
|
3051
4115
|
}
|
|
3052
4116
|
],
|
|
3053
4117
|
hasBody: false,
|
|
@@ -3062,20 +4126,36 @@ var generatedTools = [
|
|
|
3062
4126
|
properties: {
|
|
3063
4127
|
id: {
|
|
3064
4128
|
type: "string",
|
|
3065
|
-
|
|
4129
|
+
minLength: 1,
|
|
4130
|
+
description: "Cost center identifier."
|
|
4131
|
+
},
|
|
4132
|
+
cursor: {
|
|
4133
|
+
type: "string",
|
|
4134
|
+
minLength: 1,
|
|
4135
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
4136
|
+
},
|
|
4137
|
+
limit: {
|
|
4138
|
+
type: "integer",
|
|
4139
|
+
minimum: 1,
|
|
4140
|
+
maximum: 1e3,
|
|
4141
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3066
4142
|
}
|
|
3067
4143
|
},
|
|
3068
4144
|
required: ["id"]
|
|
3069
4145
|
}
|
|
3070
4146
|
},
|
|
3071
4147
|
{
|
|
3072
|
-
name: "list-
|
|
3073
|
-
title: "List
|
|
3074
|
-
operationId: "
|
|
3075
|
-
description: "List
|
|
4148
|
+
name: "list-cost-centers",
|
|
4149
|
+
title: "List cost centers",
|
|
4150
|
+
operationId: "listCostCenters",
|
|
4151
|
+
description: "List cost centers. Returns the caller's cost centers, cursor-paginated newest-first; an omitted `limit` defaults to 1000. Follow `pagination.nextCursor` until `hasNextPage` is false.",
|
|
3076
4152
|
method: "GET",
|
|
3077
|
-
path: "/v2/
|
|
4153
|
+
path: "/v2/cost-centers",
|
|
3078
4154
|
params: [
|
|
4155
|
+
{
|
|
4156
|
+
name: "search",
|
|
4157
|
+
location: "query"
|
|
4158
|
+
},
|
|
3079
4159
|
{
|
|
3080
4160
|
name: "cursor",
|
|
3081
4161
|
location: "query"
|
|
@@ -3095,6 +4175,11 @@ var generatedTools = [
|
|
|
3095
4175
|
inputSchema: {
|
|
3096
4176
|
type: "object",
|
|
3097
4177
|
properties: {
|
|
4178
|
+
search: {
|
|
4179
|
+
type: "string",
|
|
4180
|
+
minLength: 1,
|
|
4181
|
+
description: "Case-insensitive substring match against `value`."
|
|
4182
|
+
},
|
|
3098
4183
|
cursor: {
|
|
3099
4184
|
type: "string",
|
|
3100
4185
|
minLength: 1,
|
|
@@ -3639,7 +4724,7 @@ var generatedTools = [
|
|
|
3639
4724
|
},
|
|
3640
4725
|
cloud: {
|
|
3641
4726
|
$ref: "#/$defs/GpuCloudFilter",
|
|
3642
|
-
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY.
|
|
4727
|
+
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Default when omitted: SECURE.",
|
|
3643
4728
|
type: "string"
|
|
3644
4729
|
},
|
|
3645
4730
|
countryCodes: {
|
|
@@ -3799,6 +4884,146 @@ var generatedTools = [
|
|
|
3799
4884
|
}
|
|
3800
4885
|
}
|
|
3801
4886
|
},
|
|
4887
|
+
{
|
|
4888
|
+
name: "list-organization-group-members",
|
|
4889
|
+
title: "List organization group members",
|
|
4890
|
+
operationId: "listOrganizationGroupMembers",
|
|
4891
|
+
description: "List members of a group. Members are ordered newest first by membership creation time, with a unique upstream tie-breaker. Returns 404 when the group does not exist in the current organization, or when the caller does not belong to an organization.",
|
|
4892
|
+
method: "GET",
|
|
4893
|
+
path: "/v2/organization/groups/{id}/members",
|
|
4894
|
+
params: [
|
|
4895
|
+
{
|
|
4896
|
+
name: "id",
|
|
4897
|
+
location: "path"
|
|
4898
|
+
},
|
|
4899
|
+
{
|
|
4900
|
+
name: "cursor",
|
|
4901
|
+
location: "query"
|
|
4902
|
+
},
|
|
4903
|
+
{
|
|
4904
|
+
name: "limit",
|
|
4905
|
+
location: "query"
|
|
4906
|
+
}
|
|
4907
|
+
],
|
|
4908
|
+
hasBody: false,
|
|
4909
|
+
annotations: {
|
|
4910
|
+
readOnlyHint: true,
|
|
4911
|
+
destructiveHint: false,
|
|
4912
|
+
idempotentHint: true,
|
|
4913
|
+
openWorldHint: true
|
|
4914
|
+
},
|
|
4915
|
+
inputSchema: {
|
|
4916
|
+
type: "object",
|
|
4917
|
+
properties: {
|
|
4918
|
+
id: {
|
|
4919
|
+
type: "string",
|
|
4920
|
+
minLength: 1,
|
|
4921
|
+
description: "Group ID."
|
|
4922
|
+
},
|
|
4923
|
+
cursor: {
|
|
4924
|
+
type: "string",
|
|
4925
|
+
minLength: 1,
|
|
4926
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
4927
|
+
},
|
|
4928
|
+
limit: {
|
|
4929
|
+
type: "integer",
|
|
4930
|
+
minimum: 1,
|
|
4931
|
+
maximum: 100,
|
|
4932
|
+
description: "Page size, 1\u2013100. Defaults to 100 when omitted."
|
|
4933
|
+
}
|
|
4934
|
+
},
|
|
4935
|
+
required: ["id"]
|
|
4936
|
+
}
|
|
4937
|
+
},
|
|
4938
|
+
{
|
|
4939
|
+
name: "list-organization-groups",
|
|
4940
|
+
title: "List organization groups",
|
|
4941
|
+
operationId: "listOrganizationGroups",
|
|
4942
|
+
description: "List groups in your current organization. Returns groups without their members or roles, ordered by creation time descending and then ID descending for deterministic pagination.",
|
|
4943
|
+
method: "GET",
|
|
4944
|
+
path: "/v2/organization/groups",
|
|
4945
|
+
params: [
|
|
4946
|
+
{
|
|
4947
|
+
name: "name",
|
|
4948
|
+
location: "query"
|
|
4949
|
+
},
|
|
4950
|
+
{
|
|
4951
|
+
name: "cursor",
|
|
4952
|
+
location: "query"
|
|
4953
|
+
},
|
|
4954
|
+
{
|
|
4955
|
+
name: "limit",
|
|
4956
|
+
location: "query"
|
|
4957
|
+
}
|
|
4958
|
+
],
|
|
4959
|
+
hasBody: false,
|
|
4960
|
+
annotations: {
|
|
4961
|
+
readOnlyHint: true,
|
|
4962
|
+
destructiveHint: false,
|
|
4963
|
+
idempotentHint: true,
|
|
4964
|
+
openWorldHint: true
|
|
4965
|
+
},
|
|
4966
|
+
inputSchema: {
|
|
4967
|
+
type: "object",
|
|
4968
|
+
properties: {
|
|
4969
|
+
name: {
|
|
4970
|
+
type: "string",
|
|
4971
|
+
description: "Optional case-insensitive substring of the group name. An empty value applies no filter."
|
|
4972
|
+
},
|
|
4973
|
+
cursor: {
|
|
4974
|
+
type: "string",
|
|
4975
|
+
minLength: 1,
|
|
4976
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
4977
|
+
},
|
|
4978
|
+
limit: {
|
|
4979
|
+
type: "integer",
|
|
4980
|
+
minimum: 1,
|
|
4981
|
+
maximum: 100,
|
|
4982
|
+
description: "Page size, 1\u2013100. Defaults to 100 when omitted."
|
|
4983
|
+
}
|
|
4984
|
+
}
|
|
4985
|
+
}
|
|
4986
|
+
},
|
|
4987
|
+
{
|
|
4988
|
+
name: "list-organization-invites",
|
|
4989
|
+
title: "List organization invites",
|
|
4990
|
+
operationId: "listOrganizationInvites",
|
|
4991
|
+
description: "List pending organization invites. Returns the pending invitations to the authenticated caller's organization, newest first. Only unexpired invites are pending: an invite leaves the list once it is accepted, revoked or expired. The list is complete and takes no pagination parameters, because an organization's pending invites are capped. Reading invites requires the organization's invite-management capability, which the built-in admin role holds; other members receive 403. Returns 404 when the caller does not belong to an organization, or 403 when organizations are unavailable to the caller.",
|
|
4992
|
+
method: "GET",
|
|
4993
|
+
path: "/v2/organization/invites",
|
|
4994
|
+
params: [],
|
|
4995
|
+
hasBody: false,
|
|
4996
|
+
annotations: {
|
|
4997
|
+
readOnlyHint: true,
|
|
4998
|
+
destructiveHint: false,
|
|
4999
|
+
idempotentHint: true,
|
|
5000
|
+
openWorldHint: true
|
|
5001
|
+
},
|
|
5002
|
+
inputSchema: {
|
|
5003
|
+
type: "object",
|
|
5004
|
+
properties: {}
|
|
5005
|
+
}
|
|
5006
|
+
},
|
|
5007
|
+
{
|
|
5008
|
+
name: "list-organization-roles",
|
|
5009
|
+
title: "List organization roles",
|
|
5010
|
+
operationId: "listOrganizationRoles",
|
|
5011
|
+
description: "List organization roles. Returns every role a member or invite of the authenticated caller's organization can hold: Runpod's built-in roles and the organization's custom roles, oldest first. The list is complete and takes no pagination parameters, because an organization's custom roles are capped. Returns 404 when the caller does not belong to an organization, or 403 when organizations are unavailable to the caller.",
|
|
5012
|
+
method: "GET",
|
|
5013
|
+
path: "/v2/organization/roles",
|
|
5014
|
+
params: [],
|
|
5015
|
+
hasBody: false,
|
|
5016
|
+
annotations: {
|
|
5017
|
+
readOnlyHint: true,
|
|
5018
|
+
destructiveHint: false,
|
|
5019
|
+
idempotentHint: true,
|
|
5020
|
+
openWorldHint: true
|
|
5021
|
+
},
|
|
5022
|
+
inputSchema: {
|
|
5023
|
+
type: "object",
|
|
5024
|
+
properties: {}
|
|
5025
|
+
}
|
|
5026
|
+
},
|
|
3802
5027
|
{
|
|
3803
5028
|
name: "list-organization-users",
|
|
3804
5029
|
title: "List organization users",
|
|
@@ -4153,6 +5378,47 @@ var generatedTools = [
|
|
|
4153
5378
|
}
|
|
4154
5379
|
}
|
|
4155
5380
|
},
|
|
5381
|
+
{
|
|
5382
|
+
name: "remove-organization-group-member",
|
|
5383
|
+
title: "Remove organization group member",
|
|
5384
|
+
operationId: "removeOrganizationGroupMember",
|
|
5385
|
+
description: "Remove a member from a group. Removes the organization member from the group. The group and user must belong to the current organization. Returns 404 when the membership is absent, including repeated deletion, or when the group is unknown or belongs to another organization.",
|
|
5386
|
+
method: "DELETE",
|
|
5387
|
+
path: "/v2/organization/groups/{id}/members/{userId}",
|
|
5388
|
+
params: [
|
|
5389
|
+
{
|
|
5390
|
+
name: "id",
|
|
5391
|
+
location: "path"
|
|
5392
|
+
},
|
|
5393
|
+
{
|
|
5394
|
+
name: "userId",
|
|
5395
|
+
location: "path"
|
|
5396
|
+
}
|
|
5397
|
+
],
|
|
5398
|
+
hasBody: false,
|
|
5399
|
+
annotations: {
|
|
5400
|
+
readOnlyHint: false,
|
|
5401
|
+
destructiveHint: true,
|
|
5402
|
+
idempotentHint: true,
|
|
5403
|
+
openWorldHint: true
|
|
5404
|
+
},
|
|
5405
|
+
inputSchema: {
|
|
5406
|
+
type: "object",
|
|
5407
|
+
properties: {
|
|
5408
|
+
id: {
|
|
5409
|
+
type: "string",
|
|
5410
|
+
minLength: 1,
|
|
5411
|
+
description: "Group ID."
|
|
5412
|
+
},
|
|
5413
|
+
userId: {
|
|
5414
|
+
type: "string",
|
|
5415
|
+
minLength: 1,
|
|
5416
|
+
description: "Organization member user ID."
|
|
5417
|
+
}
|
|
5418
|
+
},
|
|
5419
|
+
required: ["id", "userId"]
|
|
5420
|
+
}
|
|
5421
|
+
},
|
|
4156
5422
|
{
|
|
4157
5423
|
name: "revoke-delegation",
|
|
4158
5424
|
title: "Revoke ECR delegation",
|
|
@@ -4179,17 +5445,67 @@ var generatedTools = [
|
|
|
4179
5445
|
id: {
|
|
4180
5446
|
type: "string"
|
|
4181
5447
|
}
|
|
4182
|
-
},
|
|
4183
|
-
required: ["id"]
|
|
5448
|
+
},
|
|
5449
|
+
required: ["id"]
|
|
5450
|
+
}
|
|
5451
|
+
},
|
|
5452
|
+
{
|
|
5453
|
+
name: "update-cluster",
|
|
5454
|
+
title: "Update cluster",
|
|
5455
|
+
operationId: "updateCluster",
|
|
5456
|
+
description: "Rename a cluster. Renames a cluster. This endpoint only changes the cluster name \u2014 compute shape, type, and container configuration are fixed at creation and cannot be updated.",
|
|
5457
|
+
method: "PATCH",
|
|
5458
|
+
path: "/v2/clusters/{id}",
|
|
5459
|
+
params: [
|
|
5460
|
+
{
|
|
5461
|
+
name: "id",
|
|
5462
|
+
location: "path"
|
|
5463
|
+
}
|
|
5464
|
+
],
|
|
5465
|
+
hasBody: true,
|
|
5466
|
+
annotations: {
|
|
5467
|
+
readOnlyHint: false,
|
|
5468
|
+
destructiveHint: false,
|
|
5469
|
+
idempotentHint: true,
|
|
5470
|
+
openWorldHint: true
|
|
5471
|
+
},
|
|
5472
|
+
inputSchema: {
|
|
5473
|
+
type: "object",
|
|
5474
|
+
properties: {
|
|
5475
|
+
id: {
|
|
5476
|
+
type: "string",
|
|
5477
|
+
description: "Cluster identifier"
|
|
5478
|
+
},
|
|
5479
|
+
body: {
|
|
5480
|
+
$ref: "#/$defs/UpdateClusterRequest",
|
|
5481
|
+
type: "object"
|
|
5482
|
+
}
|
|
5483
|
+
},
|
|
5484
|
+
required: ["id", "body"],
|
|
5485
|
+
$defs: {
|
|
5486
|
+
UpdateClusterRequest: {
|
|
5487
|
+
type: "object",
|
|
5488
|
+
additionalProperties: false,
|
|
5489
|
+
minProperties: 1,
|
|
5490
|
+
description: "Request body for updating a cluster. Only the cluster name can be changed \u2014 this endpoint is a rename. Compute shape, type, and container configuration are fixed at creation.",
|
|
5491
|
+
properties: {
|
|
5492
|
+
name: {
|
|
5493
|
+
type: "string",
|
|
5494
|
+
minLength: 1,
|
|
5495
|
+
examples: ["renamed-cluster"]
|
|
5496
|
+
}
|
|
5497
|
+
}
|
|
5498
|
+
}
|
|
5499
|
+
}
|
|
4184
5500
|
}
|
|
4185
5501
|
},
|
|
4186
5502
|
{
|
|
4187
|
-
name: "update-
|
|
4188
|
-
title: "Update
|
|
4189
|
-
operationId: "
|
|
4190
|
-
description: "Rename a
|
|
5503
|
+
name: "update-cost-center",
|
|
5504
|
+
title: "Update cost center",
|
|
5505
|
+
operationId: "updateCostCenter",
|
|
5506
|
+
description: "Rename a cost center. Renames a cost center. Resources attributed to it are unaffected and follow the new name \u2014 the attribution is by identifier, not by name.",
|
|
4191
5507
|
method: "PATCH",
|
|
4192
|
-
path: "/v2/
|
|
5508
|
+
path: "/v2/cost-centers/{id}",
|
|
4193
5509
|
params: [
|
|
4194
5510
|
{
|
|
4195
5511
|
name: "id",
|
|
@@ -4208,25 +5524,28 @@ var generatedTools = [
|
|
|
4208
5524
|
properties: {
|
|
4209
5525
|
id: {
|
|
4210
5526
|
type: "string",
|
|
4211
|
-
|
|
5527
|
+
minLength: 1,
|
|
5528
|
+
description: "Cost center identifier."
|
|
4212
5529
|
},
|
|
4213
5530
|
body: {
|
|
4214
|
-
$ref: "#/$defs/
|
|
5531
|
+
$ref: "#/$defs/UpdateCostCenterRequest",
|
|
4215
5532
|
type: "object"
|
|
4216
5533
|
}
|
|
4217
5534
|
},
|
|
4218
5535
|
required: ["id", "body"],
|
|
4219
5536
|
$defs: {
|
|
4220
|
-
|
|
5537
|
+
UpdateCostCenterRequest: {
|
|
4221
5538
|
type: "object",
|
|
4222
5539
|
additionalProperties: false,
|
|
4223
|
-
|
|
4224
|
-
description: "Request body for updating a cluster. Only the cluster name can be changed \u2014 this endpoint is a rename. Compute shape, type, and container configuration are fixed at creation.",
|
|
5540
|
+
required: ["value"],
|
|
4225
5541
|
properties: {
|
|
4226
|
-
|
|
5542
|
+
value: {
|
|
4227
5543
|
type: "string",
|
|
4228
5544
|
minLength: 1,
|
|
4229
|
-
|
|
5545
|
+
maxLength: 50,
|
|
5546
|
+
pattern: "^\\s*\\S",
|
|
5547
|
+
description: "Leading and trailing whitespace is trimmed.",
|
|
5548
|
+
examples: ["team-ml-eu"]
|
|
4230
5549
|
}
|
|
4231
5550
|
}
|
|
4232
5551
|
}
|
|
@@ -4670,6 +5989,7 @@ var generatedTools = [
|
|
|
4670
5989
|
type: "string",
|
|
4671
5990
|
minLength: 1,
|
|
4672
5991
|
maxLength: 191,
|
|
5992
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
4673
5993
|
description: "New human-readable name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.",
|
|
4674
5994
|
examples: ["renamed-volume"]
|
|
4675
5995
|
}
|
|
@@ -4736,11 +6056,218 @@ var generatedTools = [
|
|
|
4736
6056
|
}
|
|
4737
6057
|
}
|
|
4738
6058
|
},
|
|
6059
|
+
{
|
|
6060
|
+
name: "update-organization-group",
|
|
6061
|
+
title: "Update organization group",
|
|
6062
|
+
operationId: "updateOrganizationGroup",
|
|
6063
|
+
description: "Rename a group in your current organization",
|
|
6064
|
+
method: "PATCH",
|
|
6065
|
+
path: "/v2/organization/groups/{id}",
|
|
6066
|
+
params: [
|
|
6067
|
+
{
|
|
6068
|
+
name: "id",
|
|
6069
|
+
location: "path"
|
|
6070
|
+
}
|
|
6071
|
+
],
|
|
6072
|
+
hasBody: true,
|
|
6073
|
+
annotations: {
|
|
6074
|
+
readOnlyHint: false,
|
|
6075
|
+
destructiveHint: false,
|
|
6076
|
+
idempotentHint: true,
|
|
6077
|
+
openWorldHint: true
|
|
6078
|
+
},
|
|
6079
|
+
inputSchema: {
|
|
6080
|
+
type: "object",
|
|
6081
|
+
properties: {
|
|
6082
|
+
id: {
|
|
6083
|
+
type: "string",
|
|
6084
|
+
minLength: 1,
|
|
6085
|
+
description: "Group ID."
|
|
6086
|
+
},
|
|
6087
|
+
body: {
|
|
6088
|
+
$ref: "#/$defs/UpdateOrganizationGroupRequest",
|
|
6089
|
+
type: "object"
|
|
6090
|
+
}
|
|
6091
|
+
},
|
|
6092
|
+
required: ["id", "body"],
|
|
6093
|
+
$defs: {
|
|
6094
|
+
UpdateOrganizationGroupRequest: {
|
|
6095
|
+
type: "object",
|
|
6096
|
+
additionalProperties: false,
|
|
6097
|
+
required: ["name"],
|
|
6098
|
+
properties: {
|
|
6099
|
+
name: {
|
|
6100
|
+
type: "string",
|
|
6101
|
+
minLength: 1,
|
|
6102
|
+
maxLength: 191,
|
|
6103
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
6104
|
+
description: "Group name with at least one non-whitespace character; surrounding whitespace is trimmed.",
|
|
6105
|
+
examples: ["Research"]
|
|
6106
|
+
}
|
|
6107
|
+
}
|
|
6108
|
+
}
|
|
6109
|
+
}
|
|
6110
|
+
}
|
|
6111
|
+
},
|
|
6112
|
+
{
|
|
6113
|
+
name: "update-organization-role",
|
|
6114
|
+
title: "Update organization role",
|
|
6115
|
+
operationId: "updateOrganizationRole",
|
|
6116
|
+
description: "Update a custom organization role. Changes a custom role's name, its capabilities, or both, and returns the role. Sent capabilities replace the whole grant set. Returns 400 for a built-in role, which cannot be changed; 404 when the ID is unknown or names another organization's role; 403 when the caller does not hold every capability the role grants, before or after the change; 409 when the organization already has a role with the new name; and 422 when a capability is unknown or the name is reserved. Updating roles requires the organization's role-management capability, which the built-in admin role holds; other members, and callers outside an organization, receive 403, as does a caller for whom organizations are unavailable.",
|
|
6117
|
+
method: "PATCH",
|
|
6118
|
+
path: "/v2/organization/roles/{id}",
|
|
6119
|
+
params: [
|
|
6120
|
+
{
|
|
6121
|
+
name: "id",
|
|
6122
|
+
location: "path"
|
|
6123
|
+
}
|
|
6124
|
+
],
|
|
6125
|
+
hasBody: true,
|
|
6126
|
+
annotations: {
|
|
6127
|
+
readOnlyHint: false,
|
|
6128
|
+
destructiveHint: true,
|
|
6129
|
+
idempotentHint: true,
|
|
6130
|
+
openWorldHint: true
|
|
6131
|
+
},
|
|
6132
|
+
inputSchema: {
|
|
6133
|
+
type: "object",
|
|
6134
|
+
properties: {
|
|
6135
|
+
id: {
|
|
6136
|
+
type: "string",
|
|
6137
|
+
description: "Role identifier"
|
|
6138
|
+
},
|
|
6139
|
+
body: {
|
|
6140
|
+
$ref: "#/$defs/UpdateOrganizationRoleRequest",
|
|
6141
|
+
type: "object"
|
|
6142
|
+
}
|
|
6143
|
+
},
|
|
6144
|
+
required: ["id", "body"],
|
|
6145
|
+
$defs: {
|
|
6146
|
+
OrganizationRoleCapabilitiesInput: {
|
|
6147
|
+
type: "array",
|
|
6148
|
+
description: "What the role grants, as `FAMILY:VERB` capabilities from `get-organization-role-capabilities`. The caller must hold every capability it lists.",
|
|
6149
|
+
minItems: 1,
|
|
6150
|
+
uniqueItems: true,
|
|
6151
|
+
items: {
|
|
6152
|
+
type: "string",
|
|
6153
|
+
pattern: "^[A-Z0-9_]+:[A-Z0-9_]+$"
|
|
6154
|
+
},
|
|
6155
|
+
examples: [["POD:VIEW"]]
|
|
6156
|
+
},
|
|
6157
|
+
OrganizationRoleName: {
|
|
6158
|
+
type: "string",
|
|
6159
|
+
minLength: 1,
|
|
6160
|
+
maxLength: 191,
|
|
6161
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
6162
|
+
description: "Display name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed. It must be unique within the organization and cannot be a built-in role's name.",
|
|
6163
|
+
examples: ["Pod viewer"]
|
|
6164
|
+
},
|
|
6165
|
+
UpdateOrganizationRoleRequest: {
|
|
6166
|
+
type: "object",
|
|
6167
|
+
additionalProperties: false,
|
|
6168
|
+
minProperties: 1,
|
|
6169
|
+
description: "The fields to change; omitted fields are unchanged. `capabilities` replaces the role's whole grant set rather than adding to it.",
|
|
6170
|
+
properties: {
|
|
6171
|
+
name: {
|
|
6172
|
+
$ref: "#/$defs/OrganizationRoleName"
|
|
6173
|
+
},
|
|
6174
|
+
capabilities: {
|
|
6175
|
+
$ref: "#/$defs/OrganizationRoleCapabilitiesInput"
|
|
6176
|
+
}
|
|
6177
|
+
}
|
|
6178
|
+
}
|
|
6179
|
+
}
|
|
6180
|
+
}
|
|
6181
|
+
},
|
|
6182
|
+
{
|
|
6183
|
+
name: "update-organization-user",
|
|
6184
|
+
title: "Update organization user",
|
|
6185
|
+
operationId: "updateOrganizationUser",
|
|
6186
|
+
description: "Update an organization member. Changes one member of the authenticated caller's organization by user ID: assigns a role, replaces their set of groups, or both, applied together or not at all. Send at least one field; an omitted field is left as it is, and an empty `groups` list removes the member from every group. Updating members requires the organization's member-management capability, which the built-in admin role holds; other members, and callers outside an organization, receive 403, as does a caller for whom organizations are unavailable. Returns 403 when the caller changes their own role or assigns a role granting a capability the caller lacks; 409 when the change would leave the organization without a member in the built-in admin role; and 404 when the user is not a member or the role or a group is unknown to the organization, with the detail naming which.",
|
|
6187
|
+
method: "PATCH",
|
|
6188
|
+
path: "/v2/organization/users/{id}",
|
|
6189
|
+
params: [
|
|
6190
|
+
{
|
|
6191
|
+
name: "id",
|
|
6192
|
+
location: "path"
|
|
6193
|
+
}
|
|
6194
|
+
],
|
|
6195
|
+
hasBody: true,
|
|
6196
|
+
annotations: {
|
|
6197
|
+
readOnlyHint: false,
|
|
6198
|
+
destructiveHint: true,
|
|
6199
|
+
idempotentHint: true,
|
|
6200
|
+
openWorldHint: true
|
|
6201
|
+
},
|
|
6202
|
+
inputSchema: {
|
|
6203
|
+
type: "object",
|
|
6204
|
+
properties: {
|
|
6205
|
+
id: {
|
|
6206
|
+
type: "string",
|
|
6207
|
+
description: "User identifier"
|
|
6208
|
+
},
|
|
6209
|
+
body: {
|
|
6210
|
+
$ref: "#/$defs/UpdateOrganizationUserRequest",
|
|
6211
|
+
type: "object"
|
|
6212
|
+
}
|
|
6213
|
+
},
|
|
6214
|
+
required: ["id", "body"],
|
|
6215
|
+
$defs: {
|
|
6216
|
+
OrganizationGroupInput: {
|
|
6217
|
+
type: "object",
|
|
6218
|
+
description: "An organization group, by ID.",
|
|
6219
|
+
additionalProperties: false,
|
|
6220
|
+
required: ["id"],
|
|
6221
|
+
properties: {
|
|
6222
|
+
id: {
|
|
6223
|
+
type: "string",
|
|
6224
|
+
minLength: 1,
|
|
6225
|
+
description: "Group ID.",
|
|
6226
|
+
examples: ["group_id_abc_123"]
|
|
6227
|
+
}
|
|
6228
|
+
}
|
|
6229
|
+
},
|
|
6230
|
+
OrganizationRoleInput: {
|
|
6231
|
+
type: "object",
|
|
6232
|
+
description: "An organization role to assign, by ID.",
|
|
6233
|
+
additionalProperties: false,
|
|
6234
|
+
required: ["id"],
|
|
6235
|
+
properties: {
|
|
6236
|
+
id: {
|
|
6237
|
+
type: "string",
|
|
6238
|
+
minLength: 1,
|
|
6239
|
+
description: "Role ID, as reported on a member or an invite: `builtin:admin`, `builtin:dev`, `builtin:billing`, `builtin:basic`, or a custom role's own ID.",
|
|
6240
|
+
examples: ["builtin:dev"]
|
|
6241
|
+
}
|
|
6242
|
+
}
|
|
6243
|
+
},
|
|
6244
|
+
UpdateOrganizationUserRequest: {
|
|
6245
|
+
type: "object",
|
|
6246
|
+
description: "Changes to a member. Send `role`, `groups`, or both; an omitted field is left as it is.",
|
|
6247
|
+
additionalProperties: false,
|
|
6248
|
+
minProperties: 1,
|
|
6249
|
+
properties: {
|
|
6250
|
+
role: {
|
|
6251
|
+
$ref: "#/$defs/OrganizationRoleInput"
|
|
6252
|
+
},
|
|
6253
|
+
groups: {
|
|
6254
|
+
type: "array",
|
|
6255
|
+
description: "The member's groups after the change: the whole set, by ID. An empty list removes the member from every group.",
|
|
6256
|
+
uniqueItems: true,
|
|
6257
|
+
items: {
|
|
6258
|
+
$ref: "#/$defs/OrganizationGroupInput"
|
|
6259
|
+
}
|
|
6260
|
+
}
|
|
6261
|
+
}
|
|
6262
|
+
}
|
|
6263
|
+
}
|
|
6264
|
+
}
|
|
6265
|
+
},
|
|
4739
6266
|
{
|
|
4740
6267
|
name: "update-pod",
|
|
4741
6268
|
title: "Update Pod",
|
|
4742
6269
|
operationId: "updatePod",
|
|
4743
|
-
description: "Update a pod. Partially updates a pod's configuration. This is a PATCH: only the fields present in the body are changed, and omitted fields are left untouched. Use empty values only when you explicitly mean to clear a field (for example, set `registry` to `null` or set `ports` to `[]`). See `UpdatePodRequest` for the full body. Mutable fields: `name`, `image`, `args`, `disk`, `ports`, `env`, `registry`, `mounts`, `locked`, and `globalNetworking`. Some changes apply immediately while others (e.g. `globalNetworking`) take effect on the pod's next start/restart, as noted on the individual fields. Pods that belong to a Cluster cannot be updated here \u2014 manage them through `/v2/clusters/{id}`. Returns `200` with the full updated pod.",
|
|
6270
|
+
description: "Update a pod. Partially updates a pod's configuration. This is a PATCH: only the fields present in the body are changed, and omitted fields are left untouched. Use empty values only when you explicitly mean to clear a field (for example, set `registry` to `null` or set `ports` to `[]`). See `UpdatePodRequest` for the full body. Mutable fields: `name`, `image`, `args`, `disk`, `ports`, `env`, `registry`, `mounts`, `locked`, and `globalNetworking`. Some changes apply immediately while others (e.g. `globalNetworking`) take effect on the pod's next start/restart, as noted on the individual fields. Volumes can be mounted, moved, or unmounted after creation through `mounts`, one entry per volume; see `UpdatePodMounts` for the rules. Pods that belong to a Cluster cannot be updated here \u2014 manage them through `/v2/clusters/{id}`. Returns `200` with the full updated pod.",
|
|
4744
6271
|
method: "PATCH",
|
|
4745
6272
|
path: "/v2/pods/{id}",
|
|
4746
6273
|
params: [
|
|
@@ -4834,21 +6361,6 @@ var generatedTools = [
|
|
|
4834
6361
|
}
|
|
4835
6362
|
}
|
|
4836
6363
|
},
|
|
4837
|
-
BaseMounts: {
|
|
4838
|
-
type: "object",
|
|
4839
|
-
properties: {
|
|
4840
|
-
persistent: {
|
|
4841
|
-
$ref: "#/$defs/PersistentMount"
|
|
4842
|
-
},
|
|
4843
|
-
network: {
|
|
4844
|
-
type: "array",
|
|
4845
|
-
maxItems: 1,
|
|
4846
|
-
items: {
|
|
4847
|
-
$ref: "#/$defs/NetworkMount"
|
|
4848
|
-
}
|
|
4849
|
-
}
|
|
4850
|
-
}
|
|
4851
|
-
},
|
|
4852
6364
|
ContainerConfig: {
|
|
4853
6365
|
allOf: [
|
|
4854
6366
|
{
|
|
@@ -4866,11 +6378,11 @@ var generatedTools = [
|
|
|
4866
6378
|
}
|
|
4867
6379
|
]
|
|
4868
6380
|
},
|
|
4869
|
-
|
|
6381
|
+
GlobalMountPatch: {
|
|
4870
6382
|
type: "object",
|
|
4871
6383
|
required: ["volumeId"],
|
|
4872
6384
|
additionalProperties: false,
|
|
4873
|
-
description: "
|
|
6385
|
+
description: "Mounts, moves, or unmounts the pod's global volume.",
|
|
4874
6386
|
properties: {
|
|
4875
6387
|
volumeId: {
|
|
4876
6388
|
type: "string",
|
|
@@ -4879,38 +6391,21 @@ var generatedTools = [
|
|
|
4879
6391
|
},
|
|
4880
6392
|
path: {
|
|
4881
6393
|
type: "string",
|
|
4882
|
-
|
|
6394
|
+
minLength: 1,
|
|
6395
|
+
description: "Mount path inside the container. Optional; when mounting, a default is chosen for you if omitted.",
|
|
4883
6396
|
examples: ["/data"]
|
|
4884
|
-
}
|
|
4885
|
-
}
|
|
4886
|
-
},
|
|
4887
|
-
Mounts: {
|
|
4888
|
-
description: "Storage mounts for the pod: `persistent` (size + path) excludes both `network` and `global`; `network` (volumeId + path) and `global` (volumeId, optional path) take one entry each and can be combined. Every entry needs its full shape. On update, omit the field to leave the mounts as they are; the mount kind and a volume's volumeId cannot change, and mounts cannot be cleared.",
|
|
4889
|
-
allOf: [
|
|
4890
|
-
{
|
|
4891
|
-
$ref: "#/$defs/BaseMounts"
|
|
4892
6397
|
},
|
|
4893
|
-
{
|
|
4894
|
-
type: "
|
|
4895
|
-
|
|
4896
|
-
global: {
|
|
4897
|
-
type: "array",
|
|
4898
|
-
maxItems: 1,
|
|
4899
|
-
description: "At most one global volume, on GPU and CPU pods, with no data center constraint. Combinable with `network` but not with `persistent` (rejected): upstream drops a persistent disk whenever a volume is attached.",
|
|
4900
|
-
items: {
|
|
4901
|
-
$ref: "#/$defs/GlobalMount"
|
|
4902
|
-
}
|
|
4903
|
-
}
|
|
4904
|
-
}
|
|
6398
|
+
remove: {
|
|
6399
|
+
type: "boolean",
|
|
6400
|
+
description: "Unmount the volume. Cannot be combined with `path`."
|
|
4905
6401
|
}
|
|
4906
|
-
|
|
4907
|
-
unevaluatedProperties: false
|
|
6402
|
+
}
|
|
4908
6403
|
},
|
|
4909
|
-
|
|
6404
|
+
NetworkMountPatch: {
|
|
4910
6405
|
type: "object",
|
|
4911
|
-
required: ["volumeId"
|
|
6406
|
+
required: ["volumeId"],
|
|
4912
6407
|
additionalProperties: false,
|
|
4913
|
-
description: "
|
|
6408
|
+
description: "Mounts, moves, or unmounts one network volume. Mounting a volume the pod does not have requires `path`.",
|
|
4914
6409
|
properties: {
|
|
4915
6410
|
volumeId: {
|
|
4916
6411
|
type: "string",
|
|
@@ -4919,27 +6414,62 @@ var generatedTools = [
|
|
|
4919
6414
|
},
|
|
4920
6415
|
path: {
|
|
4921
6416
|
type: "string",
|
|
4922
|
-
|
|
6417
|
+
minLength: 1,
|
|
6418
|
+
description: "Mount path inside the container. Required when mounting; optional when moving a mounted volume.",
|
|
4923
6419
|
examples: ["/runpod-volume"]
|
|
6420
|
+
},
|
|
6421
|
+
remove: {
|
|
6422
|
+
type: "boolean",
|
|
6423
|
+
description: "Unmount the volume. Cannot be combined with `path`."
|
|
4924
6424
|
}
|
|
4925
6425
|
}
|
|
4926
6426
|
},
|
|
4927
|
-
|
|
6427
|
+
PersistentMountPatch: {
|
|
4928
6428
|
type: "object",
|
|
4929
|
-
required: ["size", "path"],
|
|
4930
6429
|
additionalProperties: false,
|
|
4931
|
-
description: "
|
|
6430
|
+
description: "Adds the pod's volume disk, grows it, or moves it. Adding a disk requires `size`; on a pod that already has one, omitted fields are left as they are. Not available on CPU pods.",
|
|
4932
6431
|
properties: {
|
|
4933
6432
|
size: {
|
|
4934
6433
|
type: "integer",
|
|
4935
6434
|
minimum: 10,
|
|
4936
|
-
description: "
|
|
4937
|
-
examples: [
|
|
6435
|
+
description: "Volume disk size in GB. Can only grow; a smaller size than the current one is rejected.",
|
|
6436
|
+
examples: [50]
|
|
4938
6437
|
},
|
|
4939
6438
|
path: {
|
|
4940
6439
|
type: "string",
|
|
4941
|
-
|
|
6440
|
+
minLength: 1,
|
|
6441
|
+
description: "Mount path inside the container.",
|
|
4942
6442
|
examples: ["/workspace"]
|
|
6443
|
+
},
|
|
6444
|
+
remove: {
|
|
6445
|
+
type: "boolean",
|
|
6446
|
+
description: "Removes the volume disk. Not supported yet: `remove: true` is rejected."
|
|
6447
|
+
}
|
|
6448
|
+
}
|
|
6449
|
+
},
|
|
6450
|
+
UpdatePodMounts: {
|
|
6451
|
+
type: "object",
|
|
6452
|
+
additionalProperties: false,
|
|
6453
|
+
description: "Changes to a pod's mounts. Each entry names one volume by `volumeId` and changes only that volume; volumes that are not listed, and kinds that are omitted, are left as they are. Omitting `mounts` or sending `{}` changes nothing.",
|
|
6454
|
+
properties: {
|
|
6455
|
+
persistent: {
|
|
6456
|
+
$ref: "#/$defs/PersistentMountPatch"
|
|
6457
|
+
},
|
|
6458
|
+
network: {
|
|
6459
|
+
type: "array",
|
|
6460
|
+
maxItems: 8,
|
|
6461
|
+
description: "Network volumes to mount, move, or unmount. Up to 8 entries, so a request can unmount 4 volumes and mount 4 others; the pod can still hold at most 4 afterwards.",
|
|
6462
|
+
items: {
|
|
6463
|
+
$ref: "#/$defs/NetworkMountPatch"
|
|
6464
|
+
}
|
|
6465
|
+
},
|
|
6466
|
+
global: {
|
|
6467
|
+
type: "array",
|
|
6468
|
+
maxItems: 2,
|
|
6469
|
+
description: "Global volumes to mount, move, or unmount. Up to 2 entries, so a request can swap the global volume; the pod can still hold at most 1 afterwards.",
|
|
6470
|
+
items: {
|
|
6471
|
+
$ref: "#/$defs/GlobalMountPatch"
|
|
6472
|
+
}
|
|
4943
6473
|
}
|
|
4944
6474
|
}
|
|
4945
6475
|
},
|
|
@@ -4960,7 +6490,7 @@ var generatedTools = [
|
|
|
4960
6490
|
description: "Lock the pod (true) or unlock it (false). Locked pods cannot be stopped or reset."
|
|
4961
6491
|
},
|
|
4962
6492
|
mounts: {
|
|
4963
|
-
$ref: "#/$defs/
|
|
6493
|
+
$ref: "#/$defs/UpdatePodMounts"
|
|
4964
6494
|
},
|
|
4965
6495
|
name: {
|
|
4966
6496
|
type: "string",
|
|
@@ -5207,7 +6737,7 @@ var generatedTools = [
|
|
|
5207
6737
|
size: {
|
|
5208
6738
|
type: "integer",
|
|
5209
6739
|
minimum: 10,
|
|
5210
|
-
description: "Host-local persistent storage in GB.
|
|
6740
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
5211
6741
|
examples: [20]
|
|
5212
6742
|
},
|
|
5213
6743
|
path: {
|
|
@@ -8512,6 +10042,23 @@ import {
|
|
|
8512
10042
|
loadKnowledge
|
|
8513
10043
|
} from "@runpod/plugin-knowledge";
|
|
8514
10044
|
var knowledge = loadKnowledge();
|
|
10045
|
+
var hiddenRules = new Set(
|
|
10046
|
+
(process.env.KNOWLEDGE_HIDDEN_RULES ?? "").split(",").map((id) => id.trim()).filter(Boolean)
|
|
10047
|
+
);
|
|
10048
|
+
var concepts = knowledge.concepts.map((concept) => ({
|
|
10049
|
+
...concept,
|
|
10050
|
+
rules: concept.rules.filter((rule) => !hiddenRules.has(rule.id))
|
|
10051
|
+
}));
|
|
10052
|
+
for (const id of hiddenRules) {
|
|
10053
|
+
if (!knowledge.concepts.some(
|
|
10054
|
+
(concept) => concept.rules.some((rule) => rule.id === id)
|
|
10055
|
+
))
|
|
10056
|
+
console.warn("knowledge_hidden_rule_unknown", {
|
|
10057
|
+
id,
|
|
10058
|
+
plugin_version: knowledge.version
|
|
10059
|
+
});
|
|
10060
|
+
}
|
|
10061
|
+
var visibleRuleIds = (ids) => ids.filter((id) => !hiddenRules.has(id));
|
|
8515
10062
|
var GUIDE_KINDS = ["skill", "reference", "golden-path"];
|
|
8516
10063
|
var STOPWORDS = new Set(
|
|
8517
10064
|
"a an and are as at be by can do does for from how i in is it my of on or the to what when why with you your".split(
|
|
@@ -8554,7 +10101,7 @@ var guideSummary = ({
|
|
|
8554
10101
|
lanes,
|
|
8555
10102
|
mcp,
|
|
8556
10103
|
needs_shell,
|
|
8557
|
-
concepts
|
|
10104
|
+
concepts: concepts2
|
|
8558
10105
|
}) => ({
|
|
8559
10106
|
id,
|
|
8560
10107
|
kind,
|
|
@@ -8563,7 +10110,7 @@ var guideSummary = ({
|
|
|
8563
10110
|
lanes,
|
|
8564
10111
|
mcp,
|
|
8565
10112
|
needs_shell,
|
|
8566
|
-
concepts
|
|
10113
|
+
concepts: concepts2
|
|
8567
10114
|
});
|
|
8568
10115
|
function linkedGuides(conceptId) {
|
|
8569
10116
|
const byId = new Map(knowledge.guides.map((guide) => [guide.id, guide]));
|
|
@@ -8575,19 +10122,20 @@ function linkedGuides(conceptId) {
|
|
|
8575
10122
|
seen.add(link.from);
|
|
8576
10123
|
const guide = byId.get(link.from);
|
|
8577
10124
|
if (!guide) continue;
|
|
10125
|
+
const rules = link.rules && visibleRuleIds(link.rules);
|
|
8578
10126
|
if (guide.kind === "golden-path")
|
|
8579
10127
|
examples.push({ id: guide.id, title: guide.title, mcp: guide.mcp });
|
|
8580
10128
|
else
|
|
8581
10129
|
docs.push({
|
|
8582
10130
|
id: guide.id,
|
|
8583
10131
|
title: guide.title,
|
|
8584
|
-
...
|
|
10132
|
+
...rules?.length ? { rules } : {}
|
|
8585
10133
|
});
|
|
8586
10134
|
}
|
|
8587
10135
|
return { examples, docs };
|
|
8588
10136
|
}
|
|
8589
10137
|
var conceptIndex = /* @__PURE__ */ new Map();
|
|
8590
|
-
for (const concept of
|
|
10138
|
+
for (const concept of concepts) {
|
|
8591
10139
|
for (const key of [concept.id, concept.name, ...concept.aliases]) {
|
|
8592
10140
|
if (!conceptIndex.has(key.toLowerCase()))
|
|
8593
10141
|
conceptIndex.set(key.toLowerCase(), concept);
|
|
@@ -8621,7 +10169,7 @@ function resolveConcept(input) {
|
|
|
8621
10169
|
return best && !tied ? { concept: best.concept, matchedAs: best.key } : void 0;
|
|
8622
10170
|
}
|
|
8623
10171
|
var ruleIndex = /* @__PURE__ */ new Map();
|
|
8624
|
-
for (const concept of
|
|
10172
|
+
for (const concept of concepts) {
|
|
8625
10173
|
for (const rule of concept.rules) ruleIndex.set(rule.id, { rule, concept });
|
|
8626
10174
|
}
|
|
8627
10175
|
var source = {
|
|
@@ -8740,7 +10288,7 @@ var lookupConcept = {
|
|
|
8740
10288
|
};
|
|
8741
10289
|
}
|
|
8742
10290
|
const { concept, matchedAs } = resolved;
|
|
8743
|
-
const pointedAtBy =
|
|
10291
|
+
const pointedAtBy = concepts.flatMap((other) => [
|
|
8744
10292
|
...other.is_a === concept.id ? [{ concept: other.id, type: "is_a" }] : [],
|
|
8745
10293
|
...other.part_of === concept.id ? [{ concept: other.id, type: "part_of" }] : [],
|
|
8746
10294
|
...other.relations.filter((relation) => relation.target === concept.id).map((relation) => ({ concept: other.id, type: relation.type }))
|
|
@@ -8754,6 +10302,14 @@ var lookupConcept = {
|
|
|
8754
10302
|
...source,
|
|
8755
10303
|
...matchedAs ? { matched_as: matchedAs } : {},
|
|
8756
10304
|
...concept,
|
|
10305
|
+
steps: concept.steps.map((step) => ({
|
|
10306
|
+
...step,
|
|
10307
|
+
rules: visibleRuleIds(step.rules)
|
|
10308
|
+
})),
|
|
10309
|
+
rules: concept.rules.map((rule) => ({
|
|
10310
|
+
...rule,
|
|
10311
|
+
see: visibleRuleIds(rule.see)
|
|
10312
|
+
})),
|
|
8757
10313
|
pointed_at_by: pointedAtBy,
|
|
8758
10314
|
linked_rules: linkedRules,
|
|
8759
10315
|
...linkedGuides(concept.id)
|
|
@@ -9012,7 +10568,7 @@ function words2(name) {
|
|
|
9012
10568
|
|
|
9013
10569
|
// src/server.ts
|
|
9014
10570
|
var SERVER_NAME = "Runpod API Server";
|
|
9015
|
-
var SERVER_VERSION = true ? "4.
|
|
10571
|
+
var SERVER_VERSION = true ? "4.10.0" : "dev";
|
|
9016
10572
|
|
|
9017
10573
|
// src/specgen/analytics.ts
|
|
9018
10574
|
import { createHmac } from "crypto";
|
|
@@ -10668,4 +12224,4 @@ export {
|
|
|
10668
12224
|
summarizeRpc,
|
|
10669
12225
|
handleMcpRequest
|
|
10670
12226
|
};
|
|
10671
|
-
//# sourceMappingURL=chunk-
|
|
12227
|
+
//# sourceMappingURL=chunk-JTK6RETN.mjs.map
|