@honeyhive/control-plane-sdk 1.0.0 → 1.2.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.
@@ -51,6 +51,50 @@ export interface paths {
51
51
  patch?: never;
52
52
  trace?: never;
53
53
  };
54
+ '/v1/virtual_dataplanes/{virtual_dataplane_id}/workspaces': {
55
+ parameters: {
56
+ query?: never;
57
+ header?: never;
58
+ path?: never;
59
+ cookie?: never;
60
+ };
61
+ get?: never;
62
+ put?: never;
63
+ /**
64
+ * Create a workspace
65
+ * @description Create a workspace in a virtual data plane. The parent virtual data plane is identified by
66
+ * the `virtual_dataplane_id` path parameter alone; the `x-hh-dataplane-id` header does not
67
+ * participate. Your organization's virtual data plane ids are listed on the API keys page of
68
+ * your organization settings in the HoneyHive app. Most organizations have exactly one.
69
+ *
70
+ * The new workspace contains no projects. Create one with
71
+ * `POST /v1/workspaces/{workspace_id}/projects` if you need it, because a workspace with no
72
+ * projects has nowhere to log events.
73
+ *
74
+ * The optional `workspace_creator` field names the user (by email) who receives the
75
+ * workspace-creator membership on the new workspace. The named user must already be a member
76
+ * of the virtual data plane. When omitted, the workspace is created without any membership.
77
+ * The field is only accepted on API-key-initiated requests. User-initiated creation always
78
+ * makes the calling user the creator, so sending the field returns a 400.
79
+ *
80
+ * The roles that membership carries come from your organization's role configuration. An
81
+ * organization that grants no role on workspace creation is a supported case: the request
82
+ * still succeeds and the named user receives no access. A 200 response is not by itself
83
+ * confirmation that the named user was granted anything.
84
+ *
85
+ * A `workspace_creator` who is already signed in does not see the new workspace immediately.
86
+ * A session captures its scope tree and permission grants when it is created, so a membership
87
+ * granted afterwards is not reflected in it. Creating the workspace marks that user's sessions
88
+ * for refresh, and the refresh takes effect on their next request to the control plane, so an
89
+ * idle browser tab may need a page reload.
90
+ */
91
+ post: operations['createWorkspace'];
92
+ delete?: never;
93
+ options?: never;
94
+ head?: never;
95
+ patch?: never;
96
+ trace?: never;
97
+ };
54
98
  '/v1/workspaces/{workspace_id}/projects': {
55
99
  parameters: {
56
100
  query?: never;
@@ -63,13 +107,25 @@ export interface paths {
63
107
  /**
64
108
  * Create a project
65
109
  * @description Create a project in a workspace. The parent workspace is identified by the `workspace_id`
66
- * path parameter alone; the `x-hh-workspace-id` header does not participate.
110
+ * path parameter alone; the `x-hh-workspace-id` header does not participate. A workspace's id
111
+ * is listed on the API keys page of its workspace settings in the HoneyHive app.
67
112
  *
68
113
  * The optional `project_creator` field names the user (by email) who receives the
69
114
  * project-creator membership on the new project. The named user must already be a member of
70
115
  * the workspace. When omitted, the project is created without any membership. The field is
71
- * only accepted on API-key-initiated requests — user-initiated creation always makes the
72
- * calling user the creator and rejects the field with a 400.
116
+ * only accepted on API-key-initiated requests. User-initiated creation always makes the
117
+ * calling user the creator, so sending the field returns a 400.
118
+ *
119
+ * The roles that membership carries come from your organization's role configuration. An
120
+ * organization that grants no role on project creation is a supported case: the request
121
+ * still succeeds and the named user receives no access. A 200 response is not by itself
122
+ * confirmation that the named user was granted anything.
123
+ *
124
+ * A `project_creator` who is already signed in does not see the new project immediately. A
125
+ * session captures its scope tree and permission grants when it is created, so a membership
126
+ * granted afterwards is not reflected in it. Creating the project marks that user's sessions
127
+ * for refresh, and the refresh takes effect on their next request to the control plane, so
128
+ * an idle browser tab may need a page reload.
73
129
  */
74
130
  post: operations['createProject'];
75
131
  delete?: never;
@@ -111,6 +167,175 @@ export interface paths {
111
167
  patch?: never;
112
168
  trace?: never;
113
169
  };
170
+ '/v1/workspaces/{workspace_id}': {
171
+ parameters: {
172
+ query?: never;
173
+ header?: never;
174
+ path?: never;
175
+ cookie?: never;
176
+ };
177
+ /**
178
+ * Get a workspace
179
+ * @description Retrieve a single workspace by id. The workspace is identified by the `workspace_id` path
180
+ * parameter alone; the `x-hh-workspace-id` header does not participate.
181
+ *
182
+ * The returned `name` is the workspace's display name. The globally unique slug the workspace
183
+ * was assigned at creation is an internal detail and is not part of this contract.
184
+ */
185
+ get: operations['getWorkspace'];
186
+ /**
187
+ * Update a workspace
188
+ * @description Update a workspace's display name and/or description. The workspace is identified by the
189
+ * `workspace_id` path parameter alone; the `x-hh-workspace-id` header does not participate.
190
+ * Only fields included in the request body are modified.
191
+ *
192
+ * The workspace's internal slug is not part of this contract and cannot be changed here.
193
+ */
194
+ put: operations['updateWorkspace'];
195
+ post?: never;
196
+ /**
197
+ * Delete a workspace
198
+ * @description Delete a workspace. The workspace is soft-deleted (archived) and no longer appears in reads;
199
+ * the response returns the archived workspace. The workspace is identified by the
200
+ * `workspace_id` path parameter alone; the `x-hh-workspace-id` header does not participate.
201
+ *
202
+ * **Deleting a workspace also archives every project inside it**, so the events, datasets,
203
+ * and evaluations in those projects are no longer reachable. Because that reaches well
204
+ * beyond the resource named in the URL, a workspace that still has active projects is
205
+ * rejected with a 409 unless the request sets `dangerously_delete_child_scopes=true`.
206
+ * Projects that were already archived do not count, so a workspace emptied one project at a
207
+ * time deletes without the flag.
208
+ *
209
+ * The response describes only the workspace. It does not enumerate the projects archived
210
+ * alongside it, so read them first if you need that list.
211
+ */
212
+ delete: operations['deleteWorkspace'];
213
+ options?: never;
214
+ head?: never;
215
+ patch?: never;
216
+ trace?: never;
217
+ };
218
+ '/v1/orgs/{org_id}/virtual_dataplanes': {
219
+ parameters: {
220
+ query?: never;
221
+ header?: never;
222
+ path?: never;
223
+ cookie?: never;
224
+ };
225
+ get?: never;
226
+ put?: never;
227
+ /**
228
+ * Create a virtual data plane
229
+ * @description Create a virtual data plane in an organization. The parent organization is identified by the
230
+ * `org_id` path parameter alone; the `x-hh-org-id` header does not participate. Your
231
+ * organization's id is listed on the API keys page of your organization settings in the
232
+ * HoneyHive app.
233
+ *
234
+ * A virtual data plane is a logical tenant boundary hosted on a physical cluster, and several
235
+ * of them commonly share one cluster. Workspaces are created inside it.
236
+ *
237
+ * `cluster_id` is optional, and omitting it is the common case: the new virtual data plane is
238
+ * placed on the same cluster as the organization's existing ones. Two situations require it
239
+ * explicitly, and both return a 400 that says so rather than guessing: an organization whose
240
+ * existing virtual data planes span more than one cluster, and an organization that has none
241
+ * yet. Every response includes `cluster_id`, so reading an existing virtual data plane tells
242
+ * you which value to send.
243
+ *
244
+ * A cluster admits an organization only if your control plane administrator configured it to,
245
+ * so a `cluster_id` you can read from a sibling virtual data plane is not necessarily one you
246
+ * may place a new virtual data plane on. A cluster that does not admit this organization
247
+ * returns a 404. When this endpoint inferred the cluster, send an explicit `cluster_id` to
248
+ * place the virtual data plane on another cluster.
249
+ *
250
+ * Deployments differ in who places virtual data planes. Where HoneyHive assigns them to
251
+ * organizations automatically, this endpoint returns a 404 for every request and the
252
+ * placement is not yours to make. Deployments whose administrators own the scope tree are
253
+ * the ones this endpoint serves.
254
+ *
255
+ * The optional `dataplane_creator` field names the user (by email) who receives the
256
+ * dataplane-creator membership on the new virtual data plane. The named user must already be a
257
+ * member of the organization. When omitted, it is created without any membership. The field is
258
+ * only accepted on API-key-initiated requests; user-initiated creation always makes the
259
+ * calling user the creator, so sending the field returns a 400.
260
+ *
261
+ * The roles that membership carries come from your organization's role configuration. An
262
+ * organization that grants no role on dataplane creation is a supported case: the request
263
+ * still succeeds and the named user receives no access. A 200 response is not by itself
264
+ * confirmation that the named user was granted anything.
265
+ *
266
+ * A `dataplane_creator` who is already signed in does not see the new virtual data plane
267
+ * immediately. A session captures its scope tree and permission grants when it is created, so
268
+ * a membership granted afterwards is not reflected in it; the refresh takes effect on their
269
+ * next request to the control plane.
270
+ */
271
+ post: operations['createVirtualDataplane'];
272
+ delete?: never;
273
+ options?: never;
274
+ head?: never;
275
+ patch?: never;
276
+ trace?: never;
277
+ };
278
+ '/v1/virtual_dataplanes/{virtual_dataplane_id}': {
279
+ parameters: {
280
+ query?: never;
281
+ header?: never;
282
+ path?: never;
283
+ cookie?: never;
284
+ };
285
+ /**
286
+ * Get a virtual data plane
287
+ * @description Retrieve a single virtual data plane by id. It is identified by the `virtual_dataplane_id`
288
+ * path parameter alone; the `x-hh-dataplane-id` header does not participate.
289
+ *
290
+ * The returned `name` is the display name. The globally unique slug assigned at creation is
291
+ * an internal detail and is not part of this contract. `cluster_id` is the physical cluster
292
+ * hosting this virtual data plane, and it is the value to send when creating another one
293
+ * beside it.
294
+ *
295
+ * Reads work on every deployment, including those where HoneyHive assigns virtual data
296
+ * planes automatically and the write endpoints are unavailable.
297
+ */
298
+ get: operations['getVirtualDataplane'];
299
+ /**
300
+ * Update a virtual data plane
301
+ * @description Update a virtual data plane's display name. It is identified by the `virtual_dataplane_id`
302
+ * path parameter alone; the `x-hh-dataplane-id` header does not participate.
303
+ *
304
+ * `name` is the only field this endpoint changes. `cluster_id` is placement rather than
305
+ * description: the workspaces and projects inside a virtual data plane hold data on the
306
+ * cluster hosting it, so moving one is a migration and not an update. A request that omits
307
+ * `name`, or sends the current one, changes nothing.
308
+ *
309
+ * This endpoint is unavailable where HoneyHive assigns virtual data planes automatically,
310
+ * and returns a 404 there.
311
+ */
312
+ put: operations['updateVirtualDataplane'];
313
+ post?: never;
314
+ /**
315
+ * Delete a virtual data plane
316
+ * @description Delete a virtual data plane. It is soft-deleted (archived) and no longer appears in reads;
317
+ * the response returns the archived virtual data plane. It is identified by the
318
+ * `virtual_dataplane_id` path parameter alone; the `x-hh-dataplane-id` header does not
319
+ * participate.
320
+ *
321
+ * **Deleting a virtual data plane also archives every workspace inside it and every project
322
+ * inside those workspaces**, so the events, datasets, and evaluations in them are no longer
323
+ * reachable. Because that reaches two levels below the resource named in the URL, a virtual
324
+ * data plane with active workspaces is rejected with a 409 unless the request sets
325
+ * `dangerously_delete_child_scopes=true`. Workspaces that were already archived do not count.
326
+ *
327
+ * The response describes only the virtual data plane. It does not enumerate what the cascade
328
+ * archived, so read that first if you need the list.
329
+ *
330
+ * This endpoint is unavailable where HoneyHive assigns virtual data planes automatically,
331
+ * and returns a 404 there.
332
+ */
333
+ delete: operations['deleteVirtualDataplane'];
334
+ options?: never;
335
+ head?: never;
336
+ patch?: never;
337
+ trace?: never;
338
+ };
114
339
  }
115
340
  export type webhooks = Record<string, never>;
116
341
  export interface components {
@@ -277,7 +502,7 @@ export interface components {
277
502
  description?: string;
278
503
  /**
279
504
  * Format: email
280
- * @description Email of the user to grant the project-creator membership to (API key actors only)
505
+ * @description Email of the user to grant the project-creator membership to (API key actors only). A signed-in user does not see the new project until their session refreshes, which happens on their next request to the control plane.
281
506
  */
282
507
  project_creator?: string;
283
508
  };
@@ -308,6 +533,106 @@ export interface components {
308
533
  success: boolean;
309
534
  data: components['schemas']['ProjectItem'];
310
535
  };
536
+ /** @description Virtual dataplane object */
537
+ VirtualDataplaneItem: {
538
+ id: string;
539
+ /** @description Virtual dataplane display name */
540
+ name: string;
541
+ /** @description Identifier of the physical cluster hosting this dataplane */
542
+ cluster_id: string;
543
+ created_at: string;
544
+ updated_at: string;
545
+ };
546
+ /** @description Request body for creating a virtual dataplane */
547
+ PostVirtualDataplaneRequest: {
548
+ /** @description Virtual dataplane display name. Allowed characters are letters, digits, space, underscore, hyphen, apostrophe and ampersand. The name must contain at least one letter or digit, and must not start with a space. */
549
+ name: string;
550
+ /** @description Globally unique identifier for the virtual dataplane, letters, digits and underscores only. Omit it and the server derives one from the name with a random suffix appended. A slug already in use returns 409. */
551
+ slug?: string;
552
+ /** @description Physical cluster to host this virtual dataplane. Omit to place it alongside the existing virtual dataplanes in this org; required when the org has none yet, or when its virtual dataplanes span more than one cluster. */
553
+ cluster_id?: string;
554
+ /**
555
+ * Format: email
556
+ * @description Email of the user to grant the dataplane-creator membership to (API key actors only). A signed-in user does not see the new dataplane until their session refreshes, which happens on their next request to the control plane.
557
+ */
558
+ dataplane_creator?: string;
559
+ };
560
+ /** @description Request body for updating a virtual dataplane */
561
+ PutVirtualDataplaneRequest: {
562
+ /** @description Virtual dataplane display name. Allowed characters are letters, digits, space, underscore, hyphen, apostrophe and ampersand. The name must contain at least one letter or digit, and must not start with a space. */
563
+ name?: string;
564
+ };
565
+ /** @description The created virtual dataplane */
566
+ CreateVirtualDataplaneResponse: {
567
+ success: boolean;
568
+ data: components['schemas']['VirtualDataplaneItem'];
569
+ };
570
+ /** @description A single virtual dataplane */
571
+ GetVirtualDataplaneResponse: {
572
+ success: boolean;
573
+ data: components['schemas']['VirtualDataplaneItem'];
574
+ };
575
+ /** @description The updated virtual dataplane */
576
+ UpdateVirtualDataplaneResponse: {
577
+ success: boolean;
578
+ data: components['schemas']['VirtualDataplaneItem'];
579
+ };
580
+ /** @description The deleted (archived) virtual dataplane. Descendants archived by the cascade are not listed. */
581
+ DeleteVirtualDataplaneResponse: {
582
+ success: boolean;
583
+ data: components['schemas']['VirtualDataplaneItem'];
584
+ };
585
+ /** @description Workspace object */
586
+ WorkspaceItem: {
587
+ id: string;
588
+ /** @description Workspace display name */
589
+ name: string;
590
+ /** @description Workspace description */
591
+ description: string;
592
+ created_at: string;
593
+ updated_at?: string | null;
594
+ };
595
+ /** @description Request body for creating a workspace */
596
+ PostWorkspaceRequest: {
597
+ /** @description Workspace display name. Allowed characters are letters, digits, space, underscore, hyphen, apostrophe and ampersand. The name must contain at least one letter or digit, and must not start with a space. */
598
+ name: string;
599
+ /** @description Globally unique identifier for the workspace, letters, digits and underscores only. Omit it and the server derives one from the name with a random suffix appended. Supply it when the identifier has to match a value maintained outside HoneyHive, such as an identity provider group that grants access to this workspace. A slug already in use returns 409. */
600
+ slug?: string;
601
+ /** @description Workspace description */
602
+ description?: string;
603
+ /**
604
+ * Format: email
605
+ * @description Email of the user to grant the workspace-creator membership to (API key actors only). A signed-in user does not see the new workspace until their session refreshes, which happens on their next request to the control plane.
606
+ */
607
+ workspace_creator?: string;
608
+ };
609
+ /** @description Request body for updating a workspace */
610
+ PutWorkspaceRequest: {
611
+ /** @description Workspace display name. Allowed characters are letters, digits, space, underscore, hyphen, apostrophe and ampersand. The name must contain at least one letter or digit, and must not start with a space. */
612
+ name?: string;
613
+ /** @description Workspace description */
614
+ description?: string;
615
+ };
616
+ /** @description The created workspace */
617
+ CreateWorkspaceResponse: {
618
+ success: boolean;
619
+ data: components['schemas']['WorkspaceItem'];
620
+ };
621
+ /** @description A single workspace */
622
+ GetWorkspaceResponse: {
623
+ success: boolean;
624
+ data: components['schemas']['WorkspaceItem'];
625
+ };
626
+ /** @description The updated workspace */
627
+ UpdateWorkspaceResponse: {
628
+ success: boolean;
629
+ data: components['schemas']['WorkspaceItem'];
630
+ };
631
+ /** @description The deleted (archived) workspace. Descendants archived by the cascade are not listed. */
632
+ DeleteWorkspaceResponse: {
633
+ success: boolean;
634
+ data: components['schemas']['WorkspaceItem'];
635
+ };
311
636
  AlertItemThresholdsCritical: {
312
637
  /** @enum {string} */
313
638
  operator: 'greater_than' | 'less_than' | 'equal_to';
@@ -526,6 +851,54 @@ export interface operations {
526
851
  };
527
852
  };
528
853
  };
854
+ createWorkspace: {
855
+ parameters: {
856
+ query?: never;
857
+ header?: never;
858
+ path: {
859
+ /** @description The unique identifier of the virtual data plane the workspace is created in */
860
+ virtual_dataplane_id: string;
861
+ };
862
+ cookie?: never;
863
+ };
864
+ requestBody: {
865
+ content: {
866
+ 'application/json': components['schemas']['PostWorkspaceRequest'];
867
+ };
868
+ };
869
+ responses: {
870
+ /** @description Workspace created successfully */
871
+ 200: {
872
+ headers: {
873
+ [name: string]: unknown;
874
+ };
875
+ content: {
876
+ 'application/json': components['schemas']['CreateWorkspaceResponse'];
877
+ };
878
+ };
879
+ /** @description Invalid request body, or an unknown/ineligible `workspace_creator` */
880
+ 400: {
881
+ headers: {
882
+ [name: string]: unknown;
883
+ };
884
+ content?: never;
885
+ };
886
+ /** @description Virtual data plane not found */
887
+ 404: {
888
+ headers: {
889
+ [name: string]: unknown;
890
+ };
891
+ content?: never;
892
+ };
893
+ /** @description The `slug` is already taken by another scope */
894
+ 409: {
895
+ headers: {
896
+ [name: string]: unknown;
897
+ };
898
+ content?: never;
899
+ };
900
+ };
901
+ };
529
902
  createProject: {
530
903
  parameters: {
531
904
  query?: never;
@@ -668,5 +1041,296 @@ export interface operations {
668
1041
  };
669
1042
  };
670
1043
  };
1044
+ getWorkspace: {
1045
+ parameters: {
1046
+ query?: never;
1047
+ header?: never;
1048
+ path: {
1049
+ /** @description The unique identifier of the workspace to retrieve */
1050
+ workspace_id: string;
1051
+ };
1052
+ cookie?: never;
1053
+ };
1054
+ requestBody?: never;
1055
+ responses: {
1056
+ /** @description Workspace retrieved successfully */
1057
+ 200: {
1058
+ headers: {
1059
+ [name: string]: unknown;
1060
+ };
1061
+ content: {
1062
+ 'application/json': components['schemas']['GetWorkspaceResponse'];
1063
+ };
1064
+ };
1065
+ /** @description Workspace not found */
1066
+ 404: {
1067
+ headers: {
1068
+ [name: string]: unknown;
1069
+ };
1070
+ content?: never;
1071
+ };
1072
+ };
1073
+ };
1074
+ updateWorkspace: {
1075
+ parameters: {
1076
+ query?: never;
1077
+ header?: never;
1078
+ path: {
1079
+ /** @description The unique identifier of the workspace to update */
1080
+ workspace_id: string;
1081
+ };
1082
+ cookie?: never;
1083
+ };
1084
+ requestBody: {
1085
+ content: {
1086
+ 'application/json': components['schemas']['PutWorkspaceRequest'];
1087
+ };
1088
+ };
1089
+ responses: {
1090
+ /** @description Workspace updated successfully */
1091
+ 200: {
1092
+ headers: {
1093
+ [name: string]: unknown;
1094
+ };
1095
+ content: {
1096
+ 'application/json': components['schemas']['UpdateWorkspaceResponse'];
1097
+ };
1098
+ };
1099
+ /** @description Invalid request body */
1100
+ 400: {
1101
+ headers: {
1102
+ [name: string]: unknown;
1103
+ };
1104
+ content?: never;
1105
+ };
1106
+ /** @description Workspace not found */
1107
+ 404: {
1108
+ headers: {
1109
+ [name: string]: unknown;
1110
+ };
1111
+ content?: never;
1112
+ };
1113
+ };
1114
+ };
1115
+ deleteWorkspace: {
1116
+ parameters: {
1117
+ query?: {
1118
+ /**
1119
+ * @description Archive the workspace even when it still has active projects, archiving those projects
1120
+ * too. Without it, such a request fails with a 409 and no changes are made.
1121
+ */
1122
+ dangerously_delete_child_scopes?: boolean;
1123
+ };
1124
+ header?: never;
1125
+ path: {
1126
+ /** @description The unique identifier of the workspace to delete */
1127
+ workspace_id: string;
1128
+ };
1129
+ cookie?: never;
1130
+ };
1131
+ requestBody?: never;
1132
+ responses: {
1133
+ /** @description Workspace deleted successfully */
1134
+ 200: {
1135
+ headers: {
1136
+ [name: string]: unknown;
1137
+ };
1138
+ content: {
1139
+ 'application/json': components['schemas']['DeleteWorkspaceResponse'];
1140
+ };
1141
+ };
1142
+ /** @description `dangerously_delete_child_scopes` is not `true` or `false` */
1143
+ 400: {
1144
+ headers: {
1145
+ [name: string]: unknown;
1146
+ };
1147
+ content?: never;
1148
+ };
1149
+ /** @description Workspace not found */
1150
+ 404: {
1151
+ headers: {
1152
+ [name: string]: unknown;
1153
+ };
1154
+ content?: never;
1155
+ };
1156
+ /** @description The workspace still has active projects and `dangerously_delete_child_scopes` was not set */
1157
+ 409: {
1158
+ headers: {
1159
+ [name: string]: unknown;
1160
+ };
1161
+ content?: never;
1162
+ };
1163
+ };
1164
+ };
1165
+ createVirtualDataplane: {
1166
+ parameters: {
1167
+ query?: never;
1168
+ header?: never;
1169
+ path: {
1170
+ /** @description The unique identifier of the organization the virtual data plane is created in */
1171
+ org_id: string;
1172
+ };
1173
+ cookie?: never;
1174
+ };
1175
+ requestBody: {
1176
+ content: {
1177
+ 'application/json': components['schemas']['PostVirtualDataplaneRequest'];
1178
+ };
1179
+ };
1180
+ responses: {
1181
+ /** @description Virtual data plane created successfully */
1182
+ 200: {
1183
+ headers: {
1184
+ [name: string]: unknown;
1185
+ };
1186
+ content: {
1187
+ 'application/json': components['schemas']['CreateVirtualDataplaneResponse'];
1188
+ };
1189
+ };
1190
+ /** @description Invalid request body, an unknown or ineligible `dataplane_creator`, `cluster_id` omitted when it could not be inferred, or the named cluster is disabled */
1191
+ 400: {
1192
+ headers: {
1193
+ [name: string]: unknown;
1194
+ };
1195
+ content?: never;
1196
+ };
1197
+ /** @description Organization or cluster not found, or the caller may not create a virtual data plane here. The response does not say which. */
1198
+ 404: {
1199
+ headers: {
1200
+ [name: string]: unknown;
1201
+ };
1202
+ content?: never;
1203
+ };
1204
+ /** @description The `slug` is already taken by another scope */
1205
+ 409: {
1206
+ headers: {
1207
+ [name: string]: unknown;
1208
+ };
1209
+ content?: never;
1210
+ };
1211
+ };
1212
+ };
1213
+ getVirtualDataplane: {
1214
+ parameters: {
1215
+ query?: never;
1216
+ header?: never;
1217
+ path: {
1218
+ /** @description The unique identifier of the virtual data plane to retrieve */
1219
+ virtual_dataplane_id: string;
1220
+ };
1221
+ cookie?: never;
1222
+ };
1223
+ requestBody?: never;
1224
+ responses: {
1225
+ /** @description Virtual data plane retrieved successfully */
1226
+ 200: {
1227
+ headers: {
1228
+ [name: string]: unknown;
1229
+ };
1230
+ content: {
1231
+ 'application/json': components['schemas']['GetVirtualDataplaneResponse'];
1232
+ };
1233
+ };
1234
+ /** @description Virtual data plane not found */
1235
+ 404: {
1236
+ headers: {
1237
+ [name: string]: unknown;
1238
+ };
1239
+ content?: never;
1240
+ };
1241
+ };
1242
+ };
1243
+ updateVirtualDataplane: {
1244
+ parameters: {
1245
+ query?: never;
1246
+ header?: never;
1247
+ path: {
1248
+ /** @description The unique identifier of the virtual data plane to update */
1249
+ virtual_dataplane_id: string;
1250
+ };
1251
+ cookie?: never;
1252
+ };
1253
+ requestBody: {
1254
+ content: {
1255
+ 'application/json': components['schemas']['PutVirtualDataplaneRequest'];
1256
+ };
1257
+ };
1258
+ responses: {
1259
+ /** @description Virtual data plane updated successfully */
1260
+ 200: {
1261
+ headers: {
1262
+ [name: string]: unknown;
1263
+ };
1264
+ content: {
1265
+ 'application/json': components['schemas']['UpdateVirtualDataplaneResponse'];
1266
+ };
1267
+ };
1268
+ /** @description Invalid request body */
1269
+ 400: {
1270
+ headers: {
1271
+ [name: string]: unknown;
1272
+ };
1273
+ content?: never;
1274
+ };
1275
+ /** @description Virtual data plane not found, or the caller may not update it, or this deployment assigns virtual data planes automatically. The response does not say which. */
1276
+ 404: {
1277
+ headers: {
1278
+ [name: string]: unknown;
1279
+ };
1280
+ content?: never;
1281
+ };
1282
+ };
1283
+ };
1284
+ deleteVirtualDataplane: {
1285
+ parameters: {
1286
+ query?: {
1287
+ /**
1288
+ * @description Archive the virtual data plane even when it still has active workspaces, archiving
1289
+ * those workspaces and their projects too. Without it, such a request fails with a 409
1290
+ * and no changes are made.
1291
+ */
1292
+ dangerously_delete_child_scopes?: boolean;
1293
+ };
1294
+ header?: never;
1295
+ path: {
1296
+ /** @description The unique identifier of the virtual data plane to delete */
1297
+ virtual_dataplane_id: string;
1298
+ };
1299
+ cookie?: never;
1300
+ };
1301
+ requestBody?: never;
1302
+ responses: {
1303
+ /** @description Virtual data plane deleted successfully */
1304
+ 200: {
1305
+ headers: {
1306
+ [name: string]: unknown;
1307
+ };
1308
+ content: {
1309
+ 'application/json': components['schemas']['DeleteVirtualDataplaneResponse'];
1310
+ };
1311
+ };
1312
+ /** @description `dangerously_delete_child_scopes` is not `true` or `false` */
1313
+ 400: {
1314
+ headers: {
1315
+ [name: string]: unknown;
1316
+ };
1317
+ content?: never;
1318
+ };
1319
+ /** @description Virtual data plane not found, or the caller may not delete it, or this deployment assigns virtual data planes automatically. The response does not say which. */
1320
+ 404: {
1321
+ headers: {
1322
+ [name: string]: unknown;
1323
+ };
1324
+ content?: never;
1325
+ };
1326
+ /** @description The virtual data plane still has active workspaces and `dangerously_delete_child_scopes` was not set */
1327
+ 409: {
1328
+ headers: {
1329
+ [name: string]: unknown;
1330
+ };
1331
+ content?: never;
1332
+ };
1333
+ };
1334
+ };
671
1335
  }
672
1336
  //# sourceMappingURL=types.d.ts.map