@prisma/compute-sdk 0.29.0 → 0.30.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/dist/types.d.ts CHANGED
@@ -18,24 +18,24 @@ export interface DatabaseInfo {
18
18
  export interface CreateProjectResult extends ProjectInfo {
19
19
  database?: DatabaseInfo;
20
20
  }
21
- export interface ServiceInfo {
21
+ export interface AppInfo {
22
22
  id: string;
23
23
  name: string;
24
24
  region: string;
25
25
  projectId: string;
26
26
  createdAt?: string;
27
27
  }
28
- export interface ServiceDetail extends ServiceInfo {
29
- latestVersionId?: string | null;
30
- serviceEndpointDomain?: string;
28
+ export interface AppDetail extends AppInfo {
29
+ latestDeploymentId?: string | null;
30
+ appEndpointDomain?: string;
31
31
  }
32
- export interface VersionInfo {
32
+ export interface DeploymentInfo {
33
33
  id: string;
34
34
  status: string;
35
35
  createdAt: string;
36
36
  previewDomain?: string | null;
37
37
  }
38
- export interface VersionDetail extends VersionInfo {
38
+ export interface DeploymentDetail extends DeploymentInfo {
39
39
  envVars?: Record<string, string | null>;
40
40
  foundryVersionId?: string;
41
41
  }
@@ -45,8 +45,8 @@ export interface RegionInfo {
45
45
  }
46
46
  export interface ResolvedConfig {
47
47
  projectId: string;
48
- serviceId: string;
49
- serviceName: string;
48
+ appId: string;
49
+ appName: string;
50
50
  region: string;
51
51
  portMapping?: PortMapping;
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,sGAOnB,CAAC;AAEX,eAAO,MAAM,OAAO,EAAE,UAAU,EAG7B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAU,SAAQ,OAAO;IACxC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,iFAAiF;AACjF,eAAO,MAAM,gBAAgB,sGAOnB,CAAC;AAEX,eAAO,MAAM,OAAO,EAAE,UAAU,EAG7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma/compute-sdk",
3
- "version": "0.29.0",
3
+ "version": "0.30.0",
4
4
  "description": "TypeScript SDK for deploying and managing applications on Prisma Compute",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "prisma/project-compute",
@@ -46,7 +46,7 @@
46
46
  "ws": "^8.20.0"
47
47
  },
48
48
  "peerDependencies": {
49
- "@prisma/management-api-sdk": ">=1.36.0"
49
+ "@prisma/management-api-sdk": "^1.44.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/bun": "latest",
package/src/api-client.ts CHANGED
@@ -54,43 +54,44 @@ export class InternalApiClient {
54
54
  ).then((r) => r.map((body) => body.data));
55
55
  }
56
56
 
57
- async listProjectServices(projectId: string, signal?: AbortSignal) {
57
+ async listProjectApps(projectId: string, signal?: AbortSignal) {
58
58
  return this.#requestPaginated(
59
59
  (cursor) =>
60
- this.#client.GET("/v1/projects/{projectId}/compute-services", {
61
- params: { path: { projectId }, query: cursor ? { cursor } : {} },
60
+ this.#client.GET("/v1/apps", {
61
+ params: {
62
+ query: cursor ? { projectId, cursor } : { projectId },
63
+ },
62
64
  signal,
63
65
  }),
64
- "/v1/projects/{projectId}/compute-services",
66
+ "/v1/apps",
65
67
  signal,
66
68
  );
67
69
  }
68
70
 
69
- async createProjectService(
71
+ async createProjectApp(
70
72
  projectId: string,
71
- body: CreateProjectServiceBody,
73
+ body: CreateProjectAppBody,
72
74
  signal?: AbortSignal,
73
75
  ) {
74
76
  signal?.throwIfAborted();
75
77
  return this.#request(
76
- this.#client.POST("/v1/projects/{projectId}/compute-services", {
77
- params: { path: { projectId } },
78
- body: body as SdkCreateProjectServiceBody,
78
+ this.#client.POST("/v1/apps", {
79
+ body: { ...body, projectId } as SdkCreateAppBody,
79
80
  // Intentionally do not pass AbortSignal for mutating operations.
80
81
  // Aborting transport can leave remote completion ambiguous.
81
82
  }),
82
- "/v1/projects/{projectId}/compute-services",
83
+ "/v1/apps",
83
84
  signal,
84
85
  ).then((r) => r.map((body) => body.data));
85
86
  }
86
87
 
87
- async getService(computeServiceId: string, signal?: AbortSignal) {
88
+ async getApp(appId: string, signal?: AbortSignal) {
88
89
  return this.#request(
89
- this.#client.GET("/v1/compute-services/{computeServiceId}", {
90
- params: { path: { computeServiceId } },
90
+ this.#client.GET("/v1/apps/{appId}", {
91
+ params: { path: { appId } },
91
92
  signal,
92
93
  }),
93
- "/v1/compute-services/{computeServiceId}",
94
+ "/v1/apps/{appId}",
94
95
  signal,
95
96
  ).then((r) => r.map((body) => body.data));
