@controlplane/schema 1.0.5 → 1.0.6

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Control Plane
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Control Plane Corp. Schema
1
+ # Control Plane Corp. TypeScript Schema
2
2
 
3
3
  This is a collection of TypeScript interfaces designed to streamline and standardize the data structures used across projects that uses our [OpenAPI](https://console.cpln.io/openapi/core).
4
4
 
@@ -19,3 +19,4 @@ const example: Base = {
19
19
  // ... your data
20
20
  };
21
21
  ```
22
+
@@ -90,6 +90,7 @@ export interface ExpandVolumeSpec {
90
90
  location: string;
91
91
  volumeIndex: number;
92
92
  newStorageCapacity: number;
93
+ timeoutSeconds?: number;
93
94
  }
94
95
  export interface ExpandVolumeStatus {
95
96
  clusterId?: string;
@@ -102,6 +103,12 @@ export interface DeleteVolumeSpec {
102
103
  location: string;
103
104
  volumeIndex: number;
104
105
  }
106
+ export interface DeleteOrphanedVolumeSpec {
107
+ location: string;
108
+ storageDeviceId: string;
109
+ volumeIndex: number;
110
+ newlyObservedStorageDeviceId?: string;
111
+ }
105
112
  export interface DeleteVolumeStatus {
106
113
  stage: 'update-volume-set' | 'delete-storage-resources' | 'shutdown-replica' | 'await-replica-termination' | 'fail' | 'cleanup-k8s';
107
114
  clusterId?: string;
@@ -109,6 +116,21 @@ export interface DeleteVolumeStatus {
109
116
  inUseByWorkloadId?: string;
110
117
  storageDeviceIdToRemove?: string;
111
118
  }
119
+ export interface DeleteOrphanedVolumeStatus {
120
+ stage: 'delete-storage-resources' | 'cleanup-k8s' | 'update-volume-set' | 'fail';
121
+ clusterId?: string;
122
+ messages?: string[];
123
+ }
124
+ export interface DeleteOrphanedVolumeSnapshotSpec {
125
+ location: string;
126
+ snapshotId: string;
127
+ volumeIndex: number;
128
+ }
129
+ export interface DeleteOrphanedVolumeSnapshotStatus {
130
+ stage: 'delete-snapshot' | 'update-volume-set' | 'fail';
131
+ clusterId?: string;
132
+ messages?: string[];
133
+ }
112
134
  export interface SnapshotDeletionStatus {
113
135
  stage?: 'pending' | 'k8s-resources-created' | 'deleted';
114
136
  messages?: string[];
@@ -161,6 +183,7 @@ export interface DeleteVolumeSnapshotStatus {
161
183
  };
162
184
  stage: 'delete-snapshot' | 'update-volume-set';
163
185
  messages?: string[];
186
+ snapshotId?: string;
164
187
  }
165
188
  export interface Cluster {
166
189
  clusterId?: string;
@@ -194,16 +217,3 @@ export interface DeleteVolumeSetLocationStatus {
194
217
  export interface DeleteVolumeSetStatus {
195
218
  [x: string]: DeleteVolumeSetLocationStatus;
196
219
  }
197
- export interface DeleteOrphanedVolumeSpec {
198
- storageDeviceId: string;
199
- org: string;
200
- gvc: string;
201
- workloadName: string;
202
- volumeSetUri: string;
203
- driver: string;
204
- }
205
- export interface DeleteOrphanedVolumeStatus {
206
- clusterId?: string;
207
- stage?: 'create-deletion-records' | 'delete' | 'cleanup-k8s';
208
- messages?: string[];
209
- }
@@ -8,6 +8,7 @@ export interface Discovery {
8
8
  audit?: string;
9
9
  logs?: string;
10
10
  metrics?: string;
11
+ "metrics-ng"?: string;
11
12
  tracing?: string;
12
13
  byok?: string;
13
14
  metering?: string;
@@ -15,6 +16,7 @@ export interface Discovery {
15
16
  grafana?: string;
16
17
  "terraform-exporter"?: string;
17
18
  "k8s-crd-exporter"?: string;
19
+ mcp?: string;
18
20
  };
19
21
  firebase?: {
20
22
  apiKey?: string;
@@ -11,6 +11,8 @@ export interface Event {
11
11
  id?: string;
12
12
  created?: Date;
13
13
  kind?: string;
14
+ lastEventTime?: Date;
15
+ eventCount?: number;
14
16
  status: string;
15
17
  pinned?: boolean;
16
18
  context?: {
@@ -3,6 +3,7 @@ import { Tracing } from './tracing';
3
3
  import { EnvoyFilters } from './envoy';
4
4
  import { EnvVar } from './env';
5
5
  import { Name, Kind, Tags, Links } from './base';
6
+ import { Memory } from './workload';
6
7
  export interface GvcStatus {
7
8
  [x: string]: any;
8
9
  }
@@ -14,7 +15,7 @@ export interface GvcSpec {
14
15
  staticPlacement?: StaticPlacement;
15
16
  pullSecretLinks?: string[];
16
17
  domain?: string;
17
- endpointNamingFormat?: 'default' | 'org';
18
+ endpointNamingFormat?: 'default' | 'legacy' | 'org';
18
19
  tracing?: Tracing;
19
20
  sidecar?: {
20
21
  envoy?: EnvoyFilters;
@@ -34,6 +35,11 @@ export interface GvcSpec {
34
35
  };
35
36
  ipSet?: string;
36
37
  };
38
+ keda?: {
39
+ enabled?: boolean;
40
+ identityLink?: string;
41
+ secrets?: string[];
42
+ };
37
43
  }
38
44
  export interface Gvc {
39
45
  id?: string;
@@ -49,6 +55,22 @@ export interface Gvc {
49
55
  spec?: GvcSpec;
50
56
  status?: GvcStatus;
51
57
  }
58
+ export interface GvcLoadBalancerConfig {
59
+ minScale?: number;
60
+ maxScale?: number;
61
+ minCpu?: string;
62
+ minMemory?: string;
63
+ readinessProbe?: {
64
+ timeoutSeconds?: number;
65
+ failureThreshold?: number;
66
+ successThreshold?: number;
67
+ };
68
+ livenessProbe?: {
69
+ timeoutSeconds?: number;
70
+ failureThreshold?: number;
71
+ successThreshold?: number;
72
+ };
73
+ }
52
74
  export interface GvcConfig {
53
75
  clusters?: {
54
76
  [x: string]: {
@@ -61,11 +83,27 @@ export interface GvcConfig {
61
83
  clusterId?: string;
62
84
  };
63
85
  };
86
+ proxy?: {
87
+ minCpu?: number;
88
+ };
64
89
  loadBalancer?: {
65
90
  minScale?: number;
91
+ maxScale?: number;
92
+ minCpu?: string;
93
+ minMemory?: string;
94
+ readinessProbe?: {
95
+ timeoutSeconds?: number;
96
+ failureThreshold?: number;
97
+ successThreshold?: number;
98
+ };
99
+ livenessProbe?: {
100
+ timeoutSeconds?: number;
101
+ failureThreshold?: number;
102
+ successThreshold?: number;
103
+ };
66
104
  };
67
105
  thinProvision?: number;
68
- largeDiskSize?: string;
106
+ largeDiskSize?: Memory;
69
107
  capacityAI?: {
70
108
  memToCpuRatio?: number;
71
109
  };
@@ -9,10 +9,11 @@ import { EphemeralProvider } from './mk8sEphemeral';
9
9
  import { TritonProvider } from './mk8sTriton';
10
10
  import { AzureProvider } from './mk8sAzure';
11
11
  import { DigitalOceanProvider } from './mk8sDigitalOcean';
12
- import { NonCustomizableAddonConfig, AzureAddonConfig, MetricsAddonConfig, LogsAddonConfig, RegistryMirrorConfig, NvidiaAddonConfig, AwsEFSAddonConfig, AwsECRAddonConfig, AwsELBAddonConfig, AzureACRAddonConfig, DashboardAddonStatus, AwsWorkloadIdentityAddonStatus, MetricsAddonStatus, LogsAddonStatus, AwsTrustPolicyConfig } from './mk8sAddons';
12
+ import { GcpProvider } from './mk8sGcp';
13
+ import { NonCustomizableAddonConfig, AzureAddonConfig, MetricsAddonConfig, LogsAddonConfig, RegistryMirrorConfig, NvidiaAddonConfig, AwsEFSAddonConfig, AwsECRAddonConfig, AwsELBAddonConfig, AzureACRAddonConfig, ByokAddonConfig, DashboardAddonStatus, AwsWorkloadIdentityAddonStatus, MetricsAddonStatus, LogsAddonStatus, AwsTrustPolicyConfig } from './mk8sAddons';
13
14
  import { Name, Kind, Tags, Links } from './base';
14
15
  export interface Mk8sSpec {
15
- version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.32.1';
16
+ version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.31.13' | '1.32.1' | '1.32.9' | '1.33.5' | '1.34.2';
16
17
  firewall?: {
17
18
  sourceCIDR: string;
18
19
  description?: string;
@@ -29,9 +30,11 @@ export interface Mk8sSpec {
29
30
  triton?: TritonProvider;
30
31
  azure?: AzureProvider;
31
32
  digitalocean?: DigitalOceanProvider;
33
+ gcp?: GcpProvider;
32
34
  };
33
35
  addOns?: {
34
36
  dashboard?: NonCustomizableAddonConfig;
37
+ headlamp?: NonCustomizableAddonConfig;
35
38
  azureWorkloadIdentity?: AzureAddonConfig;
36
39
  awsWorkloadIdentity?: NonCustomizableAddonConfig;
37
40
  localPathStorage?: NonCustomizableAddonConfig;
@@ -44,6 +47,7 @@ export interface Mk8sSpec {
44
47
  awsELB?: AwsELBAddonConfig;
45
48
  azureACR?: AzureACRAddonConfig;
46
49
  sysbox?: NonCustomizableAddonConfig;
50
+ byok?: ByokAddonConfig;
47
51
  };
48
52
  }
49
53
  export interface Mk8sStatus {
@@ -52,6 +56,7 @@ export interface Mk8sStatus {
52
56
  homeLocation?: string;
53
57
  addOns?: {
54
58
  dashboard?: DashboardAddonStatus;
59
+ headlamp?: DashboardAddonStatus;
55
60
  awsWorkloadIdentity?: AwsWorkloadIdentityAddonStatus;
56
61
  metrics?: MetricsAddonStatus;
57
62
  logs?: LogsAddonStatus;
@@ -71,7 +76,7 @@ export interface Mk8sCluster {
71
76
  lastModified?: Date;
72
77
  links?: Links;
73
78
  spec: {
74
- version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.32.1';
79
+ version: '1.26.0' | '1.26.4' | '1.27.3' | '1.28.2' | '1.28.4' | '1.29.7' | '1.30.3' | '1.31.5' | '1.31.13' | '1.32.1' | '1.32.9' | '1.33.5' | '1.34.2';
75
80
  firewall?: {
76
81
  sourceCIDR: string;
77
82
  description?: string;
@@ -88,9 +93,11 @@ export interface Mk8sCluster {
88
93
  triton?: TritonProvider;
89
94
  azure?: AzureProvider;
90
95
  digitalocean?: DigitalOceanProvider;
96
+ gcp?: GcpProvider;
91
97
  };
92
98
  addOns?: {
93
99
  dashboard?: NonCustomizableAddonConfig;
100
+ headlamp?: NonCustomizableAddonConfig;
94
101
  azureWorkloadIdentity?: AzureAddonConfig;
95
102
  awsWorkloadIdentity?: NonCustomizableAddonConfig;
96
103
  localPathStorage?: NonCustomizableAddonConfig;
@@ -103,6 +110,7 @@ export interface Mk8sCluster {
103
110
  awsELB?: AwsELBAddonConfig;
104
111
  azureACR?: AzureACRAddonConfig;
105
112
  sysbox?: NonCustomizableAddonConfig;
113
+ byok?: ByokAddonConfig;
106
114
  };
107
115
  };
108
116
  alias?: string;
@@ -1,3 +1,4 @@
1
+ import { Cpu, Memory } from './workload';
1
2
  export type RegularExpression = string;
2
3
  export interface FlexibleAddonConfig {
3
4
  [x: string]: string;
@@ -77,3 +78,108 @@ export interface AwsELBAddonConfig {
77
78
  export interface AzureACRAddonConfig {
78
79
  clientId: string;
79
80
  }
81
+ export interface ByokAddonConfig {
82
+ ignoreUpdates?: boolean;
83
+ location: string;
84
+ config?: {
85
+ actuator?: {
86
+ minCpu?: Cpu;
87
+ maxCpu?: Cpu;
88
+ minMemory?: Memory;
89
+ maxMemory?: Memory;
90
+ logLevel?: 'trace' | 'info' | 'error';
91
+ env?: {
92
+ [x: string]: string;
93
+ };
94
+ };
95
+ middlebox?: {
96
+ enabled?: boolean;
97
+ bandwidthAlertMbps?: number;
98
+ };
99
+ common?: {
100
+ deploymentReplicas?: number;
101
+ pdb?: {
102
+ maxUnavailable?: number;
103
+ };
104
+ };
105
+ longhorn?: {
106
+ replicas?: number;
107
+ };
108
+ ingress?: {
109
+ cpu?: Cpu;
110
+ memory?: Memory;
111
+ targetPercent?: number;
112
+ };
113
+ istio?: {
114
+ istiod?: {
115
+ replicas?: number;
116
+ minCpu?: Cpu;
117
+ maxCpu?: Cpu;
118
+ minMemory?: Memory;
119
+ maxMemory?: Memory;
120
+ pdb?: number;
121
+ };
122
+ ingressgateway?: {
123
+ replicas?: number;
124
+ maxCpu?: Cpu;
125
+ maxMemory?: Memory;
126
+ };
127
+ sidecar?: {
128
+ minCpu?: Cpu;
129
+ minMemory?: Memory;
130
+ };
131
+ };
132
+ logSplitter?: {
133
+ minCpu?: Cpu;
134
+ maxCpu?: Cpu;
135
+ minMemory?: Memory;
136
+ maxMemory?: Memory;
137
+ memBufferSize?: string;
138
+ perPodRate?: number;
139
+ };
140
+ monitoring?: {
141
+ minMemory?: Memory;
142
+ maxMemory?: Memory;
143
+ kubeStateMetrics?: {
144
+ minMemory?: Memory;
145
+ };
146
+ prometheus?: {
147
+ main?: {
148
+ storage?: Memory;
149
+ };
150
+ };
151
+ };
152
+ redis?: {
153
+ minCpu?: Cpu;
154
+ maxCpu?: Cpu;
155
+ minMemory?: Memory;
156
+ maxMemory?: Memory;
157
+ storage?: Memory;
158
+ };
159
+ redisHa?: {
160
+ minCpu?: Cpu;
161
+ maxCpu?: Cpu;
162
+ minMemory?: Memory;
163
+ maxMemory?: Memory;
164
+ storage?: number;
165
+ };
166
+ redisSentinel?: {
167
+ minCpu?: Cpu;
168
+ maxCpu?: Cpu;
169
+ minMemory?: Memory;
170
+ maxMemory?: Memory;
171
+ storage?: number;
172
+ };
173
+ tempoAgent?: {
174
+ minCpu?: Cpu;
175
+ minMemory?: Memory;
176
+ };
177
+ internalDns?: {
178
+ minCpu?: Cpu;
179
+ maxCpu?: Cpu;
180
+ minMemory?: Memory;
181
+ maxMemory?: Memory;
182
+ };
183
+ [x: string]: any;
184
+ };
185
+ }
@@ -21,7 +21,7 @@ export interface AzurePool {
21
21
  maxSize: number;
22
22
  }
23
23
  export interface AzureProvider {
24
- location: 'centralus' | 'eastus2' | 'eastus' | 'southcentralus';
24
+ location: string;
25
25
  subscriptionId: string;
26
26
  sdkSecretLink: string;
27
27
  resourceGroup: string;
@@ -11,10 +11,10 @@ export type Taints = Taint[];
11
11
  export type NodePoolName = string;
12
12
  export type SshPublicKey = string;
13
13
  export interface AutoscalerConfig {
14
- expander: ('random' | 'most-pods' | 'least-waste' | 'price')[];
15
- unneededTime: string;
16
- unreadyTime: string;
17
- utilizationThreshold: number;
14
+ expander?: ('random' | 'most-pods' | 'least-waste' | 'price')[];
15
+ unneededTime?: string;
16
+ unreadyTime?: string;
17
+ utilizationThreshold?: number;
18
18
  }
19
19
  export interface UnmanagedPool {
20
20
  name: string;
@@ -1,42 +1,53 @@
1
- import { Labels, Taints, AutoscalerConfig } from './mk8sCommon';
1
+ import { Labels, Taints, PreInstallScript, AutoscalerConfig } from './mk8sCommon';
2
2
  export interface Image {
3
- recommended?: 'ubuntu-2004-lts' | 'ubuntu-2204-lts' | 'ubuntu-2404-lts';
3
+ recommended?: 'ubuntu/jammy-22.04' | 'ubuntu/noble-24.04' | 'debian/bookworm-12' | 'debian/trixie-13' | 'google/cos-stable';
4
+ family?: {
5
+ project: string;
6
+ family: string;
7
+ };
4
8
  exact?: string;
5
9
  }
6
10
  export interface GcpPool {
7
11
  name: string;
8
12
  labels?: Labels;
9
13
  taints?: Taints;
10
- instanceType: string;
14
+ machineType: string;
15
+ assignPublicIP?: boolean;
16
+ zone: string;
11
17
  overrideImage?: Image;
12
18
  bootDiskSize: number;
13
19
  minSize: number;
14
20
  maxSize: number;
15
- subnetId: string;
16
- zones?: string[];
17
- targetShape?: 'ANY' | 'BALANCED' | 'CLOSEST_TO_HEALTHY';
18
- extraSecurityGroupIds?: string[];
21
+ preemptible?: boolean;
22
+ subnet: string;
23
+ localPersistentDisks?: number;
19
24
  }
20
25
  export interface GcpProvider {
21
- region: 'africa-south1' | 'asia-east1' | 'asia-east2' | 'asia-northeast1' | 'asia-northeast2' | 'asia-northeast3' | 'asia-south1' | 'asia-south2' | 'asia-southeast1' | 'asia-southeast2' | 'australia-southeast1' | 'australia-southeast2' | 'europe-central2' | 'europe-north1' | 'europe-southwest1' | 'europe-west1' | 'europe-west10' | 'europe-west12' | 'europe-west2' | 'europe-west3' | 'europe-west4' | 'europe-west6' | 'europe-west8' | 'europe-west9' | 'me-central1' | 'me-central2' | 'me-west1' | 'northamerica-northeast1' | 'northamerica-northeast2' | 'southamerica-east1' | 'southamerica-west1' | 'us-central1' | 'us-east1' | 'us-east4' | 'us-east5' | 'us-south1' | 'us-west1' | 'us-west2' | 'us-west3' | 'us-west4';
22
- gcpTags?: {
26
+ projectId: string;
27
+ region: string;
28
+ labels?: {
23
29
  [x: string]: string;
24
30
  };
25
- skipCreateRoles?: boolean;
31
+ tags?: string[];
32
+ metadata?: {
33
+ [x: string]: string;
34
+ };
35
+ network: string;
36
+ saKeyLink: string;
26
37
  networking?: {
27
38
  serviceNetwork?: '10.43.0.0/16' | '192.168.0.0/16';
28
39
  podNetwork?: 'vpc' | '10.42.0.0/16' | '172.16.0.0/15' | '172.18.0.0/15' | '172.20.0.0/15' | '172.22.0.0/15' | '172.24.0.0/15' | '172.26.0.0/15' | '172.28.0.0/15' | '172.30.0.0/15';
40
+ dnsForwarder?: string;
29
41
  };
30
- preInstallScript?: string;
42
+ preInstallScript?: PreInstallScript;
31
43
  image: {
32
- recommended?: 'ubuntu-2004-lts' | 'ubuntu-2204-lts' | 'ubuntu-2404-lts';
44
+ recommended?: 'ubuntu/jammy-22.04' | 'ubuntu/noble-24.04' | 'debian/bookworm-12' | 'debian/trixie-13' | 'google/cos-stable';
45
+ family?: {
46
+ project: string;
47
+ family: string;
48
+ };
33
49
  exact?: string;
34
50
  };
35
- deployServiceAccount: string;
36
- vpcId: string;
37
- projectId: string;
38
- keyPair?: string;
39
- diskEncryptionKey?: string;
40
51
  nodePools?: GcpPool[];
41
52
  autoscaler?: AutoscalerConfig;
42
53
  }
@@ -34,6 +34,7 @@ export interface Manual {
34
34
  }
35
35
  export interface LoadBalancerConfig {
36
36
  manual?: Manual;
37
+ none?: {};
37
38
  gateway?: {};
38
39
  }
39
40
  export interface SdcConnection {
@@ -63,11 +63,19 @@ export interface MountResources {
63
63
  minMemory?: string;
64
64
  maxMemory?: string;
65
65
  }
66
+ export interface CustomEncryptionRegion {
67
+ keyId?: string;
68
+ }
66
69
  export interface VolumeSetSpec {
67
70
  initialCapacity: number;
68
71
  performanceClass?: PerformanceClassName;
69
72
  storageClassSuffix?: string;
70
73
  fileSystemType?: FileSystemType;
74
+ customEncryption?: {
75
+ regions?: {
76
+ [x: string]: CustomEncryptionRegion;
77
+ };
78
+ };
71
79
  snapshots?: SnapshotSpec;
72
80
  autoscaling?: {
73
81
  maxCapacity?: number;
@@ -1,7 +1,7 @@
1
1
  import { Port } from './port';
2
+ import { Regex, Kind, Tags, Links } from './base';
2
3
  import { EnvVar } from './env';
3
4
  import { VolumeSpec } from './volumeSpec';
4
- import { Regex, Kind, Tags, Links } from './base';
5
5
  import { DefaultOptions, LocalOptions } from './workloadOptions';
6
6
  import { EnvoyFilters } from './envoy';
7
7
  export type Memory = string;
@@ -66,6 +66,7 @@ export interface ContainerSpec {
66
66
  metrics?: {
67
67
  port: number;
68
68
  path: string;
69
+ dropMetrics?: Regex[];
69
70
  };
70
71
  port?: number;
71
72
  ports?: ({
@@ -191,6 +192,7 @@ export interface WorkloadStatus {
191
192
  canonicalEndpoint?: string;
192
193
  endpoint?: string;
193
194
  internalName?: string;
195
+ replicaInternalNames?: string[];
194
196
  healthCheck?: HealthCheckStatus;
195
197
  currentReplicaCount?: number;
196
198
  resolvedImages?: ResolvedImages;
@@ -225,7 +227,7 @@ export interface FirewallSpec {
225
227
  export type ScheduleType = string;
226
228
  export interface JobSpec {
227
229
  schedule: ScheduleType;
228
- concurrencyPolicy?: 'Forbid' | 'Replace';
230
+ concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
229
231
  historyLimit?: number;
230
232
  restartPolicy?: 'OnFailure' | 'Never';
231
233
  activeDeadlineSeconds?: number;
@@ -291,7 +293,7 @@ export interface WorkloadSpec {
291
293
  localOptions?: LocalOptions;
292
294
  job?: {
293
295
  schedule: ScheduleType;
294
- concurrencyPolicy?: 'Forbid' | 'Replace';
296
+ concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
295
297
  historyLimit?: number;
296
298
  restartPolicy?: 'OnFailure' | 'Never';
297
299
  activeDeadlineSeconds?: number;
@@ -370,7 +372,7 @@ export interface Workload {
370
372
  localOptions?: LocalOptions;
371
373
  job?: {
372
374
  schedule: ScheduleType;
373
- concurrencyPolicy?: 'Forbid' | 'Replace';
375
+ concurrencyPolicy?: 'Forbid' | 'Replace' | 'Allow';
374
376
  historyLimit?: number;
375
377
  restartPolicy?: 'OnFailure' | 'Never';
376
378
  activeDeadlineSeconds?: number;
@@ -427,6 +429,9 @@ export interface WorkloadConfig {
427
429
  locationPodZoneMap?: {
428
430
  [x: string]: PodZoneMap;
429
431
  };
432
+ proxy?: {
433
+ minCpu?: number;
434
+ };
430
435
  subsets?: {
431
436
  enabled?: boolean;
432
437
  };
@@ -1,11 +1,14 @@
1
1
  export interface KedaTrigger {
2
2
  type: string;
3
3
  metadata?: {
4
- [x: string]: string;
4
+ [x: string]: string | any;
5
5
  };
6
6
  name?: string;
7
7
  useCachedMetrics?: boolean;
8
8
  metricType?: 'AverageValue' | 'Value' | 'Utilization';
9
+ authenticationRef?: {
10
+ name: string;
11
+ };
9
12
  }
10
13
  export interface DefaultOptions {
11
14
  autoscaling?: {
@@ -30,10 +33,19 @@ export interface DefaultOptions {
30
33
  formula?: string;
31
34
  };
32
35
  };
36
+ fallback?: {
37
+ failureThreshold: number;
38
+ replicas: number;
39
+ behavior?: 'static' | 'currentReplicas' | 'currentReplicasIfHigher' | 'currentReplicasIfLower';
40
+ };
41
+ pollingInterval?: number;
42
+ cooldownPeriod?: number;
43
+ initialCooldownPeriod?: number;
33
44
  };
34
45
  };
35
46
  timeoutSeconds?: number;
36
47
  capacityAI?: boolean;
48
+ capacityAIUpdateMinutes?: number;
37
49
  spot?: boolean;
38
50
  debug?: boolean;
39
51
  suspend?: boolean;
@@ -64,10 +76,19 @@ export type LocalOptions = ({
64
76
  formula?: string;
65
77
  };
66
78
  };
79
+ fallback?: {
80
+ failureThreshold: number;
81
+ replicas: number;
82
+ behavior?: 'static' | 'currentReplicas' | 'currentReplicasIfHigher' | 'currentReplicasIfLower';
83
+ };
84
+ pollingInterval?: number;
85
+ cooldownPeriod?: number;
86
+ initialCooldownPeriod?: number;
67
87
  };
68
88
  };
69
89
  timeoutSeconds?: number;
70
90
  capacityAI?: boolean;
91
+ capacityAIUpdateMinutes?: number;
71
92
  spot?: boolean;
72
93
  debug?: boolean;
73
94
  suspend?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@controlplane/schema",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "description": "Control Plane Corporation Schema",
5
5
  "scripts": {
6
6
  "build": "tsc",