@boatdev/sdk 1.0.1 → 1.1.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.
@@ -29,6 +29,7 @@ import { CreateSandboxResponseFromJSON, } from '../models/CreateSandboxResponse'
29
29
  import { CreateScopedApiKeyRequestToJSON, } from '../models/CreateScopedApiKeyRequest';
30
30
  import { DataRetentionPolicyResponseFromJSON, } from '../models/DataRetentionPolicyResponse';
31
31
  import { DataRetentionUpdateRequestToJSON, } from '../models/DataRetentionUpdateRequest';
32
+ import { DeletionOperationListResponseFromJSON, } from '../models/DeletionOperationListResponse';
32
33
  import { DeletionOperationResponseFromJSON, } from '../models/DeletionOperationResponse';
33
34
  import { DesktopRequestToJSON, } from '../models/DesktopRequest';
34
35
  import { DesktopResponseFromJSON, } from '../models/DesktopResponse';
@@ -91,7 +92,8 @@ export class BoatApi extends runtime.BaseAPI {
91
92
  /**
92
93
  * Creates request options for addEnvironmentRepo without sending the request
93
94
  */
94
- async addEnvironmentRepoRequestOpts(requestParameters) {
95
+ async addEnvironmentRepoRequestOpts(input) {
96
+ const requestParameters = runtime.unflattenBody(input, 'addEnvironmentRepoRequest', ['environmentId'], []);
95
97
  if (requestParameters['environmentId'] == null) {
96
98
  throw new runtime.RequiredError('environmentId', 'Required parameter "environmentId" was null or undefined when calling addEnvironmentRepo().');
97
99
  }
@@ -264,7 +266,8 @@ export class BoatApi extends runtime.BaseAPI {
264
266
  /**
265
267
  * Creates request options for command without sending the request
266
268
  */
267
- async commandRequestOpts(requestParameters) {
269
+ async commandRequestOpts(input) {
270
+ const requestParameters = runtime.unflattenBody(input, 'commandRequest', ['sandboxId'], []);
268
271
  if (requestParameters['sandboxId'] == null) {
269
272
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling command().');
270
273
  }
@@ -400,7 +403,8 @@ export class BoatApi extends runtime.BaseAPI {
400
403
  /**
401
404
  * Creates request options for create without sending the request
402
405
  */
403
- async createRequestOpts(requestParameters) {
406
+ async createRequestOpts(input) {
407
+ const requestParameters = runtime.unflattenBody(input, 'createSandboxRequest', ['idempotencyKey', 'org', 'xBoatOrg'], ['org']);
404
408
  const queryParameters = {};
405
409
  if (requestParameters['org'] != null) {
406
410
  queryParameters['org'] = requestParameters['org'];
@@ -449,7 +453,8 @@ export class BoatApi extends runtime.BaseAPI {
449
453
  /**
450
454
  * Creates request options for createEnvironment without sending the request
451
455
  */
452
- async createEnvironmentRequestOpts(requestParameters) {
456
+ async createEnvironmentRequestOpts(input) {
457
+ const requestParameters = runtime.unflattenBody(input, 'createSandboxEnvironmentRequest', [], []);
453
458
  if (requestParameters['createSandboxEnvironmentRequest'] == null) {
454
459
  throw new runtime.RequiredError('createSandboxEnvironmentRequest', 'Required parameter "createSandboxEnvironmentRequest" was null or undefined when calling createEnvironment().');
455
460
  }
@@ -492,7 +497,8 @@ export class BoatApi extends runtime.BaseAPI {
492
497
  /**
493
498
  * Creates request options for createScopedApiKey without sending the request
494
499
  */
495
- async createScopedApiKeyRequestOpts(requestParameters) {
500
+ async createScopedApiKeyRequestOpts(input) {
501
+ const requestParameters = runtime.unflattenBody(input, 'createScopedApiKeyRequest', [], []);
496
502
  if (requestParameters['createScopedApiKeyRequest'] == null) {
497
503
  throw new runtime.RequiredError('createScopedApiKeyRequest', 'Required parameter "createScopedApiKeyRequest" was null or undefined when calling createScopedApiKey().');
498
504
  }
@@ -535,7 +541,8 @@ export class BoatApi extends runtime.BaseAPI {
535
541
  /**
536
542
  * Creates request options for createWebhook without sending the request
537
543
  */
538
- async createWebhookRequestOpts(requestParameters) {
544
+ async createWebhookRequestOpts(input) {
545
+ const requestParameters = runtime.unflattenBody(input, 'webhookCreateRequest', [], []);
539
546
  if (requestParameters['webhookCreateRequest'] == null) {
540
547
  throw new runtime.RequiredError('webhookCreateRequest', 'Required parameter "webhookCreateRequest" was null or undefined when calling createWebhook().');
541
548
  }
@@ -847,6 +854,54 @@ export class BoatApi extends runtime.BaseAPI {
847
854
  const response = await this.deleteSandboxRaw(requestParameters, initOverrides);
848
855
  return await response.value();
849
856
  }
857
+ /**
858
+ * Creates request options for deleteSandboxSnapshots without sending the request
859
+ */
860
+ async deleteSandboxSnapshotsRequestOpts(requestParameters) {
861
+ if (requestParameters['sandboxId'] == null) {
862
+ throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling deleteSandboxSnapshots().');
863
+ }
864
+ if (requestParameters['xAsciiConfirmDelete'] == null) {
865
+ throw new runtime.RequiredError('xAsciiConfirmDelete', 'Required parameter "xAsciiConfirmDelete" was null or undefined when calling deleteSandboxSnapshots().');
866
+ }
867
+ const queryParameters = {};
868
+ const headerParameters = {};
869
+ if (requestParameters['xAsciiConfirmDelete'] != null) {
870
+ headerParameters['X-Ascii-Confirm-Delete'] = String(requestParameters['xAsciiConfirmDelete']);
871
+ }
872
+ if (this.configuration && this.configuration.accessToken) {
873
+ const token = this.configuration.accessToken;
874
+ const tokenString = await token("BoatBearerAuth", []);
875
+ if (tokenString) {
876
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
877
+ }
878
+ }
879
+ let urlPath = `/sandboxes/{sandboxId}/snapshots`;
880
+ urlPath = urlPath.replace('{sandboxId}', encodeURIComponent(String(requestParameters['sandboxId'])));
881
+ return {
882
+ path: urlPath,
883
+ method: 'DELETE',
884
+ headers: headerParameters,
885
+ query: queryParameters,
886
+ };
887
+ }
888
+ /**
889
+ * Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its named snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
890
+ * Permanently delete all snapshots of a sandbox
891
+ */
892
+ async deleteSandboxSnapshotsRaw(requestParameters, initOverrides) {
893
+ const requestOptions = await this.deleteSandboxSnapshotsRequestOpts(requestParameters);
894
+ const response = await this.request(requestOptions, initOverrides);
895
+ return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationListResponseFromJSON(jsonValue));
896
+ }
897
+ /**
898
+ * Accept irreversible deletion of every unpinned snapshot of this sandbox. The sandbox itself and its named snapshots stay. Snapshots disappear from lists, restores and forks immediately; their stored data is purged in the background. Set `X-Ascii-Confirm-Delete` to the sandbox id.
899
+ * Permanently delete all snapshots of a sandbox
900
+ */
901
+ async deleteSandboxSnapshots(requestParameters, initOverrides) {
902
+ const response = await this.deleteSandboxSnapshotsRaw(requestParameters, initOverrides);
903
+ return await response.value();
904
+ }
850
905
  /**
851
906
  * Creates request options for deleteSnapshot without sending the request
852
907
  */
@@ -879,7 +934,7 @@ export class BoatApi extends runtime.BaseAPI {
879
934
  };
880
935
  }
881
936
  /**
882
- * Accept irreversible background deletion of an unpinned snapshot owned by the authenticated account. Snapshots required by another incremental snapshot or active restore return `409`. Poll the returned operation until `completed`.
937
+ * Accept irreversible deletion of an unpinned snapshot owned by the authenticated account. Any such snapshot is accepted: it disappears from lists, restores and forks immediately, and its stored data is purged in the background once nothing still reads it (see the operation\'s `stage`). `409` only means `X-Ascii-Confirm-Delete` is missing or wrong.
883
938
  * Permanently delete snapshot data
884
939
  */
885
940
  async deleteSnapshotRaw(requestParameters, initOverrides) {
@@ -888,7 +943,7 @@ export class BoatApi extends runtime.BaseAPI {
888
943
  return new runtime.JSONApiResponse(response, (jsonValue) => DeletionOperationResponseFromJSON(jsonValue));
889
944
  }
890
945
  /**
891
- * Accept irreversible background deletion of an unpinned snapshot owned by the authenticated account. Snapshots required by another incremental snapshot or active restore return `409`. Poll the returned operation until `completed`.
946
+ * Accept irreversible deletion of an unpinned snapshot owned by the authenticated account. Any such snapshot is accepted: it disappears from lists, restores and forks immediately, and its stored data is purged in the background once nothing still reads it (see the operation\'s `stage`). `409` only means `X-Ascii-Confirm-Delete` is missing or wrong.
892
947
  * Permanently delete snapshot data
893
948
  */
894
949
  async deleteSnapshot(requestParameters, initOverrides) {
@@ -940,7 +995,8 @@ export class BoatApi extends runtime.BaseAPI {
940
995
  /**
941
996
  * Creates request options for desktop without sending the request
942
997
  */
943
- async desktopRequestOpts(requestParameters) {
998
+ async desktopRequestOpts(input) {
999
+ const requestParameters = runtime.unflattenBody(input, 'desktopRequest', ['sandboxId', 'vnc', 'theme'], []);
944
1000
  if (requestParameters['sandboxId'] == null) {
945
1001
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling desktop().');
946
1002
  }
@@ -1085,7 +1141,8 @@ export class BoatApi extends runtime.BaseAPI {
1085
1141
  /**
1086
1142
  * Creates request options for fork without sending the request
1087
1143
  */
1088
- async forkRequestOpts(requestParameters) {
1144
+ async forkRequestOpts(input) {
1145
+ const requestParameters = runtime.unflattenBody(input, 'forkRequest', ['sandboxId', 'idempotencyKey'], []);
1089
1146
  if (requestParameters['sandboxId'] == null) {
1090
1147
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling fork().');
1091
1148
  }
@@ -1507,7 +1564,8 @@ export class BoatApi extends runtime.BaseAPI {
1507
1564
  /**
1508
1565
  * Creates request options for hostPort without sending the request
1509
1566
  */
1510
- async hostPortRequestOpts(requestParameters) {
1567
+ async hostPortRequestOpts(input) {
1568
+ const requestParameters = runtime.unflattenBody(input, 'hostPortRequest', ['sandboxId'], []);
1511
1569
  if (requestParameters['sandboxId'] == null) {
1512
1570
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling hostPort().');
1513
1571
  }
@@ -1896,7 +1954,8 @@ export class BoatApi extends runtime.BaseAPI {
1896
1954
  /**
1897
1955
  * Creates request options for prompt without sending the request
1898
1956
  */
1899
- async promptRequestOpts(requestParameters) {
1957
+ async promptRequestOpts(input) {
1958
+ const requestParameters = runtime.unflattenBody(input, 'promptRequest', ['sandboxId'], []);
1900
1959
  if (requestParameters['sandboxId'] == null) {
1901
1960
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling prompt().');
1902
1961
  }
@@ -2094,7 +2153,8 @@ export class BoatApi extends runtime.BaseAPI {
2094
2153
  /**
2095
2154
  * Creates request options for resume without sending the request
2096
2155
  */
2097
- async resumeRequestOpts(requestParameters) {
2156
+ async resumeRequestOpts(input) {
2157
+ const requestParameters = runtime.unflattenBody(input, 'resumeRequest', ['sandboxId'], []);
2098
2158
  if (requestParameters['sandboxId'] == null) {
2099
2159
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling resume().');
2100
2160
  }
@@ -2310,7 +2370,8 @@ export class BoatApi extends runtime.BaseAPI {
2310
2370
  /**
2311
2371
  * Creates request options for saveNamedSnapshot without sending the request
2312
2372
  */
2313
- async saveNamedSnapshotRequestOpts(requestParameters) {
2373
+ async saveNamedSnapshotRequestOpts(input) {
2374
+ const requestParameters = runtime.unflattenBody(input, 'namedSnapshotSaveRequest', [], []);
2314
2375
  if (requestParameters['namedSnapshotSaveRequest'] == null) {
2315
2376
  throw new runtime.RequiredError('namedSnapshotSaveRequest', 'Required parameter "namedSnapshotSaveRequest" was null or undefined when calling saveNamedSnapshot().');
2316
2377
  }
@@ -2391,7 +2452,8 @@ export class BoatApi extends runtime.BaseAPI {
2391
2452
  /**
2392
2453
  * Creates request options for selectRepo without sending the request
2393
2454
  */
2394
- async selectRepoRequestOpts(requestParameters) {
2455
+ async selectRepoRequestOpts(input) {
2456
+ const requestParameters = runtime.unflattenBody(input, 'repoSelectionRequest', [], []);
2395
2457
  if (requestParameters['repoSelectionRequest'] == null) {
2396
2458
  throw new runtime.RequiredError('repoSelectionRequest', 'Required parameter "repoSelectionRequest" was null or undefined when calling selectRepo().');
2397
2459
  }
@@ -2434,7 +2496,8 @@ export class BoatApi extends runtime.BaseAPI {
2434
2496
  /**
2435
2497
  * Creates request options for setActiveOrganization without sending the request
2436
2498
  */
2437
- async setActiveOrganizationRequestOpts(requestParameters) {
2499
+ async setActiveOrganizationRequestOpts(input) {
2500
+ const requestParameters = runtime.unflattenBody(input, 'activeOrgUpdateRequest', [], []);
2438
2501
  if (requestParameters['activeOrgUpdateRequest'] == null) {
2439
2502
  throw new runtime.RequiredError('activeOrgUpdateRequest', 'Required parameter "activeOrgUpdateRequest" was null or undefined when calling setActiveOrganization().');
2440
2503
  }
@@ -2477,7 +2540,8 @@ export class BoatApi extends runtime.BaseAPI {
2477
2540
  /**
2478
2541
  * Creates request options for setEnvironmentSecretFile without sending the request
2479
2542
  */
2480
- async setEnvironmentSecretFileRequestOpts(requestParameters) {
2543
+ async setEnvironmentSecretFileRequestOpts(input) {
2544
+ const requestParameters = runtime.unflattenBody(input, 'setEnvironmentSecretFileRequest', ['environmentId'], []);
2481
2545
  if (requestParameters['environmentId'] == null) {
2482
2546
  throw new runtime.RequiredError('environmentId', 'Required parameter "environmentId" was null or undefined when calling setEnvironmentSecretFile().');
2483
2547
  }
@@ -2524,7 +2588,8 @@ export class BoatApi extends runtime.BaseAPI {
2524
2588
  /**
2525
2589
  * Creates request options for setEnvironmentVar without sending the request
2526
2590
  */
2527
- async setEnvironmentVarRequestOpts(requestParameters) {
2591
+ async setEnvironmentVarRequestOpts(input) {
2592
+ const requestParameters = runtime.unflattenBody(input, 'setEnvironmentVarRequest', ['environmentId', 'key'], []);
2528
2593
  if (requestParameters['environmentId'] == null) {
2529
2594
  throw new runtime.RequiredError('environmentId', 'Required parameter "environmentId" was null or undefined when calling setEnvironmentVar().');
2530
2595
  }
@@ -2575,7 +2640,8 @@ export class BoatApi extends runtime.BaseAPI {
2575
2640
  /**
2576
2641
  * Creates request options for sshKey without sending the request
2577
2642
  */
2578
- async sshKeyRequestOpts(requestParameters) {
2643
+ async sshKeyRequestOpts(input) {
2644
+ const requestParameters = runtime.unflattenBody(input, 'sshKeyRequest', ['sandboxId'], []);
2579
2645
  if (requestParameters['sandboxId'] == null) {
2580
2646
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling sshKey().');
2581
2647
  }
@@ -2622,7 +2688,8 @@ export class BoatApi extends runtime.BaseAPI {
2622
2688
  /**
2623
2689
  * Creates request options for steer without sending the request
2624
2690
  */
2625
- async steerRequestOpts(requestParameters) {
2691
+ async steerRequestOpts(input) {
2692
+ const requestParameters = runtime.unflattenBody(input, 'steerRequest', ['sandboxId', 'conversation'], ['conversation']);
2626
2693
  if (requestParameters['sandboxId'] == null) {
2627
2694
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling steer().');
2628
2695
  }
@@ -2672,7 +2739,8 @@ export class BoatApi extends runtime.BaseAPI {
2672
2739
  /**
2673
2740
  * Creates request options for stop without sending the request
2674
2741
  */
2675
- async stopRequestOpts(requestParameters) {
2742
+ async stopRequestOpts(input) {
2743
+ const requestParameters = runtime.unflattenBody(input, 'stopRequest', ['sandboxId'], []);
2676
2744
  if (requestParameters['sandboxId'] == null) {
2677
2745
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling stop().');
2678
2746
  }
@@ -2716,7 +2784,8 @@ export class BoatApi extends runtime.BaseAPI {
2716
2784
  /**
2717
2785
  * Creates request options for update without sending the request
2718
2786
  */
2719
- async updateRequestOpts(requestParameters) {
2787
+ async updateRequestOpts(input) {
2788
+ const requestParameters = runtime.unflattenBody(input, 'updateSandboxRequest', ['sandboxId'], []);
2720
2789
  if (requestParameters['sandboxId'] == null) {
2721
2790
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling update().');
2722
2791
  }
@@ -2761,7 +2830,8 @@ export class BoatApi extends runtime.BaseAPI {
2761
2830
  /**
2762
2831
  * Creates request options for updateDataRetention without sending the request
2763
2832
  */
2764
- async updateDataRetentionRequestOpts(requestParameters) {
2833
+ async updateDataRetentionRequestOpts(input) {
2834
+ const requestParameters = runtime.unflattenBody(input, 'dataRetentionUpdateRequest', [], []);
2765
2835
  if (requestParameters['dataRetentionUpdateRequest'] == null) {
2766
2836
  throw new runtime.RequiredError('dataRetentionUpdateRequest', 'Required parameter "dataRetentionUpdateRequest" was null or undefined when calling updateDataRetention().');
2767
2837
  }
@@ -2804,7 +2874,8 @@ export class BoatApi extends runtime.BaseAPI {
2804
2874
  /**
2805
2875
  * Creates request options for updateEnvironment without sending the request
2806
2876
  */
2807
- async updateEnvironmentRequestOpts(requestParameters) {
2877
+ async updateEnvironmentRequestOpts(input) {
2878
+ const requestParameters = runtime.unflattenBody(input, 'updateSandboxEnvironmentRequest', ['environmentId'], []);
2808
2879
  if (requestParameters['environmentId'] == null) {
2809
2880
  throw new runtime.RequiredError('environmentId', 'Required parameter "environmentId" was null or undefined when calling updateEnvironment().');
2810
2881
  }
@@ -2851,7 +2922,8 @@ export class BoatApi extends runtime.BaseAPI {
2851
2922
  /**
2852
2923
  * Creates request options for updateSecrets without sending the request
2853
2924
  */
2854
- async updateSecretsRequestOpts(requestParameters) {
2925
+ async updateSecretsRequestOpts(input) {
2926
+ const requestParameters = runtime.unflattenBody(input, 'secretsUpdateRequest', [], []);
2855
2927
  if (requestParameters['secretsUpdateRequest'] == null) {
2856
2928
  throw new runtime.RequiredError('secretsUpdateRequest', 'Required parameter "secretsUpdateRequest" was null or undefined when calling updateSecrets().');
2857
2929
  }
@@ -2892,7 +2964,8 @@ export class BoatApi extends runtime.BaseAPI {
2892
2964
  /**
2893
2965
  * Creates request options for updateWebhook without sending the request
2894
2966
  */
2895
- async updateWebhookRequestOpts(requestParameters) {
2967
+ async updateWebhookRequestOpts(input) {
2968
+ const requestParameters = runtime.unflattenBody(input, 'webhookUpdateRequest', ['webhookId'], []);
2896
2969
  if (requestParameters['webhookId'] == null) {
2897
2970
  throw new runtime.RequiredError('webhookId', 'Required parameter "webhookId" was null or undefined when calling updateWebhook().');
2898
2971
  }
@@ -2939,7 +3012,8 @@ export class BoatApi extends runtime.BaseAPI {
2939
3012
  /**
2940
3013
  * Creates request options for upgradeEnvironment without sending the request
2941
3014
  */
2942
- async upgradeEnvironmentRequestOpts(requestParameters) {
3015
+ async upgradeEnvironmentRequestOpts(input) {
3016
+ const requestParameters = runtime.unflattenBody(input, 'upgradeSandboxEnvironmentRequest', ['environmentId'], []);
2943
3017
  if (requestParameters['environmentId'] == null) {
2944
3018
  throw new runtime.RequiredError('environmentId', 'Required parameter "environmentId" was null or undefined when calling upgradeEnvironment().');
2945
3019
  }
@@ -3031,7 +3105,8 @@ export class BoatApi extends runtime.BaseAPI {
3031
3105
  /**
3032
3106
  * Creates request options for writeFile without sending the request
3033
3107
  */
3034
- async writeFileRequestOpts(requestParameters) {
3108
+ async writeFileRequestOpts(input) {
3109
+ const requestParameters = runtime.unflattenBody(input, 'fileWriteRequest', ['sandboxId'], []);
3035
3110
  if (requestParameters['sandboxId'] == null) {
3036
3111
  throw new runtime.RequiredError('sandboxId', 'Required parameter "sandboxId" was null or undefined when calling writeFile().');
3037
3112
  }
@@ -45,6 +45,18 @@ export interface DeletionOperation {
45
45
  * @memberof DeletionOperation
46
46
  */
47
47
  status: DeletionOperationStatusEnum;
48
+ /**
49
+ * What the background purge is doing. The target is already gone from every list, restore and fork once the operation exists. `waiting_for_uploads`: stored data is erased once the last upload URL issued for it expires (`expectedBy`). `kept_for_newer_snapshots`: a newer snapshot you kept is built on this one; its data goes when they go. `waiting_for_restore`: a sandbox is still restoring from it. `retrying`: a transient fault, retried automatically.
50
+ * @type {DeletionOperationStageEnum}
51
+ * @memberof DeletionOperation
52
+ */
53
+ stage?: DeletionOperationStageEnum;
54
+ /**
55
+ * When `waiting_for_uploads` ends.
56
+ * @type {Date}
57
+ * @memberof DeletionOperation
58
+ */
59
+ expectedBy?: Date | null;
48
60
  /**
49
61
  *
50
62
  * @type {number}
@@ -91,6 +103,18 @@ export declare const DeletionOperationStatusEnum: {
91
103
  readonly Completed: 'completed';
92
104
  };
93
105
  export type DeletionOperationStatusEnum = typeof DeletionOperationStatusEnum[keyof typeof DeletionOperationStatusEnum];
106
+ /**
107
+ * @export
108
+ */
109
+ export declare const DeletionOperationStageEnum: {
110
+ readonly Removing: 'removing';
111
+ readonly WaitingForUploads: 'waiting_for_uploads';
112
+ readonly KeptForNewerSnapshots: 'kept_for_newer_snapshots';
113
+ readonly WaitingForRestore: 'waiting_for_restore';
114
+ readonly Retrying: 'retrying';
115
+ readonly Completed: 'completed';
116
+ };
117
+ export type DeletionOperationStageEnum = typeof DeletionOperationStageEnum[keyof typeof DeletionOperationStageEnum];
94
118
  /**
95
119
  * Check if a given object implements the DeletionOperation interface.
96
120
  */
@@ -35,6 +35,17 @@ export const DeletionOperationStatusEnum = {
35
35
  Blocked: 'blocked',
36
36
  Completed: 'completed'
37
37
  };
38
+ /**
39
+ * @export
40
+ */
41
+ export const DeletionOperationStageEnum = {
42
+ Removing: 'removing',
43
+ WaitingForUploads: 'waiting_for_uploads',
44
+ KeptForNewerSnapshots: 'kept_for_newer_snapshots',
45
+ WaitingForRestore: 'waiting_for_restore',
46
+ Retrying: 'retrying',
47
+ Completed: 'completed'
48
+ };
38
49
  /**
39
50
  * Check if a given object implements the DeletionOperation interface.
40
51
  */
@@ -70,6 +81,8 @@ export function DeletionOperationFromJSONTyped(json, ignoreDiscriminator) {
70
81
  'targetId': json['targetId'],
71
82
  'reason': json['reason'],
72
83
  'status': json['status'],
84
+ 'stage': json['stage'] == null ? undefined : json['stage'],
85
+ 'expectedBy': json['expectedBy'] == null ? undefined : (new Date(json['expectedBy'])),
73
86
  'attemptCount': json['attemptCount'],
74
87
  'requestedAt': (new Date(json['requestedAt'])),
75
88
  'completedAt': (json['completedAt'] == null ? null : new Date(json['completedAt'])),
@@ -88,6 +101,8 @@ export function DeletionOperationToJSONTyped(value, ignoreDiscriminator = false)
88
101
  'targetId': value['targetId'],
89
102
  'reason': value['reason'],
90
103
  'status': value['status'],
104
+ 'stage': value['stage'],
105
+ 'expectedBy': value['expectedBy'] == null ? value['expectedBy'] : value['expectedBy'].toISOString(),
91
106
  'attemptCount': value['attemptCount'],
92
107
  'requestedAt': value['requestedAt'].toISOString(),
93
108
  'completedAt': value['completedAt'] == null ? value['completedAt'] : value['completedAt'].toISOString(),
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Boat Public API v1
3
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ *
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+ import type { DeletionOperation } from './DeletionOperation';
13
+ /**
14
+ *
15
+ * @export
16
+ * @interface DeletionOperationListResponse
17
+ */
18
+ export interface DeletionOperationListResponse {
19
+ /**
20
+ *
21
+ * @type {boolean}
22
+ * @memberof DeletionOperationListResponse
23
+ */
24
+ ok: boolean;
25
+ /**
26
+ *
27
+ * @type {DeletionOperationListResponseTypeEnum}
28
+ * @memberof DeletionOperationListResponse
29
+ */
30
+ type: DeletionOperationListResponseTypeEnum;
31
+ /**
32
+ *
33
+ * @type {Array<DeletionOperation>}
34
+ * @memberof DeletionOperationListResponse
35
+ */
36
+ operations: Array<DeletionOperation>;
37
+ }
38
+ /**
39
+ * @export
40
+ */
41
+ export declare const DeletionOperationListResponseTypeEnum: {
42
+ readonly SnapshotDeleting: 'snapshot.deleting';
43
+ };
44
+ export type DeletionOperationListResponseTypeEnum = typeof DeletionOperationListResponseTypeEnum[keyof typeof DeletionOperationListResponseTypeEnum];
45
+ /**
46
+ * Check if a given object implements the DeletionOperationListResponse interface.
47
+ */
48
+ export declare function instanceOfDeletionOperationListResponse(value: object): value is DeletionOperationListResponse;
49
+ export declare function DeletionOperationListResponseFromJSON(json: any): DeletionOperationListResponse;
50
+ export declare function DeletionOperationListResponseFromJSONTyped(json: any, ignoreDiscriminator: boolean): DeletionOperationListResponse;
51
+ export declare function DeletionOperationListResponseToJSON(json: any): DeletionOperationListResponse;
52
+ export declare function DeletionOperationListResponseToJSONTyped(value?: DeletionOperationListResponse | null, ignoreDiscriminator?: boolean): any;
@@ -0,0 +1,58 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * Boat Public API v1
5
+ * Public JSON API for creating, operating, prompting, observing, and exposing sandboxes from backend services, CI jobs, hosted workers, and Boat automation products. The v1 reference intentionally documents the developer integration surface only. Dashboard billing actions are not part of v1.
6
+ *
7
+ * The version of the OpenAPI document: 1.0.0
8
+ *
9
+ *
10
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
11
+ * https://openapi-generator.tech
12
+ * Do not edit the class manually.
13
+ */
14
+ import { DeletionOperationFromJSON, DeletionOperationToJSON, } from './DeletionOperation';
15
+ /**
16
+ * @export
17
+ */
18
+ export const DeletionOperationListResponseTypeEnum = {
19
+ SnapshotDeleting: 'snapshot.deleting'
20
+ };
21
+ /**
22
+ * Check if a given object implements the DeletionOperationListResponse interface.
23
+ */
24
+ export function instanceOfDeletionOperationListResponse(value) {
25
+ if (!('ok' in value) || value['ok'] === undefined)
26
+ return false;
27
+ if (!('type' in value) || value['type'] === undefined)
28
+ return false;
29
+ if (!('operations' in value) || value['operations'] === undefined)
30
+ return false;
31
+ return true;
32
+ }
33
+ export function DeletionOperationListResponseFromJSON(json) {
34
+ return DeletionOperationListResponseFromJSONTyped(json, false);
35
+ }
36
+ export function DeletionOperationListResponseFromJSONTyped(json, ignoreDiscriminator) {
37
+ if (json == null) {
38
+ return json;
39
+ }
40
+ return {
41
+ 'ok': json['ok'],
42
+ 'type': json['type'],
43
+ 'operations': (json['operations'].map(DeletionOperationFromJSON)),
44
+ };
45
+ }
46
+ export function DeletionOperationListResponseToJSON(json) {
47
+ return DeletionOperationListResponseToJSONTyped(json, false);
48
+ }
49
+ export function DeletionOperationListResponseToJSONTyped(value, ignoreDiscriminator = false) {
50
+ if (value == null) {
51
+ return value;
52
+ }
53
+ return {
54
+ 'ok': value['ok'],
55
+ 'type': value['type'],
56
+ 'operations': (value['operations'].map(DeletionOperationToJSON)),
57
+ };
58
+ }
@@ -31,6 +31,7 @@ export * from './CreateScopedApiKeyRequest';
31
31
  export * from './DataRetentionPolicyResponse';
32
32
  export * from './DataRetentionUpdateRequest';
33
33
  export * from './DeletionOperation';
34
+ export * from './DeletionOperationListResponse';
34
35
  export * from './DeletionOperationResponse';
35
36
  export * from './DesktopRequest';
36
37
  export * from './DesktopResponse';
@@ -33,6 +33,7 @@ export * from './CreateScopedApiKeyRequest';
33
33
  export * from './DataRetentionPolicyResponse';
34
34
  export * from './DataRetentionUpdateRequest';
35
35
  export * from './DeletionOperation';
36
+ export * from './DeletionOperationListResponse';
36
37
  export * from './DeletionOperationResponse';
37
38
  export * from './DesktopRequest';
38
39
  export * from './DesktopResponse';
@@ -182,3 +182,11 @@ export declare class TextApiResponse {
182
182
  constructor(raw: Response);
183
183
  value(): Promise<string>;
184
184
  }
185
+ /**
186
+ * A body-taking call's parameters with the body's fields inline, next to the
187
+ * path/query/header parameters: `fork({ sandboxId, type: 'small' })` is
188
+ * `fork({ sandboxId, forkRequest: { type: 'small' } })`. Both shapes are accepted.
189
+ */
190
+ export type FlatBody<R, K extends keyof R> = Omit<R, K> & NonNullable<R[K]>;
191
+ /** Turns either call shape into the wrapped one the generated code sends. */
192
+ export declare function unflattenBody<R>(input: object, bodyKey: string, paramKeys: string[], sharedKeys: string[]): R;
@@ -335,3 +335,21 @@ export class TextApiResponse {
335
335
  }
336
336
  ;
337
337
  }
338
+ /** Turns either call shape into the wrapped one the generated code sends. */
339
+ export function unflattenBody(input, bodyKey, paramKeys, sharedKeys) {
340
+ if (input == null || bodyKey in input)
341
+ return input;
342
+ const params = {};
343
+ const body = {};
344
+ for (const [k, v] of Object.entries(input)) {
345
+ const isParam = paramKeys.indexOf(k) !== -1;
346
+ if (isParam)
347
+ params[k] = v;
348
+ if (!isParam || sharedKeys.indexOf(k) !== -1)
349
+ body[k] = v;
350
+ }
351
+ // No body field given: send no body, exactly like the wrapped call with the key omitted.
352
+ if (Object.keys(body).length > 0)
353
+ params[bodyKey] = body;
354
+ return params;
355
+ }
@@ -45,6 +45,18 @@ export interface DeletionOperation {
45
45
  * @memberof DeletionOperation
46
46
  */
47
47
  status: DeletionOperationStatusEnum;
48
+ /**
49
+ * What the background purge is doing. The target is already gone from every list, restore and fork once the operation exists. `waiting_for_uploads`: stored data is erased once the last upload URL issued for it expires (`expectedBy`). `kept_for_newer_snapshots`: a newer snapshot you kept is built on this one; its data goes when they go. `waiting_for_restore`: a sandbox is still restoring from it. `retrying`: a transient fault, retried automatically.
50
+ * @type {DeletionOperationStageEnum}
51
+ * @memberof DeletionOperation
52
+ */
53
+ stage?: DeletionOperationStageEnum;
54
+ /**
55
+ * When `waiting_for_uploads` ends.
56
+ * @type {Date}
57
+ * @memberof DeletionOperation
58
+ */
59
+ expectedBy?: Date | null;
48
60
  /**
49
61
  *
50
62
  * @type {number}
@@ -91,6 +103,18 @@ export declare const DeletionOperationStatusEnum: {
91
103
  readonly Completed: 'completed';
92
104
  };
93
105
  export type DeletionOperationStatusEnum = typeof DeletionOperationStatusEnum[keyof typeof DeletionOperationStatusEnum];
106
+ /**
107
+ * @export
108
+ */
109
+ export declare const DeletionOperationStageEnum: {
110
+ readonly Removing: 'removing';
111
+ readonly WaitingForUploads: 'waiting_for_uploads';
112
+ readonly KeptForNewerSnapshots: 'kept_for_newer_snapshots';
113
+ readonly WaitingForRestore: 'waiting_for_restore';
114
+ readonly Retrying: 'retrying';
115
+ readonly Completed: 'completed';
116
+ };
117
+ export type DeletionOperationStageEnum = typeof DeletionOperationStageEnum[keyof typeof DeletionOperationStageEnum];
94
118
  /**
95
119
  * Check if a given object implements the DeletionOperation interface.
96
120
  */
@@ -13,7 +13,7 @@
13
13
  * Do not edit the class manually.
14
14
  */
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.DeletionOperationStatusEnum = exports.DeletionOperationReasonEnum = exports.DeletionOperationKindEnum = void 0;
16
+ exports.DeletionOperationStageEnum = exports.DeletionOperationStatusEnum = exports.DeletionOperationReasonEnum = exports.DeletionOperationKindEnum = void 0;
17
17
  exports.instanceOfDeletionOperation = instanceOfDeletionOperation;
18
18
  exports.DeletionOperationFromJSON = DeletionOperationFromJSON;
19
19
  exports.DeletionOperationFromJSONTyped = DeletionOperationFromJSONTyped;
@@ -43,6 +43,17 @@ exports.DeletionOperationStatusEnum = {
43
43
  Blocked: 'blocked',
44
44
  Completed: 'completed'
45
45
  };
46
+ /**
47
+ * @export
48
+ */
49
+ exports.DeletionOperationStageEnum = {
50
+ Removing: 'removing',
51
+ WaitingForUploads: 'waiting_for_uploads',
52
+ KeptForNewerSnapshots: 'kept_for_newer_snapshots',
53
+ WaitingForRestore: 'waiting_for_restore',
54
+ Retrying: 'retrying',
55
+ Completed: 'completed'
56
+ };
46
57
  /**
47
58
  * Check if a given object implements the DeletionOperation interface.
48
59
  */
@@ -78,6 +89,8 @@ function DeletionOperationFromJSONTyped(json, ignoreDiscriminator) {
78
89
  'targetId': json['targetId'],
79
90
  'reason': json['reason'],
80
91
  'status': json['status'],
92
+ 'stage': json['stage'] == null ? undefined : json['stage'],
93
+ 'expectedBy': json['expectedBy'] == null ? undefined : (new Date(json['expectedBy'])),
81
94
  'attemptCount': json['attemptCount'],
82
95
  'requestedAt': (new Date(json['requestedAt'])),
83
96
  'completedAt': (json['completedAt'] == null ? null : new Date(json['completedAt'])),
@@ -96,6 +109,8 @@ function DeletionOperationToJSONTyped(value, ignoreDiscriminator = false) {
96
109
  'targetId': value['targetId'],
97
110
  'reason': value['reason'],
98
111
  'status': value['status'],
112
+ 'stage': value['stage'],
113
+ 'expectedBy': value['expectedBy'] == null ? value['expectedBy'] : value['expectedBy'].toISOString(),
99
114
  'attemptCount': value['attemptCount'],
100
115
  'requestedAt': value['requestedAt'].toISOString(),
101
116
  'completedAt': value['completedAt'] == null ? value['completedAt'] : value['completedAt'].toISOString(),