96
97
  }
@@ -106,14 +107,14 @@ export class InternalApiClient {
106
107
  ).then((r) => r.map((body) => body.data));
107
108
  }
108
109
 
109
- async deleteService(
110
- computeServiceId: string,
110
+ async deleteApp(
111
+ appId: string,
111
112
  signal?: AbortSignal,
112
113
  ): Promise<Result<void, ApiClientError>> {
113
114
  signal?.throwIfAborted();
114
115
  return this.#unwrapVoid(
115
- this.#client.DELETE("/v1/compute-services/{computeServiceId}", {
116
- params: { path: { computeServiceId } },
116
+ this.#client.DELETE("/v1/apps/{appId}", {
117
+ params: { path: { appId } },
117
118
  // Intentionally do not pass AbortSignal for mutating operations.
118
119
  // Aborting transport can leave remote completion ambiguous.
119
120
  }),
@@ -121,71 +122,71 @@ export class InternalApiClient {
121
122
  );
122
123
  }
123
124
 
124
- async listServiceVersions(computeServiceId: string, signal?: AbortSignal) {
125
+ async listAppDeployments(appId: string, signal?: AbortSignal) {
125
126
  return this.#requestPaginated(
126
127
  (cursor) =>
127
- this.#client.GET("/v1/compute-services/{computeServiceId}/versions", {
128
+ this.#client.GET("/v1/apps/{appId}/deployments", {
128
129
  params: {
129
- path: { computeServiceId },
130
+ path: { appId },
130
131
  query: cursor ? { cursor } : {},
131
132
  },
132
133
  signal,
133
134
  }),
134
- "/v1/compute-services/{computeServiceId}/versions",
135
+ "/v1/apps/{appId}/deployments",
135
136
  signal,
136
137
  );
137
138
  }
138
139
 
139
- async createServiceVersion(
140
- computeServiceId: string,
141
- body?: CreateServiceVersionBody,
140
+ async createAppDeployment(
141
+ appId: string,
142
+ body?: CreateAppDeploymentBody,
142
143
  signal?: AbortSignal,
143
144
  ) {
144
145
  signal?.throwIfAborted();
145
146
  return this.#request(
146
- this.#client.POST("/v1/compute-services/{computeServiceId}/versions", {
147
- params: { path: { computeServiceId } },
147
+ this.#client.POST("/v1/apps/{appId}/deployments", {
148
+ params: { path: { appId } },
148
149
  body,
149
150
  // Intentionally do not pass AbortSignal for mutating operations.
150
151
  // Aborting transport can leave remote completion ambiguous.
151
152
  }),
152
- "/v1/compute-services/{computeServiceId}/versions",
153
+ "/v1/apps/{appId}/deployments",
153
154
  signal,
154
155
  ).then((r) => r.map((body) => body.data));
155
156
  }
156
157
 
