@zysec-ai/cpod-sdk 0.1.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 +96 -0
- package/README.md +315 -0
- package/bin/.env.example +21 -0
- package/bin/cpod-mcp-server.mjs +134 -0
- package/dist/client-BRW4z8Ls.d.mts +1073 -0
- package/dist/client-BRW4z8Ls.d.ts +1073 -0
- package/dist/events/index.d.mts +139 -0
- package/dist/events/index.d.ts +139 -0
- package/dist/events/index.js +112 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/index.mjs +109 -0
- package/dist/events/index.mjs.map +1 -0
- package/dist/index.d.mts +6224 -0
- package/dist/index.d.ts +6224 -0
- package/dist/index.js +8272 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +8081 -0
- package/dist/index.mjs.map +1 -0
- package/dist/pods/index.d.mts +116 -0
- package/dist/pods/index.d.ts +116 -0
- package/dist/pods/index.js +108 -0
- package/dist/pods/index.js.map +1 -0
- package/dist/pods/index.mjs +106 -0
- package/dist/pods/index.mjs.map +1 -0
- package/dist/tenants/index.d.mts +69 -0
- package/dist/tenants/index.d.ts +69 -0
- package/dist/tenants/index.js +85 -0
- package/dist/tenants/index.js.map +1 -0
- package/dist/tenants/index.mjs +82 -0
- package/dist/tenants/index.mjs.map +1 -0
- package/package.json +75 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { V as PaginationOptions, a6 as PodStatus, a5 as PodSpec, a4 as PodNetwork, O as HttpClient, ac as RequestOptions, a as ApiResponse, a2 as Pod } from '../client-BRW4z8Ls.mjs';
|
|
2
|
+
export { a3 as PodHealth } from '../client-BRW4z8Ls.mjs';
|
|
3
|
+
|
|
4
|
+
/** Input for creating a new Pod. */
|
|
5
|
+
interface CreatePodInput {
|
|
6
|
+
/** UUID of the Workspace this Pod belongs to. */
|
|
7
|
+
workspaceId: string;
|
|
8
|
+
/**
|
|
9
|
+
* DNS-compatible name, unique within the Workspace.
|
|
10
|
+
* Must be lowercase alphanumeric with hyphens (e.g., 'api-server-primary').
|
|
11
|
+
*/
|
|
12
|
+
name: string;
|
|
13
|
+
/** Human-readable display name. Defaults to 'name' if not provided. */
|
|
14
|
+
displayName?: string;
|
|
15
|
+
/** Desired-state workload specification. */
|
|
16
|
+
spec: PodSpec;
|
|
17
|
+
/** Named network ports exposed by the container. */
|
|
18
|
+
ports?: PodNetwork["ports"];
|
|
19
|
+
/** Key-value labels for filtering and Policy matching. */
|
|
20
|
+
labels?: Record<string, string>;
|
|
21
|
+
/** Key-value annotations for non-identifying metadata. */
|
|
22
|
+
annotations?: Record<string, string>;
|
|
23
|
+
}
|
|
24
|
+
/** Input for updating an existing Pod. All fields are optional (partial update). */
|
|
25
|
+
interface UpdatePodInput {
|
|
26
|
+
/** Updated display name. */
|
|
27
|
+
displayName?: string;
|
|
28
|
+
/** Partial spec update — only provided fields are changed. */
|
|
29
|
+
spec?: Partial<PodSpec>;
|
|
30
|
+
/** Replace the entire labels map. */
|
|
31
|
+
labels?: Record<string, string>;
|
|
32
|
+
/** Replace the entire annotations map. */
|
|
33
|
+
annotations?: Record<string, string>;
|
|
34
|
+
}
|
|
35
|
+
/** Options for listing Pods with optional filters. */
|
|
36
|
+
interface ListPodsOptions extends PaginationOptions {
|
|
37
|
+
/** Filter by parent Workspace UUID. */
|
|
38
|
+
workspaceId?: string;
|
|
39
|
+
/** Filter by parent Organization UUID. */
|
|
40
|
+
organizationId?: string;
|
|
41
|
+
/** Filter by lifecycle status. */
|
|
42
|
+
status?: PodStatus;
|
|
43
|
+
/** Filter by a specific label key-value pair (e.g., 'app:api-server'). */
|
|
44
|
+
label?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Options for the Pod start operation. */
|
|
47
|
+
interface StartPodOptions {
|
|
48
|
+
/**
|
|
49
|
+
* Override the replica count for this start operation.
|
|
50
|
+
* Useful to start a scaled-to-zero Pod at a specific replica count.
|
|
51
|
+
*/
|
|
52
|
+
replicas?: number;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Provides CRUD and lifecycle operations for cPod Pod resources.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* // Create a Pod in a Workspace
|
|
61
|
+
* const pod = await client.pods.create({
|
|
62
|
+
* workspaceId: "c3d4e5f6-...",
|
|
63
|
+
* name: "api-server-primary",
|
|
64
|
+
* spec: {
|
|
65
|
+
* image: "docker.io/acme/api:v3.2.1",
|
|
66
|
+
* cpu: "1000m",
|
|
67
|
+
* memory: "2Gi",
|
|
68
|
+
* replicas: 3,
|
|
69
|
+
* },
|
|
70
|
+
* });
|
|
71
|
+
*
|
|
72
|
+
* // List running pods in a workspace
|
|
73
|
+
* const { data: pods } = await client.pods.list({
|
|
74
|
+
* workspaceId: "c3d4e5f6-...",
|
|
75
|
+
* status: "running",
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare class PodService {
|
|
80
|
+
private readonly http;
|
|
81
|
+
constructor(http: HttpClient);
|
|
82
|
+
/**
|
|
83
|
+
* List Pods, optionally filtered by Workspace, Organization, status, or label.
|
|
84
|
+
*/
|
|
85
|
+
list(opts?: ListPodsOptions, requestOpts?: RequestOptions): Promise<ApiResponse<Pod[]>>;
|
|
86
|
+
/**
|
|
87
|
+
* Retrieve a single Pod by UUID.
|
|
88
|
+
*/
|
|
89
|
+
get(id: string, requestOpts?: RequestOptions): Promise<Pod>;
|
|
90
|
+
/**
|
|
91
|
+
* Create a new Pod in the specified Workspace.
|
|
92
|
+
*/
|
|
93
|
+
create(input: CreatePodInput, requestOpts?: RequestOptions): Promise<Pod>;
|
|
94
|
+
/**
|
|
95
|
+
* Update an existing Pod's spec, labels, or annotations.
|
|
96
|
+
* Changes to spec.image, spec.cpu, or spec.memory trigger a rolling restart.
|
|
97
|
+
* Changes to spec.replicas are applied immediately.
|
|
98
|
+
*/
|
|
99
|
+
update(id: string, input: UpdatePodInput, requestOpts?: RequestOptions): Promise<Pod>;
|
|
100
|
+
/**
|
|
101
|
+
* Start a stopped Pod. Transitions the Pod from 'stopped' to 'provisioning'.
|
|
102
|
+
*/
|
|
103
|
+
start(id: string, opts?: StartPodOptions, requestOpts?: RequestOptions): Promise<Pod>;
|
|
104
|
+
/**
|
|
105
|
+
* Gracefully stop a running Pod. Transitions to 'stopping' then 'stopped'.
|
|
106
|
+
* Resources are retained; the Pod can be restarted.
|
|
107
|
+
*/
|
|
108
|
+
stop(id: string, requestOpts?: RequestOptions): Promise<Pod>;
|
|
109
|
+
/**
|
|
110
|
+
* Permanently delete a Pod. Releases all compute resources.
|
|
111
|
+
* The Pod must be in 'stopped' or 'failed' status before deletion.
|
|
112
|
+
*/
|
|
113
|
+
delete(id: string, requestOpts?: RequestOptions): Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export { type CreatePodInput, type ListPodsOptions, Pod, PodNetwork, PodService, PodSpec, PodStatus, type StartPodOptions, type UpdatePodInput };
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { V as PaginationOptions, a6 as PodStatus, a5 as PodSpec, a4 as PodNetwork, O as HttpClient, ac as RequestOptions, a as ApiResponse, a2 as Pod } from '../client-BRW4z8Ls.js';
|
|
2
|
+
export { a3 as PodHealth } from '../client-BRW4z8Ls.js';
|
|
3
|
+
|
|
4
|
+
/** Input for creating a new Pod. */
|
|
5
|
+
interface CreatePodInput {
|
|
6
|
+
/** UUID of the Workspace this Pod belongs to. */
|
|
7
|
+
workspaceId: string;
|
|
8
|
+
/**
|
|
9
|
+
* DNS-compatible name, unique within the Workspace.
|
|
10
|
+
* Must be lowercase alphanumeric with hyphens (e.g., 'api-server-primary').
|
|
11
|
+
*/
|
|
12
|
+
name: string;
|
|
13
|
+
/** Human-readable display name. Defaults to 'name' if not provided. */
|
|
14
|
+
displayName?: string;
|
|
15
|
+
/** Desired-state workload specification. */
|
|
16
|
+
spec: PodSpec;
|
|
17
|
+
/** Named network ports exposed by the container. */
|
|
18
|
+
ports?: PodNetwork["ports"];
|
|
19
|
+
/** Key-value labels for filtering and Policy matching. */
|
|
20
|
+
labels?: Record<string, string>;
|
|
21
|
+
/** Key-value annotations for non-identifying metadata. */
|
|
22
|
+
annotations?: Record<string, string>;
|
|
23
|
+
}
|
|
24
|
+
/** Input for updating an existing Pod. All fields are optional (partial update). */
|
|
25
|
+
interface UpdatePodInput {
|
|
26
|
+
/** Updated display name. */
|
|
27
|
+
displayName?: string;
|
|
28
|
+
/** Partial spec update — only provided fields are changed. */
|
|
29
|
+
spec?: Partial<PodSpec>;
|
|
30
|
+
/** Replace the entire labels map. */
|
|
31
|
+
labels?: Record<string, string>;
|
|
32
|
+
/** Replace the entire annotations map. */
|
|
33
|
+
annotations?: Record<string, string>;
|
|
34
|
+
}
|
|
35
|
+
/** Options for listing Pods with optional filters. */
|
|
36
|
+
interface ListPodsOptions extends PaginationOptions {
|
|
37
|
+
/** Filter by parent Workspace UUID. */
|
|
38
|
+
workspaceId?: string;
|
|
39
|
+
/** Filter by parent Organization UUID. */
|
|
40
|
+
organizationId?: string;
|
|
41
|
+
/** Filter by lifecycle status. */
|
|
42
|
+
status?: PodStatus;
|
|
43
|
+
/** Filter by a specific label key-value pair (e.g., 'app:api-server'). */
|
|
44
|
+
label?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Options for the Pod start operation. */
|
|
47
|
+
interface StartPodOptions {
|
|
48
|
+
/**
|
|
49
|
+
* Override the replica count for this start operation.
|
|
50
|
+
* Useful to start a scaled-to-zero Pod at a specific replica count.
|
|
51
|
+
*/
|
|
52
|
+
replicas?: number;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Provides CRUD and lifecycle operations for cPod Pod resources.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```typescript
|
|
60
|
+
* // Create a Pod in a Workspace
|
|
61
|
+
* const pod = await client.pods.create({
|
|
62
|
+
* workspaceId: "c3d4e5f6-...",
|
|
63
|
+
* name: "api-server-primary",
|
|
64
|
+
* spec: {
|
|
65
|
+
* image: "docker.io/acme/api:v3.2.1",
|
|
66
|
+
* cpu: "1000m",
|
|
67
|
+
* memory: "2Gi",
|
|
68
|
+
* replicas: 3,
|
|
69
|
+
* },
|
|
70
|
+
* });
|
|
71
|
+
*
|
|
72
|
+
* // List running pods in a workspace
|
|
73
|
+
* const { data: pods } = await client.pods.list({
|
|
74
|
+
* workspaceId: "c3d4e5f6-...",
|
|
75
|
+
* status: "running",
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
declare class PodService {
|
|
80
|
+
private readonly http;
|
|
81
|
+
constructor(http: HttpClient);
|
|
82
|
+
/**
|
|
83
|
+
* List Pods, optionally filtered by Workspace, Organization, status, or label.
|
|
84
|
+
*/
|
|
85
|
+
list(opts?: ListPodsOptions, requestOpts?: RequestOptions): Promise<ApiResponse<Pod[]>>;
|
|
86
|
+
/**
|
|
87
|
+
* Retrieve a single Pod by UUID.
|
|
88
|
+
*/
|
|
89
|
+
get(id: string, requestOpts?: RequestOptions): Promise<Pod>;
|
|
90
|
+
/**
|
|
91
|
+
* Create a new Pod in the specified Workspace.
|
|
92
|
+
*/
|
|
93
|
+
create(input: CreatePodInput, requestOpts?: RequestOptions): Promise<Pod>;
|
|
94
|
+
/**
|
|
95
|
+
* Update an existing Pod's spec, labels, or annotations.
|
|
96
|
+
* Changes to spec.image, spec.cpu, or spec.memory trigger a rolling restart.
|
|
97
|
+
* Changes to spec.replicas are applied immediately.
|
|
98
|
+
*/
|
|
99
|
+
update(id: string, input: UpdatePodInput, requestOpts?: RequestOptions): Promise<Pod>;
|
|
100
|
+
/**
|
|
101
|
+
* Start a stopped Pod. Transitions the Pod from 'stopped' to 'provisioning'.
|
|
102
|
+
*/
|
|
103
|
+
start(id: string, opts?: StartPodOptions, requestOpts?: RequestOptions): Promise<Pod>;
|
|
104
|
+
/**
|
|
105
|
+
* Gracefully stop a running Pod. Transitions to 'stopping' then 'stopped'.
|
|
106
|
+
* Resources are retained; the Pod can be restarted.
|
|
107
|
+
*/
|
|
108
|
+
stop(id: string, requestOpts?: RequestOptions): Promise<Pod>;
|
|
109
|
+
/**
|
|
110
|
+
* Permanently delete a Pod. Releases all compute resources.
|
|
111
|
+
* The Pod must be in 'stopped' or 'failed' status before deletion.
|
|
112
|
+
*/
|
|
113
|
+
delete(id: string, requestOpts?: RequestOptions): Promise<void>;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export { type CreatePodInput, type ListPodsOptions, Pod, PodNetwork, PodService, PodSpec, PodStatus, type StartPodOptions, type UpdatePodInput };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/_generated/build-path.ts
|
|
4
|
+
function buildPath(template, ...values) {
|
|
5
|
+
let i = 0;
|
|
6
|
+
return template.replace(/\{[^}]+\}/g, () => encodeURIComponent(String(values[i++])));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/_generated/paths.ts
|
|
10
|
+
var PATHS = {
|
|
11
|
+
pods: "/api/v1/pods",
|
|
12
|
+
podsByPodId: "/api/v1/pods/{pod_id}",
|
|
13
|
+
podsByPodIdStart: "/api/v1/pods/{pod_id}/start",
|
|
14
|
+
podsByPodIdStop: "/api/v1/pods/{pod_id}/stop"};
|
|
15
|
+
|
|
16
|
+
// src/pods/service.ts
|
|
17
|
+
var PodService = class {
|
|
18
|
+
http;
|
|
19
|
+
constructor(http) {
|
|
20
|
+
this.http = http;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* List Pods, optionally filtered by Workspace, Organization, status, or label.
|
|
24
|
+
*/
|
|
25
|
+
async list(opts = {}, requestOpts) {
|
|
26
|
+
const params = new URLSearchParams();
|
|
27
|
+
if (opts.limit !== void 0) params.set("limit", String(opts.limit));
|
|
28
|
+
if (opts.offset !== void 0) params.set("offset", String(opts.offset));
|
|
29
|
+
if (opts.workspaceId !== void 0)
|
|
30
|
+
params.set("workspaceId", opts.workspaceId);
|
|
31
|
+
if (opts.organizationId !== void 0)
|
|
32
|
+
params.set("organizationId", opts.organizationId);
|
|
33
|
+
if (opts.status !== void 0) params.set("status", opts.status);
|
|
34
|
+
if (opts.label !== void 0) params.set("label", opts.label);
|
|
35
|
+
const qs = params.toString();
|
|
36
|
+
return this.http.get(
|
|
37
|
+
`/api/v1/pods${qs ? `?${qs}` : ""}`,
|
|
38
|
+
requestOpts
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Retrieve a single Pod by UUID.
|
|
43
|
+
*/
|
|
44
|
+
async get(id, requestOpts) {
|
|
45
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
46
|
+
return this.http.get(
|
|
47
|
+
buildPath(PATHS.podsByPodId, encodeURIComponent(id)),
|
|
48
|
+
requestOpts
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Create a new Pod in the specified Workspace.
|
|
53
|
+
*/
|
|
54
|
+
async create(input, requestOpts) {
|
|
55
|
+
return this.http.post(PATHS.pods, input, requestOpts);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Update an existing Pod's spec, labels, or annotations.
|
|
59
|
+
* Changes to spec.image, spec.cpu, or spec.memory trigger a rolling restart.
|
|
60
|
+
* Changes to spec.replicas are applied immediately.
|
|
61
|
+
*/
|
|
62
|
+
async update(id, input, requestOpts) {
|
|
63
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
64
|
+
return this.http.patch(
|
|
65
|
+
buildPath(PATHS.podsByPodId, encodeURIComponent(id)),
|
|
66
|
+
input,
|
|
67
|
+
requestOpts
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Start a stopped Pod. Transitions the Pod from 'stopped' to 'provisioning'.
|
|
72
|
+
*/
|
|
73
|
+
async start(id, opts = {}, requestOpts) {
|
|
74
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
75
|
+
return this.http.post(
|
|
76
|
+
buildPath(PATHS.podsByPodIdStart, encodeURIComponent(id)),
|
|
77
|
+
opts,
|
|
78
|
+
requestOpts
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Gracefully stop a running Pod. Transitions to 'stopping' then 'stopped'.
|
|
83
|
+
* Resources are retained; the Pod can be restarted.
|
|
84
|
+
*/
|
|
85
|
+
async stop(id, requestOpts) {
|
|
86
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
87
|
+
return this.http.post(
|
|
88
|
+
buildPath(PATHS.podsByPodIdStop, encodeURIComponent(id)),
|
|
89
|
+
{},
|
|
90
|
+
requestOpts
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Permanently delete a Pod. Releases all compute resources.
|
|
95
|
+
* The Pod must be in 'stopped' or 'failed' status before deletion.
|
|
96
|
+
*/
|
|
97
|
+
async delete(id, requestOpts) {
|
|
98
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
99
|
+
return this.http.delete(
|
|
100
|
+
buildPath(PATHS.podsByPodId, encodeURIComponent(id)),
|
|
101
|
+
requestOpts
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
exports.PodService = PodService;
|
|
107
|
+
//# sourceMappingURL=index.js.map
|
|
108
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/_generated/build-path.ts","../../src/_generated/paths.ts","../../src/pods/service.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// Substitute {param} placeholders in a PATHS template, in order, URL-encoding\n// each value. e.g. buildPath(PATHS.peoplePersonsByItemId, id) -> /api/v1/people/persons/<id>\nexport function buildPath(template: string, ...values: (string | number)[]): string {\n let i = 0;\n return template.replace(/\\{[^}]+\\}/g, () => encodeURIComponent(String(values[i++])));\n}\n","// AUTO-GENERATED from docs/api-contract/backend-openapi.json. Do NOT edit.\nexport const PATHS = {\n wellKnownJwksJson: \"/.well-known/jwks.json\",\n wellKnownOpenidConfiguration: \"/.well-known/openid-configuration\",\n agents: \"/api/v1/agents\",\n agents2: \"/api/v1/agents/\",\n agentsByAgentId: \"/api/v1/agents/{agent_id}\",\n agentsByItemId: \"/api/v1/agents/{item_id}\",\n approvalsRequests: \"/api/v1/approvals/requests\",\n approvalsRequestsByItemId: \"/api/v1/approvals/requests/{item_id}\",\n approvalsRequestsByRequestIdCancel: \"/api/v1/approvals/requests/{request_id}/cancel\",\n approvalsSteps: \"/api/v1/approvals/steps\",\n approvalsStepsByItemId: \"/api/v1/approvals/steps/{item_id}\",\n approvalsStepsByStepIdDecide: \"/api/v1/approvals/steps/{step_id}/decide\",\n approvalsStepsByStepIdDelegate: \"/api/v1/approvals/steps/{step_id}/delegate\",\n apps: \"/api/v1/apps\",\n appsMcp: \"/api/v1/apps/mcp\",\n appsMcpByItemId: \"/api/v1/apps/mcp/{item_id}\",\n appsMe: \"/api/v1/apps/me\",\n appsMeByItemId: \"/api/v1/apps/me/{item_id}\",\n appsRegister: \"/api/v1/apps/register\",\n appsRegisterByItemId: \"/api/v1/apps/register/{item_id}\",\n appsByAppId: \"/api/v1/apps/{app_id}\",\n appsByAppIdCredentialsRotate: \"/api/v1/apps/{app_id}/credentials/rotate\",\n appsByAppIdMcpProxy: \"/api/v1/apps/{app_id}/mcp/proxy\",\n appsByAppIdMcpTools: \"/api/v1/apps/{app_id}/mcp/tools\",\n appsByAppIdMcpToolsByName: \"/api/v1/apps/{app_id}/mcp/tools/{name}\",\n appsByItemId: \"/api/v1/apps/{item_id}\",\n auditEvents: \"/api/v1/audit-events\",\n auditEventsActions: \"/api/v1/audit-events/actions\",\n auditEventsActionsByItemId: \"/api/v1/audit-events/actions/{item_id}\",\n auditEventsByItemId: \"/api/v1/audit-events/{item_id}\",\n authAcceptInvite: \"/api/v1/auth/accept-invite\",\n authAcceptInviteByItemId: \"/api/v1/auth/accept-invite/{item_id}\",\n authChangePassword: \"/api/v1/auth/change-password\",\n authChangePasswordByItemId: \"/api/v1/auth/change-password/{item_id}\",\n authForgotPassword: \"/api/v1/auth/forgot-password\",\n authForgotPasswordByItemId: \"/api/v1/auth/forgot-password/{item_id}\",\n authInvite: \"/api/v1/auth/invite\",\n authInviteByItemId: \"/api/v1/auth/invite/{item_id}\",\n authLogin: \"/api/v1/auth/login\",\n authLoginByItemId: \"/api/v1/auth/login/{item_id}\",\n authMe: \"/api/v1/auth/me\",\n authMeByItemId: \"/api/v1/auth/me/{item_id}\",\n authOidcCallback: \"/api/v1/auth/oidc/callback\",\n authOidcCallbackByItemId: \"/api/v1/auth/oidc/callback/{item_id}\",\n authOidcExchange: \"/api/v1/auth/oidc/exchange\",\n authOidcExchangeByItemId: \"/api/v1/auth/oidc/exchange/{item_id}\",\n authOidcFinish: \"/api/v1/auth/oidc/finish\",\n authOidcFinishByItemId: \"/api/v1/auth/oidc/finish/{item_id}\",\n authOidcLogin: \"/api/v1/auth/oidc/login\",\n authOidcLoginByItemId: \"/api/v1/auth/oidc/login/{item_id}\",\n authOidcProviders: \"/api/v1/auth/oidc/providers\",\n authOidcProvidersByItemId: \"/api/v1/auth/oidc/providers/{item_id}\",\n authOidcProvidersByProviderId: \"/api/v1/auth/oidc/providers/{provider_id}\",\n authOidcResult: \"/api/v1/auth/oidc/result\",\n authOidcResultByItemId: \"/api/v1/auth/oidc/result/{item_id}\",\n authRefresh: \"/api/v1/auth/refresh\",\n authRefreshByItemId: \"/api/v1/auth/refresh/{item_id}\",\n authResetPassword: \"/api/v1/auth/reset-password\",\n authResetPasswordByItemId: \"/api/v1/auth/reset-password/{item_id}\",\n authRevoke: \"/api/v1/auth/revoke\",\n authRevokeByItemId: \"/api/v1/auth/revoke/{item_id}\",\n authScimToken: \"/api/v1/auth/scim/token\",\n authScimTokenRotate: \"/api/v1/auth/scim/token/rotate\",\n authScimTokenRotateByItemId: \"/api/v1/auth/scim/token/rotate/{item_id}\",\n authScimTokenByItemId: \"/api/v1/auth/scim/token/{item_id}\",\n authToken: \"/api/v1/auth/token\",\n authTokenByItemId: \"/api/v1/auth/token/{item_id}\",\n authValidate: \"/api/v1/auth/validate\",\n authValidateByItemId: \"/api/v1/auth/validate/{item_id}\",\n catalogCategories: \"/api/v1/catalog/categories\",\n catalogCategoriesByItemId: \"/api/v1/catalog/categories/{item_id}\",\n catalogProducts: \"/api/v1/catalog/products\",\n catalogProductsByItemId: \"/api/v1/catalog/products/{item_id}\",\n chat: \"/api/v1/chat\",\n chatArtifacts: \"/api/v1/chat/artifacts\",\n chatArtifactsByArtifactId: \"/api/v1/chat/artifacts/{artifact_id}\",\n chatArtifactsByArtifactIdRevise: \"/api/v1/chat/artifacts/{artifact_id}/revise\",\n chatArtifactsByArtifactIdVersions: \"/api/v1/chat/artifacts/{artifact_id}/versions\",\n chatArtifactsByItemId: \"/api/v1/chat/artifacts/{item_id}\",\n chatCompletions: \"/api/v1/chat/completions\",\n chatCompletionsRegenerateByMessageId: \"/api/v1/chat/completions/regenerate/{message_id}\",\n chatCompletionsByItemId: \"/api/v1/chat/completions/{item_id}\",\n chatHitl: \"/api/v1/chat/hitl\",\n chatHitlByApprovalIdResolve: \"/api/v1/chat/hitl/{approval_id}/resolve\",\n chatHitlByItemId: \"/api/v1/chat/hitl/{item_id}\",\n chatMessages: \"/api/v1/chat/messages\",\n chatMessagesByItemId: \"/api/v1/chat/messages/{item_id}\",\n chatMessagesByMessageIdFeedback: \"/api/v1/chat/messages/{message_id}/feedback\",\n chatByChatId: \"/api/v1/chat/{chat_id}\",\n chatByChatIdArtifacts: \"/api/v1/chat/{chat_id}/artifacts\",\n chatByChatIdMessages: \"/api/v1/chat/{chat_id}/messages\",\n chatByItemId: \"/api/v1/chat/{item_id}\",\n cloudResources: \"/api/v1/cloud-resources\",\n cloudResourcesByItemId: \"/api/v1/cloud-resources/{item_id}\",\n complianceControls: \"/api/v1/compliance-controls\",\n complianceControlsByItemId: \"/api/v1/compliance-controls/{item_id}\",\n containers: \"/api/v1/containers\",\n containers2: \"/api/v1/containers/\",\n containersByItemId: \"/api/v1/containers/{item_id}\",\n containersByRunId: \"/api/v1/containers/{run_id}\",\n contractsContracts: \"/api/v1/contracts/contracts\",\n contractsContractsByItemId: \"/api/v1/contracts/contracts/{item_id}\",\n contractsObligations: \"/api/v1/contracts/obligations\",\n contractsObligationsByItemId: \"/api/v1/contracts/obligations/{item_id}\",\n contractsVendors: \"/api/v1/contracts/vendors\",\n contractsVendorsByItemId: \"/api/v1/contracts/vendors/{item_id}\",\n credentials: \"/api/v1/credentials\",\n credentialsByCredentialId: \"/api/v1/credentials/{credential_id}\",\n credentialsByCredentialIdRevoke: \"/api/v1/credentials/{credential_id}/revoke\",\n credentialsByItemId: \"/api/v1/credentials/{item_id}\",\n crmAccounts: \"/api/v1/crm/accounts\",\n crmAccountsByItemId: \"/api/v1/crm/accounts/{item_id}\",\n crmActivities: \"/api/v1/crm/activities\",\n crmActivitiesByItemId: \"/api/v1/crm/activities/{item_id}\",\n crmContacts: \"/api/v1/crm/contacts\",\n crmContactsByItemId: \"/api/v1/crm/contacts/{item_id}\",\n crmDeals: \"/api/v1/crm/deals\",\n crmDealsByItemId: \"/api/v1/crm/deals/{item_id}\",\n crmLineItems: \"/api/v1/crm/line-items\",\n crmLineItemsByItemId: \"/api/v1/crm/line-items/{item_id}\",\n crmQuotes: \"/api/v1/crm/quotes\",\n crmQuotesByItemId: \"/api/v1/crm/quotes/{item_id}\",\n datasources: \"/api/v1/datasources\",\n datasourcesByItemId: \"/api/v1/datasources/{item_id}\",\n developerRuns: \"/api/v1/developer/runs\",\n developerRunsByItemId: \"/api/v1/developer/runs/{item_id}\",\n developerRunsByRunId: \"/api/v1/developer/runs/{run_id}\",\n developerSettings: \"/api/v1/developer/settings\",\n developerSettingsByItemId: \"/api/v1/developer/settings/{item_id}\",\n developerTestDbSeed: \"/api/v1/developer/test-db/seed\",\n developerTestDbSeedByItemId: \"/api/v1/developer/test-db/seed/{item_id}\",\n edmProjectsFeatures: \"/api/v1/edm-projects/features\",\n edmProjectsFeaturesByItemId: \"/api/v1/edm-projects/features/{item_id}\",\n edmProjectsProjects: \"/api/v1/edm-projects/projects\",\n edmProjectsProjectsByItemId: \"/api/v1/edm-projects/projects/{item_id}\",\n edmProjectsSprints: \"/api/v1/edm-projects/sprints\",\n edmProjectsSprintsByItemId: \"/api/v1/edm-projects/sprints/{item_id}\",\n edmProjectsTasks: \"/api/v1/edm-projects/tasks\",\n edmProjectsTasksByItemId: \"/api/v1/edm-projects/tasks/{item_id}\",\n employeeCalendarEvents: \"/api/v1/employee/calendar-events\",\n employeeCalendarEventsByItemId: \"/api/v1/employee/calendar-events/{item_id}\",\n employeeLeaveRequests: \"/api/v1/employee/leave-requests\",\n employeeLeaveRequestsByItemId: \"/api/v1/employee/leave-requests/{item_id}\",\n employeeMeetingNotes: \"/api/v1/employee/meeting-notes\",\n employeeMeetingNotesByItemId: \"/api/v1/employee/meeting-notes/{item_id}\",\n employeeSkills: \"/api/v1/employee/skills\",\n employeeSkillsByItemId: \"/api/v1/employee/skills/{item_id}\",\n entitlements: \"/api/v1/entitlements\",\n entitlementsByItemId: \"/api/v1/entitlements/{item_id}\",\n events: \"/api/v1/events\",\n events2: \"/api/v1/events/\",\n eventsByItemId: \"/api/v1/events/{item_id}\",\n financeBudgetLines: \"/api/v1/finance/budget-lines\",\n financeBudgetLinesByItemId: \"/api/v1/finance/budget-lines/{item_id}\",\n financeBudgets: \"/api/v1/finance/budgets\",\n financeBudgetsByItemId: \"/api/v1/finance/budgets/{item_id}\",\n financeExpenses: \"/api/v1/finance/expenses\",\n financeExpensesByItemId: \"/api/v1/finance/expenses/{item_id}\",\n financeInvoices: \"/api/v1/finance/invoices\",\n financeInvoicesByItemId: \"/api/v1/finance/invoices/{item_id}\",\n financePurchaseOrders: \"/api/v1/finance/purchase-orders\",\n financePurchaseOrdersByItemId: \"/api/v1/finance/purchase-orders/{item_id}\",\n flagsEvaluate: \"/api/v1/flags/evaluate\",\n flagsEvaluateByItemId: \"/api/v1/flags/evaluate/{item_id}\",\n governanceGuardrailRules: \"/api/v1/governance/guardrail-rules\",\n governanceGuardrailRulesByItemId: \"/api/v1/governance/guardrail-rules/{item_id}\",\n governanceGuardrailRulesByRuleId: \"/api/v1/governance/guardrail-rules/{rule_id}\",\n governanceModelPolicies: \"/api/v1/governance/model-policies\",\n governanceModelPoliciesGlobal: \"/api/v1/governance/model-policies/global\",\n governanceModelPoliciesGlobalByItemId: \"/api/v1/governance/model-policies/global/{item_id}\",\n governanceModelPoliciesGlobalByModelId: \"/api/v1/governance/model-policies/global/{model_id}\",\n governanceModelPoliciesByItemId: \"/api/v1/governance/model-policies/{item_id}\",\n governanceModelPoliciesByModelId: \"/api/v1/governance/model-policies/{model_id}\",\n governanceRoutingRules: \"/api/v1/governance/routing-rules\",\n governanceRoutingRulesByItemId: \"/api/v1/governance/routing-rules/{item_id}\",\n governanceRoutingRulesByRuleId: \"/api/v1/governance/routing-rules/{rule_id}\",\n grcControls: \"/api/v1/grc/controls\",\n grcControlsByItemId: \"/api/v1/grc/controls/{item_id}\",\n grcEvidence: \"/api/v1/grc/evidence\",\n grcEvidenceByItemId: \"/api/v1/grc/evidence/{item_id}\",\n grcFrameworks: \"/api/v1/grc/frameworks\",\n grcFrameworksByItemId: \"/api/v1/grc/frameworks/{item_id}\",\n grcIncidents: \"/api/v1/grc/incidents\",\n grcIncidentsByItemId: \"/api/v1/grc/incidents/{item_id}\",\n grcRisks: \"/api/v1/grc/risks\",\n grcRisksByItemId: \"/api/v1/grc/risks/{item_id}\",\n groupMetadata: \"/api/v1/group-metadata\",\n groupMetadataByGroupId: \"/api/v1/group-metadata/{group_id}\",\n groupMetadataByItemId: \"/api/v1/group-metadata/{item_id}\",\n groups: \"/api/v1/groups\",\n groupsMembers: \"/api/v1/groups/members\",\n groupsMembersByItemId: \"/api/v1/groups/members/{item_id}\",\n groupsByGroupId: \"/api/v1/groups/{group_id}\",\n groupsByGroupIdMembers: \"/api/v1/groups/{group_id}/members\",\n groupsByGroupIdMembersByUserId: \"/api/v1/groups/{group_id}/members/{user_id}\",\n groupsByGroupIdPermissions: \"/api/v1/groups/{group_id}/permissions\",\n groupsByItemId: \"/api/v1/groups/{item_id}\",\n helpdeskSlaPolicies: \"/api/v1/helpdesk/sla-policies\",\n helpdeskSlaPoliciesByItemId: \"/api/v1/helpdesk/sla-policies/{item_id}\",\n helpdeskTickets: \"/api/v1/helpdesk/tickets\",\n helpdeskTicketsByItemId: \"/api/v1/helpdesk/tickets/{item_id}\",\n helpdeskTicketsByTicketIdComments: \"/api/v1/helpdesk/tickets/{ticket_id}/comments\",\n hrApplicants: \"/api/v1/hr/applicants\",\n hrApplicantsByItemId: \"/api/v1/hr/applicants/{item_id}\",\n hrJobPostings: \"/api/v1/hr/job-postings\",\n hrJobPostingsByItemId: \"/api/v1/hr/job-postings/{item_id}\",\n hrOffboardingTasks: \"/api/v1/hr/offboarding-tasks\",\n hrOffboardingTasksByItemId: \"/api/v1/hr/offboarding-tasks/{item_id}\",\n hrOnboardingTasks: \"/api/v1/hr/onboarding-tasks\",\n hrOnboardingTasksByItemId: \"/api/v1/hr/onboarding-tasks/{item_id}\",\n integrationApiKeys: \"/api/v1/integration/api-keys\",\n integrationApiKeysByItemId: \"/api/v1/integration/api-keys/{item_id}\",\n integrationApplications: \"/api/v1/integration/applications\",\n integrationApplicationsByItemId: \"/api/v1/integration/applications/{item_id}\",\n integrationConnectors: \"/api/v1/integration/connectors\",\n integrationConnectorsByItemId: \"/api/v1/integration/connectors/{item_id}\",\n integrationWebhooks: \"/api/v1/integration/webhooks\",\n integrationWebhooksByItemId: \"/api/v1/integration/webhooks/{item_id}\",\n integrationsConnections: \"/api/v1/integrations/connections\",\n integrationsConnectionsByItemId: \"/api/v1/integrations/connections/{item_id}\",\n integrationsDataSources: \"/api/v1/integrations/data-sources\",\n integrationsDataSourcesByItemId: \"/api/v1/integrations/data-sources/{item_id}\",\n integrationsSyncState: \"/api/v1/integrations/sync-state\",\n integrationsSyncStateByItemId: \"/api/v1/integrations/sync-state/{item_id}\",\n investmentsCostCenters: \"/api/v1/investments/cost-centers\",\n investmentsCostCentersByItemId: \"/api/v1/investments/cost-centers/{item_id}\",\n investmentsPortfolio: \"/api/v1/investments/portfolio\",\n investmentsPortfolioByItemId: \"/api/v1/investments/portfolio/{item_id}\",\n knowledgeBases: \"/api/v1/knowledge-bases\",\n knowledgeBases2: \"/api/v1/knowledge-bases/\",\n knowledgeBasesByItemId: \"/api/v1/knowledge-bases/{item_id}\",\n knowledgeBasesByKbId: \"/api/v1/knowledge-bases/{kb_id}\",\n knowledgeChunks: \"/api/v1/knowledge/chunks\",\n knowledgeChunksByItemId: \"/api/v1/knowledge/chunks/{item_id}\",\n knowledgeDocuments: \"/api/v1/knowledge/documents\",\n knowledgeDocumentsByItemId: \"/api/v1/knowledge/documents/{item_id}\",\n knowledgeEntities: \"/api/v1/knowledge/entities\",\n knowledgeEntitiesByItemId: \"/api/v1/knowledge/entities/{item_id}\",\n learningAssessments: \"/api/v1/learning/assessments\",\n learningAssessmentsByItemId: \"/api/v1/learning/assessments/{item_id}\",\n learningCohorts: \"/api/v1/learning/cohorts\",\n learningCohortsByItemId: \"/api/v1/learning/cohorts/{item_id}\",\n licenses: \"/api/v1/licenses\",\n licensesAssignments: \"/api/v1/licenses/assignments\",\n licensesAssignmentsByItemId: \"/api/v1/licenses/assignments/{item_id}\",\n licensesByItemId: \"/api/v1/licenses/{item_id}\",\n llmCompletions: \"/api/v1/llm/completions\",\n llmCompletionsByItemId: \"/api/v1/llm/completions/{item_id}\",\n mcpServers: \"/api/v1/mcp-servers\",\n mcpServers2: \"/api/v1/mcp-servers/\",\n mcpServersByItemId: \"/api/v1/mcp-servers/{item_id}\",\n mcpServersByServerId: \"/api/v1/mcp-servers/{server_id}\",\n mcpServersByServerIdCall: \"/api/v1/mcp-servers/{server_id}/call\",\n mcpServersByServerIdDiscover: \"/api/v1/mcp-servers/{server_id}/discover\",\n mcpCall: \"/api/v1/mcp/call\",\n mcpCallByItemId: \"/api/v1/mcp/call/{item_id}\",\n memories: \"/api/v1/memories\",\n memoriesNotificationAction: \"/api/v1/memories/notification-action\",\n memoriesNotificationActionByItemId: \"/api/v1/memories/notification-action/{item_id}\",\n memoriesByItemId: \"/api/v1/memories/{item_id}\",\n memoriesByMemoryId: \"/api/v1/memories/{memory_id}\",\n memoriesByMemoryIdAcknowledge: \"/api/v1/memories/{memory_id}/acknowledge\",\n modelConfigs: \"/api/v1/model-configs\",\n modelConfigs2: \"/api/v1/model-configs/\",\n modelConfigsByGatewayId: \"/api/v1/model-configs/{gateway_id}\",\n modelConfigsByItemId: \"/api/v1/model-configs/{item_id}\",\n notificationsAnnouncements: \"/api/v1/notifications/announcements\",\n notificationsAnnouncementsByItemId: \"/api/v1/notifications/announcements/{item_id}\",\n notificationsNotifications: \"/api/v1/notifications/notifications\",\n notificationsNotificationsByItemId: \"/api/v1/notifications/notifications/{item_id}\",\n notificationsNotificationsByNotificationIdRead: \"/api/v1/notifications/notifications/{notification_id}/read\",\n okrKeyResults: \"/api/v1/okr/key-results\",\n okrKeyResultsByItemId: \"/api/v1/okr/key-results/{item_id}\",\n okrObjectives: \"/api/v1/okr/objectives\",\n okrObjectivesByItemId: \"/api/v1/okr/objectives/{item_id}\",\n orgLocations: \"/api/v1/org/locations\",\n orgLocationsByItemId: \"/api/v1/org/locations/{item_id}\",\n peoplePersons: \"/api/v1/people/persons\",\n peoplePersonsByItemId: \"/api/v1/people/persons/{item_id}\",\n performanceGoals: \"/api/v1/performance/goals\",\n performanceGoalsByItemId: \"/api/v1/performance/goals/{item_id}\",\n performanceLearningRecords: \"/api/v1/performance/learning-records\",\n performanceLearningRecordsByItemId: \"/api/v1/performance/learning-records/{item_id}\",\n performanceReviews: \"/api/v1/performance/reviews\",\n performanceReviewsByItemId: \"/api/v1/performance/reviews/{item_id}\",\n physicalAssets: \"/api/v1/physical-assets\",\n physicalAssetsByItemId: \"/api/v1/physical-assets/{item_id}\",\n platformSecrets: \"/api/v1/platform-secrets\",\n platformSecrets2: \"/api/v1/platform-secrets/\",\n platformSecretsResolve: \"/api/v1/platform-secrets/resolve\",\n platformSecretsResolveByItemId: \"/api/v1/platform-secrets/resolve/{item_id}\",\n platformSecretsByItemId: \"/api/v1/platform-secrets/{item_id}\",\n platformSecretsBySecretId: \"/api/v1/platform-secrets/{secret_id}\",\n platformDepartments: \"/api/v1/platform/departments\",\n platformDepartmentsByDepartmentId: \"/api/v1/platform/departments/{department_id}\",\n platformDepartmentsByItemId: \"/api/v1/platform/departments/{item_id}\",\n platformEvents: \"/api/v1/platform/events\",\n platformEventsByEventId: \"/api/v1/platform/events/{event_id}\",\n platformEventsByItemId: \"/api/v1/platform/events/{item_id}\",\n platformFlags: \"/api/v1/platform/flags\",\n platformFlagsByFlagKey: \"/api/v1/platform/flags/{flag_key}\",\n platformFlagsByItemId: \"/api/v1/platform/flags/{item_id}\",\n platformLocations: \"/api/v1/platform/locations\",\n platformLocationsByItemId: \"/api/v1/platform/locations/{item_id}\",\n platformLocationsByLocationId: \"/api/v1/platform/locations/{location_id}\",\n platformMaskingDetect: \"/api/v1/platform/masking/detect\",\n platformMaskingDetectByItemId: \"/api/v1/platform/masking/detect/{item_id}\",\n platformMaskingMask: \"/api/v1/platform/masking/mask\",\n platformMaskingMaskByItemId: \"/api/v1/platform/masking/mask/{item_id}\",\n platformUserProfilesByUserId: \"/api/v1/platform/user-profiles/{user_id}\",\n platformUserProfilesByUserIdPreferences: \"/api/v1/platform/user-profiles/{user_id}/preferences\",\n pods: \"/api/v1/pods\",\n pods2: \"/api/v1/pods/\",\n podsByItemId: \"/api/v1/pods/{item_id}\",\n podsByPodId: \"/api/v1/pods/{pod_id}\",\n podsByPodIdStart: \"/api/v1/pods/{pod_id}/start\",\n podsByPodIdStop: \"/api/v1/pods/{pod_id}/stop\",\n policies: \"/api/v1/policies\",\n policiesAcknowledgements: \"/api/v1/policies/acknowledgements\",\n policiesAcknowledgementsByItemId: \"/api/v1/policies/acknowledgements/{item_id}\",\n policiesPolicies: \"/api/v1/policies/policies\",\n policiesPoliciesByItemId: \"/api/v1/policies/policies/{item_id}\",\n policiesPoliciesByPolicyIdPublish: \"/api/v1/policies/policies/{policy_id}/publish\",\n policiesPoliciesByPolicyIdRetire: \"/api/v1/policies/policies/{policy_id}/retire\",\n policiesReviews: \"/api/v1/policies/reviews\",\n policiesReviewsByItemId: \"/api/v1/policies/reviews/{item_id}\",\n policiesReviewsByReviewIdComplete: \"/api/v1/policies/reviews/{review_id}/complete\",\n policiesByItemId: \"/api/v1/policies/{item_id}\",\n procurementSuppliers: \"/api/v1/procurement/suppliers\",\n procurementSuppliersByItemId: \"/api/v1/procurement/suppliers/{item_id}\",\n projects: \"/api/v1/projects\",\n projects2: \"/api/v1/projects/\",\n projectsFeatures: \"/api/v1/projects/features\",\n projectsFeaturesByItemId: \"/api/v1/projects/features/{item_id}\",\n projectsSprints: \"/api/v1/projects/sprints\",\n projectsSprintsByItemId: \"/api/v1/projects/sprints/{item_id}\",\n projectsTasks: \"/api/v1/projects/tasks\",\n projectsTasksByItemId: \"/api/v1/projects/tasks/{item_id}\",\n projectsByItemId: \"/api/v1/projects/{item_id}\",\n projectsByProjectId: \"/api/v1/projects/{project_id}\",\n registryApps: \"/api/v1/registry/apps\",\n registryAppsByAppCode: \"/api/v1/registry/apps/{app_code}\",\n registryAppsByItemId: \"/api/v1/registry/apps/{item_id}\",\n registryCall: \"/api/v1/registry/call\",\n registryCallByItemId: \"/api/v1/registry/call/{item_id}\",\n registryCatalog: \"/api/v1/registry/catalog\",\n registryCatalogByItemId: \"/api/v1/registry/catalog/{item_id}\",\n registryEdmsTools: \"/api/v1/registry/edms/tools\",\n registryEdmsToolsByItemId: \"/api/v1/registry/edms/tools/{item_id}\",\n registryHeartbeat: \"/api/v1/registry/heartbeat\",\n registryHeartbeatByItemId: \"/api/v1/registry/heartbeat/{item_id}\",\n registryRegister: \"/api/v1/registry/register\",\n registryRegisterByItemId: \"/api/v1/registry/register/{item_id}\",\n registryTools: \"/api/v1/registry/tools\",\n registryToolsByItemId: \"/api/v1/registry/tools/{item_id}\",\n relationships: \"/api/v1/relationships\",\n relationshipsTraverse: \"/api/v1/relationships/traverse\",\n relationshipsTraverseByItemId: \"/api/v1/relationships/traverse/{item_id}\",\n relationshipsByItemId: \"/api/v1/relationships/{item_id}\",\n rfpQuestions: \"/api/v1/rfp/questions\",\n rfpQuestionsByItemId: \"/api/v1/rfp/questions/{item_id}\",\n rfpRecords: \"/api/v1/rfp/records\",\n rfpRecordsByItemId: \"/api/v1/rfp/records/{item_id}\",\n rfpResponses: \"/api/v1/rfp/responses\",\n rfpResponsesByItemId: \"/api/v1/rfp/responses/{item_id}\",\n riskItems: \"/api/v1/risk-items\",\n riskItemsByItemId: \"/api/v1/risk-items/{item_id}\",\n runs: \"/api/v1/runs\",\n runs2: \"/api/v1/runs/\",\n runsByItemId: \"/api/v1/runs/{item_id}\",\n runsByRunIdLogs: \"/api/v1/runs/{run_id}/logs\",\n secrets: \"/api/v1/secrets\",\n secrets2: \"/api/v1/secrets/\",\n secretsAccessLog: \"/api/v1/secrets/access-log\",\n secretsAccessLogByItemId: \"/api/v1/secrets/access-log/{item_id}\",\n secretsResolve: \"/api/v1/secrets/resolve\",\n secretsResolveBatch: \"/api/v1/secrets/resolve/batch\",\n secretsResolveBatchByItemId: \"/api/v1/secrets/resolve/batch/{item_id}\",\n secretsResolveByItemId: \"/api/v1/secrets/resolve/{item_id}\",\n secretsByItemId: \"/api/v1/secrets/{item_id}\",\n secretsBySecretId: \"/api/v1/secrets/{secret_id}\",\n secretsBySecretIdAccessLog: \"/api/v1/secrets/{secret_id}/access-log\",\n secretsBySecretIdGrants: \"/api/v1/secrets/{secret_id}/grants\",\n secretsBySecretIdGrantsByGrantId: \"/api/v1/secrets/{secret_id}/grants/{grant_id}\",\n secretsBySecretIdRotate: \"/api/v1/secrets/{secret_id}/rotate\",\n sessions: \"/api/v1/sessions\",\n sessionsRevokeAll: \"/api/v1/sessions/revoke-all\",\n sessionsRevokeAllByItemId: \"/api/v1/sessions/revoke-all/{item_id}\",\n sessionsByItemId: \"/api/v1/sessions/{item_id}\",\n sessionsBySessionId: \"/api/v1/sessions/{session_id}\",\n skills: \"/api/v1/skills\",\n skills2: \"/api/v1/skills/\",\n skillsGenerate: \"/api/v1/skills/generate\",\n skillsGenerateByItemId: \"/api/v1/skills/generate/{item_id}\",\n skillsUpload: \"/api/v1/skills/upload\",\n skillsUploadByItemId: \"/api/v1/skills/upload/{item_id}\",\n skillsByItemId: \"/api/v1/skills/{item_id}\",\n skillsBySkillId: \"/api/v1/skills/{skill_id}\",\n skillsBySkillIdFilesByFilePath: \"/api/v1/skills/{skill_id}/files/{file_path}\",\n skillsBySkillIdRun: \"/api/v1/skills/{skill_id}/run\",\n skillsBySkillIdRuns: \"/api/v1/skills/{skill_id}/runs\",\n skillsBySkillIdRunsByRunId: \"/api/v1/skills/{skill_id}/runs/{run_id}\",\n skillsBySlugConfig: \"/api/v1/skills/{slug}/config\",\n socAlerts: \"/api/v1/soc/alerts\",\n socAlertsByItemId: \"/api/v1/soc/alerts/{item_id}\",\n socInvestigations: \"/api/v1/soc/investigations\",\n socInvestigationsByItemId: \"/api/v1/soc/investigations/{item_id}\",\n socPlaybooks: \"/api/v1/soc/playbooks\",\n socPlaybooksByItemId: \"/api/v1/soc/playbooks/{item_id}\",\n status: \"/api/v1/status\",\n statusByItemId: \"/api/v1/status/{item_id}\",\n storageDbByCollection: \"/api/v1/storage/db/{collection}\",\n storageDbByCollectionByKey: \"/api/v1/storage/db/{collection}/{key}\",\n storageFiles: \"/api/v1/storage/files\",\n storageFilesPresignGet: \"/api/v1/storage/files/presign-get\",\n storageFilesPresignGetByItemId: \"/api/v1/storage/files/presign-get/{item_id}\",\n storageFilesPresignPut: \"/api/v1/storage/files/presign-put\",\n storageFilesPresignPutByItemId: \"/api/v1/storage/files/presign-put/{item_id}\",\n storageFilesByItemId: \"/api/v1/storage/files/{item_id}\",\n storageKvSet: \"/api/v1/storage/kv/set\",\n storageKvSetByItemId: \"/api/v1/storage/kv/set/{item_id}\",\n storageKvByKey: \"/api/v1/storage/kv/{key}\",\n storageObjects: \"/api/v1/storage/objects\",\n storageObjectsByItemId: \"/api/v1/storage/objects/{item_id}\",\n storageRecords: \"/api/v1/storage/records\",\n storageRecordsByItemId: \"/api/v1/storage/records/{item_id}\",\n systemSettings: \"/api/v1/system-settings\",\n systemSettings2: \"/api/v1/system-settings/\",\n systemSettingsActive: \"/api/v1/system-settings/active\",\n systemSettingsActiveByItemId: \"/api/v1/system-settings/active/{item_id}\",\n systemSettingsHistory: \"/api/v1/system-settings/history\",\n systemSettingsHistoryByItemId: \"/api/v1/system-settings/history/{item_id}\",\n systemSettingsByItemId: \"/api/v1/system-settings/{item_id}\",\n teams: \"/api/v1/teams\",\n teams2: \"/api/v1/teams/\",\n teamsGenerate: \"/api/v1/teams/generate\",\n teamsGenerateByItemId: \"/api/v1/teams/generate/{item_id}\",\n teamsByItemId: \"/api/v1/teams/{item_id}\",\n teamsByTeamId: \"/api/v1/teams/{team_id}\",\n teamsByTeamIdRun: \"/api/v1/teams/{team_id}/run\",\n teamsByTeamIdRuns: \"/api/v1/teams/{team_id}/runs\",\n teamsByTeamIdRunsByRunId: \"/api/v1/teams/{team_id}/runs/{run_id}\",\n teamsByTeamIdRunsByRunIdDocument: \"/api/v1/teams/{team_id}/runs/{run_id}/document\",\n technology: \"/api/v1/technology\",\n technologyEntitlements: \"/api/v1/technology/entitlements\",\n technologyEntitlementsByItemId: \"/api/v1/technology/entitlements/{item_id}\",\n technologyByItemId: \"/api/v1/technology/{item_id}\",\n tenants: \"/api/v1/tenants\",\n tenantsByItemId: \"/api/v1/tenants/{item_id}\",\n tenantsByTenantId: \"/api/v1/tenants/{tenant_id}\",\n tenantsByTenantIdUsers: \"/api/v1/tenants/{tenant_id}/users\",\n users: \"/api/v1/users\",\n usersMe: \"/api/v1/users/me\",\n usersMeByItemId: \"/api/v1/users/me/{item_id}\",\n usersByItemId: \"/api/v1/users/{item_id}\",\n usersByUserId: \"/api/v1/users/{user_id}\",\n usersByUserIdPermissions: \"/api/v1/users/{user_id}/permissions\",\n vulnerabilities: \"/api/v1/vulnerabilities\",\n vulnerabilitiesByItemId: \"/api/v1/vulnerabilities/{item_id}\",\n webhooksLogsByRunId: \"/api/v1/webhooks/logs/{run_id}\",\n webhooksStep: \"/api/v1/webhooks/step\",\n webhooksStepByItemId: \"/api/v1/webhooks/step/{item_id}\",\n workCapacity: \"/api/v1/work/capacity\",\n workCapacityByItemId: \"/api/v1/work/capacity/{item_id}\",\n workComments: \"/api/v1/work/comments\",\n workCommentsByItemId: \"/api/v1/work/comments/{item_id}\",\n workTimeEntries: \"/api/v1/work/time-entries\",\n workTimeEntriesByItemId: \"/api/v1/work/time-entries/{item_id}\",\n workflows: \"/api/v1/workflows\",\n workflows2: \"/api/v1/workflows/\",\n workflowsGenerate: \"/api/v1/workflows/generate\",\n workflowsGenerateByItemId: \"/api/v1/workflows/generate/{item_id}\",\n workflowsRuns: \"/api/v1/workflows/runs\",\n workflowsRunsByItemId: \"/api/v1/workflows/runs/{item_id}\",\n workflowsRunsByRunId: \"/api/v1/workflows/runs/{run_id}\",\n workflowsRunsByRunIdCancel: \"/api/v1/workflows/runs/{run_id}/cancel\",\n workflowsRunsByRunIdFilesByFileId: \"/api/v1/workflows/runs/{run_id}/files/{file_id}\",\n workflowsRunsByRunIdMarkdown: \"/api/v1/workflows/runs/{run_id}/markdown\",\n workflowsRunsByRunIdResume: \"/api/v1/workflows/runs/{run_id}/resume\",\n workflowsRunsByRunIdStream: \"/api/v1/workflows/runs/{run_id}/stream\",\n workflowsByItemId: \"/api/v1/workflows/{item_id}\",\n workflowsByWorkflowId: \"/api/v1/workflows/{workflow_id}\",\n workflowsByWorkflowIdRequiredSecrets: \"/api/v1/workflows/{workflow_id}/required-secrets\",\n workflowsByWorkflowIdRun: \"/api/v1/workflows/{workflow_id}/run\",\n workflowsByWorkflowIdRunInputsPreflight: \"/api/v1/workflows/{workflow_id}/run-inputs/preflight\",\n workflowsByWorkflowIdRuns: \"/api/v1/workflows/{workflow_id}/runs\",\n workflowsByWorkflowIdRunsByRunId: \"/api/v1/workflows/{workflow_id}/runs/{run_id}\",\n workspaces: \"/api/v1/workspaces\",\n workspaces2: \"/api/v1/workspaces/\",\n workspacesEnsureHome: \"/api/v1/workspaces/ensure-home\",\n workspacesEnsureHomeByItemId: \"/api/v1/workspaces/ensure-home/{item_id}\",\n workspacesFiles: \"/api/v1/workspaces/files\",\n workspacesFilesUpload: \"/api/v1/workspaces/files/upload\",\n workspacesFilesUploadByItemId: \"/api/v1/workspaces/files/upload/{item_id}\",\n workspacesFilesByFileId: \"/api/v1/workspaces/files/{file_id}\",\n workspacesFilesByFileIdDownload: \"/api/v1/workspaces/files/{file_id}/download\",\n workspacesFilesByItemId: \"/api/v1/workspaces/files/{item_id}\",\n workspacesFolders: \"/api/v1/workspaces/folders\",\n workspacesFoldersByFolderId: \"/api/v1/workspaces/folders/{folder_id}\",\n workspacesFoldersByItemId: \"/api/v1/workspaces/folders/{item_id}\",\n workspacesHomeEnsure: \"/api/v1/workspaces/home/ensure\",\n workspacesHomeEnsureByItemId: \"/api/v1/workspaces/home/ensure/{item_id}\",\n workspacesTrash: \"/api/v1/workspaces/trash\",\n workspacesTrashRestore: \"/api/v1/workspaces/trash/restore\",\n workspacesTrashRestoreByItemId: \"/api/v1/workspaces/trash/restore/{item_id}\",\n workspacesTrashByItemId: \"/api/v1/workspaces/trash/{item_id}\",\n workspacesByItemId: \"/api/v1/workspaces/{item_id}\",\n workspacesByWorkspaceId: \"/api/v1/workspaces/{workspace_id}\",\n // Pending backend implementation — SDK stubs for future modules\n analyticsDashboards: \"/api/v1/analytics/dashboards\",\n analyticsDashboardsByItemId: \"/api/v1/analytics/dashboards/{item_id}\",\n analyticsMetrics: \"/api/v1/analytics/metrics\",\n analyticsMetricsByItemId: \"/api/v1/analytics/metrics/{item_id}\",\n analyticsReports: \"/api/v1/analytics/reports\",\n analyticsReportsByItemId: \"/api/v1/analytics/reports/{item_id}\",\n analyticsReportsGenerate: \"/api/v1/analytics/reports/generate\",\n graphNodes: \"/api/v1/graph/nodes\",\n graphNodesByItemId: \"/api/v1/graph/nodes/{item_id}\",\n graphEdges: \"/api/v1/graph/edges\",\n graphEdgesByItemId: \"/api/v1/graph/edges/{item_id}\",\n graphQueries: \"/api/v1/graph/queries\",\n graphQueriesByItemId: \"/api/v1/graph/queries/{item_id}\",\n graphQueriesExecute: \"/api/v1/graph/queries/execute\",\n operationsAccessRequests: \"/api/v1/operations/access-requests\",\n operationsAccessRequestsByItemId: \"/api/v1/operations/access-requests/{item_id}\",\n operationsAccessRequestsApprove: \"/api/v1/operations/access-requests/{item_id}/approve\",\n operationsAccessRequestsProvision: \"/api/v1/operations/access-requests/{item_id}/provision\",\n operationsHrRequests: \"/api/v1/operations/hr-requests\",\n operationsHrRequestsByItemId: \"/api/v1/operations/hr-requests/{item_id}\",\n operationsHrRequestsFulfill: \"/api/v1/operations/hr-requests/{item_id}/fulfill\",\n operationsPending: \"/api/v1/operations/pending\",\n operationsPendingByItemId: \"/api/v1/operations/pending/{item_id}\",\n operationsEquipment: \"/api/v1/operations/equipment\",\n operationsEquipmentByItemId: \"/api/v1/operations/equipment/{item_id}\",\n operationsEquipmentProvision: \"/api/v1/operations/equipment/{item_id}/provision\",\n operationsTravel: \"/api/v1/operations/travel\",\n operationsTravelByItemId: \"/api/v1/operations/travel/{item_id}\",\n operationsTravelBook: \"/api/v1/operations/travel/{item_id}/book\",\n plannerDailyPlans: \"/api/v1/planner/daily-plans\",\n plannerDailyPlansByItemId: \"/api/v1/planner/daily-plans/{item_id}\",\n plannerPlanItems: \"/api/v1/planner/plan-items\",\n plannerPlanItemsByItemId: \"/api/v1/planner/plan-items/{item_id}\",\n postmortemsTimeline: \"/api/v1/postmortems/timeline\",\n postmortemsTimelineByItemId: \"/api/v1/postmortems/timeline/{item_id}\",\n knowledgeTemplates: \"/api/v1/knowledge/templates\",\n knowledgeTemplatesByItemId: \"/api/v1/knowledge/templates/{item_id}\",\n knowledgeSops: \"/api/v1/knowledge/sops\",\n knowledgeSopsByItemId: \"/api/v1/knowledge/sops/{item_id}\",\n vendorScorecards: \"/api/v1/vendor/scorecards\",\n vendorScorecardsByItemId: \"/api/v1/vendor/scorecards/{item_id}\",\n vendorInsurance: \"/api/v1/vendor/insurance\",\n vendorInsuranceByItemId: \"/api/v1/vendor/insurance/{item_id}\",\n vendorCertifications: \"/api/v1/vendor/certifications\",\n vendorCertificationsByItemId: \"/api/v1/vendor/certifications/{item_id}\",\n vendorContacts: \"/api/v1/vendor/contacts\",\n vendorContactsByItemId: \"/api/v1/vendor/contacts/{item_id}\",\n vendorOnboarding: \"/api/v1/vendor/onboarding\",\n vendorOnboardingByItemId: \"/api/v1/vendor/onboarding/{item_id}\",\n marketingCampaigns: \"/api/v1/marketing/campaigns\",\n marketingCampaignsByItemId: \"/api/v1/marketing/campaigns/{item_id}\",\n marketingLeads: \"/api/v1/marketing/leads\",\n marketingLeadsByItemId: \"/api/v1/marketing/leads/{item_id}\",\n marketingContent: \"/api/v1/marketing/content\",\n marketingContentByItemId: \"/api/v1/marketing/content/{item_id}\",\n marketingEvents: \"/api/v1/marketing/events\",\n marketingEventsByItemId: \"/api/v1/marketing/events/{item_id}\",\n marketingSocial: \"/api/v1/marketing/social\",\n marketingSocialByItemId: \"/api/v1/marketing/social/{item_id}\",\n marketingEmails: \"/api/v1/marketing/emails\",\n marketingEmailsByItemId: \"/api/v1/marketing/emails/{item_id}\",\n marketingAnalytics: \"/api/v1/marketing/analytics\",\n marketingAnalyticsByItemId: \"/api/v1/marketing/analytics/{item_id}\",\n legalContracts: \"/api/v1/legal/contracts\",\n legalContractsByItemId: \"/api/v1/legal/contracts/{item_id}\",\n legalNdas: \"/api/v1/legal/ndas\",\n legalNdasByItemId: \"/api/v1/legal/ndas/{item_id}\",\n legalCases: \"/api/v1/legal/cases\",\n legalCasesByItemId: \"/api/v1/legal/cases/{item_id}\",\n legalIp: \"/api/v1/legal/ip\",\n legalIpByItemId: \"/api/v1/legal/ip/{item_id}\",\n legalCompliance: \"/api/v1/legal/compliance\",\n legalComplianceByItemId: \"/api/v1/legal/compliance/{item_id}\",\n legalReviews: \"/api/v1/legal/reviews\",\n legalReviewsByItemId: \"/api/v1/legal/reviews/{item_id}\",\n surveysSurveys: \"/api/v1/surveys/surveys\",\n surveysSurveysByItemId: \"/api/v1/surveys/surveys/{item_id}\",\n surveysResponses: \"/api/v1/surveys/responses\",\n surveysResponsesByItemId: \"/api/v1/surveys/responses/{item_id}\",\n surveysAnalytics: \"/api/v1/surveys/analytics\",\n surveysAnalyticsByItemId: \"/api/v1/surveys/analytics/{item_id}\",\n processMaps: \"/api/v1/process/maps\",\n processMapsByItemId: \"/api/v1/process/maps/{item_id}\",\n processBottlenecks: \"/api/v1/process/bottlenecks\",\n processBottlenecksByItemId: \"/api/v1/process/bottlenecks/{item_id}\",\n processEfficiencyScores: \"/api/v1/process/efficiency-scores\",\n processEfficiencyScoresByItemId: \"/api/v1/process/efficiency-scores/{item_id}\",\n clientopsHealthScores: \"/api/v1/clientops/health-scores\",\n clientopsHealthScoresByItemId: \"/api/v1/clientops/health-scores/{item_id}\",\n clientopsPlaybooks: \"/api/v1/clientops/playbooks\",\n clientopsPlaybooksByItemId: \"/api/v1/clientops/playbooks/{item_id}\",\n clientopsOnboardingPlans: \"/api/v1/clientops/onboarding-plans\",\n clientopsOnboardingPlansByItemId: \"/api/v1/clientops/onboarding-plans/{item_id}\",\n clientopsRetentionRisks: \"/api/v1/clientops/retention-risk\",\n clientopsRetentionRisksByItemId: \"/api/v1/clientops/retention-risk/{item_id}\",\n clientopsExpansions: \"/api/v1/clientops/expansions\",\n clientopsExpansionsByItemId: \"/api/v1/clientops/expansions/{item_id}\",\n mutations: \"/api/v1/mutations\",\n mutationsByItemId: \"/api/v1/mutations/{item_id}\",\n mutationsReview: \"/api/v1/mutations/review\",\n mutationsCommit: \"/api/v1/mutations/commit\",\n timeline: \"/api/v1/timeline\",\n timelineByItemId: \"/api/v1/timeline/{item_id}\",\n signals: \"/api/v1/signals\",\n signalsByItemId: \"/api/v1/signals/{item_id}\",\n healthz: \"/healthz\",\n otelV1Traces: \"/otel/v1/traces\",\n readyz: \"/readyz\",\n} as const;\nexport type PathKey = keyof typeof PATHS;\n","import { buildPath } from '../_generated/build-path.js';\nimport { PATHS } from '../_generated/paths.js';\nimport type { HttpClient } from \"../http/client.js\";\nimport type { ApiResponse, RequestOptions } from \"../types/index.js\";\nimport type {\n Pod,\n CreatePodInput,\n UpdatePodInput,\n ListPodsOptions,\n StartPodOptions,\n} from \"./types.js\";\n\n/**\n * Provides CRUD and lifecycle operations for cPod Pod resources.\n *\n * @example\n * ```typescript\n * // Create a Pod in a Workspace\n * const pod = await client.pods.create({\n * workspaceId: \"c3d4e5f6-...\",\n * name: \"api-server-primary\",\n * spec: {\n * image: \"docker.io/acme/api:v3.2.1\",\n * cpu: \"1000m\",\n * memory: \"2Gi\",\n * replicas: 3,\n * },\n * });\n *\n * // List running pods in a workspace\n * const { data: pods } = await client.pods.list({\n * workspaceId: \"c3d4e5f6-...\",\n * status: \"running\",\n * });\n * ```\n */\nexport class PodService {\n private readonly http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n /**\n * List Pods, optionally filtered by Workspace, Organization, status, or label.\n */\n async list(\n opts: ListPodsOptions = {},\n requestOpts?: RequestOptions\n ): Promise<ApiResponse<Pod[]>> {\n const params = new URLSearchParams();\n if (opts.limit !== undefined) params.set(\"limit\", String(opts.limit));\n if (opts.offset !== undefined) params.set(\"offset\", String(opts.offset));\n if (opts.workspaceId !== undefined)\n params.set(\"workspaceId\", opts.workspaceId);\n if (opts.organizationId !== undefined)\n params.set(\"organizationId\", opts.organizationId);\n if (opts.status !== undefined) params.set(\"status\", opts.status);\n if (opts.label !== undefined) params.set(\"label\", opts.label);\n\n const qs = params.toString();\n return this.http.get<ApiResponse<Pod[]>>(\n `/api/v1/pods${qs ? `?${qs}` : \"\"}`,\n requestOpts\n );\n }\n\n /**\n * Retrieve a single Pod by UUID.\n */\n async get(id: string, requestOpts?: RequestOptions): Promise<Pod> {\n if (!id) throw new Error(\"Pod ID is required.\");\n return this.http.get<Pod>(\n buildPath(PATHS.podsByPodId, encodeURIComponent(id)),\n requestOpts\n );\n }\n\n /**\n * Create a new Pod in the specified Workspace.\n */\n async create(input: CreatePodInput, requestOpts?: RequestOptions): Promise<Pod> {\n return this.http.post<Pod>(PATHS.pods, input, requestOpts);\n }\n\n /**\n * Update an existing Pod's spec, labels, or annotations.\n * Changes to spec.image, spec.cpu, or spec.memory trigger a rolling restart.\n * Changes to spec.replicas are applied immediately.\n */\n async update(\n id: string,\n input: UpdatePodInput,\n requestOpts?: RequestOptions\n ): Promise<Pod> {\n if (!id) throw new Error(\"Pod ID is required.\");\n return this.http.patch<Pod>(\n buildPath(PATHS.podsByPodId, encodeURIComponent(id)),\n input,\n requestOpts\n );\n }\n\n /**\n * Start a stopped Pod. Transitions the Pod from 'stopped' to 'provisioning'.\n */\n async start(\n id: string,\n opts: StartPodOptions = {},\n requestOpts?: RequestOptions\n ): Promise<Pod> {\n if (!id) throw new Error(\"Pod ID is required.\");\n return this.http.post<Pod>(\n buildPath(PATHS.podsByPodIdStart, encodeURIComponent(id)),\n opts,\n requestOpts\n );\n }\n\n /**\n * Gracefully stop a running Pod. Transitions to 'stopping' then 'stopped'.\n * Resources are retained; the Pod can be restarted.\n */\n async stop(id: string, requestOpts?: RequestOptions): Promise<Pod> {\n if (!id) throw new Error(\"Pod ID is required.\");\n return this.http.post<Pod>(\n buildPath(PATHS.podsByPodIdStop, encodeURIComponent(id)),\n {},\n requestOpts\n );\n }\n\n /**\n * Permanently delete a Pod. Releases all compute resources.\n * The Pod must be in 'stopped' or 'failed' status before deletion.\n */\n async delete(id: string, requestOpts?: RequestOptions): Promise<void> {\n if (!id) throw new Error(\"Pod ID is required.\");\n return this.http.delete<void>(\n buildPath(PATHS.podsByPodId, encodeURIComponent(id)),\n requestOpts\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// src/_generated/build-path.ts
|
|
2
|
+
function buildPath(template, ...values) {
|
|
3
|
+
let i = 0;
|
|
4
|
+
return template.replace(/\{[^}]+\}/g, () => encodeURIComponent(String(values[i++])));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
// src/_generated/paths.ts
|
|
8
|
+
var PATHS = {
|
|
9
|
+
pods: "/api/v1/pods",
|
|
10
|
+
podsByPodId: "/api/v1/pods/{pod_id}",
|
|
11
|
+
podsByPodIdStart: "/api/v1/pods/{pod_id}/start",
|
|
12
|
+
podsByPodIdStop: "/api/v1/pods/{pod_id}/stop"};
|
|
13
|
+
|
|
14
|
+
// src/pods/service.ts
|
|
15
|
+
var PodService = class {
|
|
16
|
+
http;
|
|
17
|
+
constructor(http) {
|
|
18
|
+
this.http = http;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* List Pods, optionally filtered by Workspace, Organization, status, or label.
|
|
22
|
+
*/
|
|
23
|
+
async list(opts = {}, requestOpts) {
|
|
24
|
+
const params = new URLSearchParams();
|
|
25
|
+
if (opts.limit !== void 0) params.set("limit", String(opts.limit));
|
|
26
|
+
if (opts.offset !== void 0) params.set("offset", String(opts.offset));
|
|
27
|
+
if (opts.workspaceId !== void 0)
|
|
28
|
+
params.set("workspaceId", opts.workspaceId);
|
|
29
|
+
if (opts.organizationId !== void 0)
|
|
30
|
+
params.set("organizationId", opts.organizationId);
|
|
31
|
+
if (opts.status !== void 0) params.set("status", opts.status);
|
|
32
|
+
if (opts.label !== void 0) params.set("label", opts.label);
|
|
33
|
+
const qs = params.toString();
|
|
34
|
+
return this.http.get(
|
|
35
|
+
`/api/v1/pods${qs ? `?${qs}` : ""}`,
|
|
36
|
+
requestOpts
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Retrieve a single Pod by UUID.
|
|
41
|
+
*/
|
|
42
|
+
async get(id, requestOpts) {
|
|
43
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
44
|
+
return this.http.get(
|
|
45
|
+
buildPath(PATHS.podsByPodId, encodeURIComponent(id)),
|
|
46
|
+
requestOpts
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a new Pod in the specified Workspace.
|
|
51
|
+
*/
|
|
52
|
+
async create(input, requestOpts) {
|
|
53
|
+
return this.http.post(PATHS.pods, input, requestOpts);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Update an existing Pod's spec, labels, or annotations.
|
|
57
|
+
* Changes to spec.image, spec.cpu, or spec.memory trigger a rolling restart.
|
|
58
|
+
* Changes to spec.replicas are applied immediately.
|
|
59
|
+
*/
|
|
60
|
+
async update(id, input, requestOpts) {
|
|
61
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
62
|
+
return this.http.patch(
|
|
63
|
+
buildPath(PATHS.podsByPodId, encodeURIComponent(id)),
|
|
64
|
+
input,
|
|
65
|
+
requestOpts
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Start a stopped Pod. Transitions the Pod from 'stopped' to 'provisioning'.
|
|
70
|
+
*/
|
|
71
|
+
async start(id, opts = {}, requestOpts) {
|
|
72
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
73
|
+
return this.http.post(
|
|
74
|
+
buildPath(PATHS.podsByPodIdStart, encodeURIComponent(id)),
|
|
75
|
+
opts,
|
|
76
|
+
requestOpts
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Gracefully stop a running Pod. Transitions to 'stopping' then 'stopped'.
|
|
81
|
+
* Resources are retained; the Pod can be restarted.
|
|
82
|
+
*/
|
|
83
|
+
async stop(id, requestOpts) {
|
|
84
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
85
|
+
return this.http.post(
|
|
86
|
+
buildPath(PATHS.podsByPodIdStop, encodeURIComponent(id)),
|
|
87
|
+
{},
|
|
88
|
+
requestOpts
|
|
89
|
+
);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Permanently delete a Pod. Releases all compute resources.
|
|
93
|
+
* The Pod must be in 'stopped' or 'failed' status before deletion.
|
|
94
|
+
*/
|
|
95
|
+
async delete(id, requestOpts) {
|
|
96
|
+
if (!id) throw new Error("Pod ID is required.");
|
|
97
|
+
return this.http.delete(
|
|
98
|
+
buildPath(PATHS.podsByPodId, encodeURIComponent(id)),
|
|
99
|
+
requestOpts
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export { PodService };
|
|
105
|
+
//# sourceMappingURL=index.mjs.map
|
|
106
|
+
//# sourceMappingURL=index.mjs.map
|