@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.cjs
CHANGED
|
@@ -1183,7 +1183,7 @@ var import_stdio = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
|
1183
1183
|
|
|
1184
1184
|
// src/server.ts
|
|
1185
1185
|
var SERVER_NAME = "Runpod API Server";
|
|
1186
|
-
var SERVER_VERSION = true ? "4.
|
|
1186
|
+
var SERVER_VERSION = true ? "4.10.0" : "dev";
|
|
1187
1187
|
|
|
1188
1188
|
// src/specgen/server.ts
|
|
1189
1189
|
var import_server3 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
@@ -1508,6 +1508,104 @@ function coerceScalars(value, schema, defs, depth = 0) {
|
|
|
1508
1508
|
|
|
1509
1509
|
// src/specgen/generated/tools.gen.ts
|
|
1510
1510
|
var generatedTools = [
|
|
1511
|
+
{
|
|
1512
|
+
name: "add-organization-group-member",
|
|
1513
|
+
title: "Add organization group member",
|
|
1514
|
+
operationId: "addOrganizationGroupMember",
|
|
1515
|
+
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.",
|
|
1516
|
+
method: "PUT",
|
|
1517
|
+
path: "/v2/organization/groups/{id}/members/{userId}",
|
|
1518
|
+
params: [
|
|
1519
|
+
{
|
|
1520
|
+
name: "id",
|
|
1521
|
+
location: "path"
|
|
1522
|
+
},
|
|
1523
|
+
{
|
|
1524
|
+
name: "userId",
|
|
1525
|
+
location: "path"
|
|
1526
|
+
}
|
|
1527
|
+
],
|
|
1528
|
+
hasBody: false,
|
|
1529
|
+
annotations: {
|
|
1530
|
+
readOnlyHint: false,
|
|
1531
|
+
destructiveHint: false,
|
|
1532
|
+
idempotentHint: true,
|
|
1533
|
+
openWorldHint: true
|
|
1534
|
+
},
|
|
1535
|
+
inputSchema: {
|
|
1536
|
+
type: "object",
|
|
1537
|
+
properties: {
|
|
1538
|
+
id: {
|
|
1539
|
+
type: "string",
|
|
1540
|
+
minLength: 1,
|
|
1541
|
+
description: "Group ID."
|
|
1542
|
+
},
|
|
1543
|
+
userId: {
|
|
1544
|
+
type: "string",
|
|
1545
|
+
minLength: 1,
|
|
1546
|
+
description: "Organization member user ID."
|
|
1547
|
+
}
|
|
1548
|
+
},
|
|
1549
|
+
required: ["id", "userId"]
|
|
1550
|
+
}
|
|
1551
|
+
},
|
|
1552
|
+
{
|
|
1553
|
+
name: "attach-cost-center-resource",
|
|
1554
|
+
title: "Attach cost center resource",
|
|
1555
|
+
operationId: "attachCostCenterResource",
|
|
1556
|
+
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.",
|
|
1557
|
+
method: "PUT",
|
|
1558
|
+
path: "/v2/cost-centers/{id}/{resourceType}/{resourceId}",
|
|
1559
|
+
params: [
|
|
1560
|
+
{
|
|
1561
|
+
name: "id",
|
|
1562
|
+
location: "path"
|
|
1563
|
+
},
|
|
1564
|
+
{
|
|
1565
|
+
name: "resourceType",
|
|
1566
|
+
location: "path"
|
|
1567
|
+
},
|
|
1568
|
+
{
|
|
1569
|
+
name: "resourceId",
|
|
1570
|
+
location: "path"
|
|
1571
|
+
}
|
|
1572
|
+
],
|
|
1573
|
+
hasBody: false,
|
|
1574
|
+
annotations: {
|
|
1575
|
+
readOnlyHint: false,
|
|
1576
|
+
destructiveHint: false,
|
|
1577
|
+
idempotentHint: true,
|
|
1578
|
+
openWorldHint: true
|
|
1579
|
+
},
|
|
1580
|
+
inputSchema: {
|
|
1581
|
+
type: "object",
|
|
1582
|
+
properties: {
|
|
1583
|
+
id: {
|
|
1584
|
+
type: "string",
|
|
1585
|
+
minLength: 1,
|
|
1586
|
+
description: "Cost center identifier."
|
|
1587
|
+
},
|
|
1588
|
+
resourceType: {
|
|
1589
|
+
$ref: "#/$defs/ResourceType",
|
|
1590
|
+
description: "Kind of resource.",
|
|
1591
|
+
type: "string"
|
|
1592
|
+
},
|
|
1593
|
+
resourceId: {
|
|
1594
|
+
type: "string",
|
|
1595
|
+
minLength: 1,
|
|
1596
|
+
description: "Resource identifier."
|
|
1597
|
+
}
|
|
1598
|
+
},
|
|
1599
|
+
required: ["id", "resourceType", "resourceId"],
|
|
1600
|
+
$defs: {
|
|
1601
|
+
ResourceType: {
|
|
1602
|
+
type: "string",
|
|
1603
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
1604
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
1605
|
+
}
|
|
1606
|
+
}
|
|
1607
|
+
}
|
|
1608
|
+
},
|
|
1511
1609
|
{
|
|
1512
1610
|
name: "create-cluster",
|
|
1513
1611
|
title: "Create cluster",
|
|
@@ -1606,7 +1704,6 @@ var generatedTools = [
|
|
|
1606
1704
|
},
|
|
1607
1705
|
network: {
|
|
1608
1706
|
type: "array",
|
|
1609
|
-
maxItems: 1,
|
|
1610
1707
|
items: {
|
|
1611
1708
|
$ref: "#/$defs/NetworkMount"
|
|
1612
1709
|
}
|
|
@@ -1628,7 +1725,7 @@ var generatedTools = [
|
|
|
1628
1725
|
gpuCountPerPod: {
|
|
1629
1726
|
type: "integer",
|
|
1630
1727
|
minimum: 1,
|
|
1631
|
-
description: "Number of GPUs on each pod. Bounded above by the GPU type's per-cloud maximum (GpuType.maxCount);
|
|
1728
|
+
description: "Number of GPUs on each pod. Bounded above by the GPU type's per-cloud maximum (GpuType.maxCount); values beyond it are rejected.",
|
|
1632
1729
|
examples: [8]
|
|
1633
1730
|
},
|
|
1634
1731
|
podCount: {
|
|
@@ -1641,7 +1738,7 @@ var generatedTools = [
|
|
|
1641
1738
|
}
|
|
1642
1739
|
},
|
|
1643
1740
|
ClusterMounts: {
|
|
1644
|
-
description: "Storage mounts for a cluster create: `persistent` or `network
|
|
1741
|
+
description: "Storage mounts for a cluster create: `persistent` or one `network` volume, not both. Clusters cannot mount global volumes, so `global` is rejected.",
|
|
1645
1742
|
"x-go-type": "BaseMounts",
|
|
1646
1743
|
allOf: [
|
|
1647
1744
|
{
|
|
@@ -1661,6 +1758,7 @@ var generatedTools = [
|
|
|
1661
1758
|
},
|
|
1662
1759
|
network: {
|
|
1663
1760
|
type: "array",
|
|
1761
|
+
maxItems: 1,
|
|
1664
1762
|
items: {
|
|
1665
1763
|
type: "object",
|
|
1666
1764
|
properties: {
|
|
@@ -1739,7 +1837,7 @@ var generatedTools = [
|
|
|
1739
1837
|
type: "object",
|
|
1740
1838
|
required: ["volumeId", "path"],
|
|
1741
1839
|
additionalProperties: false,
|
|
1742
|
-
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods.
|
|
1840
|
+
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`).",
|
|
1743
1841
|
properties: {
|
|
1744
1842
|
volumeId: {
|
|
1745
1843
|
type: "string",
|
|
@@ -1762,7 +1860,7 @@ var generatedTools = [
|
|
|
1762
1860
|
size: {
|
|
1763
1861
|
type: "integer",
|
|
1764
1862
|
minimum: 10,
|
|
1765
|
-
description: "Host-local persistent storage in GB.
|
|
1863
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
1766
1864
|
examples: [20]
|
|
1767
1865
|
},
|
|
1768
1866
|
path: {
|
|
@@ -1775,6 +1873,77 @@ var generatedTools = [
|
|
|
1775
1873
|
}
|
|
1776
1874
|
}
|
|
1777
1875
|
},
|
|
1876
|
+
{
|
|
1877
|
+
name: "create-cost-center",
|
|
1878
|
+
title: "Create cost center",
|
|
1879
|
+
operationId: "createCostCenter",
|
|
1880
|
+
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.",
|
|
1881
|
+
method: "POST",
|
|
1882
|
+
path: "/v2/cost-centers",
|
|
1883
|
+
params: [],
|
|
1884
|
+
hasBody: true,
|
|
1885
|
+
annotations: {
|
|
1886
|
+
readOnlyHint: false,
|
|
1887
|
+
destructiveHint: false,
|
|
1888
|
+
idempotentHint: false,
|
|
1889
|
+
openWorldHint: true
|
|
1890
|
+
},
|
|
1891
|
+
inputSchema: {
|
|
1892
|
+
type: "object",
|
|
1893
|
+
properties: {
|
|
1894
|
+
body: {
|
|
1895
|
+
$ref: "#/$defs/CreateCostCenterRequest",
|
|
1896
|
+
type: "object"
|
|
1897
|
+
}
|
|
1898
|
+
},
|
|
1899
|
+
required: ["body"],
|
|
1900
|
+
$defs: {
|
|
1901
|
+
CostCenterResource: {
|
|
1902
|
+
type: "object",
|
|
1903
|
+
additionalProperties: false,
|
|
1904
|
+
required: ["id", "type"],
|
|
1905
|
+
properties: {
|
|
1906
|
+
id: {
|
|
1907
|
+
type: "string",
|
|
1908
|
+
minLength: 1,
|
|
1909
|
+
examples: ["p9k2m4n6q8"]
|
|
1910
|
+
},
|
|
1911
|
+
type: {
|
|
1912
|
+
$ref: "#/$defs/ResourceType"
|
|
1913
|
+
}
|
|
1914
|
+
}
|
|
1915
|
+
},
|
|
1916
|
+
CreateCostCenterRequest: {
|
|
1917
|
+
type: "object",
|
|
1918
|
+
additionalProperties: false,
|
|
1919
|
+
required: ["value"],
|
|
1920
|
+
properties: {
|
|
1921
|
+
value: {
|
|
1922
|
+
type: "string",
|
|
1923
|
+
minLength: 1,
|
|
1924
|
+
maxLength: 50,
|
|
1925
|
+
pattern: "^\\s*\\S",
|
|
1926
|
+
description: "Leading and trailing whitespace is trimmed.",
|
|
1927
|
+
examples: ["team-ml"]
|
|
1928
|
+
},
|
|
1929
|
+
resources: {
|
|
1930
|
+
type: "array",
|
|
1931
|
+
description: "Resources to attribute to the new cost center.",
|
|
1932
|
+
maxItems: 100,
|
|
1933
|
+
items: {
|
|
1934
|
+
$ref: "#/$defs/CostCenterResource"
|
|
1935
|
+
}
|
|
1936
|
+
}
|
|
1937
|
+
}
|
|
1938
|
+
},
|
|
1939
|
+
ResourceType: {
|
|
1940
|
+
type: "string",
|
|
1941
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
1942
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1945
|
+
}
|
|
1946
|
+
},
|
|
1778
1947
|
{
|
|
1779
1948
|
name: "create-delegation",
|
|
1780
1949
|
title: "Create ECR delegation",
|
|
@@ -2303,6 +2472,7 @@ var generatedTools = [
|
|
|
2303
2472
|
type: "string",
|
|
2304
2473
|
minLength: 1,
|
|
2305
2474
|
maxLength: 191,
|
|
2475
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
2306
2476
|
description: "Human-readable name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.",
|
|
2307
2477
|
examples: ["training-data"]
|
|
2308
2478
|
}
|
|
@@ -2378,6 +2548,169 @@ var generatedTools = [
|
|
|
2378
2548
|
}
|
|
2379
2549
|
}
|
|
2380
2550
|
},
|
|
2551
|
+
{
|
|
2552
|
+
name: "create-organization-group",
|
|
2553
|
+
title: "Create organization group",
|
|
2554
|
+
operationId: "createOrganizationGroup",
|
|
2555
|
+
description: "Create a group in your current organization",
|
|
2556
|
+
method: "POST",
|
|
2557
|
+
path: "/v2/organization/groups",
|
|
2558
|
+
params: [],
|
|
2559
|
+
hasBody: true,
|
|
2560
|
+
annotations: {
|
|
2561
|
+
readOnlyHint: false,
|
|
2562
|
+
destructiveHint: false,
|
|
2563
|
+
idempotentHint: false,
|
|
2564
|
+
openWorldHint: true
|
|
2565
|
+
},
|
|
2566
|
+
inputSchema: {
|
|
2567
|
+
type: "object",
|
|
2568
|
+
properties: {
|
|
2569
|
+
body: {
|
|
2570
|
+
$ref: "#/$defs/CreateOrganizationGroupRequest",
|
|
2571
|
+
type: "object"
|
|
2572
|
+
}
|
|
2573
|
+
},
|
|
2574
|
+
required: ["body"],
|
|
2575
|
+
$defs: {
|
|
2576
|
+
CreateOrganizationGroupRequest: {
|
|
2577
|
+
type: "object",
|
|
2578
|
+
additionalProperties: false,
|
|
2579
|
+
required: ["name"],
|
|
2580
|
+
properties: {
|
|
2581
|
+
name: {
|
|
2582
|
+
type: "string",
|
|
2583
|
+
minLength: 1,
|
|
2584
|
+
maxLength: 191,
|
|
2585
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
2586
|
+
description: "Group name with at least one non-whitespace character; surrounding whitespace is trimmed.",
|
|
2587
|
+
examples: ["Engineering"]
|
|
2588
|
+
}
|
|
2589
|
+
}
|
|
2590
|
+
}
|
|
2591
|
+
}
|
|
2592
|
+
}
|
|
2593
|
+
},
|
|
2594
|
+
{
|
|
2595
|
+
name: "create-organization-invite",
|
|
2596
|
+
title: "Create organization invite",
|
|
2597
|
+
operationId: "createOrganizationInvite",
|
|
2598
|
+
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.",
|
|
2599
|
+
method: "POST",
|
|
2600
|
+
path: "/v2/organization/invites",
|
|
2601
|
+
params: [],
|
|
2602
|
+
hasBody: true,
|
|
2603
|
+
annotations: {
|
|
2604
|
+
readOnlyHint: false,
|
|
2605
|
+
destructiveHint: false,
|
|
2606
|
+
idempotentHint: false,
|
|
2607
|
+
openWorldHint: true
|
|
2608
|
+
},
|
|
2609
|
+
inputSchema: {
|
|
2610
|
+
type: "object",
|
|
2611
|
+
properties: {
|
|
2612
|
+
body: {
|
|
2613
|
+
$ref: "#/$defs/CreateOrganizationInviteRequest",
|
|
2614
|
+
type: "object"
|
|
2615
|
+
}
|
|
2616
|
+
},
|
|
2617
|
+
required: ["body"],
|
|
2618
|
+
$defs: {
|
|
2619
|
+
CreateOrganizationInviteRequest: {
|
|
2620
|
+
type: "object",
|
|
2621
|
+
additionalProperties: false,
|
|
2622
|
+
required: ["email", "role"],
|
|
2623
|
+
properties: {
|
|
2624
|
+
email: {
|
|
2625
|
+
type: "string",
|
|
2626
|
+
format: "email",
|
|
2627
|
+
minLength: 1,
|
|
2628
|
+
maxLength: 254,
|
|
2629
|
+
description: "Address to invite, stored lowercased. The invitee accepts by signing in with a verified account on this address.",
|
|
2630
|
+
examples: ["new-member@example.com"]
|
|
2631
|
+
},
|
|
2632
|
+
role: {
|
|
2633
|
+
$ref: "#/$defs/OrganizationRoleInput"
|
|
2634
|
+
}
|
|
2635
|
+
}
|
|
2636
|
+
},
|
|
2637
|
+
OrganizationRoleInput: {
|
|
2638
|
+
type: "object",
|
|
2639
|
+
description: "An organization role to assign, by ID.",
|
|
2640
|
+
additionalProperties: false,
|
|
2641
|
+
required: ["id"],
|
|
2642
|
+
properties: {
|
|
2643
|
+
id: {
|
|
2644
|
+
type: "string",
|
|
2645
|
+
minLength: 1,
|
|
2646
|
+
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.",
|
|
2647
|
+
examples: ["builtin:dev"]
|
|
2648
|
+
}
|
|
2649
|
+
}
|
|
2650
|
+
}
|
|
2651
|
+
}
|
|
2652
|
+
}
|
|
2653
|
+
},
|
|
2654
|
+
{
|
|
2655
|
+
name: "create-organization-role",
|
|
2656
|
+
title: "Create organization role",
|
|
2657
|
+
operationId: "createOrganizationRole",
|
|
2658
|
+
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.",
|
|
2659
|
+
method: "POST",
|
|
2660
|
+
path: "/v2/organization/roles",
|
|
2661
|
+
params: [],
|
|
2662
|
+
hasBody: true,
|
|
2663
|
+
annotations: {
|
|
2664
|
+
readOnlyHint: false,
|
|
2665
|
+
destructiveHint: false,
|
|
2666
|
+
idempotentHint: false,
|
|
2667
|
+
openWorldHint: true
|
|
2668
|
+
},
|
|
2669
|
+
inputSchema: {
|
|
2670
|
+
type: "object",
|
|
2671
|
+
properties: {
|
|
2672
|
+
body: {
|
|
2673
|
+
$ref: "#/$defs/CreateOrganizationRoleRequest",
|
|
2674
|
+
type: "object"
|
|
2675
|
+
}
|
|
2676
|
+
},
|
|
2677
|
+
required: ["body"],
|
|
2678
|
+
$defs: {
|
|
2679
|
+
CreateOrganizationRoleRequest: {
|
|
2680
|
+
type: "object",
|
|
2681
|
+
additionalProperties: false,
|
|
2682
|
+
required: ["name", "capabilities"],
|
|
2683
|
+
properties: {
|
|
2684
|
+
name: {
|
|
2685
|
+
$ref: "#/$defs/OrganizationRoleName"
|
|
2686
|
+
},
|
|
2687
|
+
capabilities: {
|
|
2688
|
+
$ref: "#/$defs/OrganizationRoleCapabilitiesInput"
|
|
2689
|
+
}
|
|
2690
|
+
}
|
|
2691
|
+
},
|
|
2692
|
+
OrganizationRoleCapabilitiesInput: {
|
|
2693
|
+
type: "array",
|
|
2694
|
+
description: "What the role grants, as `FAMILY:VERB` capabilities from `get-organization-role-capabilities`. The caller must hold every capability it lists.",
|
|
2695
|
+
minItems: 1,
|
|
2696
|
+
uniqueItems: true,
|
|
2697
|
+
items: {
|
|
2698
|
+
type: "string",
|
|
2699
|
+
pattern: "^[A-Z0-9_]+:[A-Z0-9_]+$"
|
|
2700
|
+
},
|
|
2701
|
+
examples: [["POD:VIEW"]]
|
|
2702
|
+
},
|
|
2703
|
+
OrganizationRoleName: {
|
|
2704
|
+
type: "string",
|
|
2705
|
+
minLength: 1,
|
|
2706
|
+
maxLength: 191,
|
|
2707
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
2708
|
+
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.",
|
|
2709
|
+
examples: ["Pod viewer"]
|
|
2710
|
+
}
|
|
2711
|
+
}
|
|
2712
|
+
}
|
|
2713
|
+
},
|
|
2381
2714
|
{
|
|
2382
2715
|
name: "create-pod",
|
|
2383
2716
|
title: "Create Pod",
|
|
@@ -2498,6 +2831,7 @@ var generatedTools = [
|
|
|
2498
2831
|
count: {
|
|
2499
2832
|
type: "integer",
|
|
2500
2833
|
minimum: 1,
|
|
2834
|
+
maximum: 1024,
|
|
2501
2835
|
default: 1,
|
|
2502
2836
|
description: "Number of GPUs",
|
|
2503
2837
|
examples: [1]
|
|
@@ -2512,7 +2846,6 @@ var generatedTools = [
|
|
|
2512
2846
|
},
|
|
2513
2847
|
network: {
|
|
2514
2848
|
type: "array",
|
|
2515
|
-
maxItems: 1,
|
|
2516
2849
|
items: {
|
|
2517
2850
|
$ref: "#/$defs/NetworkMount"
|
|
2518
2851
|
}
|
|
@@ -2576,12 +2909,14 @@ var generatedTools = [
|
|
|
2576
2909
|
minRamPerGpu: {
|
|
2577
2910
|
type: "integer",
|
|
2578
2911
|
minimum: 1,
|
|
2912
|
+
maximum: 65536,
|
|
2579
2913
|
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.",
|
|
2580
2914
|
examples: [8]
|
|
2581
2915
|
},
|
|
2582
2916
|
minVcpuCountPerGpu: {
|
|
2583
2917
|
type: "integer",
|
|
2584
2918
|
minimum: 1,
|
|
2919
|
+
maximum: 4096,
|
|
2585
2920
|
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.",
|
|
2586
2921
|
examples: [2]
|
|
2587
2922
|
}
|
|
@@ -2672,7 +3007,7 @@ var generatedTools = [
|
|
|
2672
3007
|
type: "object",
|
|
2673
3008
|
required: ["volumeId"],
|
|
2674
3009
|
additionalProperties: false,
|
|
2675
|
-
description: "Reference to a GlobalVolume. Usage-billed, so it has no size.
|
|
3010
|
+
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`).",
|
|
2676
3011
|
properties: {
|
|
2677
3012
|
volumeId: {
|
|
2678
3013
|
type: "string",
|
|
@@ -2681,7 +3016,7 @@ var generatedTools = [
|
|
|
2681
3016
|
},
|
|
2682
3017
|
path: {
|
|
2683
3018
|
type: "string",
|
|
2684
|
-
description: "Mount path inside the container. Optional
|
|
3019
|
+
description: "Mount path inside the container. Optional; a default is chosen for you when omitted.",
|
|
2685
3020
|
examples: ["/data"]
|
|
2686
3021
|
}
|
|
2687
3022
|
}
|
|
@@ -2695,10 +3030,18 @@ var generatedTools = [
|
|
|
2695
3030
|
{
|
|
2696
3031
|
type: "object",
|
|
2697
3032
|
properties: {
|
|
3033
|
+
network: {
|
|
3034
|
+
type: "array",
|
|
3035
|
+
maxItems: 4,
|
|
3036
|
+
description: "Up to 4 network volumes, all in the pod's data center.",
|
|
3037
|
+
items: {
|
|
3038
|
+
$ref: "#/$defs/NetworkMount"
|
|
3039
|
+
}
|
|
3040
|
+
},
|
|
2698
3041
|
global: {
|
|
2699
3042
|
type: "array",
|
|
2700
3043
|
maxItems: 1,
|
|
2701
|
-
description: "At most one global volume, on GPU and CPU pods, with no data center constraint. Combinable with `network` but not with `persistent` (rejected):
|
|
3044
|
+
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`.",
|
|
2702
3045
|
items: {
|
|
2703
3046
|
$ref: "#/$defs/GlobalMount"
|
|
2704
3047
|
}
|
|
@@ -2712,7 +3055,7 @@ var generatedTools = [
|
|
|
2712
3055
|
type: "object",
|
|
2713
3056
|
required: ["volumeId", "path"],
|
|
2714
3057
|
additionalProperties: false,
|
|
2715
|
-
description: "Reference to a NetworkVolume. Custom paths are honored at runtime on both GPU and CPU pods.
|
|
3058
|
+
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`).",
|
|
2716
3059
|
properties: {
|
|
2717
3060
|
volumeId: {
|
|
2718
3061
|
type: "string",
|
|
@@ -2735,7 +3078,7 @@ var generatedTools = [
|
|
|
2735
3078
|
size: {
|
|
2736
3079
|
type: "integer",
|
|
2737
3080
|
minimum: 10,
|
|
2738
|
-
description: "Host-local persistent storage in GB.
|
|
3081
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
2739
3082
|
examples: [20]
|
|
2740
3083
|
},
|
|
2741
3084
|
path: {
|
|
@@ -3032,7 +3375,7 @@ var generatedTools = [
|
|
|
3032
3375
|
size: {
|
|
3033
3376
|
type: "integer",
|
|
3034
3377
|
minimum: 10,
|
|
3035
|
-
description: "Host-local persistent storage in GB.
|
|
3378
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
3036
3379
|
examples: [20]
|
|
3037
3380
|
},
|
|
3038
3381
|
path: {
|
|
@@ -3093,13 +3436,12 @@ var generatedTools = [
|
|
|
3093
3436
|
}
|
|
3094
3437
|
},
|
|
3095
3438
|
{
|
|
3096
|
-
name: "delete-
|
|
3097
|
-
title: "Delete
|
|
3098
|
-
operationId: "
|
|
3099
|
-
description: "Delete a
|
|
3100
|
-
directoryDescription: "Delete a Serverless endpoint permanently and immediately.",
|
|
3439
|
+
name: "delete-cost-center",
|
|
3440
|
+
title: "Delete cost center",
|
|
3441
|
+
operationId: "deleteCostCenter",
|
|
3442
|
+
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.",
|
|
3101
3443
|
method: "DELETE",
|
|
3102
|
-
path: "/v2/
|
|
3444
|
+
path: "/v2/cost-centers/{id}",
|
|
3103
3445
|
params: [
|
|
3104
3446
|
{
|
|
3105
3447
|
name: "id",
|
|
@@ -3118,21 +3460,54 @@ var generatedTools = [
|
|
|
3118
3460
|
properties: {
|
|
3119
3461
|
id: {
|
|
3120
3462
|
type: "string",
|
|
3121
|
-
|
|
3463
|
+
minLength: 1,
|
|
3464
|
+
description: "Cost center identifier."
|
|
3122
3465
|
}
|
|
3123
3466
|
},
|
|
3124
3467
|
required: ["id"]
|
|
3125
3468
|
}
|
|
3126
3469
|
},
|
|
3127
3470
|
{
|
|
3128
|
-
name: "delete-
|
|
3129
|
-
title: "Delete
|
|
3130
|
-
operationId: "
|
|
3131
|
-
description: "Delete a
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3471
|
+
name: "delete-endpoint",
|
|
3472
|
+
title: "Delete endpoint",
|
|
3473
|
+
operationId: "deleteEndpoint",
|
|
3474
|
+
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.",
|
|
3475
|
+
directoryDescription: "Delete a Serverless endpoint permanently and immediately.",
|
|
3476
|
+
method: "DELETE",
|
|
3477
|
+
path: "/v2/serverless/{id}",
|
|
3478
|
+
params: [
|
|
3479
|
+
{
|
|
3480
|
+
name: "id",
|
|
3481
|
+
location: "path"
|
|
3482
|
+
}
|
|
3483
|
+
],
|
|
3484
|
+
hasBody: false,
|
|
3485
|
+
annotations: {
|
|
3486
|
+
readOnlyHint: false,
|
|
3487
|
+
destructiveHint: true,
|
|
3488
|
+
idempotentHint: true,
|
|
3489
|
+
openWorldHint: true
|
|
3490
|
+
},
|
|
3491
|
+
inputSchema: {
|
|
3492
|
+
type: "object",
|
|
3493
|
+
properties: {
|
|
3494
|
+
id: {
|
|
3495
|
+
type: "string",
|
|
3496
|
+
description: "Serverless endpoint identifier"
|
|
3497
|
+
}
|
|
3498
|
+
},
|
|
3499
|
+
required: ["id"]
|
|
3500
|
+
}
|
|
3501
|
+
},
|
|
3502
|
+
{
|
|
3503
|
+
name: "delete-global-volume",
|
|
3504
|
+
title: "Delete global volume",
|
|
3505
|
+
operationId: "deleteGlobalVolume",
|
|
3506
|
+
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.",
|
|
3507
|
+
method: "DELETE",
|
|
3508
|
+
path: "/v2/global-volumes/{id}",
|
|
3509
|
+
params: [
|
|
3510
|
+
{
|
|
3136
3511
|
name: "id",
|
|
3137
3512
|
location: "path"
|
|
3138
3513
|
}
|
|
@@ -3186,6 +3561,131 @@ var generatedTools = [
|
|
|
3186
3561
|
required: ["id"]
|
|
3187
3562
|
}
|
|
3188
3563
|
},
|
|
3564
|
+
{
|
|
3565
|
+
name: "delete-organization-group",
|
|
3566
|
+
title: "Delete organization group",
|
|
3567
|
+
operationId: "deleteOrganizationGroup",
|
|
3568
|
+
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.",
|
|
3569
|
+
method: "DELETE",
|
|
3570
|
+
path: "/v2/organization/groups/{id}",
|
|
3571
|
+
params: [
|
|
3572
|
+
{
|
|
3573
|
+
name: "id",
|
|
3574
|
+
location: "path"
|
|
3575
|
+
}
|
|
3576
|
+
],
|
|
3577
|
+
hasBody: false,
|
|
3578
|
+
annotations: {
|
|
3579
|
+
readOnlyHint: false,
|
|
3580
|
+
destructiveHint: true,
|
|
3581
|
+
idempotentHint: true,
|
|
3582
|
+
openWorldHint: true
|
|
3583
|
+
},
|
|
3584
|
+
inputSchema: {
|
|
3585
|
+
type: "object",
|
|
3586
|
+
properties: {
|
|
3587
|
+
id: {
|
|
3588
|
+
type: "string",
|
|
3589
|
+
minLength: 1,
|
|
3590
|
+
description: "Group ID."
|
|
3591
|
+
}
|
|
3592
|
+
},
|
|
3593
|
+
required: ["id"]
|
|
3594
|
+
}
|
|
3595
|
+
},
|
|
3596
|
+
{
|
|
3597
|
+
name: "delete-organization-invite",
|
|
3598
|
+
title: "Delete organization invite",
|
|
3599
|
+
operationId: "deleteOrganizationInvite",
|
|
3600
|
+
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.",
|
|
3601
|
+
method: "DELETE",
|
|
3602
|
+
path: "/v2/organization/invites/{id}",
|
|
3603
|
+
params: [
|
|
3604
|
+
{
|
|
3605
|
+
name: "id",
|
|
3606
|
+
location: "path"
|
|
3607
|
+
}
|
|
3608
|
+
],
|
|
3609
|
+
hasBody: false,
|
|
3610
|
+
annotations: {
|
|
3611
|
+
readOnlyHint: false,
|
|
3612
|
+
destructiveHint: true,
|
|
3613
|
+
idempotentHint: true,
|
|
3614
|
+
openWorldHint: true
|
|
3615
|
+
},
|
|
3616
|
+
inputSchema: {
|
|
3617
|
+
type: "object",
|
|
3618
|
+
properties: {
|
|
3619
|
+
id: {
|
|
3620
|
+
type: "string",
|
|
3621
|
+
description: "Invite identifier"
|
|
3622
|
+
}
|
|
3623
|
+
},
|
|
3624
|
+
required: ["id"]
|
|
3625
|
+
}
|
|
3626
|
+
},
|
|
3627
|
+
{
|
|
3628
|
+
name: "delete-organization-role",
|
|
3629
|
+
title: "Delete organization role",
|
|
3630
|
+
operationId: "deleteOrganizationRole",
|
|
3631
|
+
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.",
|
|
3632
|
+
method: "DELETE",
|
|
3633
|
+
path: "/v2/organization/roles/{id}",
|
|
3634
|
+
params: [
|
|
3635
|
+
{
|
|
3636
|
+
name: "id",
|
|
3637
|
+
location: "path"
|
|
3638
|
+
}
|
|
3639
|
+
],
|
|
3640
|
+
hasBody: false,
|
|
3641
|
+
annotations: {
|
|
3642
|
+
readOnlyHint: false,
|
|
3643
|
+
destructiveHint: true,
|
|
3644
|
+
idempotentHint: true,
|
|
3645
|
+
openWorldHint: true
|
|
3646
|
+
},
|
|
3647
|
+
inputSchema: {
|
|
3648
|
+
type: "object",
|
|
3649
|
+
properties: {
|
|
3650
|
+
id: {
|
|
3651
|
+
type: "string",
|
|
3652
|
+
description: "Role identifier"
|
|
3653
|
+
}
|
|
3654
|
+
},
|
|
3655
|
+
required: ["id"]
|
|
3656
|
+
}
|
|
3657
|
+
},
|
|
3658
|
+
{
|
|
3659
|
+
name: "delete-organization-user",
|
|
3660
|
+
title: "Delete organization user",
|
|
3661
|
+
operationId: "deleteOrganizationUser",
|
|
3662
|
+
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.",
|
|
3663
|
+
method: "DELETE",
|
|
3664
|
+
path: "/v2/organization/users/{id}",
|
|
3665
|
+
params: [
|
|
3666
|
+
{
|
|
3667
|
+
name: "id",
|
|
3668
|
+
location: "path"
|
|
3669
|
+
}
|
|
3670
|
+
],
|
|
3671
|
+
hasBody: false,
|
|
3672
|
+
annotations: {
|
|
3673
|
+
readOnlyHint: false,
|
|
3674
|
+
destructiveHint: true,
|
|
3675
|
+
idempotentHint: true,
|
|
3676
|
+
openWorldHint: true
|
|
3677
|
+
},
|
|
3678
|
+
inputSchema: {
|
|
3679
|
+
type: "object",
|
|
3680
|
+
properties: {
|
|
3681
|
+
id: {
|
|
3682
|
+
type: "string",
|
|
3683
|
+
description: "User identifier"
|
|
3684
|
+
}
|
|
3685
|
+
},
|
|
3686
|
+
required: ["id"]
|
|
3687
|
+
}
|
|
3688
|
+
},
|
|
3189
3689
|
{
|
|
3190
3690
|
name: "delete-pod",
|
|
3191
3691
|
title: "Delete Pod",
|
|
@@ -3311,6 +3811,63 @@ var generatedTools = [
|
|
|
3311
3811
|
required: ["id"]
|
|
3312
3812
|
}
|
|
3313
3813
|
},
|
|
3814
|
+
{
|
|
3815
|
+
name: "detach-cost-center-resource",
|
|
3816
|
+
title: "Detach cost center resource",
|
|
3817
|
+
operationId: "detachCostCenterResource",
|
|
3818
|
+
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.",
|
|
3819
|
+
method: "DELETE",
|
|
3820
|
+
path: "/v2/cost-centers/{id}/{resourceType}/{resourceId}",
|
|
3821
|
+
params: [
|
|
3822
|
+
{
|
|
3823
|
+
name: "id",
|
|
3824
|
+
location: "path"
|
|
3825
|
+
},
|
|
3826
|
+
{
|
|
3827
|
+
name: "resourceType",
|
|
3828
|
+
location: "path"
|
|
3829
|
+
},
|
|
3830
|
+
{
|
|
3831
|
+
name: "resourceId",
|
|
3832
|
+
location: "path"
|
|
3833
|
+
}
|
|
3834
|
+
],
|
|
3835
|
+
hasBody: false,
|
|
3836
|
+
annotations: {
|
|
3837
|
+
readOnlyHint: false,
|
|
3838
|
+
destructiveHint: true,
|
|
3839
|
+
idempotentHint: true,
|
|
3840
|
+
openWorldHint: true
|
|
3841
|
+
},
|
|
3842
|
+
inputSchema: {
|
|
3843
|
+
type: "object",
|
|
3844
|
+
properties: {
|
|
3845
|
+
id: {
|
|
3846
|
+
type: "string",
|
|
3847
|
+
minLength: 1,
|
|
3848
|
+
description: "Cost center identifier."
|
|
3849
|
+
},
|
|
3850
|
+
resourceType: {
|
|
3851
|
+
$ref: "#/$defs/ResourceType",
|
|
3852
|
+
description: "Kind of resource.",
|
|
3853
|
+
type: "string"
|
|
3854
|
+
},
|
|
3855
|
+
resourceId: {
|
|
3856
|
+
type: "string",
|
|
3857
|
+
minLength: 1,
|
|
3858
|
+
description: "Resource identifier."
|
|
3859
|
+
}
|
|
3860
|
+
},
|
|
3861
|
+
required: ["id", "resourceType", "resourceId"],
|
|
3862
|
+
$defs: {
|
|
3863
|
+
ResourceType: {
|
|
3864
|
+
type: "string",
|
|
3865
|
+
description: "Kind of resource a cost center or tag can be attached to.",
|
|
3866
|
+
enum: ["POD", "CLUSTER", "SERVERLESS_ENDPOINT", "NETWORK_VOLUME"]
|
|
3867
|
+
}
|
|
3868
|
+
}
|
|
3869
|
+
}
|
|
3870
|
+
},
|
|
3314
3871
|
{
|
|
3315
3872
|
name: "get-cluster",
|
|
3316
3873
|
title: "Get cluster",
|
|
@@ -3342,6 +3899,38 @@ var generatedTools = [
|
|
|
3342
3899
|
required: ["id"]
|
|
3343
3900
|
}
|
|
3344
3901
|
},
|
|
3902
|
+
{
|
|
3903
|
+
name: "get-cost-center",
|
|
3904
|
+
title: "Get cost center",
|
|
3905
|
+
operationId: "getCostCenter",
|
|
3906
|
+
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.",
|
|
3907
|
+
method: "GET",
|
|
3908
|
+
path: "/v2/cost-centers/{id}",
|
|
3909
|
+
params: [
|
|
3910
|
+
{
|
|
3911
|
+
name: "id",
|
|
3912
|
+
location: "path"
|
|
3913
|
+
}
|
|
3914
|
+
],
|
|
3915
|
+
hasBody: false,
|
|
3916
|
+
annotations: {
|
|
3917
|
+
readOnlyHint: true,
|
|
3918
|
+
destructiveHint: false,
|
|
3919
|
+
idempotentHint: true,
|
|
3920
|
+
openWorldHint: true
|
|
3921
|
+
},
|
|
3922
|
+
inputSchema: {
|
|
3923
|
+
type: "object",
|
|
3924
|
+
properties: {
|
|
3925
|
+
id: {
|
|
3926
|
+
type: "string",
|
|
3927
|
+
minLength: 1,
|
|
3928
|
+
description: "Cost center identifier."
|
|
3929
|
+
}
|
|
3930
|
+
},
|
|
3931
|
+
required: ["id"]
|
|
3932
|
+
}
|
|
3933
|
+
},
|
|
3345
3934
|
{
|
|
3346
3935
|
name: "get-cpu-type",
|
|
3347
3936
|
title: "Get CPU type",
|
|
@@ -3494,27 +4083,252 @@ var generatedTools = [
|
|
|
3494
4083
|
properties: {
|
|
3495
4084
|
id: {
|
|
3496
4085
|
type: "string",
|
|
3497
|
-
description: "Serverless endpoint identifier"
|
|
4086
|
+
description: "Serverless endpoint identifier"
|
|
4087
|
+
}
|
|
4088
|
+
},
|
|
4089
|
+
required: ["id"]
|
|
4090
|
+
}
|
|
4091
|
+
},
|
|
4092
|
+
{
|
|
4093
|
+
name: "get-endpoint-build",
|
|
4094
|
+
title: "Get endpoint build",
|
|
4095
|
+
operationId: "getEndpointBuild",
|
|
4096
|
+
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.",
|
|
4097
|
+
method: "GET",
|
|
4098
|
+
path: "/v2/serverless/{id}/builds/{buildId}",
|
|
4099
|
+
params: [
|
|
4100
|
+
{
|
|
4101
|
+
name: "id",
|
|
4102
|
+
location: "path"
|
|
4103
|
+
},
|
|
4104
|
+
{
|
|
4105
|
+
name: "buildId",
|
|
4106
|
+
location: "path"
|
|
4107
|
+
}
|
|
4108
|
+
],
|
|
4109
|
+
hasBody: false,
|
|
4110
|
+
annotations: {
|
|
4111
|
+
readOnlyHint: true,
|
|
4112
|
+
destructiveHint: false,
|
|
4113
|
+
idempotentHint: true,
|
|
4114
|
+
openWorldHint: true
|
|
4115
|
+
},
|
|
4116
|
+
inputSchema: {
|
|
4117
|
+
type: "object",
|
|
4118
|
+
properties: {
|
|
4119
|
+
id: {
|
|
4120
|
+
type: "string",
|
|
4121
|
+
description: "Serverless endpoint identifier"
|
|
4122
|
+
},
|
|
4123
|
+
buildId: {
|
|
4124
|
+
type: "string",
|
|
4125
|
+
description: "GitHub build identifier (from `list-endpoint-builds` or a release's `buildId`)"
|
|
4126
|
+
}
|
|
4127
|
+
},
|
|
4128
|
+
required: ["id", "buildId"]
|
|
4129
|
+
}
|
|
4130
|
+
},
|
|
4131
|
+
{
|
|
4132
|
+
name: "get-endpoint-cold-start-metrics",
|
|
4133
|
+
title: "Get endpoint cold start metrics",
|
|
4134
|
+
operationId: "getEndpointColdStartMetrics",
|
|
4135
|
+
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.",
|
|
4136
|
+
method: "GET",
|
|
4137
|
+
path: "/v2/serverless/{id}/metrics/cold-starts",
|
|
4138
|
+
params: [
|
|
4139
|
+
{
|
|
4140
|
+
name: "id",
|
|
4141
|
+
location: "path"
|
|
4142
|
+
},
|
|
4143
|
+
{
|
|
4144
|
+
name: "startTime",
|
|
4145
|
+
location: "query"
|
|
4146
|
+
},
|
|
4147
|
+
{
|
|
4148
|
+
name: "endTime",
|
|
4149
|
+
location: "query"
|
|
4150
|
+
},
|
|
4151
|
+
{
|
|
4152
|
+
name: "interval",
|
|
4153
|
+
location: "query"
|
|
4154
|
+
},
|
|
4155
|
+
{
|
|
4156
|
+
name: "cursor",
|
|
4157
|
+
location: "query"
|
|
4158
|
+
},
|
|
4159
|
+
{
|
|
4160
|
+
name: "limit",
|
|
4161
|
+
location: "query"
|
|
4162
|
+
}
|
|
4163
|
+
],
|
|
4164
|
+
hasBody: false,
|
|
4165
|
+
annotations: {
|
|
4166
|
+
readOnlyHint: true,
|
|
4167
|
+
destructiveHint: false,
|
|
4168
|
+
idempotentHint: true,
|
|
4169
|
+
openWorldHint: true
|
|
4170
|
+
},
|
|
4171
|
+
inputSchema: {
|
|
4172
|
+
type: "object",
|
|
4173
|
+
properties: {
|
|
4174
|
+
id: {
|
|
4175
|
+
type: "string",
|
|
4176
|
+
description: "Serverless endpoint identifier"
|
|
4177
|
+
},
|
|
4178
|
+
startTime: {
|
|
4179
|
+
type: "string",
|
|
4180
|
+
format: "date-time",
|
|
4181
|
+
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."
|
|
4182
|
+
},
|
|
4183
|
+
endTime: {
|
|
4184
|
+
type: "string",
|
|
4185
|
+
format: "date-time",
|
|
4186
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
4187
|
+
},
|
|
4188
|
+
interval: {
|
|
4189
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
4190
|
+
description: "Bucket size. Defaults to 1h.",
|
|
4191
|
+
type: "string"
|
|
4192
|
+
},
|
|
4193
|
+
cursor: {
|
|
4194
|
+
type: "string",
|
|
4195
|
+
minLength: 1,
|
|
4196
|
+
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."
|
|
4197
|
+
},
|
|
4198
|
+
limit: {
|
|
4199
|
+
type: "integer",
|
|
4200
|
+
minimum: 1,
|
|
4201
|
+
maximum: 1e3,
|
|
4202
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
4203
|
+
}
|
|
4204
|
+
},
|
|
4205
|
+
required: ["id"],
|
|
4206
|
+
$defs: {
|
|
4207
|
+
EndpointMetricsInterval: {
|
|
4208
|
+
type: "string",
|
|
4209
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
4210
|
+
default: "1h",
|
|
4211
|
+
description: "Bucket size for endpoint metrics."
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
4214
|
+
}
|
|
4215
|
+
},
|
|
4216
|
+
{
|
|
4217
|
+
name: "get-endpoint-request-metrics",
|
|
4218
|
+
title: "Get endpoint request metrics",
|
|
4219
|
+
operationId: "getEndpointRequestMetrics",
|
|
4220
|
+
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.",
|
|
4221
|
+
method: "GET",
|
|
4222
|
+
path: "/v2/serverless/{id}/metrics/requests",
|
|
4223
|
+
params: [
|
|
4224
|
+
{
|
|
4225
|
+
name: "id",
|
|
4226
|
+
location: "path"
|
|
4227
|
+
},
|
|
4228
|
+
{
|
|
4229
|
+
name: "startTime",
|
|
4230
|
+
location: "query"
|
|
4231
|
+
},
|
|
4232
|
+
{
|
|
4233
|
+
name: "endTime",
|
|
4234
|
+
location: "query"
|
|
4235
|
+
},
|
|
4236
|
+
{
|
|
4237
|
+
name: "interval",
|
|
4238
|
+
location: "query"
|
|
4239
|
+
},
|
|
4240
|
+
{
|
|
4241
|
+
name: "cursor",
|
|
4242
|
+
location: "query"
|
|
4243
|
+
},
|
|
4244
|
+
{
|
|
4245
|
+
name: "limit",
|
|
4246
|
+
location: "query"
|
|
4247
|
+
}
|
|
4248
|
+
],
|
|
4249
|
+
hasBody: false,
|
|
4250
|
+
annotations: {
|
|
4251
|
+
readOnlyHint: true,
|
|
4252
|
+
destructiveHint: false,
|
|
4253
|
+
idempotentHint: true,
|
|
4254
|
+
openWorldHint: true
|
|
4255
|
+
},
|
|
4256
|
+
inputSchema: {
|
|
4257
|
+
type: "object",
|
|
4258
|
+
properties: {
|
|
4259
|
+
id: {
|
|
4260
|
+
type: "string",
|
|
4261
|
+
description: "Serverless endpoint identifier"
|
|
4262
|
+
},
|
|
4263
|
+
startTime: {
|
|
4264
|
+
type: "string",
|
|
4265
|
+
format: "date-time",
|
|
4266
|
+
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."
|
|
4267
|
+
},
|
|
4268
|
+
endTime: {
|
|
4269
|
+
type: "string",
|
|
4270
|
+
format: "date-time",
|
|
4271
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
4272
|
+
},
|
|
4273
|
+
interval: {
|
|
4274
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
4275
|
+
description: "Bucket size. Defaults to 1h.",
|
|
4276
|
+
type: "string"
|
|
4277
|
+
},
|
|
4278
|
+
cursor: {
|
|
4279
|
+
type: "string",
|
|
4280
|
+
minLength: 1,
|
|
4281
|
+
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."
|
|
4282
|
+
},
|
|
4283
|
+
limit: {
|
|
4284
|
+
type: "integer",
|
|
4285
|
+
minimum: 1,
|
|
4286
|
+
maximum: 1e3,
|
|
4287
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
4288
|
+
}
|
|
4289
|
+
},
|
|
4290
|
+
required: ["id"],
|
|
4291
|
+
$defs: {
|
|
4292
|
+
EndpointMetricsInterval: {
|
|
4293
|
+
type: "string",
|
|
4294
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
4295
|
+
default: "1h",
|
|
4296
|
+
description: "Bucket size for endpoint metrics."
|
|
3498
4297
|
}
|
|
3499
|
-
}
|
|
3500
|
-
required: ["id"]
|
|
4298
|
+
}
|
|
3501
4299
|
}
|
|
3502
4300
|
},
|
|
3503
4301
|
{
|
|
3504
|
-
name: "get-endpoint-
|
|
3505
|
-
title: "Get endpoint
|
|
3506
|
-
operationId: "
|
|
3507
|
-
description: "Get
|
|
4302
|
+
name: "get-endpoint-worker-metrics",
|
|
4303
|
+
title: "Get endpoint worker metrics",
|
|
4304
|
+
operationId: "getEndpointWorkerMetrics",
|
|
4305
|
+
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.",
|
|
3508
4306
|
method: "GET",
|
|
3509
|
-
path: "/v2/serverless/{id}/
|
|
4307
|
+
path: "/v2/serverless/{id}/metrics/workers",
|
|
3510
4308
|
params: [
|
|
3511
4309
|
{
|
|
3512
4310
|
name: "id",
|
|
3513
4311
|
location: "path"
|
|
3514
4312
|
},
|
|
3515
4313
|
{
|
|
3516
|
-
name: "
|
|
3517
|
-
location: "
|
|
4314
|
+
name: "startTime",
|
|
4315
|
+
location: "query"
|
|
4316
|
+
},
|
|
4317
|
+
{
|
|
4318
|
+
name: "endTime",
|
|
4319
|
+
location: "query"
|
|
4320
|
+
},
|
|
4321
|
+
{
|
|
4322
|
+
name: "interval",
|
|
4323
|
+
location: "query"
|
|
4324
|
+
},
|
|
4325
|
+
{
|
|
4326
|
+
name: "cursor",
|
|
4327
|
+
location: "query"
|
|
4328
|
+
},
|
|
4329
|
+
{
|
|
4330
|
+
name: "limit",
|
|
4331
|
+
location: "query"
|
|
3518
4332
|
}
|
|
3519
4333
|
],
|
|
3520
4334
|
hasBody: false,
|
|
@@ -3531,12 +4345,42 @@ var generatedTools = [
|
|
|
3531
4345
|
type: "string",
|
|
3532
4346
|
description: "Serverless endpoint identifier"
|
|
3533
4347
|
},
|
|
3534
|
-
|
|
4348
|
+
startTime: {
|
|
3535
4349
|
type: "string",
|
|
3536
|
-
|
|
4350
|
+
format: "date-time",
|
|
4351
|
+
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."
|
|
4352
|
+
},
|
|
4353
|
+
endTime: {
|
|
4354
|
+
type: "string",
|
|
4355
|
+
format: "date-time",
|
|
4356
|
+
description: "End of the window (RFC 3339), exclusive. Defaults to now; a future value is treated as now."
|
|
4357
|
+
},
|
|
4358
|
+
interval: {
|
|
4359
|
+
$ref: "#/$defs/EndpointMetricsInterval",
|
|
4360
|
+
description: "Bucket size. Defaults to 1h.",
|
|
4361
|
+
type: "string"
|
|
4362
|
+
},
|
|
4363
|
+
cursor: {
|
|
4364
|
+
type: "string",
|
|
4365
|
+
minLength: 1,
|
|
4366
|
+
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."
|
|
4367
|
+
},
|
|
4368
|
+
limit: {
|
|
4369
|
+
type: "integer",
|
|
4370
|
+
minimum: 1,
|
|
4371
|
+
maximum: 1e3,
|
|
4372
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
3537
4373
|
}
|
|
3538
4374
|
},
|
|
3539
|
-
required: ["id",
|
|
4375
|
+
required: ["id"],
|
|
4376
|
+
$defs: {
|
|
4377
|
+
EndpointMetricsInterval: {
|
|
4378
|
+
type: "string",
|
|
4379
|
+
enum: ["1m", "5m", "15m", "30m", "1h", "6h", "12h", "1d"],
|
|
4380
|
+
default: "1h",
|
|
4381
|
+
description: "Bucket size for endpoint metrics."
|
|
4382
|
+
}
|
|
4383
|
+
}
|
|
3540
4384
|
}
|
|
3541
4385
|
},
|
|
3542
4386
|
{
|
|
@@ -3651,7 +4495,7 @@ var generatedTools = [
|
|
|
3651
4495
|
},
|
|
3652
4496
|
cloud: {
|
|
3653
4497
|
$ref: "#/$defs/GpuCloudFilter",
|
|
3654
|
-
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY.
|
|
4498
|
+
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Default when omitted: SECURE.",
|
|
3655
4499
|
type: "string"
|
|
3656
4500
|
},
|
|
3657
4501
|
countryCodes: {
|
|
@@ -3747,6 +4591,146 @@ var generatedTools = [
|
|
|
3747
4591
|
properties: {}
|
|
3748
4592
|
}
|
|
3749
4593
|
},
|
|
4594
|
+
{
|
|
4595
|
+
name: "get-organization-group",
|
|
4596
|
+
title: "Get organization group",
|
|
4597
|
+
operationId: "getOrganizationGroup",
|
|
4598
|
+
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.",
|
|
4599
|
+
method: "GET",
|
|
4600
|
+
path: "/v2/organization/groups/{id}",
|
|
4601
|
+
params: [
|
|
4602
|
+
{
|
|
4603
|
+
name: "id",
|
|
4604
|
+
location: "path"
|
|
4605
|
+
}
|
|
4606
|
+
],
|
|
4607
|
+
hasBody: false,
|
|
4608
|
+
annotations: {
|
|
4609
|
+
readOnlyHint: true,
|
|
4610
|
+
destructiveHint: false,
|
|
4611
|
+
idempotentHint: true,
|
|
4612
|
+
openWorldHint: true
|
|
4613
|
+
},
|
|
4614
|
+
inputSchema: {
|
|
4615
|
+
type: "object",
|
|
4616
|
+
properties: {
|
|
4617
|
+
id: {
|
|
4618
|
+
type: "string",
|
|
4619
|
+
minLength: 1,
|
|
4620
|
+
description: "Group ID."
|
|
4621
|
+
}
|
|
4622
|
+
},
|
|
4623
|
+
required: ["id"]
|
|
4624
|
+
}
|
|
4625
|
+
},
|
|
4626
|
+
{
|
|
4627
|
+
name: "get-organization-invite",
|
|
4628
|
+
title: "Get organization invite",
|
|
4629
|
+
operationId: "getOrganizationInvite",
|
|
4630
|
+
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.",
|
|
4631
|
+
method: "GET",
|
|
4632
|
+
path: "/v2/organization/invites/{id}",
|
|
4633
|
+
params: [
|
|
4634
|
+
{
|
|
4635
|
+
name: "id",
|
|
4636
|
+
location: "path"
|
|
4637
|
+
}
|
|
4638
|
+
],
|
|
4639
|
+
hasBody: false,
|
|
4640
|
+
annotations: {
|
|
4641
|
+
readOnlyHint: true,
|
|
4642
|
+
destructiveHint: false,
|
|
4643
|
+
idempotentHint: true,
|
|
4644
|
+
openWorldHint: true
|
|
4645
|
+
},
|
|
4646
|
+
inputSchema: {
|
|
4647
|
+
type: "object",
|
|
4648
|
+
properties: {
|
|
4649
|
+
id: {
|
|
4650
|
+
type: "string",
|
|
4651
|
+
description: "Invite identifier"
|
|
4652
|
+
}
|
|
4653
|
+
},
|
|
4654
|
+
required: ["id"]
|
|
4655
|
+
}
|
|
4656
|
+
},
|
|
4657
|
+
{
|
|
4658
|
+
name: "get-organization-role",
|
|
4659
|
+
title: "Get organization role",
|
|
4660
|
+
operationId: "getOrganizationRole",
|
|
4661
|
+
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.",
|
|
4662
|
+
method: "GET",
|
|
4663
|
+
path: "/v2/organization/roles/{id}",
|
|
4664
|
+
params: [
|
|
4665
|
+
{
|
|
4666
|
+
name: "id",
|
|
4667
|
+
location: "path"
|
|
4668
|
+
}
|
|
4669
|
+
],
|
|
4670
|
+
hasBody: false,
|
|
4671
|
+
annotations: {
|
|
4672
|
+
readOnlyHint: true,
|
|
4673
|
+
destructiveHint: false,
|
|
4674
|
+
idempotentHint: true,
|
|
4675
|
+
openWorldHint: true
|
|
4676
|
+
},
|
|
4677
|
+
inputSchema: {
|
|
4678
|
+
type: "object",
|
|
4679
|
+
properties: {
|
|
4680
|
+
id: {
|
|
4681
|
+
type: "string",
|
|
4682
|
+
description: "Role identifier"
|
|
4683
|
+
}
|
|
4684
|
+
},
|
|
4685
|
+
required: ["id"]
|
|
4686
|
+
}
|
|
4687
|
+
},
|
|
4688
|
+
{
|
|
4689
|
+
name: "get-organization-role-capabilities",
|
|
4690
|
+
title: "Get organization role capabilities",
|
|
4691
|
+
operationId: "getOrganizationRoleCapabilities",
|
|
4692
|
+
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.",
|
|
4693
|
+
method: "GET",
|
|
4694
|
+
path: "/v2/organization/roles/capabilities",
|
|
4695
|
+
params: [
|
|
4696
|
+
{
|
|
4697
|
+
name: "family",
|
|
4698
|
+
location: "query",
|
|
4699
|
+
explode: false
|
|
4700
|
+
},
|
|
4701
|
+
{
|
|
4702
|
+
name: "verb",
|
|
4703
|
+
location: "query",
|
|
4704
|
+
explode: false
|
|
4705
|
+
}
|
|
4706
|
+
],
|
|
4707
|
+
hasBody: false,
|
|
4708
|
+
annotations: {
|
|
4709
|
+
readOnlyHint: true,
|
|
4710
|
+
destructiveHint: false,
|
|
4711
|
+
idempotentHint: true,
|
|
4712
|
+
openWorldHint: true
|
|
4713
|
+
},
|
|
4714
|
+
inputSchema: {
|
|
4715
|
+
type: "object",
|
|
4716
|
+
properties: {
|
|
4717
|
+
family: {
|
|
4718
|
+
type: "array",
|
|
4719
|
+
items: {
|
|
4720
|
+
type: "string"
|
|
4721
|
+
},
|
|
4722
|
+
description: "Only return these capability families, matched exactly. Comma-separated; a family matching any listed value is returned. An empty value is ignored."
|
|
4723
|
+
},
|
|
4724
|
+
verb: {
|
|
4725
|
+
type: "array",
|
|
4726
|
+
items: {
|
|
4727
|
+
type: "string"
|
|
4728
|
+
},
|
|
4729
|
+
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."
|
|
4730
|
+
}
|
|
4731
|
+
}
|
|
4732
|
+
}
|
|
4733
|
+
},
|
|
3750
4734
|
{
|
|
3751
4735
|
name: "get-organization-user",
|
|
3752
4736
|
title: "Get organization user",
|
|
@@ -4126,46 +5110,126 @@ var generatedTools = [
|
|
|
4126
5110
|
},
|
|
4127
5111
|
endTime: {
|
|
4128
5112
|
type: "string",
|
|
4129
|
-
format: "date-time",
|
|
4130
|
-
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."
|
|
4131
|
-
},
|
|
4132
|
-
bucketSize: {
|
|
4133
|
-
$ref: "#/$defs/BillingBucketSize",
|
|
4134
|
-
description: "Length of each billing time bucket. Defaults to day.",
|
|
4135
|
-
type: "string"
|
|
5113
|
+
format: "date-time",
|
|
5114
|
+
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."
|
|
5115
|
+
},
|
|
5116
|
+
bucketSize: {
|
|
5117
|
+
$ref: "#/$defs/BillingBucketSize",
|
|
5118
|
+
description: "Length of each billing time bucket. Defaults to day.",
|
|
5119
|
+
type: "string"
|
|
5120
|
+
},
|
|
5121
|
+
lastN: {
|
|
5122
|
+
type: "integer",
|
|
5123
|
+
minimum: 1,
|
|
5124
|
+
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".'
|
|
5125
|
+
},
|
|
5126
|
+
clusterId: {
|
|
5127
|
+
type: "string",
|
|
5128
|
+
description: "Filter to a specific cluster."
|
|
5129
|
+
}
|
|
5130
|
+
},
|
|
5131
|
+
$defs: {
|
|
5132
|
+
BillingBucketSize: {
|
|
5133
|
+
type: "string",
|
|
5134
|
+
enum: ["hour", "day", "week", "month", "year"],
|
|
5135
|
+
default: "day",
|
|
5136
|
+
description: "Length of each billing time bucket.",
|
|
5137
|
+
examples: ["day"]
|
|
5138
|
+
}
|
|
5139
|
+
}
|
|
5140
|
+
}
|
|
5141
|
+
},
|
|
5142
|
+
{
|
|
5143
|
+
name: "list-cluster-pods",
|
|
5144
|
+
title: "List cluster Pods",
|
|
5145
|
+
operationId: "listClusterPods",
|
|
5146
|
+
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.",
|
|
5147
|
+
method: "GET",
|
|
5148
|
+
path: "/v2/clusters/{id}/pods",
|
|
5149
|
+
params: [
|
|
5150
|
+
{
|
|
5151
|
+
name: "id",
|
|
5152
|
+
location: "path"
|
|
5153
|
+
}
|
|
5154
|
+
],
|
|
5155
|
+
hasBody: false,
|
|
5156
|
+
annotations: {
|
|
5157
|
+
readOnlyHint: true,
|
|
5158
|
+
destructiveHint: false,
|
|
5159
|
+
idempotentHint: true,
|
|
5160
|
+
openWorldHint: true
|
|
5161
|
+
},
|
|
5162
|
+
inputSchema: {
|
|
5163
|
+
type: "object",
|
|
5164
|
+
properties: {
|
|
5165
|
+
id: {
|
|
5166
|
+
type: "string",
|
|
5167
|
+
description: "Cluster identifier"
|
|
5168
|
+
}
|
|
5169
|
+
},
|
|
5170
|
+
required: ["id"]
|
|
5171
|
+
}
|
|
5172
|
+
},
|
|
5173
|
+
{
|
|
5174
|
+
name: "list-clusters",
|
|
5175
|
+
title: "List clusters",
|
|
5176
|
+
operationId: "listClusters",
|
|
5177
|
+
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.",
|
|
5178
|
+
method: "GET",
|
|
5179
|
+
path: "/v2/clusters",
|
|
5180
|
+
params: [
|
|
5181
|
+
{
|
|
5182
|
+
name: "cursor",
|
|
5183
|
+
location: "query"
|
|
5184
|
+
},
|
|
5185
|
+
{
|
|
5186
|
+
name: "limit",
|
|
5187
|
+
location: "query"
|
|
5188
|
+
}
|
|
5189
|
+
],
|
|
5190
|
+
hasBody: false,
|
|
5191
|
+
annotations: {
|
|
5192
|
+
readOnlyHint: true,
|
|
5193
|
+
destructiveHint: false,
|
|
5194
|
+
idempotentHint: true,
|
|
5195
|
+
openWorldHint: true
|
|
5196
|
+
},
|
|
5197
|
+
inputSchema: {
|
|
5198
|
+
type: "object",
|
|
5199
|
+
properties: {
|
|
5200
|
+
cursor: {
|
|
5201
|
+
type: "string",
|
|
5202
|
+
minLength: 1,
|
|
5203
|
+
description: "Opaque resume cursor \u2014 pass the previous response's `pagination.nextCursor` through verbatim; omit for the first page. A cursor is only valid for the operation and parameters that issued it; a malformed or foreign cursor is rejected."
|
|
4136
5204
|
},
|
|
4137
|
-
|
|
5205
|
+
limit: {
|
|
4138
5206
|
type: "integer",
|
|
4139
5207
|
minimum: 1,
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
clusterId: {
|
|
4143
|
-
type: "string",
|
|
4144
|
-
description: "Filter to a specific cluster."
|
|
4145
|
-
}
|
|
4146
|
-
},
|
|
4147
|
-
$defs: {
|
|
4148
|
-
BillingBucketSize: {
|
|
4149
|
-
type: "string",
|
|
4150
|
-
enum: ["hour", "day", "week", "month", "year"],
|
|
4151
|
-
default: "day",
|
|
4152
|
-
description: "Length of each billing time bucket.",
|
|
4153
|
-
examples: ["day"]
|
|
5208
|
+
maximum: 1e3,
|
|
5209
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
4154
5210
|
}
|
|
4155
5211
|
}
|
|
4156
5212
|
}
|
|
4157
5213
|
},
|
|
4158
5214
|
{
|
|
4159
|
-
name: "list-
|
|
4160
|
-
title: "List
|
|
4161
|
-
operationId: "
|
|
4162
|
-
description: "List a
|
|
5215
|
+
name: "list-cost-center-resources",
|
|
5216
|
+
title: "List cost center resources",
|
|
5217
|
+
operationId: "listCostCenterResources",
|
|
5218
|
+
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.",
|
|
4163
5219
|
method: "GET",
|
|
4164
|
-
path: "/v2/
|
|
5220
|
+
path: "/v2/cost-centers/{id}/resources",
|
|
4165
5221
|
params: [
|
|
4166
5222
|
{
|
|
4167
5223
|
name: "id",
|
|
4168
5224
|
location: "path"
|
|
5225
|
+
},
|
|
5226
|
+
{
|
|
5227
|
+
name: "cursor",
|
|
5228
|
+
location: "query"
|
|
5229
|
+
},
|
|
5230
|
+
{
|
|
5231
|
+
name: "limit",
|
|
5232
|
+
location: "query"
|
|
4169
5233
|
}
|
|
4170
5234
|
],
|
|
4171
5235
|
hasBody: false,
|
|
@@ -4180,20 +5244,36 @@ var generatedTools = [
|
|
|
4180
5244
|
properties: {
|
|
4181
5245
|
id: {
|
|
4182
5246
|
type: "string",
|
|
4183
|
-
|
|
5247
|
+
minLength: 1,
|
|
5248
|
+
description: "Cost center identifier."
|
|
5249
|
+
},
|
|
5250
|
+
cursor: {
|
|
5251
|
+
type: "string",
|
|
5252
|
+
minLength: 1,
|
|
5253
|
+
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."
|
|
5254
|
+
},
|
|
5255
|
+
limit: {
|
|
5256
|
+
type: "integer",
|
|
5257
|
+
minimum: 1,
|
|
5258
|
+
maximum: 1e3,
|
|
5259
|
+
description: "Page size, 1\u20131000. Defaults to 1000 when omitted."
|
|
4184
5260
|
}
|
|
4185
5261
|
},
|
|
4186
5262
|
required: ["id"]
|
|
4187
5263
|
}
|
|
4188
5264
|
},
|
|
4189
5265
|
{
|
|
4190
|
-
name: "list-
|
|
4191
|
-
title: "List
|
|
4192
|
-
operationId: "
|
|
4193
|
-
description: "List
|
|
5266
|
+
name: "list-cost-centers",
|
|
5267
|
+
title: "List cost centers",
|
|
5268
|
+
operationId: "listCostCenters",
|
|
5269
|
+
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.",
|
|
4194
5270
|
method: "GET",
|
|
4195
|
-
path: "/v2/
|
|
5271
|
+
path: "/v2/cost-centers",
|
|
4196
5272
|
params: [
|
|
5273
|
+
{
|
|
5274
|
+
name: "search",
|
|
5275
|
+
location: "query"
|
|
5276
|
+
},
|
|
4197
5277
|
{
|
|
4198
5278
|
name: "cursor",
|
|
4199
5279
|
location: "query"
|
|
@@ -4213,6 +5293,11 @@ var generatedTools = [
|
|
|
4213
5293
|
inputSchema: {
|
|
4214
5294
|
type: "object",
|
|
4215
5295
|
properties: {
|
|
5296
|
+
search: {
|
|
5297
|
+
type: "string",
|
|
5298
|
+
minLength: 1,
|
|
5299
|
+
description: "Case-insensitive substring match against `value`."
|
|
5300
|
+
},
|
|
4216
5301
|
cursor: {
|
|
4217
5302
|
type: "string",
|
|
4218
5303
|
minLength: 1,
|
|
@@ -4757,7 +5842,7 @@ var generatedTools = [
|
|
|
4757
5842
|
},
|
|
4758
5843
|
cloud: {
|
|
4759
5844
|
$ref: "#/$defs/GpuCloudFilter",
|
|
4760
|
-
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY.
|
|
5845
|
+
description: "Cloud type for availability and lowest-price calculations. Valid only with include=AVAILABILITY. Supported values: SECURE, COMMUNITY. Default when omitted: SECURE.",
|
|
4761
5846
|
type: "string"
|
|
4762
5847
|
},
|
|
4763
5848
|
countryCodes: {
|
|
@@ -4917,6 +6002,146 @@ var generatedTools = [
|
|
|
4917
6002
|
}
|
|
4918
6003
|
}
|
|
4919
6004
|
},
|
|
6005
|
+
{
|
|
6006
|
+
name: "list-organization-group-members",
|
|
6007
|
+
title: "List organization group members",
|
|
6008
|
+
operationId: "listOrganizationGroupMembers",
|
|
6009
|
+
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.",
|
|
6010
|
+
method: "GET",
|
|
6011
|
+
path: "/v2/organization/groups/{id}/members",
|
|
6012
|
+
params: [
|
|
6013
|
+
{
|
|
6014
|
+
name: "id",
|
|
6015
|
+
location: "path"
|
|
6016
|
+
},
|
|
6017
|
+
{
|
|
6018
|
+
name: "cursor",
|
|
6019
|
+
location: "query"
|
|
6020
|
+
},
|
|
6021
|
+
{
|
|
6022
|
+
name: "limit",
|
|
6023
|
+
location: "query"
|
|
6024
|
+
}
|
|
6025
|
+
],
|
|
6026
|
+
hasBody: false,
|
|
6027
|
+
annotations: {
|
|
6028
|
+
readOnlyHint: true,
|
|
6029
|
+
destructiveHint: false,
|
|
6030
|
+
idempotentHint: true,
|
|
6031
|
+
openWorldHint: true
|
|
6032
|
+
},
|
|
6033
|
+
inputSchema: {
|
|
6034
|
+
type: "object",
|
|
6035
|
+
properties: {
|
|
6036
|
+
id: {
|
|
6037
|
+
type: "string",
|
|
6038
|
+
minLength: 1,
|
|
6039
|
+
description: "Group ID."
|
|
6040
|
+
},
|
|
6041
|
+
cursor: {
|
|
6042
|
+
type: "string",
|
|
6043
|
+
minLength: 1,
|
|
6044
|
+
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."
|
|
6045
|
+
},
|
|
6046
|
+
limit: {
|
|
6047
|
+
type: "integer",
|
|
6048
|
+
minimum: 1,
|
|
6049
|
+
maximum: 100,
|
|
6050
|
+
description: "Page size, 1\u2013100. Defaults to 100 when omitted."
|
|
6051
|
+
}
|
|
6052
|
+
},
|
|
6053
|
+
required: ["id"]
|
|
6054
|
+
}
|
|
6055
|
+
},
|
|
6056
|
+
{
|
|
6057
|
+
name: "list-organization-groups",
|
|
6058
|
+
title: "List organization groups",
|
|
6059
|
+
operationId: "listOrganizationGroups",
|
|
6060
|
+
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.",
|
|
6061
|
+
method: "GET",
|
|
6062
|
+
path: "/v2/organization/groups",
|
|
6063
|
+
params: [
|
|
6064
|
+
{
|
|
6065
|
+
name: "name",
|
|
6066
|
+
location: "query"
|
|
6067
|
+
},
|
|
6068
|
+
{
|
|
6069
|
+
name: "cursor",
|
|
6070
|
+
location: "query"
|
|
6071
|
+
},
|
|
6072
|
+
{
|
|
6073
|
+
name: "limit",
|
|
6074
|
+
location: "query"
|
|
6075
|
+
}
|
|
6076
|
+
],
|
|
6077
|
+
hasBody: false,
|
|
6078
|
+
annotations: {
|
|
6079
|
+
readOnlyHint: true,
|
|
6080
|
+
destructiveHint: false,
|
|
6081
|
+
idempotentHint: true,
|
|
6082
|
+
openWorldHint: true
|
|
6083
|
+
},
|
|
6084
|
+
inputSchema: {
|
|
6085
|
+
type: "object",
|
|
6086
|
+
properties: {
|
|
6087
|
+
name: {
|
|
6088
|
+
type: "string",
|
|
6089
|
+
description: "Optional case-insensitive substring of the group name. An empty value applies no filter."
|
|
6090
|
+
},
|
|
6091
|
+
cursor: {
|
|
6092
|
+
type: "string",
|
|
6093
|
+
minLength: 1,
|
|
6094
|
+
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."
|
|
6095
|
+
},
|
|
6096
|
+
limit: {
|
|
6097
|
+
type: "integer",
|
|
6098
|
+
minimum: 1,
|
|
6099
|
+
maximum: 100,
|
|
6100
|
+
description: "Page size, 1\u2013100. Defaults to 100 when omitted."
|
|
6101
|
+
}
|
|
6102
|
+
}
|
|
6103
|
+
}
|
|
6104
|
+
},
|
|
6105
|
+
{
|
|
6106
|
+
name: "list-organization-invites",
|
|
6107
|
+
title: "List organization invites",
|
|
6108
|
+
operationId: "listOrganizationInvites",
|
|
6109
|
+
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.",
|
|
6110
|
+
method: "GET",
|
|
6111
|
+
path: "/v2/organization/invites",
|
|
6112
|
+
params: [],
|
|
6113
|
+
hasBody: false,
|
|
6114
|
+
annotations: {
|
|
6115
|
+
readOnlyHint: true,
|
|
6116
|
+
destructiveHint: false,
|
|
6117
|
+
idempotentHint: true,
|
|
6118
|
+
openWorldHint: true
|
|
6119
|
+
},
|
|
6120
|
+
inputSchema: {
|
|
6121
|
+
type: "object",
|
|
6122
|
+
properties: {}
|
|
6123
|
+
}
|
|
6124
|
+
},
|
|
6125
|
+
{
|
|
6126
|
+
name: "list-organization-roles",
|
|
6127
|
+
title: "List organization roles",
|
|
6128
|
+
operationId: "listOrganizationRoles",
|
|
6129
|
+
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.",
|
|
6130
|
+
method: "GET",
|
|
6131
|
+
path: "/v2/organization/roles",
|
|
6132
|
+
params: [],
|
|
6133
|
+
hasBody: false,
|
|
6134
|
+
annotations: {
|
|
6135
|
+
readOnlyHint: true,
|
|
6136
|
+
destructiveHint: false,
|
|
6137
|
+
idempotentHint: true,
|
|
6138
|
+
openWorldHint: true
|
|
6139
|
+
},
|
|
6140
|
+
inputSchema: {
|
|
6141
|
+
type: "object",
|
|
6142
|
+
properties: {}
|
|
6143
|
+
}
|
|
6144
|
+
},
|
|
4920
6145
|
{
|
|
4921
6146
|
name: "list-organization-users",
|
|
4922
6147
|
title: "List organization users",
|
|
@@ -5271,6 +6496,47 @@ var generatedTools = [
|
|
|
5271
6496
|
}
|
|
5272
6497
|
}
|
|
5273
6498
|
},
|
|
6499
|
+
{
|
|
6500
|
+
name: "remove-organization-group-member",
|
|
6501
|
+
title: "Remove organization group member",
|
|
6502
|
+
operationId: "removeOrganizationGroupMember",
|
|
6503
|
+
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.",
|
|
6504
|
+
method: "DELETE",
|
|
6505
|
+
path: "/v2/organization/groups/{id}/members/{userId}",
|
|
6506
|
+
params: [
|
|
6507
|
+
{
|
|
6508
|
+
name: "id",
|
|
6509
|
+
location: "path"
|
|
6510
|
+
},
|
|
6511
|
+
{
|
|
6512
|
+
name: "userId",
|
|
6513
|
+
location: "path"
|
|
6514
|
+
}
|
|
6515
|
+
],
|
|
6516
|
+
hasBody: false,
|
|
6517
|
+
annotations: {
|
|
6518
|
+
readOnlyHint: false,
|
|
6519
|
+
destructiveHint: true,
|
|
6520
|
+
idempotentHint: true,
|
|
6521
|
+
openWorldHint: true
|
|
6522
|
+
},
|
|
6523
|
+
inputSchema: {
|
|
6524
|
+
type: "object",
|
|
6525
|
+
properties: {
|
|
6526
|
+
id: {
|
|
6527
|
+
type: "string",
|
|
6528
|
+
minLength: 1,
|
|
6529
|
+
description: "Group ID."
|
|
6530
|
+
},
|
|
6531
|
+
userId: {
|
|
6532
|
+
type: "string",
|
|
6533
|
+
minLength: 1,
|
|
6534
|
+
description: "Organization member user ID."
|
|
6535
|
+
}
|
|
6536
|
+
},
|
|
6537
|
+
required: ["id", "userId"]
|
|
6538
|
+
}
|
|
6539
|
+
},
|
|
5274
6540
|
{
|
|
5275
6541
|
name: "revoke-delegation",
|
|
5276
6542
|
title: "Revoke ECR delegation",
|
|
@@ -5297,17 +6563,67 @@ var generatedTools = [
|
|
|
5297
6563
|
id: {
|
|
5298
6564
|
type: "string"
|
|
5299
6565
|
}
|
|
5300
|
-
},
|
|
5301
|
-
required: ["id"]
|
|
6566
|
+
},
|
|
6567
|
+
required: ["id"]
|
|
6568
|
+
}
|
|
6569
|
+
},
|
|
6570
|
+
{
|
|
6571
|
+
name: "update-cluster",
|
|
6572
|
+
title: "Update cluster",
|
|
6573
|
+
operationId: "updateCluster",
|
|
6574
|
+
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.",
|
|
6575
|
+
method: "PATCH",
|
|
6576
|
+
path: "/v2/clusters/{id}",
|
|
6577
|
+
params: [
|
|
6578
|
+
{
|
|
6579
|
+
name: "id",
|
|
6580
|
+
location: "path"
|
|
6581
|
+
}
|
|
6582
|
+
],
|
|
6583
|
+
hasBody: true,
|
|
6584
|
+
annotations: {
|
|
6585
|
+
readOnlyHint: false,
|
|
6586
|
+
destructiveHint: false,
|
|
6587
|
+
idempotentHint: true,
|
|
6588
|
+
openWorldHint: true
|
|
6589
|
+
},
|
|
6590
|
+
inputSchema: {
|
|
6591
|
+
type: "object",
|
|
6592
|
+
properties: {
|
|
6593
|
+
id: {
|
|
6594
|
+
type: "string",
|
|
6595
|
+
description: "Cluster identifier"
|
|
6596
|
+
},
|
|
6597
|
+
body: {
|
|
6598
|
+
$ref: "#/$defs/UpdateClusterRequest",
|
|
6599
|
+
type: "object"
|
|
6600
|
+
}
|
|
6601
|
+
},
|
|
6602
|
+
required: ["id", "body"],
|
|
6603
|
+
$defs: {
|
|
6604
|
+
UpdateClusterRequest: {
|
|
6605
|
+
type: "object",
|
|
6606
|
+
additionalProperties: false,
|
|
6607
|
+
minProperties: 1,
|
|
6608
|
+
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.",
|
|
6609
|
+
properties: {
|
|
6610
|
+
name: {
|
|
6611
|
+
type: "string",
|
|
6612
|
+
minLength: 1,
|
|
6613
|
+
examples: ["renamed-cluster"]
|
|
6614
|
+
}
|
|
6615
|
+
}
|
|
6616
|
+
}
|
|
6617
|
+
}
|
|
5302
6618
|
}
|
|
5303
6619
|
},
|
|
5304
6620
|
{
|
|
5305
|
-
name: "update-
|
|
5306
|
-
title: "Update
|
|
5307
|
-
operationId: "
|
|
5308
|
-
description: "Rename a
|
|
6621
|
+
name: "update-cost-center",
|
|
6622
|
+
title: "Update cost center",
|
|
6623
|
+
operationId: "updateCostCenter",
|
|
6624
|
+
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.",
|
|
5309
6625
|
method: "PATCH",
|
|
5310
|
-
path: "/v2/
|
|
6626
|
+
path: "/v2/cost-centers/{id}",
|
|
5311
6627
|
params: [
|
|
5312
6628
|
{
|
|
5313
6629
|
name: "id",
|
|
@@ -5326,25 +6642,28 @@ var generatedTools = [
|
|
|
5326
6642
|
properties: {
|
|
5327
6643
|
id: {
|
|
5328
6644
|
type: "string",
|
|
5329
|
-
|
|
6645
|
+
minLength: 1,
|
|
6646
|
+
description: "Cost center identifier."
|
|
5330
6647
|
},
|
|
5331
6648
|
body: {
|
|
5332
|
-
$ref: "#/$defs/
|
|
6649
|
+
$ref: "#/$defs/UpdateCostCenterRequest",
|
|
5333
6650
|
type: "object"
|
|
5334
6651
|
}
|
|
5335
6652
|
},
|
|
5336
6653
|
required: ["id", "body"],
|
|
5337
6654
|
$defs: {
|
|
5338
|
-
|
|
6655
|
+
UpdateCostCenterRequest: {
|
|
5339
6656
|
type: "object",
|
|
5340
6657
|
additionalProperties: false,
|
|
5341
|
-
|
|
5342
|
-
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.",
|
|
6658
|
+
required: ["value"],
|
|
5343
6659
|
properties: {
|
|
5344
|
-
|
|
6660
|
+
value: {
|
|
5345
6661
|
type: "string",
|
|
5346
6662
|
minLength: 1,
|
|
5347
|
-
|
|
6663
|
+
maxLength: 50,
|
|
6664
|
+
pattern: "^\\s*\\S",
|
|
6665
|
+
description: "Leading and trailing whitespace is trimmed.",
|
|
6666
|
+
examples: ["team-ml-eu"]
|
|
5348
6667
|
}
|
|
5349
6668
|
}
|
|
5350
6669
|
}
|
|
@@ -5788,6 +7107,7 @@ var generatedTools = [
|
|
|
5788
7107
|
type: "string",
|
|
5789
7108
|
minLength: 1,
|
|
5790
7109
|
maxLength: 191,
|
|
7110
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
5791
7111
|
description: "New human-readable name, 1\u2013191 characters with at least one non-whitespace character. Leading and trailing whitespace is trimmed.",
|
|
5792
7112
|
examples: ["renamed-volume"]
|
|
5793
7113
|
}
|
|
@@ -5854,11 +7174,218 @@ var generatedTools = [
|
|
|
5854
7174
|
}
|
|
5855
7175
|
}
|
|
5856
7176
|
},
|
|
7177
|
+
{
|
|
7178
|
+
name: "update-organization-group",
|
|
7179
|
+
title: "Update organization group",
|
|
7180
|
+
operationId: "updateOrganizationGroup",
|
|
7181
|
+
description: "Rename a group in your current organization",
|
|
7182
|
+
method: "PATCH",
|
|
7183
|
+
path: "/v2/organization/groups/{id}",
|
|
7184
|
+
params: [
|
|
7185
|
+
{
|
|
7186
|
+
name: "id",
|
|
7187
|
+
location: "path"
|
|
7188
|
+
}
|
|
7189
|
+
],
|
|
7190
|
+
hasBody: true,
|
|
7191
|
+
annotations: {
|
|
7192
|
+
readOnlyHint: false,
|
|
7193
|
+
destructiveHint: false,
|
|
7194
|
+
idempotentHint: true,
|
|
7195
|
+
openWorldHint: true
|
|
7196
|
+
},
|
|
7197
|
+
inputSchema: {
|
|
7198
|
+
type: "object",
|
|
7199
|
+
properties: {
|
|
7200
|
+
id: {
|
|
7201
|
+
type: "string",
|
|
7202
|
+
minLength: 1,
|
|
7203
|
+
description: "Group ID."
|
|
7204
|
+
},
|
|
7205
|
+
body: {
|
|
7206
|
+
$ref: "#/$defs/UpdateOrganizationGroupRequest",
|
|
7207
|
+
type: "object"
|
|
7208
|
+
}
|
|
7209
|
+
},
|
|
7210
|
+
required: ["id", "body"],
|
|
7211
|
+
$defs: {
|
|
7212
|
+
UpdateOrganizationGroupRequest: {
|
|
7213
|
+
type: "object",
|
|
7214
|
+
additionalProperties: false,
|
|
7215
|
+
required: ["name"],
|
|
7216
|
+
properties: {
|
|
7217
|
+
name: {
|
|
7218
|
+
type: "string",
|
|
7219
|
+
minLength: 1,
|
|
7220
|
+
maxLength: 191,
|
|
7221
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
7222
|
+
description: "Group name with at least one non-whitespace character; surrounding whitespace is trimmed.",
|
|
7223
|
+
examples: ["Research"]
|
|
7224
|
+
}
|
|
7225
|
+
}
|
|
7226
|
+
}
|
|
7227
|
+
}
|
|
7228
|
+
}
|
|
7229
|
+
},
|
|
7230
|
+
{
|
|
7231
|
+
name: "update-organization-role",
|
|
7232
|
+
title: "Update organization role",
|
|
7233
|
+
operationId: "updateOrganizationRole",
|
|
7234
|
+
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.",
|
|
7235
|
+
method: "PATCH",
|
|
7236
|
+
path: "/v2/organization/roles/{id}",
|
|
7237
|
+
params: [
|
|
7238
|
+
{
|
|
7239
|
+
name: "id",
|
|
7240
|
+
location: "path"
|
|
7241
|
+
}
|
|
7242
|
+
],
|
|
7243
|
+
hasBody: true,
|
|
7244
|
+
annotations: {
|
|
7245
|
+
readOnlyHint: false,
|
|
7246
|
+
destructiveHint: true,
|
|
7247
|
+
idempotentHint: true,
|
|
7248
|
+
openWorldHint: true
|
|
7249
|
+
},
|
|
7250
|
+
inputSchema: {
|
|
7251
|
+
type: "object",
|
|
7252
|
+
properties: {
|
|
7253
|
+
id: {
|
|
7254
|
+
type: "string",
|
|
7255
|
+
description: "Role identifier"
|
|
7256
|
+
},
|
|
7257
|
+
body: {
|
|
7258
|
+
$ref: "#/$defs/UpdateOrganizationRoleRequest",
|
|
7259
|
+
type: "object"
|
|
7260
|
+
}
|
|
7261
|
+
},
|
|
7262
|
+
required: ["id", "body"],
|
|
7263
|
+
$defs: {
|
|
7264
|
+
OrganizationRoleCapabilitiesInput: {
|
|
7265
|
+
type: "array",
|
|
7266
|
+
description: "What the role grants, as `FAMILY:VERB` capabilities from `get-organization-role-capabilities`. The caller must hold every capability it lists.",
|
|
7267
|
+
minItems: 1,
|
|
7268
|
+
uniqueItems: true,
|
|
7269
|
+
items: {
|
|
7270
|
+
type: "string",
|
|
7271
|
+
pattern: "^[A-Z0-9_]+:[A-Z0-9_]+$"
|
|
7272
|
+
},
|
|
7273
|
+
examples: [["POD:VIEW"]]
|
|
7274
|
+
},
|
|
7275
|
+
OrganizationRoleName: {
|
|
7276
|
+
type: "string",
|
|
7277
|
+
minLength: 1,
|
|
7278
|
+
maxLength: 191,
|
|
7279
|
+
pattern: "[^\\t-\\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]",
|
|
7280
|
+
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.",
|
|
7281
|
+
examples: ["Pod viewer"]
|
|
7282
|
+
},
|
|
7283
|
+
UpdateOrganizationRoleRequest: {
|
|
7284
|
+
type: "object",
|
|
7285
|
+
additionalProperties: false,
|
|
7286
|
+
minProperties: 1,
|
|
7287
|
+
description: "The fields to change; omitted fields are unchanged. `capabilities` replaces the role's whole grant set rather than adding to it.",
|
|
7288
|
+
properties: {
|
|
7289
|
+
name: {
|
|
7290
|
+
$ref: "#/$defs/OrganizationRoleName"
|
|
7291
|
+
},
|
|
7292
|
+
capabilities: {
|
|
7293
|
+
$ref: "#/$defs/OrganizationRoleCapabilitiesInput"
|
|
7294
|
+
}
|
|
7295
|
+
}
|
|
7296
|
+
}
|
|
7297
|
+
}
|
|
7298
|
+
}
|
|
7299
|
+
},
|
|
7300
|
+
{
|
|
7301
|
+
name: "update-organization-user",
|
|
7302
|
+
title: "Update organization user",
|
|
7303
|
+
operationId: "updateOrganizationUser",
|
|
7304
|
+
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.",
|
|
7305
|
+
method: "PATCH",
|
|
7306
|
+
path: "/v2/organization/users/{id}",
|
|
7307
|
+
params: [
|
|
7308
|
+
{
|
|
7309
|
+
name: "id",
|
|
7310
|
+
location: "path"
|
|
7311
|
+
}
|
|
7312
|
+
],
|
|
7313
|
+
hasBody: true,
|
|
7314
|
+
annotations: {
|
|
7315
|
+
readOnlyHint: false,
|
|
7316
|
+
destructiveHint: true,
|
|
7317
|
+
idempotentHint: true,
|
|
7318
|
+
openWorldHint: true
|
|
7319
|
+
},
|
|
7320
|
+
inputSchema: {
|
|
7321
|
+
type: "object",
|
|
7322
|
+
properties: {
|
|
7323
|
+
id: {
|
|
7324
|
+
type: "string",
|
|
7325
|
+
description: "User identifier"
|
|
7326
|
+
},
|
|
7327
|
+
body: {
|
|
7328
|
+
$ref: "#/$defs/UpdateOrganizationUserRequest",
|
|
7329
|
+
type: "object"
|
|
7330
|
+
}
|
|
7331
|
+
},
|
|
7332
|
+
required: ["id", "body"],
|
|
7333
|
+
$defs: {
|
|
7334
|
+
OrganizationGroupInput: {
|
|
7335
|
+
type: "object",
|
|
7336
|
+
description: "An organization group, by ID.",
|
|
7337
|
+
additionalProperties: false,
|
|
7338
|
+
required: ["id"],
|
|
7339
|
+
properties: {
|
|
7340
|
+
id: {
|
|
7341
|
+
type: "string",
|
|
7342
|
+
minLength: 1,
|
|
7343
|
+
description: "Group ID.",
|
|
7344
|
+
examples: ["group_id_abc_123"]
|
|
7345
|
+
}
|
|
7346
|
+
}
|
|
7347
|
+
},
|
|
7348
|
+
OrganizationRoleInput: {
|
|
7349
|
+
type: "object",
|
|
7350
|
+
description: "An organization role to assign, by ID.",
|
|
7351
|
+
additionalProperties: false,
|
|
7352
|
+
required: ["id"],
|
|
7353
|
+
properties: {
|
|
7354
|
+
id: {
|
|
7355
|
+
type: "string",
|
|
7356
|
+
minLength: 1,
|
|
7357
|
+
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.",
|
|
7358
|
+
examples: ["builtin:dev"]
|
|
7359
|
+
}
|
|
7360
|
+
}
|
|
7361
|
+
},
|
|
7362
|
+
UpdateOrganizationUserRequest: {
|
|
7363
|
+
type: "object",
|
|
7364
|
+
description: "Changes to a member. Send `role`, `groups`, or both; an omitted field is left as it is.",
|
|
7365
|
+
additionalProperties: false,
|
|
7366
|
+
minProperties: 1,
|
|
7367
|
+
properties: {
|
|
7368
|
+
role: {
|
|
7369
|
+
$ref: "#/$defs/OrganizationRoleInput"
|
|
7370
|
+
},
|
|
7371
|
+
groups: {
|
|
7372
|
+
type: "array",
|
|
7373
|
+
description: "The member's groups after the change: the whole set, by ID. An empty list removes the member from every group.",
|
|
7374
|
+
uniqueItems: true,
|
|
7375
|
+
items: {
|
|
7376
|
+
$ref: "#/$defs/OrganizationGroupInput"
|
|
7377
|
+
}
|
|
7378
|
+
}
|
|
7379
|
+
}
|
|
7380
|
+
}
|
|
7381
|
+
}
|
|
7382
|
+
}
|
|
7383
|
+
},
|
|
5857
7384
|
{
|
|
5858
7385
|
name: "update-pod",
|
|
5859
7386
|
title: "Update Pod",
|
|
5860
7387
|
operationId: "updatePod",
|
|
5861
|
-
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.",
|
|
7388
|
+
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.",
|
|
5862
7389
|
method: "PATCH",
|
|
5863
7390
|
path: "/v2/pods/{id}",
|
|
5864
7391
|
params: [
|
|
@@ -5952,21 +7479,6 @@ var generatedTools = [
|
|
|
5952
7479
|
}
|
|
5953
7480
|
}
|
|
5954
7481
|
},
|
|
5955
|
-
BaseMounts: {
|
|
5956
|
-
type: "object",
|
|
5957
|
-
properties: {
|
|
5958
|
-
persistent: {
|
|
5959
|
-
$ref: "#/$defs/PersistentMount"
|
|
5960
|
-
},
|
|
5961
|
-
network: {
|
|
5962
|
-
type: "array",
|
|
5963
|
-
maxItems: 1,
|
|
5964
|
-
items: {
|
|
5965
|
-
$ref: "#/$defs/NetworkMount"
|
|
5966
|
-
}
|
|
5967
|
-
}
|
|
5968
|
-
}
|
|
5969
|
-
},
|
|
5970
7482
|
ContainerConfig: {
|
|
5971
7483
|
allOf: [
|
|
5972
7484
|
{
|
|
@@ -5984,11 +7496,11 @@ var generatedTools = [
|
|
|
5984
7496
|
}
|
|
5985
7497
|
]
|
|
5986
7498
|
},
|
|
5987
|
-
|
|
7499
|
+
GlobalMountPatch: {
|
|
5988
7500
|
type: "object",
|
|
5989
7501
|
required: ["volumeId"],
|
|
5990
7502
|
additionalProperties: false,
|
|
5991
|
-
description: "
|
|
7503
|
+
description: "Mounts, moves, or unmounts the pod's global volume.",
|
|
5992
7504
|
properties: {
|
|
5993
7505
|
volumeId: {
|
|
5994
7506
|
type: "string",
|
|
@@ -5997,38 +7509,21 @@ var generatedTools = [
|
|
|
5997
7509
|
},
|
|
5998
7510
|
path: {
|
|
5999
7511
|
type: "string",
|
|
6000
|
-
|
|
7512
|
+
minLength: 1,
|
|
7513
|
+
description: "Mount path inside the container. Optional; when mounting, a default is chosen for you if omitted.",
|
|
6001
7514
|
examples: ["/data"]
|
|
6002
|
-
}
|
|
6003
|
-
}
|
|
6004
|
-
},
|
|
6005
|
-
Mounts: {
|
|
6006
|
-
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.",
|
|
6007
|
-
allOf: [
|
|
6008
|
-
{
|
|
6009
|
-
$ref: "#/$defs/BaseMounts"
|
|
6010
7515
|
},
|
|
6011
|
-
{
|
|
6012
|
-
type: "
|
|
6013
|
-
|
|
6014
|
-
global: {
|
|
6015
|
-
type: "array",
|
|
6016
|
-
maxItems: 1,
|
|
6017
|
-
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.",
|
|
6018
|
-
items: {
|
|
6019
|
-
$ref: "#/$defs/GlobalMount"
|
|
6020
|
-
}
|
|
6021
|
-
}
|
|
6022
|
-
}
|
|
7516
|
+
remove: {
|
|
7517
|
+
type: "boolean",
|
|
7518
|
+
description: "Unmount the volume. Cannot be combined with `path`."
|
|
6023
7519
|
}
|
|
6024
|
-
|
|
6025
|
-
unevaluatedProperties: false
|
|
7520
|
+
}
|
|
6026
7521
|
},
|
|
6027
|
-
|
|
7522
|
+
NetworkMountPatch: {
|
|
6028
7523
|
type: "object",
|
|
6029
|
-
required: ["volumeId"
|
|
7524
|
+
required: ["volumeId"],
|
|
6030
7525
|
additionalProperties: false,
|
|
6031
|
-
description: "
|
|
7526
|
+
description: "Mounts, moves, or unmounts one network volume. Mounting a volume the pod does not have requires `path`.",
|
|
6032
7527
|
properties: {
|
|
6033
7528
|
volumeId: {
|
|
6034
7529
|
type: "string",
|
|
@@ -6037,27 +7532,62 @@ var generatedTools = [
|
|
|
6037
7532
|
},
|
|
6038
7533
|
path: {
|
|
6039
7534
|
type: "string",
|
|
6040
|
-
|
|
7535
|
+
minLength: 1,
|
|
7536
|
+
description: "Mount path inside the container. Required when mounting; optional when moving a mounted volume.",
|
|
6041
7537
|
examples: ["/runpod-volume"]
|
|
7538
|
+
},
|
|
7539
|
+
remove: {
|
|
7540
|
+
type: "boolean",
|
|
7541
|
+
description: "Unmount the volume. Cannot be combined with `path`."
|
|
6042
7542
|
}
|
|
6043
7543
|
}
|
|
6044
7544
|
},
|
|
6045
|
-
|
|
7545
|
+
PersistentMountPatch: {
|
|
6046
7546
|
type: "object",
|
|
6047
|
-
required: ["size", "path"],
|
|
6048
7547
|
additionalProperties: false,
|
|
6049
|
-
description: "
|
|
7548
|
+
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.",
|
|
6050
7549
|
properties: {
|
|
6051
7550
|
size: {
|
|
6052
7551
|
type: "integer",
|
|
6053
7552
|
minimum: 10,
|
|
6054
|
-
description: "
|
|
6055
|
-
examples: [
|
|
7553
|
+
description: "Volume disk size in GB. Can only grow; a smaller size than the current one is rejected.",
|
|
7554
|
+
examples: [50]
|
|
6056
7555
|
},
|
|
6057
7556
|
path: {
|
|
6058
7557
|
type: "string",
|
|
6059
|
-
|
|
7558
|
+
minLength: 1,
|
|
7559
|
+
description: "Mount path inside the container.",
|
|
6060
7560
|
examples: ["/workspace"]
|
|
7561
|
+
},
|
|
7562
|
+
remove: {
|
|
7563
|
+
type: "boolean",
|
|
7564
|
+
description: "Removes the volume disk. Not supported yet: `remove: true` is rejected."
|
|
7565
|
+
}
|
|
7566
|
+
}
|
|
7567
|
+
},
|
|
7568
|
+
UpdatePodMounts: {
|
|
7569
|
+
type: "object",
|
|
7570
|
+
additionalProperties: false,
|
|
7571
|
+
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.",
|
|
7572
|
+
properties: {
|
|
7573
|
+
persistent: {
|
|
7574
|
+
$ref: "#/$defs/PersistentMountPatch"
|
|
7575
|
+
},
|
|
7576
|
+
network: {
|
|
7577
|
+
type: "array",
|
|
7578
|
+
maxItems: 8,
|
|
7579
|
+
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.",
|
|
7580
|
+
items: {
|
|
7581
|
+
$ref: "#/$defs/NetworkMountPatch"
|
|
7582
|
+
}
|
|
7583
|
+
},
|
|
7584
|
+
global: {
|
|
7585
|
+
type: "array",
|
|
7586
|
+
maxItems: 2,
|
|
7587
|
+
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.",
|
|
7588
|
+
items: {
|
|
7589
|
+
$ref: "#/$defs/GlobalMountPatch"
|
|
7590
|
+
}
|
|
6061
7591
|
}
|
|
6062
7592
|
}
|
|
6063
7593
|
},
|
|
@@ -6078,7 +7608,7 @@ var generatedTools = [
|
|
|
6078
7608
|
description: "Lock the pod (true) or unlock it (false). Locked pods cannot be stopped or reset."
|
|
6079
7609
|
},
|
|
6080
7610
|
mounts: {
|
|
6081
|
-
$ref: "#/$defs/
|
|
7611
|
+
$ref: "#/$defs/UpdatePodMounts"
|
|
6082
7612
|
},
|
|
6083
7613
|
name: {
|
|
6084
7614
|
type: "string",
|
|
@@ -6325,7 +7855,7 @@ var generatedTools = [
|
|
|
6325
7855
|
size: {
|
|
6326
7856
|
type: "integer",
|
|
6327
7857
|
minimum: 10,
|
|
6328
|
-
description: "Host-local persistent storage in GB.
|
|
7858
|
+
description: "Host-local persistent storage in GB. Minimum 10 GB.",
|
|
6329
7859
|
examples: [20]
|
|
6330
7860
|
},
|
|
6331
7861
|
path: {
|
|
@@ -6585,33 +8115,53 @@ var CREDENTIAL_MANAGEMENT = "Manages stored credentials; OpenAI restricts plugin
|
|
|
6585
8115
|
var CREDENTIAL_INPUT = "Takes a secret or password as input; directories forbid collecting credentials.";
|
|
6586
8116
|
var ALP = "Collects conversation-derived data beyond the task; the directory profile never serves it.";
|
|
6587
8117
|
var DIRECTORY_TOOLS = {
|
|
8118
|
+
"add-organization-group-member": IN,
|
|
8119
|
+
"attach-cost-center-resource": IN,
|
|
6588
8120
|
"cancel-job": IN,
|
|
6589
8121
|
"create-cluster": IN,
|
|
8122
|
+
"create-cost-center": IN,
|
|
6590
8123
|
"create-delegation": IN,
|
|
6591
8124
|
"create-endpoint": IN,
|
|
6592
8125
|
"create-global-volume": IN,
|
|
6593
8126
|
"create-network-volume": IN,
|
|
8127
|
+
"create-organization-group": IN,
|
|
8128
|
+
"create-organization-invite": IN,
|
|
8129
|
+
"create-organization-role": IN,
|
|
6594
8130
|
"create-pod": IN,
|
|
6595
8131
|
"create-template": IN,
|
|
6596
8132
|
"delete-cluster": IN,
|
|
8133
|
+
"delete-cost-center": IN,
|
|
6597
8134
|
"delete-endpoint": IN,
|
|
6598
8135
|
"delete-global-volume": IN,
|
|
6599
8136
|
"delete-network-volume": IN,
|
|
8137
|
+
"delete-organization-group": IN,
|
|
8138
|
+
"delete-organization-invite": IN,
|
|
8139
|
+
"delete-organization-role": IN,
|
|
8140
|
+
"delete-organization-user": IN,
|
|
6600
8141
|
"delete-pod": IN,
|
|
6601
8142
|
"delete-template": IN,
|
|
6602
8143
|
"deploy-hub-repo": IN,
|
|
8144
|
+
"detach-cost-center-resource": IN,
|
|
6603
8145
|
"endpoint-health": IN,
|
|
6604
8146
|
"get-capacity": IN,
|
|
6605
8147
|
"get-cluster": IN,
|
|
8148
|
+
"get-cost-center": IN,
|
|
6606
8149
|
"get-cpu-type": IN,
|
|
6607
8150
|
"get-data-center": IN,
|
|
6608
8151
|
"get-endpoint": IN,
|
|
6609
8152
|
"get-endpoint-build": IN,
|
|
8153
|
+
"get-endpoint-cold-start-metrics": IN,
|
|
8154
|
+
"get-endpoint-request-metrics": IN,
|
|
8155
|
+
"get-endpoint-worker-metrics": IN,
|
|
6610
8156
|
"get-global-volume": IN,
|
|
6611
8157
|
"get-gpu-type": IN,
|
|
6612
8158
|
"get-job-status": IN,
|
|
6613
8159
|
"get-network-volume": IN,
|
|
6614
8160
|
"get-organization": IN,
|
|
8161
|
+
"get-organization-group": IN,
|
|
8162
|
+
"get-organization-invite": IN,
|
|
8163
|
+
"get-organization-role": IN,
|
|
8164
|
+
"get-organization-role-capabilities": IN,
|
|
6615
8165
|
"get-organization-user": IN,
|
|
6616
8166
|
"get-pod": IN,
|
|
6617
8167
|
"get-ssh-keys": IN,
|
|
@@ -6621,6 +8171,8 @@ var DIRECTORY_TOOLS = {
|
|
|
6621
8171
|
"list-cluster-billing": IN,
|
|
6622
8172
|
"list-cluster-pods": IN,
|
|
6623
8173
|
"list-clusters": IN,
|
|
8174
|
+
"list-cost-center-resources": IN,
|
|
8175
|
+
"list-cost-centers": IN,
|
|
6624
8176
|
"list-cpu-types": IN,
|
|
6625
8177
|
"list-data-centers": IN,
|
|
6626
8178
|
"list-delegations": IN,
|
|
@@ -6634,6 +8186,10 @@ var DIRECTORY_TOOLS = {
|
|
|
6634
8186
|
"list-hub-repos": IN,
|
|
6635
8187
|
"list-network-volume-billing": IN,
|
|
6636
8188
|
"list-network-volumes": IN,
|
|
8189
|
+
"list-organization-group-members": IN,
|
|
8190
|
+
"list-organization-groups": IN,
|
|
8191
|
+
"list-organization-invites": IN,
|
|
8192
|
+
"list-organization-roles": IN,
|
|
6637
8193
|
"list-organization-users": IN,
|
|
6638
8194
|
"list-pod-billing": IN,
|
|
6639
8195
|
"list-pods": IN,
|
|
@@ -6643,6 +8199,7 @@ var DIRECTORY_TOOLS = {
|
|
|
6643
8199
|
"list-templates": IN,
|
|
6644
8200
|
"lookup-concept": IN,
|
|
6645
8201
|
"purge-endpoint-queue": IN,
|
|
8202
|
+
"remove-organization-group-member": IN,
|
|
6646
8203
|
"retry-job": IN,
|
|
6647
8204
|
"revoke-delegation": IN,
|
|
6648
8205
|
"search-concepts": IN,
|
|
@@ -6652,9 +8209,13 @@ var DIRECTORY_TOOLS = {
|
|
|
6652
8209
|
"stream-pod-logs": IN,
|
|
6653
8210
|
"stream-worker-logs": IN,
|
|
6654
8211
|
"update-cluster": IN,
|
|
8212
|
+
"update-cost-center": IN,
|
|
6655
8213
|
"update-endpoint": IN,
|
|
6656
8214
|
"update-global-volume": IN,
|
|
6657
8215
|
"update-network-volume": IN,
|
|
8216
|
+
"update-organization-group": IN,
|
|
8217
|
+
"update-organization-role": IN,
|
|
8218
|
+
"update-organization-user": IN,
|
|
6658
8219
|
"update-pod": IN,
|
|
6659
8220
|
"update-ssh-keys": IN,
|
|
6660
8221
|
"update-template": IN,
|
|
@@ -9734,6 +11295,23 @@ var listPublicEndpoints = {
|
|
|
9734
11295
|
// src/specgen/tools/knowledge.ts
|
|
9735
11296
|
var import_plugin_knowledge = require("@runpod/plugin-knowledge");
|
|
9736
11297
|
var knowledge = (0, import_plugin_knowledge.loadKnowledge)();
|
|
11298
|
+
var hiddenRules = new Set(
|
|
11299
|
+
(process.env.KNOWLEDGE_HIDDEN_RULES ?? "").split(",").map((id) => id.trim()).filter(Boolean)
|
|
11300
|
+
);
|
|
11301
|
+
var concepts = knowledge.concepts.map((concept) => ({
|
|
11302
|
+
...concept,
|
|
11303
|
+
rules: concept.rules.filter((rule) => !hiddenRules.has(rule.id))
|
|
11304
|
+
}));
|
|
11305
|
+
for (const id of hiddenRules) {
|
|
11306
|
+
if (!knowledge.concepts.some(
|
|
11307
|
+
(concept) => concept.rules.some((rule) => rule.id === id)
|
|
11308
|
+
))
|
|
11309
|
+
console.warn("knowledge_hidden_rule_unknown", {
|
|
11310
|
+
id,
|
|
11311
|
+
plugin_version: knowledge.version
|
|
11312
|
+
});
|
|
11313
|
+
}
|
|
11314
|
+
var visibleRuleIds = (ids) => ids.filter((id) => !hiddenRules.has(id));
|
|
9737
11315
|
var GUIDE_KINDS = ["skill", "reference", "golden-path"];
|
|
9738
11316
|
var STOPWORDS = new Set(
|
|
9739
11317
|
"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(
|
|
@@ -9776,7 +11354,7 @@ var guideSummary = ({
|
|
|
9776
11354
|
lanes,
|
|
9777
11355
|
mcp,
|
|
9778
11356
|
needs_shell,
|
|
9779
|
-
concepts
|
|
11357
|
+
concepts: concepts2
|
|
9780
11358
|
}) => ({
|
|
9781
11359
|
id,
|
|
9782
11360
|
kind,
|
|
@@ -9785,7 +11363,7 @@ var guideSummary = ({
|
|
|
9785
11363
|
lanes,
|
|
9786
11364
|
mcp,
|
|
9787
11365
|
needs_shell,
|
|
9788
|
-
concepts
|
|
11366
|
+
concepts: concepts2
|
|
9789
11367
|
});
|
|
9790
11368
|
function linkedGuides(conceptId) {
|
|
9791
11369
|
const byId = new Map(knowledge.guides.map((guide) => [guide.id, guide]));
|
|
@@ -9797,19 +11375,20 @@ function linkedGuides(conceptId) {
|
|
|
9797
11375
|
seen.add(link.from);
|
|
9798
11376
|
const guide = byId.get(link.from);
|
|
9799
11377
|
if (!guide) continue;
|
|
11378
|
+
const rules = link.rules && visibleRuleIds(link.rules);
|
|
9800
11379
|
if (guide.kind === "golden-path")
|
|
9801
11380
|
examples.push({ id: guide.id, title: guide.title, mcp: guide.mcp });
|
|
9802
11381
|
else
|
|
9803
11382
|
docs.push({
|
|
9804
11383
|
id: guide.id,
|
|
9805
11384
|
title: guide.title,
|
|
9806
|
-
...
|
|
11385
|
+
...rules?.length ? { rules } : {}
|
|
9807
11386
|
});
|
|
9808
11387
|
}
|
|
9809
11388
|
return { examples, docs };
|
|
9810
11389
|
}
|
|
9811
11390
|
var conceptIndex = /* @__PURE__ */ new Map();
|
|
9812
|
-
for (const concept of
|
|
11391
|
+
for (const concept of concepts) {
|
|
9813
11392
|
for (const key of [concept.id, concept.name, ...concept.aliases]) {
|
|
9814
11393
|
if (!conceptIndex.has(key.toLowerCase()))
|
|
9815
11394
|
conceptIndex.set(key.toLowerCase(), concept);
|
|
@@ -9843,7 +11422,7 @@ function resolveConcept(input) {
|
|
|
9843
11422
|
return best && !tied ? { concept: best.concept, matchedAs: best.key } : void 0;
|
|
9844
11423
|
}
|
|
9845
11424
|
var ruleIndex = /* @__PURE__ */ new Map();
|
|
9846
|
-
for (const concept of
|
|
11425
|
+
for (const concept of concepts) {
|
|
9847
11426
|
for (const rule of concept.rules) ruleIndex.set(rule.id, { rule, concept });
|
|
9848
11427
|
}
|
|
9849
11428
|
var source = {
|
|
@@ -9962,7 +11541,7 @@ var lookupConcept = {
|
|
|
9962
11541
|
};
|
|
9963
11542
|
}
|
|
9964
11543
|
const { concept, matchedAs } = resolved;
|
|
9965
|
-
const pointedAtBy =
|
|
11544
|
+
const pointedAtBy = concepts.flatMap((other) => [
|
|
9966
11545
|
...other.is_a === concept.id ? [{ concept: other.id, type: "is_a" }] : [],
|
|
9967
11546
|
...other.part_of === concept.id ? [{ concept: other.id, type: "part_of" }] : [],
|
|
9968
11547
|
...other.relations.filter((relation) => relation.target === concept.id).map((relation) => ({ concept: other.id, type: relation.type }))
|
|
@@ -9976,6 +11555,14 @@ var lookupConcept = {
|
|
|
9976
11555
|
...source,
|
|
9977
11556
|
...matchedAs ? { matched_as: matchedAs } : {},
|
|
9978
11557
|
...concept,
|
|
11558
|
+
steps: concept.steps.map((step) => ({
|
|
11559
|
+
...step,
|
|
11560
|
+
rules: visibleRuleIds(step.rules)
|
|
11561
|
+
})),
|
|
11562
|
+
rules: concept.rules.map((rule) => ({
|
|
11563
|
+
...rule,
|
|
11564
|
+
see: visibleRuleIds(rule.see)
|
|
11565
|
+
})),
|
|
9979
11566
|
pointed_at_by: pointedAtBy,
|
|
9980
11567
|
linked_rules: linkedRules,
|
|
9981
11568
|
...linkedGuides(concept.id)
|