157
- async getVersion(versionId: string, signal?: AbortSignal) {
158
+ async getDeployment(deploymentId: string, signal?: AbortSignal) {
158
159
  return this.#request(
159
- this.#client.GET("/v1/compute-services/versions/{versionId}", {
160
- params: { path: { versionId } },
160
+ this.#client.GET("/v1/deployments/{deploymentId}", {
161
+ params: { path: { deploymentId } },
161
162
  signal,
162
163
  }),
163
- "/v1/compute-services/versions/{versionId}",
164
+ "/v1/deployments/{deploymentId}",
164
165
  signal,
165
166
  ).then((r) => r.map((body) => body.data));
166
167
  }
167
168
 
168
- async startVersion(versionId: string, signal?: AbortSignal) {
169
+ async startDeployment(deploymentId: string, signal?: AbortSignal) {
169
170
  signal?.throwIfAborted();
170
171
  return this.#request(
171
- this.#client.POST("/v1/compute-services/versions/{versionId}/start", {
172
- params: { path: { versionId } },
172
+ this.#client.POST("/v1/deployments/{deploymentId}/start", {
173
+ params: { path: { deploymentId } },
173
174
  // Intentionally do not pass AbortSignal for mutating operations.
174
175
  // Aborting transport can leave remote completion ambiguous.
175
176
  }),
176
- "/v1/compute-services/versions/{versionId}/start",
177
+ "/v1/deployments/{deploymentId}/start",
177
178
  signal,
178
179
  ).then((r) => r.map((body) => body.data));
179
180
  }
180
181
 
181
- async stopVersion(
182
- versionId: string,
182
+ async stopDeployment(
183
+ deploymentId: string,
183
184
  signal?: AbortSignal,
184
185
  ): Promise<Result<void, ApiClientError>> {
185
186
  signal?.throwIfAborted();
186
187
  return this.#unwrapVoid(
187
- this.#client.POST("/v1/compute-services/versions/{versionId}/stop", {
188
- params: { path: { versionId } },
188
+ this.#client.POST("/v1/deployments/{deploymentId}/stop", {
189
+ params: { path: { deploymentId } },
189
190
  // Intentionally do not pass AbortSignal for mutating operations.
190
191
  // Aborting transport can leave remote completion ambiguous.
191
192
  }),
@@ -193,14 +194,14 @@ export class InternalApiClient {
193
194
  );
194
195
  }
195
196
 
196
- async deleteVersion(
197
- versionId: string,
197
+ async deleteDeployment(
198
+ deploymentId: string,
198
199
  signal?: AbortSignal,
199
200
  ): Promise<Result<void, ApiClientError>> {
200
201
  signal?.throwIfAborted();
201
202
  return this.#unwrapVoid(
202
- this.#client.DELETE("/v1/compute-services/versions/{versionId}", {
203
- params: { path: { versionId } },
203
+ this.#client.DELETE("/v1/deployments/{deploymentId}", {
204
+ params: { path: { deploymentId } },
204
205
  // Intentionally do not pass AbortSignal for mutating operations.
205
206
  // Aborting transport can leave remote completion ambiguous.
206
207
  }),
@@ -208,20 +209,16 @@ export class InternalApiClient {
208
209
  );
209
210
  }
210
211
 
211
- async promoteService(
212
- computeServiceId: string,
213
- body: PromoteServiceBody,
214
- signal?: AbortSignal,
215
- ) {
212
+ async promoteApp(appId: string, body: PromoteAppBody, signal?: AbortSignal) {
216
213
  signal?.throwIfAborted();
217
214
  return this.#request(
218
- this.#client.POST("/v1/compute-services/{computeServiceId}/promote", {
219
- params: { path: { computeServiceId } },
215
+ this.#client.POST("/v1/apps/{appId}/promote", {
216
+ params: { path: { appId } },
220
217
  body,
221
218
  // Intentionally do not pass AbortSignal for mutating operations.
222
219
  // Aborting transport can leave remote completion ambiguous.
223
220
  }),
