@runpod/mcp-server 4.9.1 → 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 +14 -0
- 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-N4OSRS4A.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 -3
- package/dist/chunk-6IETGSON.mjs.map +0 -1
- package/dist/chunk-H3NZYQIB.mjs.map +0 -1
- package/dist/chunk-N4OSRS4A.mjs.map +0 -1
package/dist/stdio.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
12
12
|
|
|
13
13
|
// src/server.ts
|
|
14
14
|
var SERVER_NAME = "Runpod API Server";
|
|
15
|
-
var SERVER_VERSION = true ? "4.
|
|
15
|
+
var SERVER_VERSION = true ? "4.10.0" : "dev";
|
|
16
16
|
|
|
17
17
|
// src/specgen/server.ts
|
|
18
18
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
@@ -343,6 +343,104 @@ function coerceScalars(value, schema, defs, depth = 0) {
|
|
|
343
343
|
|
|
344
344
|
// src/specgen/generated/tools.gen.ts
|
|
345
345
|
var generatedTools = [
|
|
346
|
+
{
|
|
347
|
+
name: "add-organization-group-member",
|
|
348
|
+
title: "Add organization group member",
|
|
349
|
+
operationId: "addOrganizationGroupMember",
|
|
350
|
+
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.",
|
|
351
|
+
method: "PUT",
|
|
352
|
+
path: "/v2/organization/groups/{id}/members/{userId}",
|
|
353
|
+
params: [
|
|
354
|
+
{
|
|
355
|
+
name: "id",
|
|
356
|
+
location: "path"
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
name: "userId",
|
|
360
|
+
location: "path"
|
|
361
|
+
}
|
|
362
|
+
],
|
|
363
|
+
hasBody: false,
|
|
364
|
+
annotations: {
|
|
365
|
+
readOnlyHint: false,
|
|
366
|
+
destructiveHint: false,
|
|
367
|
+
idempotentHint: true,
|
|
368
|
+
openWorldHint: true
|
|
369
|
+
},
|
|
370
|
+
inputSchema: {
|
|
371
|
+
type: "object",
|
|
372
|
+
properties: {
|
|
373
|
+
id: {
|
|
374
|
+
type: "string",
|
|
375
|
+
minLength: 1,
|
|
376
|
+
description: "Group ID."
|
|
377
|
+
},
|
|
378
|
+
userId: {
|
|
379
|
+
type: "string",
|
|
380
|
+
minLength: 1,
|
|
381
|
+
description: "Organization member user ID."
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
required: ["id", "userId"]
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
name: "attach-cost-center-resource",
|
|
389
|
+
title: "Attach cost center resource",
|
|
390
|
+
operationId: "attachCostCenterResource",
|
|
391
|
+
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.",
|
|
392
|
+
method: "PUT",
|
|
393
|
+
path: "/v2/cost-centers/{id}/{resourceType}/{resourceId}",
|
|
394
|
+
params: [
|
|
395
|
+
{
|
|
396
|
+
name: "id",
|
|
397
|
+
location: "path"
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: "resourceType",
|
|
401
|
+
location: "path"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
name: "resourceId",
|
|
405
|
+
location: "path"
|
|
406
|
+
}
|
|
407
|
+
],
|
|
408
|
+
hasBody: false,
|
|
409
|
+
annotations: {
|
|
410
|
+
readOnlyHint: false,
|
|
411
|
+
destructiveHint: false,
|
|
412
|
+
idempotentHint: true,
|
|
413
|
+
openWorldHint: true
|
|
414
|
+
},
|
|
415
|
+
inputSchema: {
|
|
416
|
+
type: "object",
|
|
417
|
+
properties: {
|
|
418
|
+
id: {
|
|
419
|
+
type: "string",
|
|
420
|
+
minLength: 1,
|
|
421
|
+
description: "Cost center identifier."
|
|
422
|
+
},
|
|
423
|
+
resourceType: {
|
|
424
|
+
$ref: "#/$defs/ResourceType",
|
|
425
|
+
description: "Kind of resource.",
|
|
426
|
+
type: "string"
|
|
427
|
+
},
|
|
428
|
+
resourceId: {
|
|
429
|
+
type: "string",
|
|
430
|
+
minLength: 1,
|
|
431
|
+
description: "Resource identifier."
|
|
432
|
+
}
|
|
433
|
+
},
|
|
434
|
+
required: ["id", "resourceType", "resourceId"],
|
|
435
|
+
$defs: {
|
|
436
|
+
ResourceType: {
|
|
437
|
+
type: "string",
|
|
438
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
439
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
},
|
|
346
444
|
{
|
|
347
445
|
name: "create-cluster",
|
|
348
446
|
title: "Create cluster",
|
|
@@ -441,7 +539,6 @@ var generatedTools = [
|
|
|
441
539
|
},
|
|
442
540
|
network: {
|
|
443
541
|
type: "array",
|
|
444
|
-
maxItems: 1,
|
|
445
542
|
items: {
|
|
446
543
|
$ref: "#/$defs/NetworkMount"
|
|
447
544
|
}
|
|
@@ -463,7 +560,7 @@ var generatedTools = [
|
|
|
463
560
|
gpuCountPerPod: {
|
|
464
561
|
type: "integer",
|
|
465
562
|
minimum: 1,
|
|
466
|
-
description: "Number of GPUs on each pod. Bounded above by the GPU type's per-cloud maximum (GpuType.maxCount);
|
|
563
|
+
description: "Number of GPUs on each pod. Bounded above by the GPU type's per-cloud maximum (GpuType.maxCount); values beyond it are rejected.",
|
|
467
564
|
examples: [8]
|
|
468
565
|
},
|
|
469
566
|
podCount: {
|
|
@@ -476,7 +573,7 @@ var generatedTools = [
|
|
|
476
573
|
}
|
|
477
574
|
},
|
|
478
575
|
ClusterMounts: {
|
|
479
|
-
description: "Storage mounts for a cluster create: `persistent` or `network
|
|
576
|
+
description: "Storage mounts for a cluster create: `persistent` or one `network` volume, not both. Clusters cannot mount global volumes, so `global` is rejected.",
|
|
480
577
|
"x-go-type": "BaseMounts",
|
|
481
578
|
allOf: [
|
|
482
579
|
{
|
|
@@ -496,6 +593,7 @@ var generatedTools = [
|
|
|
496
593
|
},
|
|
497
594
|
network: {
|
|
498
595
|
type: "array",
|
|
596
|
+
maxItems: 1,
|
|
499
597
|
items: {
|
|
500
598
|
type: "object",
|
|
501
599
|
properties: {
|
|
@@ -574,7 +672,7 @@ var generatedTools = [
|
|
|
574
672
|
type: "object",
|
|
575
673
|
required: ["volumeId", "path"],
|
|
576
674
|
additionalProperties: false,
|
|
577
|
-
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods.
|
|
675
|
+
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`).",
|
|
578
676
|
properties: {
|
|
579
677
|
volumeId: {
|
|
580
678
|
type: "string",
|
|
@@ -597,7 +695,7 @@ var generatedTools = [
|
|
|
597
695
|
size: {
|
|
598
696
|
type: "integer",
|
|
599
697
|
minimum: 10,
|
|
600
|
-
description: "Host-local persistent storage in GB.
|
|
698
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
601
699
|
examples: [20]
|
|
602
700
|
},
|
|
603
701
|
path: {
|
|
@@ -610,6 +708,77 @@ var generatedTools = [
|
|
|
610
708
|
}
|
|
611
709
|
}
|
|
612
710
|
},
|
|
711
|
+
{
|
|
712
|
+
name: "create-cost-center",
|
|
713
|
+
title: "Create cost center",
|
|
714
|
+
operationId: "createCostCenter",
|
|
715
|
+
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.",
|
|
716
|
+
method: "POST",
|
|
717
|
+
path: "/v2/cost-centers",
|
|
718
|
+
params: [],
|
|
719
|
+
hasBody: true,
|
|
720
|
+
annotations: {
|
|
721
|
+
readOnlyHint: false,
|
|
722
|
+
destructiveHint: false,
|
|
723
|
+
idempotentHint: false,
|
|
724
|
+
openWorldHint: true
|
|
725
|
+
},
|
|
726
|
+
inputSchema: {
|
|
727
|
+
type: "object",
|
|
728
|
+
properties: {
|
|
729
|
+
body: {
|
|
730
|
+
$ref: "#/$defs/CreateCostCenterRequest",
|
|
731
|
+
type: "object"
|
|
732
|
+
}
|
|
733
|
+
},
|
|
734
|
+
required: ["body"],
|
|
735
|
+
$defs: {
|
|
736
|
+
CostCenterResource: {
|
|
737
|
+
type: "object",
|
|
738
|
+
additionalProperties: false,
|
|
739
|
+
required: ["id", "type"],
|
|
740
|
+
properties: {
|
|
741
|
+
id: {
|
|
742
|
+
type: "string",
|
|
743
|
+
minLength: 1,
|
|
744
|
+
examples: ["p9k2m4n6q8"]
|
|
745
|
+
},
|
|
746
|
+
type: {
|
|
747
|
+
$ref: "#/$defs/ResourceType"
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
},
|
|
751
|
+
CreateCostCenterRequest: {
|
|
752
|
+
type: "object",
|
|
753
|
+
additionalProperties: false,
|
|
754
|
+
required: ["value"],
|
|
755
|
+
properties: {
|
|
756
|
+
value: {
|
|
757
|
+
type: "string",
|
|
758
|
+
minLength: 1,
|
|
759
|
+
maxLength: 50,
|
|
760
|
+
pattern: "^\\s*\\S",
|
|
761
|
+
description: "Leading and trailing whitespace is trimmed.",
|
|
762
|
+
examples: ["team-ml"]
|
|
763
|
+
},
|
|
764
|
+
resources: {
|
|
765
|
+
type: "array",
|
|
766
|
+
description: "Resources to attribute to the new cost center.",
|
|
767
|
+
maxItems: 100,
|
|
768
|
+
items: {
|
|
769
|
+
$ref: "#/$defs/CostCenterResource"
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
ResourceType: {
|
|
775
|
+
type: "string",
|
|
776
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
777
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
},
|
|
613
782
|
{
|
|
614
783
|
name: "create-delegation",
|
|
615
784
|
title: "Create ECR delegation",
|
|
@@ -1138,6 +1307,7 @@ var generatedTools = [
|
|
|
1138
1307
|
type: "string",
|
|
1139
1308
|
minLength: 1,
|
|
1140
1309
|
maxLength: 191,
|
|
1310
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
1141
1311
|
description: "Human-readable name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.",
|
|
1142
1312
|
examples: ["training-data"]
|
|
1143
1313
|
}
|
|
@@ -1213,6 +1383,169 @@ var generatedTools = [
|
|
|
1213
1383
|
}
|
|
1214
1384
|
}
|
|
1215
1385
|
},
|
|
1386
|
+
{
|
|
1387
|
+
name: "create-organization-group",
|
|
1388
|
+
title: "Create organization group",
|
|
1389
|
+
operationId: "createOrganizationGroup",
|
|
1390
|
+
description: "Create a group in your current organization",
|
|
1391
|
+
method: "POST",
|
|
1392
|
+
path: "/v2/organization/groups",
|
|
1393
|
+
params: [],
|
|
1394
|
+
hasBody: true,
|
|
1395
|
+
annotations: {
|
|
1396
|
+
readOnlyHint: false,
|
|
1397
|
+
destructiveHint: false,
|
|
1398
|
+
idempotentHint: false,
|
|
1399
|
+
openWorldHint: true
|
|
1400
|
+
},
|
|
1401
|
+
inputSchema: {
|
|
1402
|
+
type: "object",
|
|
1403
|
+
properties: {
|
|
1404
|
+
body: {
|
|
1405
|
+
$ref: "#/$defs/CreateOrganizationGroupRequest",
|
|
1406
|
+
type: "object"
|
|
1407
|
+
}
|
|
1408
|
+
},
|
|
1409
|
+
required: ["body"],
|
|
1410
|
+
$defs: {
|
|
1411
|
+
CreateOrganizationGroupRequest: {
|
|
1412
|
+
type: "object",
|
|
1413
|
+
additionalProperties: false,
|
|
1414
|
+
required: ["name"],
|
|
1415
|
+
properties: {
|
|
1416
|
+
name: {
|
|
1417
|
+
type: "string",
|
|
1418
|
+
minLength: 1,
|
|
1419
|
+
maxLength: 191,
|
|
1420
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
1421
|
+
description: "Group name with at least one non-whitespace character; surrounding whitespace is trimmed.",
|
|
1422
|
+
examples: ["Engineering"]
|
|
1423
|
+
}
|
|
1424
|
+
}
|
|
1425
|
+
}
|
|
1426
|
+
}
|
|
1427
|
+
}
|
|
1428
|
+
},
|
|
1429
|
+
{
|
|
1430
|
+
name: "create-organization-invite",
|
|
1431
|
+
title: "Create organization invite",
|
|
1432
|
+
operationId: "createOrganizationInvite",
|
|
1433
|
+
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.",
|
|
1434
|
+
method: "POST",
|
|
1435
|
+
path: "/v2/organization/invites",
|
|
1436
|
+
params: [],
|
|
1437
|
+
hasBody: true,
|
|
1438
|
+
annotations: {
|
|
1439
|
+
readOnlyHint: false,
|
|
1440
|
+
destructiveHint: false,
|
|
1441
|
+
idempotentHint: false,
|
|
1442
|
+
openWorldHint: true
|
|
1443
|
+
},
|
|
1444
|
+
inputSchema: {
|
|
1445
|
+
type: "object",
|
|
1446
|
+
properties: {
|
|
1447
|
+
body: {
|
|
1448
|
+
$ref: "#/$defs/CreateOrganizationInviteRequest",
|
|
1449
|
+
type: "object"
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
required: ["body"],
|
|
1453
|
+
$defs: {
|
|
1454
|
+
CreateOrganizationInviteRequest: {
|
|
1455
|
+
type: "object",
|
|
1456
|
+
additionalProperties: false,
|
|
1457
|
+
required: ["email", "role"],
|
|
1458
|
+
properties: {
|
|
1459
|
+
email: {
|
|
1460
|
+
type: "string",
|
|
1461
|
+
format: "email",
|
|
1462
|
+
minLength: 1,
|
|
1463
|
+
maxLength: 254,
|
|
1464
|
+
description: "Address to invite, stored lowercased. The invitee accepts by signing in with a verified account on this address.",
|
|
1465
|
+
examples: ["new-member@example.com"]
|
|
1466
|
+
},
|
|
1467
|
+
role: {
|
|
1468
|
+
$ref: "#/$defs/OrganizationRoleInput"
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
},
|
|
1472
|
+
OrganizationRoleInput: {
|
|
1473
|
+
type: "object",
|
|
1474
|
+
description: "An organization role to assign, by ID.",
|
|
1475
|
+
additionalProperties: false,
|
|
1476
|
+
required: ["id"],
|
|
1477
|
+
properties: {
|
|
1478
|
+
id: {
|
|
1479
|
+
type: "string",
|
|
1480
|
+
minLength: 1,
|
|
1481
|
+
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.",
|
|
1482
|
+
examples: ["builtin:dev"]
|
|
1483
|
+
}
|
|
1484
|
+
}
|
|
1485
|
+
}
|
|
1486
|
+
}
|
|
1487
|
+
}
|
|
1488
|
+
},
|
|
1489
|
+
{
|
|
1490
|
+
name: "create-organization-role",
|
|
1491
|
+
title: "Create organization role",
|
|
1492
|
+
operationId: "createOrganizationRole",
|
|
1493
|
+
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.",
|
|
1494
|
+
method: "POST",
|
|
1495
|
+
path: "/v2/organization/roles",
|
|
1496
|
+
params: [],
|
|
1497
|
+
hasBody: true,
|
|
1498
|
+
annotations: {
|
|
1499
|
+
readOnlyHint: false,
|
|
1500
|
+
destructiveHint: false,
|
|
1501
|
+
idempotentHint: false,
|
|
1502
|
+
openWorldHint: true
|
|
1503
|
+
},
|
|
1504
|
+
inputSchema: {
|
|
1505
|
+
type: "object",
|
|
1506
|
+
properties: {
|
|
1507
|
+
body: {
|
|
1508
|
+
$ref: "#/$defs/CreateOrganizationRoleRequest",
|
|
1509
|
+
type: "object"
|
|
1510
|
+
}
|
|
1511
|
+
},
|
|
1512
|
+
required: ["body"],
|
|
1513
|
+
$defs: {
|
|
1514
|
+
CreateOrganizationRoleRequest: {
|
|
1515
|
+
type: "object",
|
|
1516
|
+
additionalProperties: false,
|
|
1517
|
+
required: ["name", "capabilities"],
|
|
1518
|
+
properties: {
|
|
1519
|
+
name: {
|
|
1520
|
+
$ref: "#/$defs/OrganizationRoleName"
|
|
1521
|
+
},
|
|
1522
|
+
capabilities: {
|
|
1523
|
+
$ref: "#/$defs/OrganizationRoleCapabilitiesInput"
|
|
1524
|
+
}
|
|
1525
|
+
}
|
|
1526
|
+
},
|
|
1527
|
+
OrganizationRoleCapabilitiesInput: {
|
|
1528
|
+
type: "array",
|
|
1529
|
+
description: "What the role grants, as `FAMILY:VERB` capabilities from `get-organization-role-capabilities`. The caller must hold every capability it lists.",
|
|
1530
|
+
minItems: 1,
|
|
1531
|
+
uniqueItems: true,
|
|
1532
|
+
items: {
|
|
1533
|
+
type: "string",
|
|
1534
|
+
pattern: "^[A-Z0-9_]+:[A-Z0-9_]+$"
|
|
1535
|
+
},
|
|
1536
|
+
examples: [["POD:VIEW"]]
|
|
1537
|
+
},
|
|
1538
|
+
OrganizationRoleName: {
|
|
1539
|
+
type: "string",
|
|
1540
|
+
minLength: 1,
|
|
1541
|
+
maxLength: 191,
|
|
1542
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
1543
|
+
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.",
|
|
1544
|
+
examples: ["Pod viewer"]
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
}
|
|
1548
|
+
},
|
|
1216
1549
|
{
|
|
1217
1550
|
name: "create-pod",
|
|
1218
1551
|
title: "Create Pod",
|
|
@@ -1333,6 +1666,7 @@ var generatedTools = [
|
|
|
1333
1666
|
count: {
|
|
1334
1667
|
type: "integer",
|
|
1335
1668
|
minimum: 1,
|
|
1669
|
+
maximum: 1024,
|
|
1336
1670
|
default: 1,
|
|
1337
1671
|
description: "Number of GPUs",
|
|
1338
1672
|
examples: [1]
|
|
@@ -1347,7 +1681,6 @@ var generatedTools = [
|
|
|
1347
1681
|
},
|
|
1348
1682
|
network: {
|
|
1349
1683
|
type: "array",
|
|
1350
|
-
maxItems: 1,
|
|
1351
1684
|
items: {
|
|
1352
1685
|
$ref: "#/$defs/NetworkMount"
|
|
1353
1686
|
}
|
|
@@ -1411,12 +1744,14 @@ var generatedTools = [
|
|
|
1411
1744
|
minRamPerGpu: {
|
|
1412
1745
|
type: "integer",
|
|
1413
1746
|
minimum: 1,
|
|
1747
|
+
maximum: 65536,
|
|
1414
1748
|
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.",
|
|
1415
1749
|
examples: [8]
|
|
1416
1750
|
},
|
|
1417
1751
|
minVcpuCountPerGpu: {
|
|
1418
1752
|
type: "integer",
|
|
1419
1753
|
minimum: 1,
|
|
1754
|
+
maximum: 4096,
|
|
1420
1755
|
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.",
|
|
1421
1756
|
examples: [2]
|
|
1422
1757
|
}
|
|
@@ -1507,7 +1842,7 @@ var generatedTools = [
|
|
|
1507
1842
|
type: "object",
|
|
1508
1843
|
required: ["volumeId"],
|
|
1509
1844
|
additionalProperties: false,
|
|
1510
|
-
description: "Reference to a GlobalVolume. Usage-billed, so it has no size.
|
|
1845
|
+
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`).",
|
|
1511
1846
|
properties: {
|
|
1512
1847
|
volumeId: {
|
|
1513
1848
|
type: "string",
|
|
@@ -1516,7 +1851,7 @@ var generatedTools = [
|
|
|
1516
1851
|
},
|
|
1517
1852
|
path: {
|
|
1518
1853
|
type: "string",
|
|
1519
|
-
description: "Mount path inside the container. Optional
|
|
1854
|
+
description: "Mount path inside the container. Optional; a default is chosen for you when omitted.",
|
|
1520
1855
|
examples: ["/data"]
|
|
1521
1856
|
}
|
|
1522
1857
|
}
|
|
@@ -1530,10 +1865,18 @@ var generatedTools = [
|
|
|
1530
1865
|
{
|
|
1531
1866
|
type: "object",
|
|
1532
1867
|
properties: {
|
|
1868
|
+
network: {
|
|
1869
|
+
type: "array",
|
|
1870
|
+
maxItems: 4,
|
|
1871
|
+
description: "Up to 4 network volumes, all in the pod's data center.",
|
|
1872
|
+
items: {
|
|
1873
|
+
$ref: "#/$defs/NetworkMount"
|
|
1874
|
+
}
|
|
1875
|
+
},
|
|
1533
1876
|
global: {
|
|
1534
1877
|
type: "array",
|
|
1535
1878
|
maxItems: 1,
|
|
1536
|
-
description: "At most one global volume, on GPU and CPU pods, with no data center constraint. Combinable with `network` but not with `persistent` (rejected):
|
|
1879
|
+
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`.",
|
|
1537
1880
|
items: {
|
|
1538
1881
|
$ref: "#/$defs/GlobalMount"
|
|
1539
1882
|
}
|
|
@@ -1547,7 +1890,7 @@ var generatedTools = [
|
|
|
1547
1890
|
type: "object",
|
|
1548
1891
|
required: ["volumeId", "path"],
|
|
1549
1892
|
additionalProperties: false,
|
|
1550
|
-
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods.
|
|
1893
|
+
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`).",
|
|
1551
1894
|
properties: {
|
|
1552
1895
|
volumeId: {
|
|
1553
1896
|
type: "string",
|
|
@@ -1570,7 +1913,7 @@ var generatedTools = [
|
|
|
1570
1913
|
size: {
|
|
1571
1914
|
type: "integer",
|
|
1572
1915
|
minimum: 10,
|
|
1573
|
-
description: "Host-local persistent storage in GB.
|
|
1916
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
1574
1917
|
examples: [20]
|
|
1575
1918
|
},
|
|
1576
1919
|
path: {
|
|
@@ -1867,7 +2210,7 @@ var generatedTools = [
|
|
|
1867
2210
|
size: {
|
|
1868
2211
|
type: "integer",
|
|
1869
2212
|
minimum: 10,
|
|
1870
|
-
description: "Host-local persistent storage in GB.
|
|
2213
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
1871
2214
|
examples: [20]
|
|
1872
2215
|
},
|
|
1873
2216
|
path: {
|
|
@@ -1928,13 +2271,12 @@ var generatedTools = [
|
|
|
1928
2271
|
}
|
|
1929
2272
|
},
|
|
1930
2273
|
{
|
|
1931
|
-
name: "delete-
|
|
1932
|
-
title: "Delete
|
|
1933
|
-
operationId: "
|
|
1934
|
-
description: "Delete a
|
|
1935
|
-
directoryDescription: "Delete a Serverless endpoint permanently and immediately.",
|
|
2274
|
+
name: "delete-cost-center",
|
|
2275
|
+
title: "Delete cost center",
|
|
2276
|
+
operationId: "deleteCostCenter",
|
|
2277
|
+
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.",
|
|
1936
2278
|
method: "DELETE",
|
|
1937
|
-
path: "/v2/
|
|
2279
|
+
path: "/v2/cost-centers/{id}",
|
|
1938
2280
|
params: [
|
|
1939
2281
|
{
|
|
1940
2282
|
name: "id",
|
|
@@ -1953,21 +2295,54 @@ var generatedTools = [
|
|
|
1953
2295
|
properties: {
|
|
1954
2296
|
id: {
|
|
1955
2297
|
type: "string",
|
|
1956
|
-
|
|
2298
|
+
minLength: 1,
|
|
2299
|
+
description: "Cost center identifier."
|
|
1957
2300
|
}
|
|
1958
2301
|
},
|
|
1959
2302
|
required: ["id"]
|
|
1960
2303
|
}
|
|
1961
2304
|
},
|
|
1962
2305
|
{
|
|
1963
|
-
name: "delete-
|
|
1964
|
-
title: "Delete
|
|
1965
|
-
operationId: "
|
|
1966
|
-
description: "Delete a
|
|
1967
|
-
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
2306
|
+
name: "delete-endpoint",
|
|
2307
|
+
title: "Delete endpoint",
|
|
2308
|
+
operationId: "deleteEndpoint",
|
|
2309
|
+
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.",
|
|
2310
|
+
directoryDescription: "Delete a Serverless endpoint permanently and immediately.",
|
|
2311
|
+
method: "DELETE",
|
|
2312
|
+
path: "/v2/serverless/{id}",
|
|
2313
|
+
params: [
|
|
2314
|
+
{
|
|
2315
|
+
name: "id",
|
|
2316
|
+
location: "path"
|
|
2317
|
+
}
|
|
2318
|
+
],
|
|
2319
|
+
hasBody: false,
|
|
2320
|
+
annotations: {
|
|
2321
|
+
readOnlyHint: false,
|
|
2322
|
+
destructiveHint: true,
|
|
2323
|
+
idempotentHint: true,
|
|
2324
|
+
openWorldHint: true
|
|
2325
|
+
},
|
|
2326
|
+
inputSchema: {
|
|
2327
|
+
type: "object",
|
|
2328
|
+
properties: {
|
|
2329
|
+
id: {
|
|
2330
|
+
type: "string",
|
|
2331
|
+
description: "Serverless endpoint identifier"
|
|
2332
|
+
}
|
|
2333
|
+
},
|
|
2334
|
+
required: ["id"]
|
|
2335
|
+
}
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
name: "delete-global-volume",
|
|
2339
|
+
title: "Delete global volume",
|
|
2340
|
+
operationId: "deleteGlobalVolume",
|
|
2341
|
+
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.",
|
|
2342
|
+
method: "DELETE",
|
|
2343
|
+
path: "/v2/global-volumes/{id}",
|
|
2344
|
+
params: [
|
|
2345
|
+
{
|
|
1971
2346
|
name: "id",
|
|
1972
2347
|
location: "path"
|
|
1973
2348
|
}
|
|
@@ -2021,6 +2396,131 @@ var generatedTools = [
|
|
|
2021
2396
|
required: ["id"]
|
|
2022
2397
|
}
|
|
2023
2398
|
},
|
|
2399
|
+
{
|
|
2400
|
+
name: "delete-organization-group",
|
|
2401
|
+
title: "Delete organization group",
|
|
2402
|
+
operationId: "deleteOrganizationGroup",
|
|
2403
|
+
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.",
|
|
2404
|
+
method: "DELETE",
|
|
2405
|
+
path: "/v2/organization/groups/{id}",
|
|
2406
|
+
params: [
|
|
2407
|
+
{
|
|
2408
|
+
name: "id",
|
|
2409
|
+
location: "path"
|
|
2410
|
+
}
|
|
2411
|
+
],
|
|
2412
|
+
hasBody: false,
|
|
2413
|
+
annotations: {
|
|
2414
|
+
readOnlyHint: false,
|
|
2415
|
+
destructiveHint: true,
|
|
2416
|
+
idempotentHint: true,
|
|
2417
|
+
openWorldHint: true
|
|
2418
|
+
},
|
|
2419
|
+
inputSchema: {
|
|
2420
|
+
type: "object",
|
|
2421
|
+
properties: {
|
|
2422
|
+
id: {
|
|
2423
|
+
type: "string",
|
|
2424
|
+
minLength: 1,
|
|
2425
|
+
description: "Group ID."
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
required: ["id"]
|
|
2429
|
+
}
|
|
2430
|
+
},
|
|
2431
|
+
{
|
|
2432
|
+
name: "delete-organization-invite",
|
|
2433
|
+
title: "Delete organization invite",
|
|
2434
|
+
operationId: "deleteOrganizationInvite",
|
|
2435
|
+
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.",
|
|
2436
|
+
method: "DELETE",
|
|
2437
|
+
path: "/v2/organization/invites/{id}",
|
|
2438
|
+
params: [
|
|
2439
|
+
{
|
|
2440
|
+
name: "id",
|
|
2441
|
+
location: "path"
|
|
2442
|
+
}
|
|
2443
|
+
],
|
|
2444
|
+
hasBody: false,
|
|
2445
|
+
annotations: {
|
|
2446
|
+
readOnlyHint: false,
|
|
2447
|
+
destructiveHint: true,
|
|
2448
|
+
idempotentHint: true,
|
|
2449
|
+
openWorldHint: true
|
|
2450
|
+
},
|
|
2451
|
+
inputSchema: {
|
|
2452
|
+
type: "object",
|
|
2453
|
+
properties: {
|
|
2454
|
+
id: {
|
|
2455
|
+
type: "string",
|
|
2456
|
+
description: "Invite identifier"
|
|
2457
|
+
}
|
|
2458
|
+
},
|
|
2459
|
+
required: ["id"]
|
|
2460
|
+
}
|
|
2461
|
+
},
|
|
2462
|
+
{
|
|
2463
|
+
name: "delete-organization-role",
|
|
2464
|
+
title: "Delete organization role",
|
|
2465
|
+
operationId: "deleteOrganizationRole",
|
|
2466
|
+
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.",
|
|
2467
|
+
method: "DELETE",
|
|
2468
|
+
path: "/v2/organization/roles/{id}",
|
|
2469
|
+
params: [
|
|
2470
|
+
{
|
|
2471
|
+
name: "id",
|
|
2472
|
+
location: "path"
|
|
2473
|
+
}
|
|
2474
|
+
],
|
|
2475
|
+
hasBody: false,
|
|
2476
|
+
annotations: {
|
|
2477
|
+
readOnlyHint: false,
|
|
2478
|
+
destructiveHint: true,
|
|
2479
|
+
idempotentHint: true,
|
|
2480
|
+
openWorldHint: true
|
|
2481
|
+
},
|
|
2482
|
+
inputSchema: {
|
|
2483
|
+
type: "object",
|
|
2484
|
+
properties: {
|
|
2485
|
+
id: {
|
|
2486
|
+
type: "string",
|
|
2487
|
+
description: "Role identifier"
|
|
2488
|
+
}
|
|
2489
|
+
},
|
|
2490
|
+
required: ["id"]
|
|
2491
|
+
}
|
|
2492
|
+
},
|
|
2493
|
+
{
|
|
2494
|
+
name: "delete-organization-user",
|
|
2495
|
+
title: "Delete organization user",
|
|
2496
|
+
operationId: "deleteOrganizationUser",
|
|
2497
|
+
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.",
|
|
2498
|
+
method: "DELETE",
|
|
2499
|
+
path: "/v2/organization/users/{id}",
|
|
2500
|
+
params: [
|
|
2501
|
+
{
|
|
2502
|
+
name: "id",
|
|
2503
|
+
location: "path"
|
|
2504
|
+
}
|
|
2505
|
+
],
|
|
2506
|
+
hasBody: false,
|
|
2507
|
+
annotations: {
|
|
2508
|
+
readOnlyHint: false,
|
|
2509
|
+
destructiveHint: true,
|
|
2510
|
+
idempotentHint: true,
|
|
2511
|
+
openWorldHint: true
|
|
2512
|
+
},
|
|
2513
|
+
inputSchema: {
|
|
2514
|
+
type: "object",
|
|
2515
|
+
properties: {
|
|
2516
|
+
id: {
|
|
2517
|
+
type: "string",
|
|
2518
|
+
description: "User identifier"
|
|
2519
|
+
}
|
|
2520
|
+
},
|
|
2521
|
+
required: ["id"]
|
|
2522
|
+
}
|
|
2523
|
+
},
|
|
2024
2524
|
{
|
|
2025
2525
|
name: "delete-pod",
|
|
2026
2526
|
title: "Delete Pod",
|
|
@@ -2146,6 +2646,63 @@ var generatedTools = [
|
|
|
2146
2646
|
required: ["id"]
|
|
2147
2647
|
}
|
|
2148
2648
|
},
|
|
2649
|
+
{
|
|
2650
|
+
name: "detach-cost-center-resource",
|
|
2651
|
+
title: "Detach cost center resource",
|
|
2652
|
+
operationId: "detachCostCenterResource",
|
|
2653
|
+
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.",
|
|
2654
|
+
method: "DELETE",
|
|
2655
|
+
path: "/v2/cost-centers/{id}/{resourceType}/{resourceId}",
|
|
2656
|
+
params: [
|
|
2657
|
+
{
|
|
2658
|
+
name: "id",
|
|
2659
|
+
location: "path"
|
|
2660
|
+
},
|
|
2661
|
+
{
|
|
2662
|
+
name: "resourceType",
|
|
2663
|
+
location: "path"
|
|
2664
|
+
},
|
|
2665
|
+
{
|
|
2666
|
+
name: "resourceId",
|
|
2667
|
+
location: "path"
|
|
2668
|
+
}
|
|
2669
|
+
],
|
|
2670
|
+
hasBody: false,
|
|
2671
|
+
annotations: {
|
|
2672
|
+
readOnlyHint: false,
|
|
2673
|
+
destructiveHint: true,
|
|
2674
|
+
idempotentHint: true,
|
|
2675
|
+
openWorldHint: true
|
|
2676
|
+
},
|
|
2677
|
+
inputSchema: {
|
|
2678
|
+
type: "object",
|
|
2679
|
+
properties: {
|
|
2680
|
+
id: {
|
|
2681
|
+
type: "string",
|
|
2682
|
+
minLength: 1,
|
|
2683
|
+
description: "Cost center identifier."
|
|
2684
|
+
},
|
|
2685
|
+
resourceType: {
|
|
2686
|
+
$ref: "#/$defs/ResourceType",
|
|
2687
|
+
description: "Kind of resource.",
|
|
2688
|
+
type: "string"
|
|
2689
|
+
},
|
|
2690
|
+
resourceId: {
|
|
2691
|
+
type: "string",
|
|
2692
|
+
minLength: 1,
|
|
2693
|
+
description: "Resource identifier."
|
|
2694
|
+
}
|
|
2695
|
+
},
|
|
2696
|
+
required: ["id", "resourceType", "resourceId"],
|
|
2697
|
+
$defs: {
|
|
2698
|
+
ResourceType: {
|
|
2699
|
+
type: "string",
|
|
2700
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
2701
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
2702
|
+
}
|
|
2703
|
+
}
|
|
2704
|
+
}
|
|
2705
|
+
},
|
|
2149
2706
|
{
|
|
2150
2707
|
name: "get-cluster",
|
|
2151
2708
|
title: "Get cluster",
|
|
@@ -2177,6 +2734,38 @@ var generatedTools = [
|
|
|
2177
2734
|
required: ["id"]
|
|
2178
2735
|
}
|
|
2179
2736
|
},
|
|
2737
|
+
{
|
|
2738
|
+
name: "get-cost-center",
|
|
2739
|
+
title: "Get cost center",
|
|
2740
|
+
operationId: "getCostCenter",
|
|
2741
|
+
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.",
|
|
2742
|
+
method: "GET",
|
|
2743
|
+
path: "/v2/cost-centers/{id}",
|
|
2744
|
+
params: [
|
|
2745
|
+
{
|
|
2746
|
+
name: "id",
|
|
2747
|
+
location: "path"
|
|
2748
|
+
}
|
|
2749
|
+
],
|
|
2750
|
+
hasBody: false,
|
|
2751
|
+
annotations: {
|
|
2752
|
+
readOnlyHint: true,
|
|
2753
|
+
destructiveHint: false,
|
|
2754
|
+
idempotentHint: true,
|
|
2755
|
+
openWorldHint: true
|
|
2756
|
+
},
|
|
2757
|
+
inputSchema: {
|
|
2758
|
+
type: "object",
|
|
2759
|
+
properties: {
|
|
2760
|
+
id: {
|
|
2761
|
+
type: "string",
|
|
2762
|
+
minLength: 1,
|
|
2763
|
+
description: "Cost center identifier."
|
|
2764
|
+
}
|
|
2765
|
+
},
|
|
2766
|
+
required: ["id"]
|
|
2767
|
+
}
|
|
2768
|
+
},
|
|
2180
2769
|
{
|
|
2181
2770
|
name: "get-cpu-type",
|
|
2182
2771
|
title: "Get CPU type",
|
|
@@ -2329,27 +2918,252 @@ var generatedTools = [
|
|
|
2329
2918
|
properties: {
|
|
2330
2919
|
id: {
|
|
2331
2920
|
type: "string",
|
|
2332
|
-
description: "Serverless endpoint identifier"
|
|
2921
|
+
description: "Serverless endpoint identifier"
|
|
2922
|
+
}
|
|
2923
|
+
},
|
|
2924
|
+
required: ["id"]
|
|
2925
|
+
}
|
|
2926
|
+
},
|
|
2927
|
+
{
|
|
2928
|
+
name: "get-endpoint-build",
|
|
2929
|
+
title: "Get endpoint build",
|
|
2930
|
+
operationId: "getEndpointBuild",
|
|
2931
|
+
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.",
|
|
2932
|
+
method: "GET",
|
|
2933
|
+
path: "/v2/serverless/{id}/builds/{buildId}",
|
|
2934
|
+
params: [
|
|
2935
|
+
{
|
|
2936
|
+
name: "id",
|
|
2937
|
+
location: "path"
|
|
2938
|
+
},
|
|
2939
|
+
{
|
|
2940
|
+
name: "buildId",
|
|
2941
|
+
location: "path"
|
|
2942
|
+
}
|
|
2943
|
+
],
|
|
2944
|
+
hasBody: false,
|
|
2945
|
+
annotations: {
|
|
2946
|
+
readOnlyHint: true,
|
|
2947
|
+
destructiveHint: false,
|
|
2948
|
+
idempotentHint: true,
|
|
2949
|
+
openWorldHint: true
|
|
2950
|
+
},
|
|
2951
|
+
inputSchema: {
|
|
2952
|
+
type: "object",
|
|
2953
|
+
properties: {
|
|
2954
|
+
id: {
|
|
2955
|
+
type: "string",
|
|
2956
|
+
description: "Serverless endpoint identifier"
|
|
2957
|
+
},
|
|
2958
|
+
buildId: {
|
|
2959
|
+
type: "string",
|
|
2960
|
+
description: "GitHub build identifier (from `list-endpoint-builds` or a release's `buildId`)"
|
|
2961
|
+
}
|
|
2962
|
+
},
|
|
2963
|
+
required: ["id", "buildId"]
|
|
2964
|
+
}
|
|
2965
|
+
},
|
|
2966
|
+
{
|
|
2967
|
+
name: "get-endpoint-cold-start-metrics",
|
|
2968
|
+
title: "Get endpoint cold start metrics",
|
|
2969
|
+
operationId: "getEndpointColdStartMetrics",
|
|
2970
|
+
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.",
|
|
2971
|
+
method: "GET",
|
|
2972
|
+
path: "/v2/serverless/{id}/metrics/cold-starts",
|
|
2973
|
+
params: [
|
|
2974
|
+
{
|
|
2975
|
+
name: "id",
|
|
2976
|
+
location: "path"
|
|
2977
|
+
},
|
|
2978
|
+
{
|
|
2979
|
+
name: "startTime",
|
|
2980
|
+
location: "query"
|
|
2981
|
+
},
|
|
2982
|
+
{
|
|
2983
|
+
name: "endTime",
|
|
2984
|
+
location: "query"
|
|
2985
|
+
},
|
|
2986
|
+
{
|
|
2987
|
+
name: "interval",
|
|
2988
|
+
location: "query"
|
|
2989
|
+
},
|
|
2990
|
+
{
|
|
2991
|
+
name: "cursor",
|
|
2992
|
+
location: "query"
|
|
2993
|
+
},
|
|
2994
|
+
{
|
|
2995
|
+
name: "limit",
|
|
2996
|
+
location: "query"
|
|
2997
|
+
}
|
|
2998
|
+
],
|
|
2999
|
+
hasBody: false,
|
|
3000
|
+
annotations: {
|
|
3001
|
+
readOnlyHint: true,
|
|
3002
|
+
destructiveHint: false,
|
|
3003
|
+
idempotentHint: true,
|
|
3004
|
+
openWorldHint: true
|
|
3005
|
+
},
|
|
3006
|
+
inputSchema: {
|
|
3007
|
+
type: "object",
|
|
3008
|
+
properties: {
|
|
3009
|
+
id: {
|
|
3010
|
+
type: "string",
|
|
3011
|
+
description: "Serverless endpoint identifier"
|
|
3012
|
+
},
|
|
3013
|
+
startTime: {
|
|
3014
|
+
type: "string",
|
|
3015
|
+
format: "date-time",
|
|
3016
|
+
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."
|
|
3017
|
+
},
|
|
3018
|
+
endTime: {
|
|
3019
|
+
type: "string",
|
|
3020
|
+
format: "date-time",
|
|
3021
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
3022
|
+
},
|
|
3023
|
+
interval: {
|
|
3024
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
3025
|
+
description: "Bucket size. Defaults to 1h.",
|
|
3026
|
+
type: "string"
|
|
3027
|
+
},
|
|
3028
|
+
cursor: {
|
|
3029
|
+
type: "string",
|
|
3030
|
+
minLength: 1,
|
|
3031
|
+
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."
|
|
3032
|
+
},
|
|
3033
|
+
limit: {
|
|
3034
|
+
type: "integer",
|
|
3035
|
+
minimum: 1,
|
|
3036
|
+
maximum: 1e3,
|
|
3037
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3038
|
+
}
|
|
3039
|
+
},
|
|
3040
|
+
required: ["id"],
|
|
3041
|
+
$defs: {
|
|
3042
|
+
EndpointMetricsInterval: {
|
|
3043
|
+
type: "string",
|
|
3044
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
3045
|
+
default: "1h",
|
|
3046
|
+
description: "Bucket size for endpoint metrics."
|
|
3047
|
+
}
|
|
3048
|
+
}
|
|
3049
|
+
}
|
|
3050
|
+
},
|
|
3051
|
+
{
|
|
3052
|
+
name: "get-endpoint-request-metrics",
|
|
3053
|
+
title: "Get endpoint request metrics",
|
|
3054
|
+
operationId: "getEndpointRequestMetrics",
|
|
3055
|
+
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.",
|
|
3056
|
+
method: "GET",
|
|
3057
|
+
path: "/v2/serverless/{id}/metrics/requests",
|
|
3058
|
+
params: [
|
|
3059
|
+
{
|
|
3060
|
+
name: "id",
|
|
3061
|
+
location: "path"
|
|
3062
|
+
},
|
|
3063
|
+
{
|
|
3064
|
+
name: "startTime",
|
|
3065
|
+
location: "query"
|
|
3066
|
+
},
|
|
3067
|
+
{
|
|
3068
|
+
name: "endTime",
|
|
3069
|
+
location: "query"
|
|
3070
|
+
},
|
|
3071
|
+
{
|
|
3072
|
+
name: "interval",
|
|
3073
|
+
location: "query"
|
|
3074
|
+
},
|
|
3075
|
+
{
|
|
3076
|
+
name: "cursor",
|
|
3077
|
+
location: "query"
|
|
3078
|
+
},
|
|
3079
|
+
{
|
|
3080
|
+
name: "limit",
|
|
3081
|
+
location: "query"
|
|
3082
|
+
}
|
|
3083
|
+
],
|
|
3084
|
+
hasBody: false,
|
|
3085
|
+
annotations: {
|
|
3086
|
+
readOnlyHint: true,
|
|
3087
|
+
destructiveHint: false,
|
|
3088
|
+
idempotentHint: true,
|
|
3089
|
+
openWorldHint: true
|
|
3090
|
+
},
|
|
3091
|
+
inputSchema: {
|
|
3092
|
+
type: "object",
|
|
3093
|
+
properties: {
|
|
3094
|
+
id: {
|
|
3095
|
+
type: "string",
|
|
3096
|
+
description: "Serverless endpoint identifier"
|
|
3097
|
+
},
|
|
3098
|
+
startTime: {
|
|
3099
|
+
type: "string",
|
|
3100
|
+
format: "date-time",
|
|
3101
|
+
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."
|
|
3102
|
+
},
|
|
3103
|
+
endTime: {
|
|
3104
|
+
type: "string",
|
|
3105
|
+
format: "date-time",
|
|
3106
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
3107
|
+
},
|
|
3108
|
+
interval: {
|
|
3109
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
3110
|
+
description: "Bucket size. Defaults to 1h.",
|
|
3111
|
+
type: "string"
|
|
3112
|
+
},
|
|
3113
|
+
cursor: {
|
|
3114
|
+
type: "string",
|
|
3115
|
+
minLength: 1,
|
|
3116
|
+
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."
|
|
3117
|
+
},
|
|
3118
|
+
limit: {
|
|
3119
|
+
type: "integer",
|
|
3120
|
+
minimum: 1,
|
|
3121
|
+
maximum: 1e3,
|
|
3122
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3123
|
+
}
|
|
3124
|
+
},
|
|
3125
|
+
required: ["id"],
|
|
3126
|
+
$defs: {
|
|
3127
|
+
EndpointMetricsInterval: {
|
|
3128
|
+
type: "string",
|
|
3129
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
3130
|
+
default: "1h",
|
|
3131
|
+
description: "Bucket size for endpoint metrics."
|
|
2333
3132
|
}
|
|
2334
|
-
}
|
|
2335
|
-
required: ["id"]
|
|
3133
|
+
}
|
|
2336
3134
|
}
|
|
2337
3135
|
},
|
|
2338
3136
|
{
|
|
2339
|
-
name: "get-endpoint-
|
|
2340
|
-
title: "Get endpoint
|
|
2341
|
-
operationId: "
|
|
2342
|
-
description: "Get
|
|
3137
|
+
name: "get-endpoint-worker-metrics",
|
|
3138
|
+
title: "Get endpoint worker metrics",
|
|
3139
|
+
operationId: "getEndpointWorkerMetrics",
|
|
3140
|
+
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.",
|
|
2343
3141
|
method: "GET",
|
|
2344
|
-
path: "/v2/serverless/{id}/
|
|
3142
|
+
path: "/v2/serverless/{id}/metrics/workers",
|
|
2345
3143
|
params: [
|
|
2346
3144
|
{
|
|
2347
3145
|
name: "id",
|
|
2348
3146
|
location: "path"
|
|
2349
3147
|
},
|
|
2350
3148
|
{
|
|
2351
|
-
name: "
|
|
2352
|
-
location: "
|
|
3149
|
+
name: "startTime",
|
|
3150
|
+
location: "query"
|
|
3151
|
+
},
|
|
3152
|
+
{
|
|
3153
|
+
name: "endTime",
|
|
3154
|
+
location: "query"
|
|
3155
|
+
},
|
|
3156
|
+
{
|
|
3157
|
+
name: "interval",
|
|
3158
|
+
location: "query"
|
|
3159
|
+
},
|
|
3160
|
+
{
|
|
3161
|
+
name: "cursor",
|
|
3162
|
+
location: "query"
|
|
3163
|
+
},
|
|
3164
|
+
{
|
|
3165
|
+
name: "limit",
|
|
3166
|
+
location: "query"
|
|
2353
3167
|
}
|
|
2354
3168
|
],
|
|
2355
3169
|
hasBody: false,
|
|
@@ -2366,12 +3180,42 @@ var generatedTools = [
|
|
|
2366
3180
|
type: "string",
|
|
2367
3181
|
description: "Serverless endpoint identifier"
|
|
2368
3182
|
},
|
|
2369
|
-
|
|
3183
|
+
startTime: {
|
|
2370
3184
|
type: "string",
|
|
2371
|
-
|
|
3185
|
+
format: "date-time",
|
|
3186
|
+
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."
|
|
3187
|
+
},
|
|
3188
|
+
endTime: {
|
|
3189
|
+
type: "string",
|
|
3190
|
+
format: "date-time",
|
|
3191
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
3192
|
+
},
|
|
3193
|
+
interval: {
|
|
3194
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
3195
|
+
description: "Bucket size. Defaults to 1h.",
|
|
3196
|
+
type: "string"
|
|
3197
|
+
},
|
|
3198
|
+
cursor: {
|
|
3199
|
+
type: "string",
|
|
3200
|
+
minLength: 1,
|
|
3201
|
+
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."
|
|
3202
|
+
},
|
|
3203
|
+
limit: {
|
|
3204
|
+
type: "integer",
|
|
3205
|
+
minimum: 1,
|
|
3206
|
+
maximum: 1e3,
|
|
3207
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
2372
3208
|
}
|
|
2373
3209
|
},
|
|
2374
|
-
required: ["id",
|
|
3210
|
+
required: ["id"],
|
|
3211
|
+
$defs: {
|
|
3212
|
+
EndpointMetricsInterval: {
|
|
3213
|
+
type: "string",
|
|
3214
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
3215
|
+
default: "1h",
|
|
3216
|
+
description: "Bucket size for endpoint metrics."
|
|
3217
|
+
}
|
|
3218
|
+
}
|
|
2375
3219
|
}
|
|
2376
3220
|
},
|
|
2377
3221
|
{
|
|
@@ -2486,7 +3330,7 @@ var generatedTools = [
|
|
|
2486
3330
|
},
|
|
2487
3331
|
cloud: {
|
|
2488
3332
|
$ref: "#/$defs/GpuCloudFilter",
|
|
2489
|
-
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY.
|
|
3333
|
+
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Default when omitted: SECURE.",
|
|
2490
3334
|
type: "string"
|
|
2491
3335
|
},
|
|
2492
3336
|
countryCodes: {
|
|
@@ -2582,6 +3426,146 @@ var generatedTools = [
|
|
|
2582
3426
|
properties: {}
|
|
2583
3427
|
}
|
|
2584
3428
|
},
|
|
3429
|
+
{
|
|
3430
|
+
name: "get-organization-group",
|
|
3431
|
+
title: "Get organization group",
|
|
3432
|
+
operationId: "getOrganizationGroup",
|
|
3433
|
+
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.",
|
|
3434
|
+
method: "GET",
|
|
3435
|
+
path: "/v2/organization/groups/{id}",
|
|
3436
|
+
params: [
|
|
3437
|
+
{
|
|
3438
|
+
name: "id",
|
|
3439
|
+
location: "path"
|
|
3440
|
+
}
|
|
3441
|
+
],
|
|
3442
|
+
hasBody: false,
|
|
3443
|
+
annotations: {
|
|
3444
|
+
readOnlyHint: true,
|
|
3445
|
+
destructiveHint: false,
|
|
3446
|
+
idempotentHint: true,
|
|
3447
|
+
openWorldHint: true
|
|
3448
|
+
},
|
|
3449
|
+
inputSchema: {
|
|
3450
|
+
type: "object",
|
|
3451
|
+
properties: {
|
|
3452
|
+
id: {
|
|
3453
|
+
type: "string",
|
|
3454
|
+
minLength: 1,
|
|
3455
|
+
description: "Group ID."
|
|
3456
|
+
}
|
|
3457
|
+
},
|
|
3458
|
+
required: ["id"]
|
|
3459
|
+
}
|
|
3460
|
+
},
|
|
3461
|
+
{
|
|
3462
|
+
name: "get-organization-invite",
|
|
3463
|
+
title: "Get organization invite",
|
|
3464
|
+
operationId: "getOrganizationInvite",
|
|
3465
|
+
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.",
|
|
3466
|
+
method: "GET",
|
|
3467
|
+
path: "/v2/organization/invites/{id}",
|
|
3468
|
+
params: [
|
|
3469
|
+
{
|
|
3470
|
+
name: "id",
|
|
3471
|
+
location: "path"
|
|
3472
|
+
}
|
|
3473
|
+
],
|
|
3474
|
+
hasBody: false,
|
|
3475
|
+
annotations: {
|
|
3476
|
+
readOnlyHint: true,
|
|
3477
|
+
destructiveHint: false,
|
|
3478
|
+
idempotentHint: true,
|
|
3479
|
+
openWorldHint: true
|
|
3480
|
+
},
|
|
3481
|
+
inputSchema: {
|
|
3482
|
+
type: "object",
|
|
3483
|
+
properties: {
|
|
3484
|
+
id: {
|
|
3485
|
+
type: "string",
|
|
3486
|
+
description: "Invite identifier"
|
|
3487
|
+
}
|
|
3488
|
+
},
|
|
3489
|
+
required: ["id"]
|
|
3490
|
+
}
|
|
3491
|
+
},
|
|
3492
|
+
{
|
|
3493
|
+
name: "get-organization-role",
|
|
3494
|
+
title: "Get organization role",
|
|
3495
|
+
operationId: "getOrganizationRole",
|
|
3496
|
+
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.",
|
|
3497
|
+
method: "GET",
|
|
3498
|
+
path: "/v2/organization/roles/{id}",
|
|
3499
|
+
params: [
|
|
3500
|
+
{
|
|
3501
|
+
name: "id",
|
|
3502
|
+
location: "path"
|
|
3503
|
+
}
|
|
3504
|
+
],
|
|
3505
|
+
hasBody: false,
|
|
3506
|
+
annotations: {
|
|
3507
|
+
readOnlyHint: true,
|
|
3508
|
+
destructiveHint: false,
|
|
3509
|
+
idempotentHint: true,
|
|
3510
|
+
openWorldHint: true
|
|
3511
|
+
},
|
|
3512
|
+
inputSchema: {
|
|
3513
|
+
type: "object",
|
|
3514
|
+
properties: {
|
|
3515
|
+
id: {
|
|
3516
|
+
type: "string",
|
|
3517
|
+
description: "Role identifier"
|
|
3518
|
+
}
|
|
3519
|
+
},
|
|
3520
|
+
required: ["id"]
|
|
3521
|
+
}
|
|
3522
|
+
},
|
|
3523
|
+
{
|
|
3524
|
+
name: "get-organization-role-capabilities",
|
|
3525
|
+
title: "Get organization role capabilities",
|
|
3526
|
+
operationId: "getOrganizationRoleCapabilities",
|
|
3527
|
+
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.",
|
|
3528
|
+
method: "GET",
|
|
3529
|
+
path: "/v2/organization/roles/capabilities",
|
|
3530
|
+
params: [
|
|
3531
|
+
{
|
|
3532
|
+
name: "family",
|
|
3533
|
+
location: "query",
|
|
3534
|
+
explode: false
|
|
3535
|
+
},
|
|
3536
|
+
{
|
|
3537
|
+
name: "verb",
|
|
3538
|
+
location: "query",
|
|
3539
|
+
explode: false
|
|
3540
|
+
}
|
|
3541
|
+
],
|
|
3542
|
+
hasBody: false,
|
|
3543
|
+
annotations: {
|
|
3544
|
+
readOnlyHint: true,
|
|
3545
|
+
destructiveHint: false,
|
|
3546
|
+
idempotentHint: true,
|
|
3547
|
+
openWorldHint: true
|
|
3548
|
+
},
|
|
3549
|
+
inputSchema: {
|
|
3550
|
+
type: "object",
|
|
3551
|
+
properties: {
|
|
3552
|
+
family: {
|
|
3553
|
+
type: "array",
|
|
3554
|
+
items: {
|
|
3555
|
+
type: "string"
|
|
3556
|
+
},
|
|
3557
|
+
description: "Only return these capability families, matched exactly. Comma-separated; a family matching any listed value is returned. An empty value is ignored."
|
|
3558
|
+
},
|
|
3559
|
+
verb: {
|
|
3560
|
+
type: "array",
|
|
3561
|
+
items: {
|
|
3562
|
+
type: "string"
|
|
3563
|
+
},
|
|
3564
|
+
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."
|
|
3565
|
+
}
|
|
3566
|
+
}
|
|
3567
|
+
}
|
|
3568
|
+
},
|
|
2585
3569
|
{
|
|
2586
3570
|
name: "get-organization-user",
|
|
2587
3571
|
title: "Get organization user",
|
|
@@ -2961,46 +3945,126 @@ var generatedTools = [
|
|
|
2961
3945
|
},
|
|
2962
3946
|
endTime: {
|
|
2963
3947
|
type: "string",
|
|
2964
|
-
format: "date-time",
|
|
2965
|
-
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."
|
|
2966
|
-
},
|
|
2967
|
-
bucketSize: {
|
|
2968
|
-
$ref: "#/$defs/BillingBucketSize",
|
|
2969
|
-
description: "Length of each billing time bucket. Defaults to day.",
|
|
2970
|
-
type: "string"
|
|
3948
|
+
format: "date-time",
|
|
3949
|
+
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."
|
|
3950
|
+
},
|
|
3951
|
+
bucketSize: {
|
|
3952
|
+
$ref: "#/$defs/BillingBucketSize",
|
|
3953
|
+
description: "Length of each billing time bucket. Defaults to day.",
|
|
3954
|
+
type: "string"
|
|
3955
|
+
},
|
|
3956
|
+
lastN: {
|
|
3957
|
+
type: "integer",
|
|
3958
|
+
minimum: 1,
|
|
3959
|
+
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".'
|
|
3960
|
+
},
|
|
3961
|
+
clusterId: {
|
|
3962
|
+
type: "string",
|
|
3963
|
+
description: "Filter to a specific cluster."
|
|
3964
|
+
}
|
|
3965
|
+
},
|
|
3966
|
+
$defs: {
|
|
3967
|
+
BillingBucketSize: {
|
|
3968
|
+
type: "string",
|
|
3969
|
+
enum: ["hour", "day", "week", "month", "year"],
|
|
3970
|
+
default: "day",
|
|
3971
|
+
description: "Length of each billing time bucket.",
|
|
3972
|
+
examples: ["day"]
|
|
3973
|
+
}
|
|
3974
|
+
}
|
|
3975
|
+
}
|
|
3976
|
+
},
|
|
3977
|
+
{
|
|
3978
|
+
name: "list-cluster-pods",
|
|
3979
|
+
title: "List cluster Pods",
|
|
3980
|
+
operationId: "listClusterPods",
|
|
3981
|
+
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.",
|
|
3982
|
+
method: "GET",
|
|
3983
|
+
path: "/v2/clusters/{id}/pods",
|
|
3984
|
+
params: [
|
|
3985
|
+
{
|
|
3986
|
+
name: "id",
|
|
3987
|
+
location: "path"
|
|
3988
|
+
}
|
|
3989
|
+
],
|
|
3990
|
+
hasBody: false,
|
|
3991
|
+
annotations: {
|
|
3992
|
+
readOnlyHint: true,
|
|
3993
|
+
destructiveHint: false,
|
|
3994
|
+
idempotentHint: true,
|
|
3995
|
+
openWorldHint: true
|
|
3996
|
+
},
|
|
3997
|
+
inputSchema: {
|
|
3998
|
+
type: "object",
|
|
3999
|
+
properties: {
|
|
4000
|
+
id: {
|
|
4001
|
+
type: "string",
|
|
4002
|
+
description: "Cluster identifier"
|
|
4003
|
+
}
|
|
4004
|
+
},
|
|
4005
|
+
required: ["id"]
|
|
4006
|
+
}
|
|
4007
|
+
},
|
|
4008
|
+
{
|
|
4009
|
+
name: "list-clusters",
|
|
4010
|
+
title: "List clusters",
|
|
4011
|
+
operationId: "listClusters",
|
|
4012
|
+
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.",
|
|
4013
|
+
method: "GET",
|
|
4014
|
+
path: "/v2/clusters",
|
|
4015
|
+
params: [
|
|
4016
|
+
{
|
|
4017
|
+
name: "cursor",
|
|
4018
|
+
location: "query"
|
|
4019
|
+
},
|
|
4020
|
+
{
|
|
4021
|
+
name: "limit",
|
|
4022
|
+
location: "query"
|
|
4023
|
+
}
|
|
4024
|
+
],
|
|
4025
|
+
hasBody: false,
|
|
4026
|
+
annotations: {
|
|
4027
|
+
readOnlyHint: true,
|
|
4028
|
+
destructiveHint: false,
|
|
4029
|
+
idempotentHint: true,
|
|
4030
|
+
openWorldHint: true
|
|
4031
|
+
},
|
|
4032
|
+
inputSchema: {
|
|
4033
|
+
type: "object",
|
|
4034
|
+
properties: {
|
|
4035
|
+
cursor: {
|
|
4036
|
+
type: "string",
|
|
4037
|
+
minLength: 1,
|
|
4038
|
+
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."
|
|
2971
4039
|
},
|
|
2972
|
-
|
|
4040
|
+
limit: {
|
|
2973
4041
|
type: "integer",
|
|
2974
4042
|
minimum: 1,
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
clusterId: {
|
|
2978
|
-
type: "string",
|
|
2979
|
-
description: "Filter to a specific cluster."
|
|
2980
|
-
}
|
|
2981
|
-
},
|
|
2982
|
-
$defs: {
|
|
2983
|
-
BillingBucketSize: {
|
|
2984
|
-
type: "string",
|
|
2985
|
-
enum: ["hour", "day", "week", "month", "year"],
|
|
2986
|
-
default: "day",
|
|
2987
|
-
description: "Length of each billing time bucket.",
|
|
2988
|
-
examples: ["day"]
|
|
4043
|
+
maximum: 1e3,
|
|
4044
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
2989
4045
|
}
|
|
2990
4046
|
}
|
|
2991
4047
|
}
|
|
2992
4048
|
},
|
|
2993
4049
|
{
|
|
2994
|
-
name: "list-
|
|
2995
|
-
title: "List
|
|
2996
|
-
operationId: "
|
|
2997
|
-
description: "List a
|
|
4050
|
+
name: "list-cost-center-resources",
|
|
4051
|
+
title: "List cost center resources",
|
|
4052
|
+
operationId: "listCostCenterResources",
|
|
4053
|
+
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.",
|
|
2998
4054
|
method: "GET",
|
|
2999
|
-
path: "/v2/
|
|
4055
|
+
path: "/v2/cost-centers/{id}/resources",
|
|
3000
4056
|
params: [
|
|
3001
4057
|
{
|
|
3002
4058
|
name: "id",
|
|
3003
4059
|
location: "path"
|
|
4060
|
+
},
|
|
4061
|
+
{
|
|
4062
|
+
name: "cursor",
|
|
4063
|
+
location: "query"
|
|
4064
|
+
},
|
|
4065
|
+
{
|
|
4066
|
+
name: "limit",
|
|
4067
|
+
location: "query"
|
|
3004
4068
|
}
|
|
3005
4069
|
],
|
|
3006
4070
|
hasBody: false,
|
|
@@ -3015,20 +4079,36 @@ var generatedTools = [
|
|
|
3015
4079
|
properties: {
|
|
3016
4080
|
id: {
|
|
3017
4081
|
type: "string",
|
|
3018
|
-
|
|
4082
|
+
minLength: 1,
|
|
4083
|
+
description: "Cost center identifier."
|
|
4084
|
+
},
|
|
4085
|
+
cursor: {
|
|
4086
|
+
type: "string",
|
|
4087
|
+
minLength: 1,
|
|
4088
|
+
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."
|
|
4089
|
+
},
|
|
4090
|
+
limit: {
|
|
4091
|
+
type: "integer",
|
|
4092
|
+
minimum: 1,
|
|
4093
|
+
maximum: 1e3,
|
|
4094
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3019
4095
|
}
|
|
3020
4096
|
},
|
|
3021
4097
|
required: ["id"]
|
|
3022
4098
|
}
|
|
3023
4099
|
},
|
|
3024
4100
|
{
|
|
3025
|
-
name: "list-
|
|
3026
|
-
title: "List
|
|
3027
|
-
operationId: "
|
|
3028
|
-
description: "List
|
|
4101
|
+
name: "list-cost-centers",
|
|
4102
|
+
title: "List cost centers",
|
|
4103
|
+
operationId: "listCostCenters",
|
|
4104
|
+
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.",
|
|
3029
4105
|
method: "GET",
|
|
3030
|
-
path: "/v2/
|
|
4106
|
+
path: "/v2/cost-centers",
|
|
3031
4107
|
params: [
|
|
4108
|
+
{
|
|
4109
|
+
name: "search",
|
|
4110
|
+
location: "query"
|
|
4111
|
+
},
|
|
3032
4112
|
{
|
|
3033
4113
|
name: "cursor",
|
|
3034
4114
|
location: "query"
|
|
@@ -3048,6 +4128,11 @@ var generatedTools = [
|
|
|
3048
4128
|
inputSchema: {
|
|
3049
4129
|
type: "object",
|
|
3050
4130
|
properties: {
|
|
4131
|
+
search: {
|
|
4132
|
+
type: "string",
|
|
4133
|
+
minLength: 1,
|
|
4134
|
+
description: "Case-insensitive substring match against `value`."
|
|
4135
|
+
},
|
|
3051
4136
|
cursor: {
|
|
3052
4137
|
type: "string",
|
|
3053
4138
|
minLength: 1,
|
|
@@ -3592,7 +4677,7 @@ var generatedTools = [
|
|
|
3592
4677
|
},
|
|
3593
4678
|
cloud: {
|
|
3594
4679
|
$ref: "#/$defs/GpuCloudFilter",
|
|
3595
|
-
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY.
|
|
4680
|
+
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Default when omitted: SECURE.",
|
|
3596
4681
|
type: "string"
|
|
3597
4682
|
},
|
|
3598
4683
|
countryCodes: {
|
|
@@ -3752,6 +4837,146 @@ var generatedTools = [
|
|
|
3752
4837
|
}
|
|
3753
4838
|
}
|
|
3754
4839
|
},
|
|
4840
|
+
{
|
|
4841
|
+
name: "list-organization-group-members",
|
|
4842
|
+
title: "List organization group members",
|
|
4843
|
+
operationId: "listOrganizationGroupMembers",
|
|
4844
|
+
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.",
|
|
4845
|
+
method: "GET",
|
|
4846
|
+
path: "/v2/organization/groups/{id}/members",
|
|
4847
|
+
params: [
|
|
4848
|
+
{
|
|
4849
|
+
name: "id",
|
|
4850
|
+
location: "path"
|
|
4851
|
+
},
|
|
4852
|
+
{
|
|
4853
|
+
name: "cursor",
|
|
4854
|
+
location: "query"
|
|
4855
|
+
},
|
|
4856
|
+
{
|
|
4857
|
+
name: "limit",
|
|
4858
|
+
location: "query"
|
|
4859
|
+
}
|
|
4860
|
+
],
|
|
4861
|
+
hasBody: false,
|
|
4862
|
+
annotations: {
|
|
4863
|
+
readOnlyHint: true,
|
|
4864
|
+
destructiveHint: false,
|
|
4865
|
+
idempotentHint: true,
|
|
4866
|
+
openWorldHint: true
|
|
4867
|
+
},
|
|
4868
|
+
inputSchema: {
|
|
4869
|
+
type: "object",
|
|
4870
|
+
properties: {
|
|
4871
|
+
id: {
|
|
4872
|
+
type: "string",
|
|
4873
|
+
minLength: 1,
|
|
4874
|
+
description: "Group ID."
|
|
4875
|
+
},
|
|
4876
|
+
cursor: {
|
|
4877
|
+
type: "string",
|
|
4878
|
+
minLength: 1,
|
|
4879
|
+
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."
|
|
4880
|
+
},
|
|
4881
|
+
limit: {
|
|
4882
|
+
type: "integer",
|
|
4883
|
+
minimum: 1,
|
|
4884
|
+
maximum: 100,
|
|
4885
|
+
description: "Page size, 1\u2013100. Defaults to 100 when omitted."
|
|
4886
|
+
}
|
|
4887
|
+
},
|
|
4888
|
+
required: ["id"]
|
|
4889
|
+
}
|
|
4890
|
+
},
|
|
4891
|
+
{
|
|
4892
|
+
name: "list-organization-groups",
|
|
4893
|
+
title: "List organization groups",
|
|
4894
|
+
operationId: "listOrganizationGroups",
|
|
4895
|
+
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.",
|
|
4896
|
+
method: "GET",
|
|
4897
|
+
path: "/v2/organization/groups",
|
|
4898
|
+
params: [
|
|
4899
|
+
{
|
|
4900
|
+
name: "name",
|
|
4901
|
+
location: "query"
|
|
4902
|
+
},
|
|
4903
|
+
{
|
|
4904
|
+
name: "cursor",
|
|
4905
|
+
location: "query"
|
|
4906
|
+
},
|
|
4907
|
+
{
|
|
4908
|
+
name: "limit",
|
|
4909
|
+
location: "query"
|
|
4910
|
+
}
|
|
4911
|
+
],
|
|
4912
|
+
hasBody: false,
|
|
4913
|
+
annotations: {
|
|
4914
|
+
readOnlyHint: true,
|
|
4915
|
+
destructiveHint: false,
|
|
4916
|
+
idempotentHint: true,
|
|
4917
|
+
openWorldHint: true
|
|
4918
|
+
},
|
|
4919
|
+
inputSchema: {
|
|
4920
|
+
type: "object",
|
|
4921
|
+
properties: {
|
|
4922
|
+
name: {
|
|
4923
|
+
type: "string",
|
|
4924
|
+
description: "Optional case-insensitive substring of the group name. An empty value applies no filter."
|
|
4925
|
+
},
|
|
4926
|
+
cursor: {
|
|
4927
|
+
type: "string",
|
|
4928
|
+
minLength: 1,
|
|
4929
|
+
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."
|
|
4930
|
+
},
|
|
4931
|
+
limit: {
|
|
4932
|
+
type: "integer",
|
|
4933
|
+
minimum: 1,
|
|
4934
|
+
maximum: 100,
|
|
4935
|
+
description: "Page size, 1\u2013100. Defaults to 100 when omitted."
|
|
4936
|
+
}
|
|
4937
|
+
}
|
|
4938
|
+
}
|
|
4939
|
+
},
|
|
4940
|
+
{
|
|
4941
|
+
name: "list-organization-invites",
|
|
4942
|
+
title: "List organization invites",
|
|
4943
|
+
operationId: "listOrganizationInvites",
|
|
4944
|
+
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.",
|
|
4945
|
+
method: "GET",
|
|
4946
|
+
path: "/v2/organization/invites",
|
|
4947
|
+
params: [],
|
|
4948
|
+
hasBody: false,
|
|
4949
|
+
annotations: {
|
|
4950
|
+
readOnlyHint: true,
|
|
4951
|
+
destructiveHint: false,
|
|
4952
|
+
idempotentHint: true,
|
|
4953
|
+
openWorldHint: true
|
|
4954
|
+
},
|
|
4955
|
+
inputSchema: {
|
|
4956
|
+
type: "object",
|
|
4957
|
+
properties: {}
|
|
4958
|
+
}
|
|
4959
|
+
},
|
|
4960
|
+
{
|
|
4961
|
+
name: "list-organization-roles",
|
|
4962
|
+
title: "List organization roles",
|
|
4963
|
+
operationId: "listOrganizationRoles",
|
|
4964
|
+
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.",
|
|
4965
|
+
method: "GET",
|
|
4966
|
+
path: "/v2/organization/roles",
|
|
4967
|
+
params: [],
|
|
4968
|
+
hasBody: false,
|
|
4969
|
+
annotations: {
|
|
4970
|
+
readOnlyHint: true,
|
|
4971
|
+
destructiveHint: false,
|
|
4972
|
+
idempotentHint: true,
|
|
4973
|
+
openWorldHint: true
|
|
4974
|
+
},
|
|
4975
|
+
inputSchema: {
|
|
4976
|
+
type: "object",
|
|
4977
|
+
properties: {}
|
|
4978
|
+
}
|
|
4979
|
+
},
|
|
3755
4980
|
{
|
|
3756
4981
|
name: "list-organization-users",
|
|
3757
4982
|
title: "List organization users",
|
|
@@ -4106,6 +5331,47 @@ var generatedTools = [
|
|
|
4106
5331
|
}
|
|
4107
5332
|
}
|
|
4108
5333
|
},
|
|
5334
|
+
{
|
|
5335
|
+
name: "remove-organization-group-member",
|
|
5336
|
+
title: "Remove organization group member",
|
|
5337
|
+
operationId: "removeOrganizationGroupMember",
|
|
5338
|
+
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.",
|
|
5339
|
+
method: "DELETE",
|
|
5340
|
+
path: "/v2/organization/groups/{id}/members/{userId}",
|
|
5341
|
+
params: [
|
|
5342
|
+
{
|
|
5343
|
+
name: "id",
|
|
5344
|
+
location: "path"
|
|
5345
|
+
},
|
|
5346
|
+
{
|
|
5347
|
+
name: "userId",
|
|
5348
|
+
location: "path"
|
|
5349
|
+
}
|
|
5350
|
+
],
|
|
5351
|
+
hasBody: false,
|
|
5352
|
+
annotations: {
|
|
5353
|
+
readOnlyHint: false,
|
|
5354
|
+
destructiveHint: true,
|
|
5355
|
+
idempotentHint: true,
|
|
5356
|
+
openWorldHint: true
|
|
5357
|
+
},
|
|
5358
|
+
inputSchema: {
|
|
5359
|
+
type: "object",
|
|
5360
|
+
properties: {
|
|
5361
|
+
id: {
|
|
5362
|
+
type: "string",
|
|
5363
|
+
minLength: 1,
|
|
5364
|
+
description: "Group ID."
|
|
5365
|
+
},
|
|
5366
|
+
userId: {
|
|
5367
|
+
type: "string",
|
|
5368
|
+
minLength: 1,
|
|
5369
|
+
description: "Organization member user ID."
|
|
5370
|
+
}
|
|
5371
|
+
},
|
|
5372
|
+
required: ["id", "userId"]
|
|
5373
|
+
}
|
|
5374
|
+
},
|
|
4109
5375
|
{
|
|
4110
5376
|
name: "revoke-delegation",
|
|
4111
5377
|
title: "Revoke ECR delegation",
|
|
@@ -4132,17 +5398,67 @@ var generatedTools = [
|
|
|
4132
5398
|
id: {
|
|
4133
5399
|
type: "string"
|
|
4134
5400
|
}
|
|
4135
|
-
},
|
|
4136
|
-
required: ["id"]
|
|
5401
|
+
},
|
|
5402
|
+
required: ["id"]
|
|
5403
|
+
}
|
|
5404
|
+
},
|
|
5405
|
+
{
|
|
5406
|
+
name: "update-cluster",
|
|
5407
|
+
title: "Update cluster",
|
|
5408
|
+
operationId: "updateCluster",
|
|
5409
|
+
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.",
|
|
5410
|
+
method: "PATCH",
|
|
5411
|
+
path: "/v2/clusters/{id}",
|
|
5412
|
+
params: [
|
|
5413
|
+
{
|
|
5414
|
+
name: "id",
|
|
5415
|
+
location: "path"
|
|
5416
|
+
}
|
|
5417
|
+
],
|
|
5418
|
+
hasBody: true,
|
|
5419
|
+
annotations: {
|
|
5420
|
+
readOnlyHint: false,
|
|
5421
|
+
destructiveHint: false,
|
|
5422
|
+
idempotentHint: true,
|
|
5423
|
+
openWorldHint: true
|
|
5424
|
+
},
|
|
5425
|
+
inputSchema: {
|
|
5426
|
+
type: "object",
|
|
5427
|
+
properties: {
|
|
5428
|
+
id: {
|
|
5429
|
+
type: "string",
|
|
5430
|
+
description: "Cluster identifier"
|
|
5431
|
+
},
|
|
5432
|
+
body: {
|
|
5433
|
+
$ref: "#/$defs/UpdateClusterRequest",
|
|
5434
|
+
type: "object"
|
|
5435
|
+
}
|
|
5436
|
+
},
|
|
5437
|
+
required: ["id", "body"],
|
|
5438
|
+
$defs: {
|
|
5439
|
+
UpdateClusterRequest: {
|
|
5440
|
+
type: "object",
|
|
5441
|
+
additionalProperties: false,
|
|
5442
|
+
minProperties: 1,
|
|
5443
|
+
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.",
|
|
5444
|
+
properties: {
|
|
5445
|
+
name: {
|
|
5446
|
+
type: "string",
|
|
5447
|
+
minLength: 1,
|
|
5448
|
+
examples: ["renamed-cluster"]
|
|
5449
|
+
}
|
|
5450
|
+
}
|
|
5451
|
+
}
|
|
5452
|
+
}
|
|
4137
5453
|
}
|
|
4138
5454
|
},
|
|
4139
5455
|
{
|
|
4140
|
-
name: "update-
|
|
4141
|
-
title: "Update
|
|
4142
|
-
operationId: "
|
|
4143
|
-
description: "Rename a
|
|
5456
|
+
name: "update-cost-center",
|
|
5457
|
+
title: "Update cost center",
|
|
5458
|
+
operationId: "updateCostCenter",
|
|
5459
|
+
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.",
|
|
4144
5460
|
method: "PATCH",
|
|
4145
|
-
path: "/v2/
|
|
5461
|
+
path: "/v2/cost-centers/{id}",
|
|
4146
5462
|
params: [
|
|
4147
5463
|
{
|
|
4148
5464
|
name: "id",
|
|
@@ -4161,25 +5477,28 @@ var generatedTools = [
|
|
|
4161
5477
|
properties: {
|
|
4162
5478
|
id: {
|
|
4163
5479
|
type: "string",
|
|
4164
|
-
|
|
5480
|
+
minLength: 1,
|
|
5481
|
+
description: "Cost center identifier."
|
|
4165
5482
|
},
|
|
4166
5483
|
body: {
|
|
4167
|
-
$ref: "#/$defs/
|
|
5484
|
+
$ref: "#/$defs/UpdateCostCenterRequest",
|
|
4168
5485
|
type: "object"
|
|
4169
5486
|
}
|
|
4170
5487
|
},
|
|
4171
5488
|
required: ["id", "body"],
|
|
4172
5489
|
$defs: {
|
|
4173
|
-
|
|
5490
|
+
UpdateCostCenterRequest: {
|
|
4174
5491
|
type: "object",
|
|
4175
5492
|
additionalProperties: false,
|
|
4176
|
-
|
|
4177
|
-
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.",
|
|
5493
|
+
required: ["value"],
|
|
4178
5494
|
properties: {
|
|
4179
|
-
|
|
5495
|
+
value: {
|
|
4180
5496
|
type: "string",
|
|
4181
5497
|
minLength: 1,
|
|
4182
|
-
|
|
5498
|
+
maxLength: 50,
|
|
5499
|
+
pattern: "^\\s*\\S",
|
|
5500
|
+
description: "Leading and trailing whitespace is trimmed.",
|
|
5501
|
+
examples: ["team-ml-eu"]
|
|
4183
5502
|
}
|
|
4184
5503
|
}
|
|
4185
5504
|
}
|
|
@@ -4623,6 +5942,7 @@ var generatedTools = [
|
|
|
4623
5942
|
type: "string",
|
|
4624
5943
|
minLength: 1,
|
|
4625
5944
|
maxLength: 191,
|
|
5945
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
4626
5946
|
description: "New human-readable name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.",
|
|
4627
5947
|
examples: ["renamed-volume"]
|
|
4628
5948
|
}
|
|
@@ -4689,11 +6009,218 @@ var generatedTools = [
|
|
|
4689
6009
|
}
|
|
4690
6010
|
}
|
|
4691
6011
|
},
|
|
6012
|
+
{
|
|
6013
|
+
name: "update-organization-group",
|
|
6014
|
+
title: "Update organization group",
|
|
6015
|
+
operationId: "updateOrganizationGroup",
|
|
6016
|
+
description: "Rename a group in your current organization",
|
|
6017
|
+
method: "PATCH",
|
|
6018
|
+
path: "/v2/organization/groups/{id}",
|
|
6019
|
+
params: [
|
|
6020
|
+
{
|
|
6021
|
+
name: "id",
|
|
6022
|
+
location: "path"
|
|
6023
|
+
}
|
|
6024
|
+
],
|
|
6025
|
+
hasBody: true,
|
|
6026
|
+
annotations: {
|
|
6027
|
+
readOnlyHint: false,
|
|
6028
|
+
destructiveHint: false,
|
|
6029
|
+
idempotentHint: true,
|
|
6030
|
+
openWorldHint: true
|
|
6031
|
+
},
|
|
6032
|
+
inputSchema: {
|
|
6033
|
+
type: "object",
|
|
6034
|
+
properties: {
|
|
6035
|
+
id: {
|
|
6036
|
+
type: "string",
|
|
6037
|
+
minLength: 1,
|
|
6038
|
+
description: "Group ID."
|
|
6039
|
+
},
|
|
6040
|
+
body: {
|
|
6041
|
+
$ref: "#/$defs/UpdateOrganizationGroupRequest",
|
|
6042
|
+
type: "object"
|
|
6043
|
+
}
|
|
6044
|
+
},
|
|
6045
|
+
required: ["id", "body"],
|
|
6046
|
+
$defs: {
|
|
6047
|
+
UpdateOrganizationGroupRequest: {
|
|
6048
|
+
type: "object",
|
|
6049
|
+
additionalProperties: false,
|
|
6050
|
+
required: ["name"],
|
|
6051
|
+
properties: {
|
|
6052
|
+
name: {
|
|
6053
|
+
type: "string",
|
|
6054
|
+
minLength: 1,
|
|
6055
|
+
maxLength: 191,
|
|
6056
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
6057
|
+
description: "Group name with at least one non-whitespace character; surrounding whitespace is trimmed.",
|
|
6058
|
+
examples: ["Research"]
|
|
6059
|
+
}
|
|
6060
|
+
}
|
|
6061
|
+
}
|
|
6062
|
+
}
|
|
6063
|
+
}
|
|
6064
|
+
},
|
|
6065
|
+
{
|
|
6066
|
+
name: "update-organization-role",
|
|
6067
|
+
title: "Update organization role",
|
|
6068
|
+
operationId: "updateOrganizationRole",
|
|
6069
|
+
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.",
|
|
6070
|
+
method: "PATCH",
|
|
6071
|
+
path: "/v2/organization/roles/{id}",
|
|
6072
|
+
params: [
|
|
6073
|
+
{
|
|
6074
|
+
name: "id",
|
|
6075
|
+
location: "path"
|
|
6076
|
+
}
|
|
6077
|
+
],
|
|
6078
|
+
hasBody: true,
|
|
6079
|
+
annotations: {
|
|
6080
|
+
readOnlyHint: false,
|
|
6081
|
+
destructiveHint: true,
|
|
6082
|
+
idempotentHint: true,
|
|
6083
|
+
openWorldHint: true
|
|
6084
|
+
},
|
|
6085
|
+
inputSchema: {
|
|
6086
|
+
type: "object",
|
|
6087
|
+
properties: {
|
|
6088
|
+
id: {
|
|
6089
|
+
type: "string",
|
|
6090
|
+
description: "Role identifier"
|
|
6091
|
+
},
|
|
6092
|
+
body: {
|
|
6093
|
+
$ref: "#/$defs/UpdateOrganizationRoleRequest",
|
|
6094
|
+
type: "object"
|
|
6095
|
+
}
|
|
6096
|
+
},
|
|
6097
|
+
required: ["id", "body"],
|
|
6098
|
+
$defs: {
|
|
6099
|
+
OrganizationRoleCapabilitiesInput: {
|
|
6100
|
+
type: "array",
|
|
6101
|
+
description: "What the role grants, as `FAMILY:VERB` capabilities from `get-organization-role-capabilities`. The caller must hold every capability it lists.",
|
|
6102
|
+
minItems: 1,
|
|
6103
|
+
uniqueItems: true,
|
|
6104
|
+
items: {
|
|
6105
|
+
type: "string",
|
|
6106
|
+
pattern: "^[A-Z0-9_]+:[A-Z0-9_]+$"
|
|
6107
|
+
},
|
|
6108
|
+
examples: [["POD:VIEW"]]
|
|
6109
|
+
},
|
|
6110
|
+
OrganizationRoleName: {
|
|
6111
|
+
type: "string",
|
|
6112
|
+
minLength: 1,
|
|
6113
|
+
maxLength: 191,
|
|
6114
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
6115
|
+
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.",
|
|
6116
|
+
examples: ["Pod viewer"]
|
|
6117
|
+
},
|
|
6118
|
+
UpdateOrganizationRoleRequest: {
|
|
6119
|
+
type: "object",
|
|
6120
|
+
additionalProperties: false,
|
|
6121
|
+
minProperties: 1,
|
|
6122
|
+
description: "The fields to change; omitted fields are unchanged. `capabilities` replaces the role's whole grant set rather than adding to it.",
|
|
6123
|
+
properties: {
|
|
6124
|
+
name: {
|
|
6125
|
+
$ref: "#/$defs/OrganizationRoleName"
|
|
6126
|
+
},
|
|
6127
|
+
capabilities: {
|
|
6128
|
+
$ref: "#/$defs/OrganizationRoleCapabilitiesInput"
|
|
6129
|
+
}
|
|
6130
|
+
}
|
|
6131
|
+
}
|
|
6132
|
+
}
|
|
6133
|
+
}
|
|
6134
|
+
},
|
|
6135
|
+
{
|
|
6136
|
+
name: "update-organization-user",
|
|
6137
|
+
title: "Update organization user",
|
|
6138
|
+
operationId: "updateOrganizationUser",
|
|
6139
|
+
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.",
|
|
6140
|
+
method: "PATCH",
|
|
6141
|
+
path: "/v2/organization/users/{id}",
|
|
6142
|
+
params: [
|
|
6143
|
+
{
|
|
6144
|
+
name: "id",
|
|
6145
|
+
location: "path"
|
|
6146
|
+
}
|
|
6147
|
+
],
|
|
6148
|
+
hasBody: true,
|
|
6149
|
+
annotations: {
|
|
6150
|
+
readOnlyHint: false,
|
|
6151
|
+
destructiveHint: true,
|
|
6152
|
+
idempotentHint: true,
|
|
6153
|
+
openWorldHint: true
|
|
6154
|
+
},
|
|
6155
|
+
inputSchema: {
|
|
6156
|
+
type: "object",
|
|
6157
|
+
properties: {
|
|
6158
|
+
id: {
|
|
6159
|
+
type: "string",
|
|
6160
|
+
description: "User identifier"
|
|
6161
|
+
},
|
|
6162
|
+
body: {
|
|
6163
|
+
$ref: "#/$defs/UpdateOrganizationUserRequest",
|
|
6164
|
+
type: "object"
|
|
6165
|
+
}
|
|
6166
|
+
},
|
|
6167
|
+
required: ["id", "body"],
|
|
6168
|
+
$defs: {
|
|
6169
|
+
OrganizationGroupInput: {
|
|
6170
|
+
type: "object",
|
|
6171
|
+
description: "An organization group, by ID.",
|
|
6172
|
+
additionalProperties: false,
|
|
6173
|
+
required: ["id"],
|
|
6174
|
+
properties: {
|
|
6175
|
+
id: {
|
|
6176
|
+
type: "string",
|
|
6177
|
+
minLength: 1,
|
|
6178
|
+
description: "Group ID.",
|
|
6179
|
+
examples: ["group_id_abc_123"]
|
|
6180
|
+
}
|
|
6181
|
+
}
|
|
6182
|
+
},
|
|
6183
|
+
OrganizationRoleInput: {
|
|
6184
|
+
type: "object",
|
|
6185
|
+
description: "An organization role to assign, by ID.",
|
|
6186
|
+
additionalProperties: false,
|
|
6187
|
+
required: ["id"],
|
|
6188
|
+
properties: {
|
|
6189
|
+
id: {
|
|
6190
|
+
type: "string",
|
|
6191
|
+
minLength: 1,
|
|
6192
|
+
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.",
|
|
6193
|
+
examples: ["builtin:dev"]
|
|
6194
|
+
}
|
|
6195
|
+
}
|
|
6196
|
+
},
|
|
6197
|
+
UpdateOrganizationUserRequest: {
|
|
6198
|
+
type: "object",
|
|
6199
|
+
description: "Changes to a member. Send `role`, `groups`, or both; an omitted field is left as it is.",
|
|
6200
|
+
additionalProperties: false,
|
|
6201
|
+
minProperties: 1,
|
|
6202
|
+
properties: {
|
|
6203
|
+
role: {
|
|
6204
|
+
$ref: "#/$defs/OrganizationRoleInput"
|
|
6205
|
+
},
|
|
6206
|
+
groups: {
|
|
6207
|
+
type: "array",
|
|
6208
|
+
description: "The member's groups after the change: the whole set, by ID. An empty list removes the member from every group.",
|
|
6209
|
+
uniqueItems: true,
|
|
6210
|
+
items: {
|
|
6211
|
+
$ref: "#/$defs/OrganizationGroupInput"
|
|
6212
|
+
}
|
|
6213
|
+
}
|
|
6214
|
+
}
|
|
6215
|
+
}
|
|
6216
|
+
}
|
|
6217
|
+
}
|
|
6218
|
+
},
|
|
4692
6219
|
{
|
|
4693
6220
|
name: "update-pod",
|
|
4694
6221
|
title: "Update Pod",
|
|
4695
6222
|
operationId: "updatePod",
|
|
4696
|
-
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.",
|
|
6223
|
+
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.",
|
|
4697
6224
|
method: "PATCH",
|
|
4698
6225
|
path: "/v2/pods/{id}",
|
|
4699
6226
|
params: [
|
|
@@ -4787,21 +6314,6 @@ var generatedTools = [
|
|
|
4787
6314
|
}
|
|
4788
6315
|
}
|
|
4789
6316
|
},
|
|
4790
|
-
BaseMounts: {
|
|
4791
|
-
type: "object",
|
|
4792
|
-
properties: {
|
|
4793
|
-
persistent: {
|
|
4794
|
-
$ref: "#/$defs/PersistentMount"
|
|
4795
|
-
},
|
|
4796
|
-
network: {
|
|
4797
|
-
type: "array",
|
|
4798
|
-
maxItems: 1,
|
|
4799
|
-
items: {
|
|
4800
|
-
$ref: "#/$defs/NetworkMount"
|
|
4801
|
-
}
|
|
4802
|
-
}
|
|
4803
|
-
}
|
|
4804
|
-
},
|
|
4805
6317
|
ContainerConfig: {
|
|
4806
6318
|
allOf: [
|
|
4807
6319
|
{
|
|
@@ -4819,11 +6331,11 @@ var generatedTools = [
|
|
|
4819
6331
|
}
|
|
4820
6332
|
]
|
|
4821
6333
|
},
|
|
4822
|
-
|
|
6334
|
+
GlobalMountPatch: {
|
|
4823
6335
|
type: "object",
|
|
4824
6336
|
required: ["volumeId"],
|
|
4825
6337
|
additionalProperties: false,
|
|
4826
|
-
description: "
|
|
6338
|
+
description: "Mounts, moves, or unmounts the pod's global volume.",
|
|
4827
6339
|
properties: {
|
|
4828
6340
|
volumeId: {
|
|
4829
6341
|
type: "string",
|
|
@@ -4832,38 +6344,21 @@ var generatedTools = [
|
|
|
4832
6344
|
},
|
|
4833
6345
|
path: {
|
|
4834
6346
|
type: "string",
|
|
4835
|
-
|
|
6347
|
+
minLength: 1,
|
|
6348
|
+
description: "Mount path inside the container. Optional; when mounting, a default is chosen for you if omitted.",
|
|
4836
6349
|
examples: ["/data"]
|
|
4837
|
-
}
|
|
4838
|
-
}
|
|
4839
|
-
},
|
|
4840
|
-
Mounts: {
|
|
4841
|
-
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.",
|
|
4842
|
-
allOf: [
|
|
4843
|
-
{
|
|
4844
|
-
$ref: "#/$defs/BaseMounts"
|
|
4845
6350
|
},
|
|
4846
|
-
{
|
|
4847
|
-
type: "
|
|
4848
|
-
|
|
4849
|
-
global: {
|
|
4850
|
-
type: "array",
|
|
4851
|
-
maxItems: 1,
|
|
4852
|
-
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.",
|
|
4853
|
-
items: {
|
|
4854
|
-
$ref: "#/$defs/GlobalMount"
|
|
4855
|
-
}
|
|
4856
|
-
}
|
|
4857
|
-
}
|
|
6351
|
+
remove: {
|
|
6352
|
+
type: "boolean",
|
|
6353
|
+
description: "Unmount the volume. Cannot be combined with `path`."
|
|
4858
6354
|
}
|
|
4859
|
-
|
|
4860
|
-
unevaluatedProperties: false
|
|
6355
|
+
}
|
|
4861
6356
|
},
|
|
4862
|
-
|
|
6357
|
+
NetworkMountPatch: {
|
|
4863
6358
|
type: "object",
|
|
4864
|
-
required: ["volumeId"
|
|
6359
|
+
required: ["volumeId"],
|
|
4865
6360
|
additionalProperties: false,
|
|
4866
|
-
description: "
|
|
6361
|
+
description: "Mounts, moves, or unmounts one network volume. Mounting a volume the pod does not have requires `path`.",
|
|
4867
6362
|
properties: {
|
|
4868
6363
|
volumeId: {
|
|
4869
6364
|
type: "string",
|
|
@@ -4872,27 +6367,62 @@ var generatedTools = [
|
|
|
4872
6367
|
},
|
|
4873
6368
|
path: {
|
|
4874
6369
|
type: "string",
|
|
4875
|
-
|
|
6370
|
+
minLength: 1,
|
|
6371
|
+
description: "Mount path inside the container. Required when mounting; optional when moving a mounted volume.",
|
|
4876
6372
|
examples: ["/runpod-volume"]
|
|
6373
|
+
},
|
|
6374
|
+
remove: {
|
|
6375
|
+
type: "boolean",
|
|
6376
|
+
description: "Unmount the volume. Cannot be combined with `path`."
|
|
4877
6377
|
}
|
|
4878
6378
|
}
|
|
4879
6379
|
},
|
|
4880
|
-
|
|
6380
|
+
PersistentMountPatch: {
|
|
4881
6381
|
type: "object",
|
|
4882
|
-
required: ["size", "path"],
|
|
4883
6382
|
additionalProperties: false,
|
|
4884
|
-
description: "
|
|
6383
|
+
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.",
|
|
4885
6384
|
properties: {
|
|
4886
6385
|
size: {
|
|
4887
6386
|
type: "integer",
|
|
4888
6387
|
minimum: 10,
|
|
4889
|
-
description: "
|
|
4890
|
-
examples: [
|
|
6388
|
+
description: "Volume disk size in GB. Can only grow; a smaller size than the current one is rejected.",
|
|
6389
|
+
examples: [50]
|
|
4891
6390
|
},
|
|
4892
6391
|
path: {
|
|
4893
6392
|
type: "string",
|
|
4894
|
-
|
|
6393
|
+
minLength: 1,
|
|
6394
|
+
description: "Mount path inside the container.",
|
|
4895
6395
|
examples: ["/workspace"]
|
|
6396
|
+
},
|
|
6397
|
+
remove: {
|
|
6398
|
+
type: "boolean",
|
|
6399
|
+
description: "Removes the volume disk. Not supported yet: `remove: true` is rejected."
|
|
6400
|
+
}
|
|
6401
|
+
}
|
|
6402
|
+
},
|
|
6403
|
+
UpdatePodMounts: {
|
|
6404
|
+
type: "object",
|
|
6405
|
+
additionalProperties: false,
|
|
6406
|
+
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.",
|
|
6407
|
+
properties: {
|
|
6408
|
+
persistent: {
|
|
6409
|
+
$ref: "#/$defs/PersistentMountPatch"
|
|
6410
|
+
},
|
|
6411
|
+
network: {
|
|
6412
|
+
type: "array",
|
|
6413
|
+
maxItems: 8,
|
|
6414
|
+
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.",
|
|
6415
|
+
items: {
|
|
6416
|
+
$ref: "#/$defs/NetworkMountPatch"
|
|
6417
|
+
}
|
|
6418
|
+
},
|
|
6419
|
+
global: {
|
|
6420
|
+
type: "array",
|
|
6421
|
+
maxItems: 2,
|
|
6422
|
+
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.",
|
|
6423
|
+
items: {
|
|
6424
|
+
$ref: "#/$defs/GlobalMountPatch"
|
|
6425
|
+
}
|
|
4896
6426
|
}
|
|
4897
6427
|
}
|
|
4898
6428
|
},
|
|
@@ -4913,7 +6443,7 @@ var generatedTools = [
|
|
|
4913
6443
|
description: "Lock the pod (true) or unlock it (false). Locked pods cannot be stopped or reset."
|
|
4914
6444
|
},
|
|
4915
6445
|
mounts: {
|
|
4916
|
-
$ref: "#/$defs/
|
|
6446
|
+
$ref: "#/$defs/UpdatePodMounts"
|
|
4917
6447
|
},
|
|
4918
6448
|
name: {
|
|
4919
6449
|
type: "string",
|
|
@@ -5160,7 +6690,7 @@ var generatedTools = [
|
|
|
5160
6690
|
size: {
|
|
5161
6691
|
type: "integer",
|
|
5162
6692
|
minimum: 10,
|
|
5163
|
-
description: "Host-local persistent storage in GB.
|
|
6693
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
5164
6694
|
examples: [20]
|
|
5165
6695
|
},
|
|
5166
6696
|
path: {
|
|
@@ -5420,33 +6950,53 @@ var CREDENTIAL_MANAGEMENT = "Manages stored credentials; OpenAI restricts plugin
|
|
|
5420
6950
|
var CREDENTIAL_INPUT = "Takes a secret or password as input; directories forbid collecting credentials.";
|
|
5421
6951
|
var ALP = "Collects conversation-derived data beyond the task; the directory profile never serves it.";
|
|
5422
6952
|
var DIRECTORY_TOOLS = {
|
|
6953
|
+
"add-organization-group-member": IN,
|
|
6954
|
+
"attach-cost-center-resource": IN,
|
|
5423
6955
|
"cancel-job": IN,
|
|
5424
6956
|
"create-cluster": IN,
|
|
6957
|
+
"create-cost-center": IN,
|
|
5425
6958
|
"create-delegation": IN,
|
|
5426
6959
|
"create-endpoint": IN,
|
|
5427
6960
|
"create-global-volume": IN,
|
|
5428
6961
|
"create-network-volume": IN,
|
|
6962
|
+
"create-organization-group": IN,
|
|
6963
|
+
"create-organization-invite": IN,
|
|
6964
|
+
"create-organization-role": IN,
|
|
5429
6965
|
"create-pod": IN,
|
|
5430
6966
|
"create-template": IN,
|
|
5431
6967
|
"delete-cluster": IN,
|
|
6968
|
+
"delete-cost-center": IN,
|
|
5432
6969
|
"delete-endpoint": IN,
|
|
5433
6970
|
"delete-global-volume": IN,
|
|
5434
6971
|
"delete-network-volume": IN,
|
|
6972
|
+
"delete-organization-group": IN,
|
|
6973
|
+
"delete-organization-invite": IN,
|
|
6974
|
+
"delete-organization-role": IN,
|
|
6975
|
+
"delete-organization-user": IN,
|
|
5435
6976
|
"delete-pod": IN,
|
|
5436
6977
|
"delete-template": IN,
|
|
5437
6978
|
"deploy-hub-repo": IN,
|
|
6979
|
+
"detach-cost-center-resource": IN,
|
|
5438
6980
|
"endpoint-health": IN,
|
|
5439
6981
|
"get-capacity": IN,
|
|
5440
6982
|
"get-cluster": IN,
|
|
6983
|
+
"get-cost-center": IN,
|
|
5441
6984
|
"get-cpu-type": IN,
|
|
5442
6985
|
"get-data-center": IN,
|
|
5443
6986
|
"get-endpoint": IN,
|
|
5444
6987
|
"get-endpoint-build": IN,
|
|
6988
|
+
"get-endpoint-cold-start-metrics": IN,
|
|
6989
|
+
"get-endpoint-request-metrics": IN,
|
|
6990
|
+
"get-endpoint-worker-metrics": IN,
|
|
5445
6991
|
"get-global-volume": IN,
|
|
5446
6992
|
"get-gpu-type": IN,
|
|
5447
6993
|
"get-job-status": IN,
|
|
5448
6994
|
"get-network-volume": IN,
|
|
5449
6995
|
"get-organization": IN,
|
|
6996
|
+
"get-organization-group": IN,
|
|
6997
|
+
"get-organization-invite": IN,
|
|
6998
|
+
"get-organization-role": IN,
|
|
6999
|
+
"get-organization-role-capabilities": IN,
|
|
5450
7000
|
"get-organization-user": IN,
|
|
5451
7001
|
"get-pod": IN,
|
|
5452
7002
|
"get-ssh-keys": IN,
|
|
@@ -5456,6 +7006,8 @@ var DIRECTORY_TOOLS = {
|
|
|
5456
7006
|
"list-cluster-billing": IN,
|
|
5457
7007
|
"list-cluster-pods": IN,
|
|
5458
7008
|
"list-clusters": IN,
|
|
7009
|
+
"list-cost-center-resources": IN,
|
|
7010
|
+
"list-cost-centers": IN,
|
|
5459
7011
|
"list-cpu-types": IN,
|
|
5460
7012
|
"list-data-centers": IN,
|
|
5461
7013
|
"list-delegations": IN,
|
|
@@ -5469,6 +7021,10 @@ var DIRECTORY_TOOLS = {
|
|
|
5469
7021
|
"list-hub-repos": IN,
|
|
5470
7022
|
"list-network-volume-billing": IN,
|
|
5471
7023
|
"list-network-volumes": IN,
|
|
7024
|
+
"list-organization-group-members": IN,
|
|
7025
|
+
"list-organization-groups": IN,
|
|
7026
|
+
"list-organization-invites": IN,
|
|
7027
|
+
"list-organization-roles": IN,
|
|
5472
7028
|
"list-organization-users": IN,
|
|
5473
7029
|
"list-pod-billing": IN,
|
|
5474
7030
|
"list-pods": IN,
|
|
@@ -5478,6 +7034,7 @@ var DIRECTORY_TOOLS = {
|
|
|
5478
7034
|
"list-templates": IN,
|
|
5479
7035
|
"lookup-concept": IN,
|
|
5480
7036
|
"purge-endpoint-queue": IN,
|
|
7037
|
+
"remove-organization-group-member": IN,
|
|
5481
7038
|
"retry-job": IN,
|
|
5482
7039
|
"revoke-delegation": IN,
|
|
5483
7040
|
"search-concepts": IN,
|
|
@@ -5487,9 +7044,13 @@ var DIRECTORY_TOOLS = {
|
|
|
5487
7044
|
"stream-pod-logs": IN,
|
|
5488
7045
|
"stream-worker-logs": IN,
|
|
5489
7046
|
"update-cluster": IN,
|
|
7047
|
+
"update-cost-center": IN,
|
|
5490
7048
|
"update-endpoint": IN,
|
|
5491
7049
|
"update-global-volume": IN,
|
|
5492
7050
|
"update-network-volume": IN,
|
|
7051
|
+
"update-organization-group": IN,
|
|
7052
|
+
"update-organization-role": IN,
|
|
7053
|
+
"update-organization-user": IN,
|
|
5493
7054
|
"update-pod": IN,
|
|
5494
7055
|
"update-ssh-keys": IN,
|
|
5495
7056
|
"update-template": IN,
|
|
@@ -8568,6 +10129,23 @@ import {
|
|
|
8568
10129
|
loadKnowledge
|
|
8569
10130
|
} from "@runpod/plugin-knowledge";
|
|
8570
10131
|
var knowledge = loadKnowledge();
|
|
10132
|
+
var hiddenRules = new Set(
|
|
10133
|
+
(process.env.KNOWLEDGE_HIDDEN_RULES ?? "").split(",").map((id) => id.trim()).filter(Boolean)
|
|
10134
|
+
);
|
|
10135
|
+
var concepts = knowledge.concepts.map((concept) => ({
|
|
10136
|
+
...concept,
|
|
10137
|
+
rules: concept.rules.filter((rule) => !hiddenRules.has(rule.id))
|
|
10138
|
+
}));
|
|
10139
|
+
for (const id of hiddenRules) {
|
|
10140
|
+
if (!knowledge.concepts.some(
|
|
10141
|
+
(concept) => concept.rules.some((rule) => rule.id === id)
|
|
10142
|
+
))
|
|
10143
|
+
console.warn("knowledge_hidden_rule_unknown", {
|
|
10144
|
+
id,
|
|
10145
|
+
plugin_version: knowledge.version
|
|
10146
|
+
});
|
|
10147
|
+
}
|
|
10148
|
+
var visibleRuleIds = (ids) => ids.filter((id) => !hiddenRules.has(id));
|
|
8571
10149
|
var GUIDE_KINDS = ["skill", "reference", "golden-path"];
|
|
8572
10150
|
var STOPWORDS = new Set(
|
|
8573
10151
|
"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(
|
|
@@ -8610,7 +10188,7 @@ var guideSummary = ({
|
|
|
8610
10188
|
lanes,
|
|
8611
10189
|
mcp,
|
|
8612
10190
|
needs_shell,
|
|
8613
|
-
concepts
|
|
10191
|
+
concepts: concepts2
|
|
8614
10192
|
}) => ({
|
|
8615
10193
|
id,
|
|
8616
10194
|
kind,
|
|
@@ -8619,7 +10197,7 @@ var guideSummary = ({
|
|
|
8619
10197
|
lanes,
|
|
8620
10198
|
mcp,
|
|
8621
10199
|
needs_shell,
|
|
8622
|
-
concepts
|
|
10200
|
+
concepts: concepts2
|
|
8623
10201
|
});
|
|
8624
10202
|
function linkedGuides(conceptId) {
|
|
8625
10203
|
const byId = new Map(knowledge.guides.map((guide) => [guide.id, guide]));
|
|
@@ -8631,19 +10209,20 @@ function linkedGuides(conceptId) {
|
|
|
8631
10209
|
seen.add(link.from);
|
|
8632
10210
|
const guide = byId.get(link.from);
|
|
8633
10211
|
if (!guide) continue;
|
|
10212
|
+
const rules = link.rules && visibleRuleIds(link.rules);
|
|
8634
10213
|
if (guide.kind === "golden-path")
|
|
8635
10214
|
examples.push({ id: guide.id, title: guide.title, mcp: guide.mcp });
|
|
8636
10215
|
else
|
|
8637
10216
|
docs.push({
|
|
8638
10217
|
id: guide.id,
|
|
8639
10218
|
title: guide.title,
|
|
8640
|
-
...
|
|
10219
|
+
...rules?.length ? { rules } : {}
|
|
8641
10220
|
});
|
|
8642
10221
|
}
|
|
8643
10222
|
return { examples, docs };
|
|
8644
10223
|
}
|
|
8645
10224
|
var conceptIndex = /* @__PURE__ */ new Map();
|
|
8646
|
-
for (const concept of
|
|
10225
|
+
for (const concept of concepts) {
|
|
8647
10226
|
for (const key of [concept.id, concept.name, ...concept.aliases]) {
|
|
8648
10227
|
if (!conceptIndex.has(key.toLowerCase()))
|
|
8649
10228
|
conceptIndex.set(key.toLowerCase(), concept);
|
|
@@ -8677,7 +10256,7 @@ function resolveConcept(input) {
|
|
|
8677
10256
|
return best && !tied ? { concept: best.concept, matchedAs: best.key } : void 0;
|
|
8678
10257
|
}
|
|
8679
10258
|
var ruleIndex = /* @__PURE__ */ new Map();
|
|
8680
|
-
for (const concept of
|
|
10259
|
+
for (const concept of concepts) {
|
|
8681
10260
|
for (const rule of concept.rules) ruleIndex.set(rule.id, { rule, concept });
|
|
8682
10261
|
}
|
|
8683
10262
|
var source = {
|
|
@@ -8796,7 +10375,7 @@ var lookupConcept = {
|
|
|
8796
10375
|
};
|
|
8797
10376
|
}
|
|
8798
10377
|
const { concept, matchedAs } = resolved;
|
|
8799
|
-
const pointedAtBy =
|
|
10378
|
+
const pointedAtBy = concepts.flatMap((other) => [
|
|
8800
10379
|
...other.is_a === concept.id ? [{ concept: other.id, type: "is_a" }] : [],
|
|
8801
10380
|
...other.part_of === concept.id ? [{ concept: other.id, type: "part_of" }] : [],
|
|
8802
10381
|
...other.relations.filter((relation) => relation.target === concept.id).map((relation) => ({ concept: other.id, type: relation.type }))
|
|
@@ -8810,6 +10389,14 @@ var lookupConcept = {
|
|
|
8810
10389
|
...source,
|
|
8811
10390
|
...matchedAs ? { matched_as: matchedAs } : {},
|
|
8812
10391
|
...concept,
|
|
10392
|
+
steps: concept.steps.map((step) => ({
|
|
10393
|
+
...step,
|
|
10394
|
+
rules: visibleRuleIds(step.rules)
|
|
10395
|
+
})),
|
|
10396
|
+
rules: concept.rules.map((rule) => ({
|
|
10397
|
+
...rule,
|
|
10398
|
+
see: visibleRuleIds(rule.see)
|
|
10399
|
+
})),
|
|
8813
10400
|
pointed_at_by: pointedAtBy,
|
|
8814
10401
|
linked_rules: linkedRules,
|
|
8815
10402
|
...linkedGuides(concept.id)
|