@controlplane/schema 1.0.1 → 1.0.2

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.
Files changed (52) hide show
  1. package/build/src/interfaces/accessreport.d.ts +18 -0
  2. package/build/src/interfaces/agent.d.ts +30 -0
  3. package/build/src/interfaces/auditctx.d.ts +17 -0
  4. package/build/src/interfaces/base.d.ts +37 -0
  5. package/build/src/interfaces/cloudaccount.d.ts +37 -0
  6. package/build/src/interfaces/command.d.ts +29 -0
  7. package/build/src/interfaces/config.d.ts +11 -0
  8. package/build/src/interfaces/containerstatus.d.ts +13 -0
  9. package/build/src/interfaces/cronjob.d.ts +20 -0
  10. package/build/src/interfaces/dbcluster.d.ts +42 -0
  11. package/build/src/interfaces/deployment.d.ts +33 -0
  12. package/build/src/interfaces/discovery.d.ts +21 -0
  13. package/build/src/interfaces/domain.d.ts +82 -0
  14. package/build/src/interfaces/env.d.ts +6 -0
  15. package/build/src/interfaces/event.d.ts +25 -0
  16. package/build/src/interfaces/group.d.ts +20 -0
  17. package/build/src/interfaces/gvc.d.ts +53 -0
  18. package/build/src/interfaces/identity.d.ts +102 -0
  19. package/build/src/interfaces/image.d.ts +25 -0
  20. package/build/src/interfaces/links.d.ts +0 -0
  21. package/build/src/interfaces/location.d.ts +31 -0
  22. package/build/src/interfaces/memcache.d.ts +46 -0
  23. package/build/src/interfaces/mk8s.d.ts +75 -0
  24. package/build/src/interfaces/mk8sAddons.d.ts +51 -0
  25. package/build/src/interfaces/mk8sAws.d.ts +37 -0
  26. package/build/src/interfaces/mk8sCommon.d.ts +20 -0
  27. package/build/src/interfaces/mk8sGeneric.d.ts +17 -0
  28. package/build/src/interfaces/mk8sHetzner.d.ts +33 -0
  29. package/build/src/interfaces/mk8sLambdalabs.d.ts +23 -0
  30. package/build/src/interfaces/mk8sLinode.d.ts +27 -0
  31. package/build/src/interfaces/mk8sOblivus.d.ts +13 -0
  32. package/build/src/interfaces/mk8sPaperspace.d.ts +23 -0
  33. package/build/src/interfaces/org.d.ts +58 -0
  34. package/build/src/interfaces/orgLogging.d.ts +46 -0
  35. package/build/src/interfaces/orgTracing.d.ts +4 -0
  36. package/build/src/interfaces/permissions.d.ts +14 -0
  37. package/build/src/interfaces/policy.d.ts +23 -0
  38. package/build/src/interfaces/policyMembership.d.ts +11 -0
  39. package/build/src/interfaces/query.d.ts +27 -0
  40. package/build/src/interfaces/quota.d.ts +18 -0
  41. package/build/src/interfaces/resourcePolicy.d.ts +13 -0
  42. package/build/src/interfaces/secret.d.ts +57 -0
  43. package/build/src/interfaces/serviceaccount.d.ts +20 -0
  44. package/build/src/interfaces/spicedb.d.ts +26 -0
  45. package/build/src/interfaces/statefulSet.d.ts +5 -0
  46. package/build/src/interfaces/task.d.ts +19 -0
  47. package/build/src/interfaces/tenant.d.ts +20 -0
  48. package/build/src/interfaces/tracing.d.ts +15 -0
  49. package/build/src/interfaces/user.d.ts +24 -0
  50. package/build/src/interfaces/volumeSet.d.ts +78 -0
  51. package/build/src/interfaces/workload.d.ts +305 -0
  52. package/package.json +2 -2