224
- "/v1/compute-services/{computeServiceId}/promote",
221
+ "/v1/apps/{appId}/promote",
225
222
  signal,
226
223
  ).then((r) => r.map((body) => body.data));
227
224
  }
@@ -380,23 +377,20 @@ type CreateProjectBody = Omit<SdkCreateProjectBody, "region"> & {
380
377
  region?: string;
381
378
  };
382
379
 
383
- type SdkCreateProjectServiceBody = NonNullable<
384
- paths["/v1/projects/{projectId}/compute-services"]["post"]["requestBody"]
380
+ type SdkCreateAppBody = NonNullable<
381
+ paths["/v1/apps"]["post"]["requestBody"]
385
382
  >["content"]["application/json"];
386
383
 
387
- type CreateProjectServiceBody = Omit<
388
- SdkCreateProjectServiceBody,
389
- "regionId"
390
- > & {
384
+ type CreateProjectAppBody = Omit<SdkCreateAppBody, "regionId" | "projectId"> & {
391
385
  regionId?: string;
392
386
  };
393
387
 
394
- export type CreateServiceVersionBody = NonNullable<
395
- paths["/v1/compute-services/{computeServiceId}/versions"]["post"]["requestBody"]
388
+ export type CreateAppDeploymentBody = NonNullable<
389
+ paths["/v1/apps/{appId}/deployments"]["post"]["requestBody"]
396
390
  >["content"]["application/json"];
397
391
 
398
- export type PromoteServiceBody = NonNullable<
399
- paths["/v1/compute-services/{computeServiceId}/promote"]["post"]["requestBody"]
392
+ export type PromoteAppBody = NonNullable<
393
+ paths["/v1/apps/{appId}/promote"]["post"]["requestBody"]
400
394
  >["content"]["application/json"];
401
395
 
402
396
  type ListEnvironmentVariablesQuery = NonNullable<
@@ -489,7 +483,7 @@ function parseRequestError(
489
483
  return parseApiError(error, response, fallbackMessage);
490
484
  }
491
485
 
492
- /** Extract the upload URL from a version creation response. */
486
+ /** Extract the upload URL from a deployment creation response. */
493
487
  export function readUploadUrl(data: {
494
488
  uploadUrl?: string | null;
495
489
  }): string | null {
package/src/callbacks.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { BuildArtifact } from "./build-strategy.ts";
2
2
  import type {
3
+ AppInfo,
4
+ DeploymentInfo,
3
5
  ProjectInfo,
4
6
  RegionInfo,
5
- ServiceInfo,
6
- VersionInfo,
7
7
  } from "./types.ts";
8
8
 
9
9
  export interface DeployProgress {
@@ -11,63 +11,63 @@ export interface DeployProgress {
11
11
  onBuildComplete?(artifact: BuildArtifact): void;
12
12
  onArchiveCreating?(): void;
13
13
  onArchiveReady?(sizeBytes: number): void;
14
- onVersionCreated?(versionId: string): void;
14
+ onDeploymentCreated?(deploymentId: string): void;
15
15
  onUploadStart?(): void;
16
16
  onUploadComplete?(): void;
17
17
  onStartRequested?(): void;
18
18
  onStatusChange?(status: string): void;
19
19
  onRunning?(deploymentUrl: string): void;
20
20
  onPromoteStart?(): void;
21
- onPromoted?(serviceEndpointDomain: string): void;
21
+ onPromoted?(appEndpointDomain: string): void;
22
22
  onPromoteFailed?(error?: Error): void;
23
- onOldVersionStopping?(versionId: string): void;
24
- onOldVersionStopped?(versionId: string): void;
25
- onOldVersionStopFailed?(versionId: string): void;
26
- onOldVersionDeleting?(versionId: string): void;
27
- onOldVersionDeleted?(versionId: string): void;
28
- onOldVersionDeleteFailed?(versionId: string): void;
29
- onCleanupDanglingVersion?(versionId: string): void;
30
- onCleanupDanglingVersionComplete?(versionId: string): void;
31
- onCleanupDanglingVersionFailed?(versionId: string): void;
23
+ onOldDeploymentStopping?(deploymentId: string): void;
24
+ onOldDeploymentStopped?(deploymentId: string): void;
25
+ onOldDeploymentStopFailed?(deploymentId: string): void;
26
+ onOldDeploymentDeleting?(deploymentId: string): void;
27
+ onOldDeploymentDeleted?(deploymentId: string): void;
28
+ onOldDeploymentDeleteFailed?(deploymentId: string): void;
29
+ onCleanupDanglingDeployment?(deploymentId: string): void;
30
+ onCleanupDanglingDeploymentComplete?(deploymentId: string): void;
31
+ onCleanupDanglingDeploymentFailed?(deploymentId: string): void;
32
32
  }
33
33
 
34
34
  export interface PromoteProgress {
35
- onVersionStarting?(versionId: string): void;
36
- onVersionStartRequested?(): void;
35
+ onDeploymentStarting?(deploymentId: string): void;
36
+ onDeploymentStartRequested?(): void;
37
37
  onStatusChange?(status: string): void;
38
- onVersionRunning?(): void;
38
+ onDeploymentRunning?(): void;
39
39
  onPromoteStart?(): void;
40
- onPromoted?(serviceEndpointDomain: string): void;
40
+ onPromoted?(appEndpointDomain: string): void;
41
41
  onPromoteFailed?(error?: Error): void;
42
42
  }
43
43
 
44
44
  export interface DeployInteraction {
45
45
  selectProject?(projects: ProjectInfo[]): Promise<string>;
46
- selectService?(services: ServiceInfo[]): Promise<string | null>;
47
- provideServiceName?(): Promise<string>;
46
+ selectApp?(apps: AppInfo[]): Promise<string | null>;
47
+ provideAppName?(): Promise<string>;
48
48
  selectRegion?(regions: RegionInfo[]): Promise<string>;
49
49
  }
50
50
  export interface UpdateEnvProgress {
51
- onVersionCreated?(versionId: string): void;
51
+ onDeploymentCreated?(deploymentId: string): void;
52
52
  onStartRequested?(): void;
53
53
  onStatusChange?(status: string): void;
54
54
  onRunning?(deploymentUrl: string): void;
55
55
  }
56
- export interface DestroyVersionInteraction {
57
- selectVersion?(versions: VersionInfo[]): Promise<string>;
56
+ export interface DestroyDeploymentInteraction {
57
+ selectDeployment?(deployments: DeploymentInfo[]): Promise<string>;
58
58
  }
59
59
 
60
- export interface DestroyVersionProgress {
61
- onStopRequested?(versionId: string): void;
62
- onStopped?(versionId: string): void;
63
- onDeleted?(versionId: string): void;
60
+ export interface DestroyDeploymentProgress {
61
+ onStopRequested?(deploymentId: string): void;
62
+ onStopped?(deploymentId: string): void;
63
+ onDeleted?(deploymentId: string): void;
64
64
  }
65
- export interface DestroyServiceProgress {
66
- onStoppingVersions?(versionIds: string[]): void;
67
- onVersionStopped?(versionId: string): void;
68
- onAllVersionsStopped?(): void;
69
- onDeletingVersions?(versionIds: string[]): void;
70
- onVersionDeleted?(versionId: string): void;
71
- onAllVersionsDeleted?(): void;
72
- onServiceDeleted?(serviceId: string): void;
65
+ export interface DestroyAppProgress {
66
+ onStoppingDeployments?(deploymentIds: string[]): void;
67
+ onDeploymentStopped?(deploymentId: string): void;
68
+ onAllDeploymentsStopped?(): void;
69
+ onDeletingDeployments?(deploymentIds: string[]): void;
70
+ onDeploymentDeleted?(deploymentId: string): void;
71
+ onAllDeploymentsDeleted?(): void;
72
+ onAppDeleted?(appId: string): void;
73
73
  }