@controlplane/schema 1.0.4 → 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.
Files changed (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -1
  3. package/build/src/interfaces/base.d.ts +6 -2
  4. package/build/src/interfaces/command.d.ts +48 -32
  5. package/build/src/interfaces/containerstatus.d.ts +6 -0
  6. package/build/src/interfaces/crmevent.d.ts +39 -0
  7. package/build/src/interfaces/crmevent.js +3 -0
  8. package/build/src/interfaces/cronjob.d.ts +3 -2
  9. package/build/src/interfaces/deployment.d.ts +1 -0
  10. package/build/src/interfaces/discovery.d.ts +3 -0
  11. package/build/src/interfaces/domain.d.ts +19 -3
  12. package/build/src/interfaces/envoyCommon.d.ts +5 -4
  13. package/build/src/interfaces/envoyHttp.d.ts +1 -1
  14. package/build/src/interfaces/event.d.ts +4 -2
  15. package/build/src/interfaces/gvc.d.ts +53 -0
  16. package/build/src/interfaces/identity.d.ts +9 -1
  17. package/build/src/interfaces/internal.d.ts +0 -0
  18. package/build/src/interfaces/internal.js +2 -0
  19. package/build/src/interfaces/ipSet.d.ts +37 -0
  20. package/build/src/interfaces/ipSet.js +3 -0
  21. package/build/src/interfaces/locationDns.d.ts +11 -0
  22. package/build/src/interfaces/locationDns.js +3 -0
  23. package/build/src/interfaces/mk8s.d.ts +22 -3
  24. package/build/src/interfaces/mk8sAddons.d.ts +116 -0
  25. package/build/src/interfaces/mk8sAws.d.ts +11 -2
  26. package/build/src/interfaces/mk8sAzure.d.ts +53 -0
  27. package/build/src/interfaces/mk8sAzure.js +3 -0
  28. package/build/src/interfaces/mk8sCommon.d.ts +30 -4
  29. package/build/src/interfaces/mk8sDigitalOcean.d.ts +32 -0
  30. package/build/src/interfaces/mk8sDigitalOcean.js +3 -0
  31. package/build/src/interfaces/mk8sGcp.d.ts +56 -0
  32. package/build/src/interfaces/mk8sGcp.js +3 -0
  33. package/build/src/interfaces/mk8sGeneric.d.ts +1 -0
  34. package/build/src/interfaces/mk8sHetzner.d.ts +9 -4
  35. package/build/src/interfaces/mk8sLambdalabs.d.ts +7 -4
  36. package/build/src/interfaces/mk8sLinode.d.ts +13 -5
  37. package/build/src/interfaces/mk8sOblivus.d.ts +14 -2
  38. package/build/src/interfaces/mk8sPaperspace.d.ts +6 -1
  39. package/build/src/interfaces/mk8sTriton.d.ts +74 -0
  40. package/build/src/interfaces/mk8sTriton.js +3 -0
  41. package/build/src/interfaces/org.d.ts +5 -2
  42. package/build/src/interfaces/outboxmessage.d.ts +6 -0
  43. package/build/src/interfaces/outboxmessage.js +3 -0
  44. package/build/src/interfaces/permissions.d.ts +1 -1
  45. package/build/src/interfaces/query.d.ts +4 -0
  46. package/build/src/interfaces/volumeSet.d.ts +42 -14
  47. package/build/src/interfaces/workload.d.ts +193 -15
  48. package/build/src/interfaces/workloadOptions.d.ts +86 -5
  49. package/package.json +1 -1
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
+
@@ -1,6 +1,6 @@
1
1
  export type LocalLink = string;
2
2
  export type ImageLink = string;
3
- export type Kind = 'org' | 'cloudaccount' | 'policy' | 'user' | 'group' | 'resource' | 'task' | 'permissions' | 'serviceaccount' | 'secret' | 'location' | 'gvc' | 'workload' | 'quota' | 'identity' | 'deployment' | 'event' | 'domain' | 'image' | 'resourcepolicy' | 'agent' | 'accessreport' | 'policymembership' | 'dbcluster' | 'auditctx' | 'memcachecluster' | 'spicedbcluster' | 'tenant' | 'mk8s' | 'command' | 'imagesummary' | 'volumeset';
3
+ export type Kind = 'org' | 'cloudaccount' | 'policy' | 'user' | 'group' | 'resource' | 'task' | 'permissions' | 'serviceaccount' | 'secret' | 'location' | 'gvc' | 'workload' | 'quota' | 'identity' | 'deployment' | 'event' | 'domain' | 'image' | 'ipset' | 'resourcepolicy' | 'agent' | 'accessreport' | 'policymembership' | 'dbcluster' | 'auditctx' | 'memcachecluster' | 'spicedbcluster' | 'tenant' | 'mk8s' | 'command' | 'imagesummary' | 'volumeset';
4
4
  export type CloudProvider = 'aws' | 'gcp' | 'azure' | 'ngs';
5
5
  export type Name = string;
6
6
  export interface Tags {
@@ -24,10 +24,11 @@ export interface Base {
24
24
  }
25
25
  export interface List {
26
26
  kind?: 'list';
27
- itemKind?: 'org' | 'cloudaccount' | 'policy' | 'user' | 'group' | 'resource' | 'task' | 'permissions' | 'serviceaccount' | 'secret' | 'location' | 'gvc' | 'workload' | 'quota' | 'identity' | 'deployment' | 'event' | 'account' | 'domain' | 'image' | 'resourcepolicy' | 'accessreport' | 'agent' | 'auditctx' | 'dbcluster' | 'memcachecluster' | 'spicedbcluster' | 'tenant' | 'mk8s' | 'command' | 'policymembership' | 'primitive' | 'foreign' | 'link' | 'imagesummary' | 'volumeset';
27
+ itemKind?: 'org' | 'cloudaccount' | 'policy' | 'user' | 'group' | 'resource' | 'task' | 'permissions' | 'serviceaccount' | 'secret' | 'location' | 'gvc' | 'workload' | 'quota' | 'identity' | 'deployment' | 'event' | 'account' | 'domain' | 'image' | 'ipset' | 'resourcepolicy' | 'accessreport' | 'agent' | 'auditctx' | 'dbcluster' | 'memcachecluster' | 'spicedbcluster' | 'tenant' | 'mk8s' | 'command' | 'policymembership' | 'primitive' | 'foreign' | 'link' | 'imagesummary' | 'volumeset';
28
28
  items: any[];
29
29
  links: Link[];
30
30
  }
31
+ export type Regex = string;
31
32
  export interface ApiError {
32
33
  status?: number;
33
34
  message?: string;
@@ -35,3 +36,6 @@ export interface ApiError {
35
36
  details?: any;
36
37
  id?: string;
37
38
  }
39
+ export interface MultiZoneOptions {
40
+ enabled?: boolean;
41
+ }
@@ -1,7 +1,7 @@
1
- import { Kind, Links, ImageLink, Name, Tags } from './base';
1
+ import { Kind, Links, Tags, ImageLink, Name } from './base';
2
2
  import { EnvVar } from './env';
3
3
  import { Memory, Cpu } from './workload';
4
- import { VolumeSnapshot, SnapshotSpec, VolumeSetStatus } from './volumeSet';
4
+ import { VolumeSnapshot, VolumeSetSpec, VolumeSetStatus } from './volumeSet';
5
5
  export type CommandLifecycleStage = 'pending' | 'running' | 'cancelled' | 'completed' | 'failed';
6
6
  export interface Command {
7
7
  id?: string;
@@ -11,6 +11,7 @@ export interface Command {
11
11
  created?: Date;
12
12
  lastModified?: Date;
13
13
  links?: Links;
14
+ tags?: Tags;
14
15
  type: string;
15
16
  lifecycleStage?: CommandLifecycleStage;
16
17
  spec?: {
@@ -35,6 +36,7 @@ export interface RunCronWorkloadSpec {
35
36
  }
36
37
  export interface RunCronWorkloadStatus {
37
38
  replica?: string;
39
+ minimumWorkloadVersion?: number;
38
40
  }
39
41
  export interface StopReplicaSpec {
40
42
  location: string;
@@ -55,12 +57,16 @@ export interface RestoreVolumeSpec {
55
57
  snapshotName: string;
56
58
  }
57
59
  export interface ReplaceVolumeStatus {
58
- stage: 'create-volume' | 'cleanup-after-volume-creation' | 'update-volume-set' | 'shutdown-replica' | 'await-replica-termination' | 'restart-replica' | 'cleanup-k8s' | 'cleanup-old-storage-device' | 'revert';
60
+ stage: 'create-volume' | 'cleanup-after-volume-creation' | 'update-volume-set' | 'configure-storage-resources' | 'remove-finalizer' | 'shutdown-replica' | 'await-replica-termination' | 'cleanup-k8s' | 'fail' | 'revert' | 'cleanup-old-storage-device' | 'restart-replica';
59
61
  messages?: string[];
60
62
  clusterId?: string;
61
63
  inUseByWorkloadId?: string;
62
64
  storageDeviceIdToRemove?: string;
63
65
  newStorageDeviceId?: string;
66
+ newVolumeAttributes?: {
67
+ [x: string]: string;
68
+ };
69
+ newResourceName?: string;
64
70
  nextVolumeSize?: number;
65
71
  }
66
72
  export interface CreateVolumeSnapshotSpec {
@@ -84,26 +90,58 @@ export interface ExpandVolumeSpec {
84
90
  location: string;
85
91
  volumeIndex: number;
86
92
  newStorageCapacity: number;
93
+ timeoutSeconds?: number;
87
94
  }
88
95
  export interface ExpandVolumeStatus {
89
96
  clusterId?: string;
90
97
  messages?: string[];
91
- stage: 'expand-volume' | 'await-replica-termination' | 'await-expansion-completed' | 'update-volume-set' | 'recreate-replica' | 'cleanup-k8s' | 'revert';
98
+ stage: 'expand-volume' | 'delete-stateful-set' | 'await-replica-termination' | 'await-expansion-completed' | 'update-volume-set' | 'recreate-replica' | 'cleanup-k8s' | 'revert';
92
99
  replicaRestartedAt?: Date;
100
+ lockNames?: string[];
93
101
  }
94
102
  export interface DeleteVolumeSpec {
95
103
  location: string;
96
104
  volumeIndex: number;
97
105
  }
106
+ export interface DeleteOrphanedVolumeSpec {
107
+ location: string;
108
+ storageDeviceId: string;
109
+ volumeIndex: number;
110
+ newlyObservedStorageDeviceId?: string;
111
+ }
112
+ export interface DeleteVolumeStatus {
113
+ stage: 'update-volume-set' | 'delete-storage-resources' | 'shutdown-replica' | 'await-replica-termination' | 'fail' | 'cleanup-k8s';
114
+ clusterId?: string;
115
+ messages?: string[];
116
+ inUseByWorkloadId?: string;
117
+ storageDeviceIdToRemove?: string;
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
+ }
98
134
  export interface SnapshotDeletionStatus {
99
135
  stage?: 'pending' | 'k8s-resources-created' | 'deleted';
100
136
  messages?: string[];
101
137
  }
102
- export interface DeleteVolumeStatus {
138
+ export interface DeleteCloudDevicesStatus {
103
139
  clusterId?: string;
104
140
  volume: {
105
141
  lifecycle?: 'creating' | 'unused' | 'unbound' | 'bound' | 'deleted' | 'repairing';
106
142
  storageDeviceId?: string;
143
+ oldStorageDeviceIds?: string[];
144
+ resourceName?: string;
107
145
  index: number;
108
146
  currentSize: number;
109
147
  currentBytesUsed?: number;
@@ -114,6 +152,7 @@ export interface DeleteVolumeStatus {
114
152
  attributes?: {
115
153
  [x: string]: string;
116
154
  };
155
+ zone?: string;
117
156
  };
118
157
  stage: 'delete-snapshots' | 'delete-volume' | 'finalize-volume-deletion' | 'update-volume-set';
119
158
  messages?: string[];
@@ -144,6 +183,7 @@ export interface DeleteVolumeSnapshotStatus {
144
183
  };
145
184
  stage: 'delete-snapshot' | 'update-volume-set';
146
185
  messages?: string[];
186
+ snapshotId?: string;
147
187
  }
148
188
  export interface Cluster {
149
189
  clusterId?: string;
@@ -163,41 +203,17 @@ export interface DeleteVolumeSetSpec {
163
203
  created?: Date;
164
204
  lastModified?: Date;
165
205
  links?: Links;
166
- spec: {
167
- initialCapacity: number;
168
- performanceClass: 'general-purpose-ssd' | 'high-throughput-ssd';
169
- storageClassSuffix?: string;
170
- fileSystemType?: 'xfs' | 'ext4';
171
- snapshots?: SnapshotSpec;
172
- autoscaling?: {
173
- maxCapacity?: number;
174
- minFreePercentage?: number;
175
- scalingFactor?: number;
176
- };
177
- };
206
+ spec: VolumeSetSpec;
178
207
  status?: VolumeSetStatus;
179
208
  gvc?: any;
180
209
  };
181
210
  }
182
211
  export interface DeleteVolumeSetLocationStatus {
183
- stage: 'delete-volumes' | 'delete-orphaned-volumes' | 'complete';
212
+ stage: 'delete-volumes' | 'delete-orphaned-volumes' | 'cleanup-filesystem' | 'complete';
184
213
  volumes?: {
185
- [x: string]: DeleteVolumeStatus;
214
+ [x: string]: DeleteCloudDevicesStatus;
186
215
  };
187
216
  }
188
217
  export interface DeleteVolumeSetStatus {
189
218
  [x: string]: DeleteVolumeSetLocationStatus;
190
219
  }
191
- export interface DeleteOrphanedVolumeSpec {
192
- storageDeviceId: string;
193
- org: string;
194
- gvc: string;
195
- workloadName: string;
196
- volumeSetUri: string;
197
- driver: string;
198
- }
199
- export interface DeleteOrphanedVolumeStatus {
200
- clusterId?: string;
201
- stage?: 'create-deletion-records' | 'delete' | 'cleanup-k8s';
202
- messages?: string[];
203
- }
@@ -10,4 +10,10 @@ export interface ContainerStatus {
10
10
  ready?: boolean;
11
11
  resources?: DeploymentResources;
12
12
  message?: string;
13
+ restarts?: {
14
+ lastRestartTime?: Date;
15
+ exitCode?: number;
16
+ reason?: string;
17
+ count?: number;
18
+ };
13
19
  }
@@ -0,0 +1,39 @@
1
+ export interface CrmEvent {
2
+ id?: string;
3
+ created?: Date;
4
+ delivered?: Date;
5
+ payload?: {
6
+ orgCreated?: {
7
+ version: number;
8
+ name: string;
9
+ accountId: string;
10
+ };
11
+ orgUserCreated?: {
12
+ version: number;
13
+ org: string;
14
+ accountId: string;
15
+ email: string;
16
+ };
17
+ orgUserRemoved?: {
18
+ version: number;
19
+ org: string;
20
+ accountId: string;
21
+ email: string;
22
+ };
23
+ accountCreated?: {
24
+ version: number;
25
+ name: string;
26
+ id: string;
27
+ };
28
+ accountUserCreated?: {
29
+ version: number;
30
+ accountId: string;
31
+ email: string;
32
+ };
33
+ accountUserRemoved?: {
34
+ version: number;
35
+ accountId: string;
36
+ email: string;
37
+ };
38
+ };
39
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* auto-generated */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +1,7 @@
1
1
  import { ContainerStatus } from './containerstatus';
2
2
  export interface JobExecutionCondition {
3
- status?: 'True' | 'False' | 'Unknown';
4
- type: 'Complete' | 'Failed' | 'Suspended';
3
+ status?: string;
4
+ type: string;
5
5
  lastDetectionTime?: Date;
6
6
  lastTransitionTime?: Date;
7
7
  message?: string;
@@ -14,6 +14,7 @@ export interface JobExecutionStatus {
14
14
  completionTime?: Date;
15
15
  conditions?: JobExecutionCondition[];
16
16
  name: string;
17
+ replica?: string;
17
18
  containers?: {
18
19
  [x: string]: ContainerStatus;
19
20
  };
@@ -11,6 +11,7 @@ export interface DeploymentVersion {
11
11
  };
12
12
  ready?: boolean;
13
13
  message?: string;
14
+ zone?: string;
14
15
  }
15
16
  export interface DeploymentStatus {
16
17
  endpoint?: string;
@@ -8,12 +8,15 @@ 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;
14
15
  "billing-ng"?: string;
15
16
  grafana?: string;
16
17
  "terraform-exporter"?: string;
18
+ "k8s-crd-exporter"?: string;
19
+ mcp?: string;
17
20
  };
18
21
  firebase?: {
19
22
  apiKey?: string;
@@ -1,4 +1,10 @@
1
1
  import { LocalLink, Kind, Tags, Links } from './base';
2
+ export type EnvoyHeaderValue = string;
3
+ export interface HeaderOperation {
4
+ set?: {
5
+ [x: string]: EnvoyHeaderValue;
6
+ };
7
+ }
2
8
  export interface Route {
3
9
  replacePrefix?: string;
4
10
  regex?: string;
@@ -6,9 +12,14 @@ export interface Route {
6
12
  workloadLink: string;
7
13
  port?: number;
8
14
  hostPrefix?: string;
15
+ hostRegex?: string;
16
+ headers?: {
17
+ request?: HeaderOperation;
18
+ };
19
+ replica?: number;
9
20
  }
10
21
  export interface ExternalPortTLS {
11
- minProtocolVersion?: 'TLSV1_2' | 'TLSV1_1' | 'TLSV1_0';
22
+ minProtocolVersion?: 'TLSV1_3' | 'TLSV1_2' | 'TLSV1_1' | 'TLSV1_0';
12
23
  cipherSuites?: ('ECDHE-ECDSA-AES256-GCM-SHA384' | 'ECDHE-ECDSA-CHACHA20-POLY1305' | 'ECDHE-ECDSA-AES128-GCM-SHA256' | 'ECDHE-RSA-AES256-GCM-SHA384' | 'ECDHE-RSA-CHACHA20-POLY1305' | 'ECDHE-RSA-AES128-GCM-SHA256' | 'AES256-GCM-SHA384' | 'AES128-GCM-SHA256' | 'TLS_RSA_WITH_AES_256_GCM_SHA384' | 'TLS_RSA_WITH_AES_128_GCM_SHA256' | 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256' | 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384' | 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256' | 'TLS_CHACHA20_POLY1305_SHA256' | 'TLS_AES_256_GCM_SHA384' | 'TLS_AES_128_GCM_SHA256' | 'DES-CBC3-SHA' | 'ECDHE-RSA-AES128-SHA' | 'ECDHE-RSA-AES256-SHA' | 'AES128-SHA' | 'AES256-SHA')[];
13
24
  clientCertificate?: {
14
25
  secretLink?: string;
@@ -24,6 +35,7 @@ export interface ExternalPort {
24
35
  cors?: {
25
36
  allowOrigins?: {
26
37
  exact?: string;
38
+ regex?: string;
27
39
  }[];
28
40
  allowMethods?: string[];
29
41
  allowHeaders?: string[];
@@ -32,7 +44,7 @@ export interface ExternalPort {
32
44
  allowCredentials?: boolean;
33
45
  };
34
46
  tls?: {
35
- minProtocolVersion?: 'TLSV1_2' | 'TLSV1_1' | 'TLSV1_0';
47
+ minProtocolVersion?: 'TLSV1_3' | 'TLSV1_2' | 'TLSV1_1' | 'TLSV1_0';
36
48
  cipherSuites?: ('ECDHE-ECDSA-AES256-GCM-SHA384' | 'ECDHE-ECDSA-CHACHA20-POLY1305' | 'ECDHE-ECDSA-AES128-GCM-SHA256' | 'ECDHE-RSA-AES256-GCM-SHA384' | 'ECDHE-RSA-CHACHA20-POLY1305' | 'ECDHE-RSA-AES128-GCM-SHA256' | 'AES256-GCM-SHA384' | 'AES128-GCM-SHA256' | 'TLS_RSA_WITH_AES_256_GCM_SHA384' | 'TLS_RSA_WITH_AES_128_GCM_SHA256' | 'TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256' | 'TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384' | 'TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256' | 'TLS_CHACHA20_POLY1305_SHA256' | 'TLS_AES_256_GCM_SHA384' | 'TLS_AES_128_GCM_SHA256' | 'DES-CBC3-SHA' | 'ECDHE-RSA-AES128-SHA' | 'ECDHE-RSA-AES256-SHA' | 'AES128-SHA' | 'AES256-SHA')[];
37
49
  clientCertificate?: {
38
50
  secretLink?: string;
@@ -42,10 +54,14 @@ export interface ExternalPort {
42
54
  };
43
55
  };
44
56
  }
57
+ export type CertChallengeType = 'http01' | 'dns01';
45
58
  export interface DomainSpec {
46
59
  dnsMode?: 'cname' | 'ns';
47
60
  gvcLink?: string;
61
+ certChallengeType?: 'http01' | 'dns01';
62
+ workloadLink?: string;
48
63
  acceptAllHosts?: boolean;
64
+ acceptAllSubdomains?: boolean;
49
65
  ports?: ExternalPort[];
50
66
  }
51
67
  export interface DnsConfigRecord {
@@ -59,7 +75,7 @@ export interface DomainStatus {
59
75
  url: string;
60
76
  workloadLink?: LocalLink;
61
77
  }[];
62
- status?: 'initializing' | 'ready' | 'pendingDnsConfig' | 'pendingCertificate' | 'usedByGvc' | 'warning';
78
+ status?: 'initializing' | 'ready' | 'pendingDnsConfig' | 'pendingCertificate' | 'usedByGvc' | 'warning' | 'created' | 'updated' | 'deleted' | 'errored' | 'ignored';
63
79
  warning?: string;
64
80
  locations?: ({
65
81
  name: string;
@@ -132,6 +132,7 @@ export interface RouteMatch {
132
132
  }
133
133
  export interface RouteMatchRestricted {
134
134
  prefix?: string;
135
+ headers?: HeaderMatcher[];
135
136
  }
136
137
  export interface ListStringMatcher {
137
138
  patterns?: StringMatcher[];
@@ -276,10 +277,10 @@ export interface BindConfig {
276
277
  }
277
278
  export interface TransportSocket {
278
279
  name: string;
279
- typed_config?: any;
280
- }
281
- export interface TransportSocketRestricted {
282
- name: string;
280
+ typed_config?: {
281
+ "@type"?: 'type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext';
282
+ sni?: string;
283
+ };
283
284
  }
284
285
  export interface WatchedDirectory {
285
286
  path: string;
@@ -129,7 +129,7 @@ export interface ExtAuthz {
129
129
  http_service?: {
130
130
  server_uri?: HttpUri;
131
131
  path_prefix?: string;
132
- authroization_request?: {
132
+ authorization_request?: {
133
133
  allowed_headers?: ListStringMatcher;
134
134
  headers_to_add?: HeaderValue[];
135
135
  };
@@ -1,6 +1,6 @@
1
1
  export interface EventContext {
2
2
  category?: string;
3
- component?: 'actuator' | 'dns-updater' | 'scheduler' | 'iam-broker' | 'metadata-proxy';
3
+ component?: 'actuator' | 'dns-updater' | 'scheduler' | 'iam-broker' | 'metadata-proxy' | 'data-service';
4
4
  cloudProvider?: 'aws' | 'gcp' | 'azure' | 'linode' | 'byok';
5
5
  cluster?: string;
6
6
  principalLink?: string;
@@ -11,11 +11,13 @@ 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?: {
17
19
  category?: string;
18
- component?: 'actuator' | 'dns-updater' | 'scheduler' | 'iam-broker' | 'metadata-proxy';
20
+ component?: 'actuator' | 'dns-updater' | 'scheduler' | 'iam-broker' | 'metadata-proxy' | 'data-service';
19
21
  cloudProvider?: 'aws' | 'gcp' | 'azure' | 'linode' | 'byok';
20
22
  cluster?: string;
21
23
  principalLink?: string;
@@ -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,6 +15,7 @@ export interface GvcSpec {
14
15
  staticPlacement?: StaticPlacement;
15
16
  pullSecretLinks?: string[];
16
17
  domain?: string;
18
+ endpointNamingFormat?: 'default' | 'legacy' | 'org';
17
19
  tracing?: Tracing;
18
20
  sidecar?: {
19
21
  envoy?: EnvoyFilters;
@@ -21,7 +23,22 @@ export interface GvcSpec {
21
23
  env?: EnvVar[];
22
24
  loadBalancer?: {
23
25
  dedicated?: boolean;
26
+ multiZone?: {
27
+ enabled?: boolean;
28
+ };
24
29
  trustedProxies?: number;
30
+ redirect?: {
31
+ class?: {
32
+ status5xx?: string;
33
+ status401?: string;
34
+ };
35
+ };
36
+ ipSet?: string;
37
+ };
38
+ keda?: {
39
+ enabled?: boolean;
40
+ identityLink?: string;
41
+ secrets?: string[];
25
42
  };
26
43
  }
27
44
  export interface Gvc {
@@ -38,6 +55,22 @@ export interface Gvc {
38
55
  spec?: GvcSpec;
39
56
  status?: GvcStatus;
40
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
+ }
41
74
  export interface GvcConfig {
42
75
  clusters?: {
43
76
  [x: string]: {
@@ -50,8 +83,28 @@ export interface GvcConfig {
50
83
  clusterId?: string;
51
84
  };
52
85
  };
86
+ proxy?: {
87
+ minCpu?: number;
88
+ };
53
89
  loadBalancer?: {
54
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
+ };
55
104
  };
56
105
  thinProvision?: number;
106
+ largeDiskSize?: Memory;
107
+ capacityAI?: {
108
+ memToCpuRatio?: number;
109
+ };
57
110
  }
@@ -55,6 +55,14 @@ export interface Status {
55
55
  lastError?: string;
56
56
  usable?: boolean;
57
57
  };
58
+ gcp?: {
59
+ lastError?: string;
60
+ usable?: boolean;
61
+ };
62
+ azure?: {
63
+ lastError?: string;
64
+ usable?: boolean;
65
+ };
58
66
  }
59
67
  export interface NetworkResource {
60
68
  name: Name | string;
@@ -102,5 +110,5 @@ export interface Identity {
102
110
  memcacheAccess?: MemcacheAccess[];
103
111
  spicedbAccess?: SpicedbAccess[];
104
112
  status?: Status;
105
- gvc?: any;
113
+ gvc?: string;
106
114
  }
File without changes
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ /* auto-generated */
@@ -0,0 +1,37 @@
1
+ import { Name, Kind, Tags, Links } from './base';
2
+ export interface IpAddress {
3
+ name: string;
4
+ ip: string;
5
+ id: string;
6
+ state: 'bound' | 'unbound';
7
+ created: Date;
8
+ }
9
+ export interface IpSetStatus {
10
+ ipAddresses?: IpAddress[];
11
+ error?: string;
12
+ warning?: string;
13
+ }
14
+ export interface IpSetLocation {
15
+ name: string;
16
+ retentionPolicy: 'keep' | 'free';
17
+ }
18
+ export interface IpSetSpec {
19
+ link?: string;
20
+ locations?: IpSetLocation[];
21
+ }
22
+ export interface IpSet {
23
+ id?: string;
24
+ name?: Name;
25
+ kind?: Kind;
26
+ version?: number;
27
+ description?: string;
28
+ tags?: Tags;
29
+ created?: Date;
30
+ lastModified?: Date;
31
+ links?: Links;
32
+ spec: {
33
+ link?: string;
34
+ locations?: IpSetLocation[];
35
+ };
36
+ status?: IpSetStatus;
37
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* auto-generated */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ export interface LocationDnsMessage {
2
+ org: string;
3
+ gvc: string;
4
+ gvcAlias: string;
5
+ workload: string;
6
+ operation: 'update' | 'delete';
7
+ deleteReason?: string;
8
+ name: string;
9
+ target: string;
10
+ availabilityZone?: string;
11
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ /* auto-generated */
3
+ Object.defineProperty(exports, "__esModule", { value: true });