@@ -0,0 +1,26 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export interface ClusterSpec {
3
+ version?: '1.14.1';
4
+ locations?: string[];
5
+ }
6
+ export interface ClusterStatus {
7
+ externalEndpoint?: string;
8
+ [x: string]: any;
9
+ }
10
+ export interface SpicedbCluster {
11
+ id?: string;
12
+ name?: Name;
13
+ kind?: Kind;
14
+ version?: number;
15
+ description?: string;
16
+ tags?: Tags;
17
+ created?: Date;
18
+ lastModified?: Date;
19
+ links?: Links;
20
+ spec: {
21
+ version?: '1.14.1';
22
+ locations?: string[];
23
+ };
24
+ alias?: string;
25
+ status?: ClusterStatus;
26
+ }
@@ -0,0 +1,5 @@
1
+ import { VolumeSetStatus } from './volumeSet';
2
+ export interface StatefulSetStatus {
3
+ replicaCount?: number;
4
+ volumeSet?: VolumeSetStatus;
5
+ }
@@ -0,0 +1,19 @@
1
+ import { Link } from './base';
2
+ export interface Task {
3
+ id?: string;
4
+ kind?: 'task';
5
+ description?: string;
6
+ created?: Date;
7
+ lastModified?: Date;
8
+ targetEmail?: string;
9
+ creatorLink?: string;
10
+ type?: string;
11
+ context?: {
12
+ [x: string]: any;
13
+ };
14
+ status?: 'pending' | 'complete' | 'canceled';
15
+ response?: {
16
+ [x: string]: any;
17
+ };
18
+ links?: Link[];
19
+ }
@@ -0,0 +1,20 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export interface TenantSpec {
3
+ orgs?: Name[];
4
+ clusters?: Name[];
5
+ }
6
+ export interface Tenant {
7
+ id?: string;
8
+ name?: Name;
9
+ kind?: Kind;
10
+ version?: number;
11
+ description?: string;
12
+ tags?: Tags;
13
+ created?: Date;
14
+ lastModified?: Date;
15
+ links?: Links;
16
+ spec: {
17
+ orgs?: Name[];
18
+ clusters?: Name[];
19
+ };
20
+ }
@@ -0,0 +1,15 @@
1
+ export interface LightstepTracing {
2
+ endpoint: string;
3
+ credentials?: string;
4
+ }
5
+ export interface OpenTelemetry {
6
+ endpoint: string;
7
+ }
8
+ export interface Tracing {
9
+ sampling: number;
10
+ lightstep?: LightstepTracing;
11
+ provider?: {
12
+ otel?: OpenTelemetry;
13
+ lightstep?: LightstepTracing;
14
+ };
15
+ }
@@ -0,0 +1,24 @@
1
+ import { Tags, Links, ApiError } from './base';
2
+ export interface User {
3
+ id?: string;
4
+ name?: string;
5
+ kind?: 'user';
6
+ version?: number;
7
+ tags?: Tags;
8
+ created?: Date;
9
+ lastModified?: Date;
10
+ links?: Links;
11
+ idp?: string;
12
+ email?: string;
13
+ }
14
+ export interface InviteRequest {
15
+ emails?: string[];
16
+ }
17
+ export interface InviteResponse {
18
+ errors?: {
19
+ [x: string]: ApiError;
20
+ };
21
+ invitations?: {
22
+ [x: string]: string;
23
+ };
24
+ }
@@ -0,0 +1,78 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export interface PerformanceClass {
3
+ name: string;
4
+ minCapacity?: number;
5
+ maxCapacity: number;
6
+ featuresSupported?: ('automatic-expansion' | 'snapshots')[];
7
+ }
8
+ export interface VolumeSnapshot {
9
+ name: string;
10
+ id?: string;
11
+ created: Date;
12
+ expires?: Date;
13
+ size?: number;
14
+ tags?: {
15
+ [x: string]: string;
16
+ }[];
17
+ }
18
+ export interface PersistentVolumeStatus {
19
+ lifecycle?: 'creating' | 'unused' | 'unbound' | 'bound' | 'deleted' | 'repairing';
20
+ storageDeviceId?: string;
21
+ index: number;
22
+ currentSize: number;
23
+ iops?: number;
24
+ throughput?: number;
25
+ driver: string;
26
+ volumeSnapshots?: VolumeSnapshot[];
27
+ }
28
+ export interface VolumeSetStatusLocation {
29
+ name: string;
30
+ volumes?: PersistentVolumeStatus[];
31
+ desiredVolumeCount?: number;
32
+ }
33
+ export interface VolumeSetStatus {
34
+ parentId?: string;
35
+ usedByWorkload?: string;
36
+ locations?: VolumeSetStatusLocation[];
37
+ }
38
+ export interface VolumeSetSpec {
39
+ initialCapacity: number;
40
+ performanceClass: 'general-purpose-ssd' | 'high-throughput-ssd';
41
+ fileSystemType?: 'xfs' | 'ext4';
42
+ snapshots?: {
43
+ createFinalSnapshot?: boolean;
44
+ retentionDuration?: string;
45
+ };
46
+ autoscaling?: {
47
+ maxCapacity?: number;
48
+ minFreePercentage?: number;
49
+ scalingFactor?: number;
50
+ };
51
+ }
52
+ export interface VolumeSet {
53
+ id?: string;
54
+ name?: Name;
55
+ kind?: Kind;
56
+ version?: number;
57
+ description?: string;
58
+ tags?: Tags;
59
+ created?: Date;
60
+ lastModified?: Date;
61
+ links?: Links;
62
+ spec: {
63
+ initialCapacity: number;
64
+ performanceClass: 'general-purpose-ssd' | 'high-throughput-ssd';
65
+ fileSystemType?: 'xfs' | 'ext4';
66
+ snapshots?: {
67
+ createFinalSnapshot?: boolean;
68
+ retentionDuration?: string;
69
+ };
70
+ autoscaling?: {
71
+ maxCapacity?: number;
72
+ minFreePercentage?: number;
73
+ scalingFactor?: number;
74
+ };
75
+ };
76
+ status?: VolumeSetStatus;
77
+ gvc?: any;
78
+ }
@@ -0,0 +1,305 @@
1
+ import { EnvVar } from './env';
2
+ import { Kind, Tags, Links } from './base';
3
+ export type Port = number;
4
+ export interface HealthCheckSpec {
5
+ exec?: {
6
+ command?: string[];
7
+ };
8
+ grpc?: {
9
+ port?: Port;
10
+ };
11
+ tcpSocket?: {
12
+ port?: number;
13
+ };
14
+ httpGet?: {
15
+ path?: string;
16
+ port?: number;
17
+ httpHeaders?: {
18
+ name: string;
19
+ value: string;
20
+ }[];
21
+ scheme?: 'HTTP' | 'HTTPS';
22
+ };
23
+ initialDelaySeconds?: number;
24
+ periodSeconds?: number;
25
+ timeoutSeconds?: number;
26
+ successThreshold?: number;
27
+ failureThreshold?: number;
28
+ }
29
+ export interface VolumeSpec {
30
+ uri: string;
31
+ recoveryPolicy?: 'retain' | 'recycle';
32
+ path: string;
33
+ }
34
+ export interface RolloutOptions {
35
+ minReadySeconds?: number;
36
+ maxUnavailableReplicas?: string;
37
+ maxSurgeReplicas?: string;
38
+ scalingPolicy?: 'OrderedReady' | 'Parallel';
39
+ }
40
+ export interface SecurityOptions {
41
+ filesystemGroupId?: number;
42
+ }
43
+ export interface GpuResource {
44
+ nvidia: {
45
+ model?: any;
46
+ quantity?: number;
47
+ };
48
+ }
49
+ export interface ContainerSpec {
50
+ name?: string;
51
+ image: string;
52
+ workingDir?: string;
53
+ metrics?: {
54
+ port: number;
55
+ path: string;
56
+ };
57
+ port?: number;
58
+ ports?: ({
59
+ protocol?: 'http' | 'http2' | 'grpc' | 'tcp';
60
+ number: number;
61
+ })[];
62
+ memory?: string;
63
+ readinessProbe?: {
64
+ exec?: {
65
+ command?: string[];
66
+ };
67
+ grpc?: {
68
+ port?: Port;
69
+ };
70
+ tcpSocket?: {
71
+ port?: number;
72
+ };
73
+ httpGet?: {
74
+ path?: string;
75
+ port?: number;
76
+ httpHeaders?: {
77
+ name: string;
78
+ value: string;
79
+ }[];
80
+ scheme?: 'HTTP' | 'HTTPS';
81
+ };
82
+ initialDelaySeconds?: number;
83
+ periodSeconds?: number;
84
+ timeoutSeconds?: number;
85
+ successThreshold?: number;
86
+ failureThreshold?: number;
87
+ };
88
+ livenessProbe?: {
89
+ exec?: {
90
+ command?: string[];
91
+ };
92
+ grpc?: {
93
+ port?: Port;
94
+ };
95
+ tcpSocket?: {
96
+ port?: number;
97
+ };
98
+ httpGet?: {
99
+ path?: string;
100
+ port?: number;
101
+ httpHeaders?: {
102
+ name: string;
103
+ value: string;
104
+ }[];
105
+ scheme?: 'HTTP' | 'HTTPS';
106
+ };
107
+ initialDelaySeconds?: number;
108
+ periodSeconds?: number;
109
+ timeoutSeconds?: number;
110
+ successThreshold?: number;
111
+ failureThreshold?: number;
112
+ };
113
+ cpu?: string;
114
+ env?: EnvVar[];
115
+ gpu?: {
116
+ nvidia: {
117
+ model?: any;
118
+ quantity?: number;
119
+ };
120
+ };
121
+ inheritEnv?: boolean;
122
+ command?: string;
123
+ args?: string[];
124
+ lifecycle?: {
125
+ postStart?: {
126
+ exec?: {
127
+ command?: string[];
128
+ };
129
+ };
130
+ preStop?: {
131
+ exec?: {
132
+ command?: string[];
133
+ };
134
+ };
135
+ };
136
+ volumes?: VolumeSpec[];
137
+ }
138
+ export interface HealthCheckStatus {
139
+ active: boolean;
140
+ success?: boolean;
141
+ code?: number;
142
+ message?: string;
143
+ failures?: number;
144
+ successes?: number;
145
+ lastChecked?: Date;
146
+ }
147
+ export interface ResolvedImage {
148
+ digest?: string;
149
+ manifests?: {
150
+ image: string;
151
+ mediaType: string;
152
+ digest: string;
153
+ platform?: {
154
+ [x: string]: string;
155
+ };
156
+ }[];
157
+ }
158
+ export interface ResolvedImages {
159
+ resolvedForVersion?: number;
160
+ resolvedAt?: Date;
161
+ images?: ResolvedImage[];
162
+ }
163
+ export interface WorkloadStatus {
164
+ parentId?: string;
165
+ canonicalEndpoint?: string;
166
+ endpoint?: string;
167
+ internalName?: string;
168
+ healthCheck?: HealthCheckStatus;
169
+ currentReplicaCount?: number;
170
+ resolvedImages?: ResolvedImages;
171
+ [x: string]: any;
172
+ }
173
+ export interface Options {
174
+ autoscaling?: {
175
+ metric?: 'concurrency' | 'cpu' | 'rps' | 'latency' | 'disabled';
176
+ metricPercentile?: 'p50' | 'p75' | 'p99';
177
+ target?: number;
178
+ maxScale?: number;
179
+ minScale?: number;
180
+ scaleToZeroDelay?: number;
181
+ maxConcurrency?: number;
182
+ };
183
+ timeoutSeconds?: number;
184
+ capacityAI?: boolean;
185
+ spot?: boolean;
186
+ debug?: boolean;
187
+ suspend?: boolean;
188
+ }
189
+ export interface FirewallSpec {
190
+ external?: {
191
+ inboundAllowCIDR?: string[];
192
+ outboundAllowHostname?: string[];
193
+ outboundAllowPort?: ({
194
+ protocol: 'http' | 'https' | 'tcp';
195
+ number: number;
196
+ })[];
197
+ outboundAllowCIDR?: string[];
198
+ };
199
+ internal?: {
200
+ inboundAllowType?: 'none' | 'same-gvc' | 'same-org' | 'workload-list';
201
+ inboundAllowWorkload?: string[];
202
+ };
203
+ }
204
+ export interface JobSpec {
205
+ schedule: string;
206
+ concurrencyPolicy?: 'Forbid' | 'Replace';
207
+ historyLimit?: number;
208
+ restartPolicy?: 'OnFailure' | 'Never';
209
+ activeDeadlineSeconds?: number;
210
+ }
211
+ export interface WorkloadSpec {
212
+ type?: 'serverless' | 'standard' | 'cron' | 'stateful';
213
+ identityLink?: string;
214
+ containers?: ContainerSpec[];
215
+ firewallConfig?: {
216
+ external?: {
217
+ inboundAllowCIDR?: string[];
218
+ outboundAllowHostname?: string[];
219
+ outboundAllowPort?: ({
220
+ protocol: 'http' | 'https' | 'tcp';
221
+ number: number;
222
+ })[];
223
+ outboundAllowCIDR?: string[];
224
+ };
225
+ internal?: {
226
+ inboundAllowType?: 'none' | 'same-gvc' | 'same-org' | 'workload-list';
227
+ inboundAllowWorkload?: string[];
228
+ };
229
+ };
230
+ defaultOptions?: {
231
+ autoscaling?: {
232
+ metric?: 'concurrency' | 'cpu' | 'rps' | 'latency' | 'disabled';
233
+ metricPercentile?: 'p50' | 'p75' | 'p99';
234
+ target?: number;
235
+ maxScale?: number;
236
+ minScale?: number;
237
+ scaleToZeroDelay?: number;
238
+ maxConcurrency?: number;
239
+ };
240
+ timeoutSeconds?: number;
241
+ capacityAI?: boolean;
242
+ spot?: boolean;
243
+ debug?: boolean;
244
+ suspend?: boolean;
245
+ };
246
+ localOptions?: ({
247
+ autoscaling?: {
248
+ metric?: 'concurrency' | 'cpu' | 'rps' | 'latency' | 'disabled';
249
+ metricPercentile?: 'p50' | 'p75' | 'p99';
250
+ target?: number;
251
+ maxScale?: number;
252
+ minScale?: number;
253
+ scaleToZeroDelay?: number;
254
+ maxConcurrency?: number;
255
+ };
256
+ timeoutSeconds?: number;
257
+ capacityAI?: boolean;
258
+ spot?: boolean;
259
+ debug?: boolean;
260
+ suspend?: boolean;
261
+ location: string;
262
+ })[];
263
+ job?: {
264
+ schedule: string;
265
+ concurrencyPolicy?: 'Forbid' | 'Replace';
266
+ historyLimit?: number;
267
+ restartPolicy?: 'OnFailure' | 'Never';
268
+ activeDeadlineSeconds?: number;
269
+ };
270
+ sidecar?: {
271
+ envoy?: {
272
+ [x: string]: any;
273
+ };
274
+ };
275
+ supportDynamicTags?: boolean;
276
+ rolloutOptions?: {
277
+ minReadySeconds?: number;
278
+ maxUnavailableReplicas?: string;
279
+ maxSurgeReplicas?: string;
280
+ scalingPolicy?: 'OrderedReady' | 'Parallel';
281
+ };
282
+ securityOptions?: {
283
+ filesystemGroupId?: number;
284
+ };
285
+ }
286
+ export interface Workload {
287
+ id?: string;
288
+ kind?: Kind;
289
+ version?: number;
290
+ description?: string;
291
+ tags?: Tags;
292
+ created?: Date;
293
+ lastModified?: Date;
294
+ links?: Links;
295
+ name?: string;
296
+ gvc?: any;
297
+ spec?: WorkloadSpec;
298
+ status?: WorkloadStatus;
299
+ }
300
+ export interface WorkloadConfig {
301
+ scheduling?: {
302
+ fingerprint?: string;
303
+ version?: number;
304
+ };
305
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@controlplane/schema",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Control Plane Corporation Schema",
5
5
  "scripts": {
6
6
  "build": "tsc",
@@ -34,4 +34,4 @@
34
34
  "engines": {
35
35
  "node": ">= 16"
36
36
  }
37
- }
37
+ }