@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.
- package/.openapi-generator/FILES +2 -0
- package/README.md +8 -26
- package/dist/apis/BoatApi.d.ts +99 -80
- package/dist/apis/BoatApi.js +103 -28
- package/dist/esm/apis/BoatApi.d.ts +99 -80
- package/dist/esm/apis/BoatApi.js +103 -28
- package/dist/esm/models/DeletionOperation.d.ts +24 -0
- package/dist/esm/models/DeletionOperation.js +15 -0
- package/dist/esm/models/DeletionOperationListResponse.d.ts +52 -0
- package/dist/esm/models/DeletionOperationListResponse.js +58 -0
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.js +1 -0
- package/dist/esm/runtime.d.ts +8 -0
- package/dist/esm/runtime.js +18 -0
- package/dist/models/DeletionOperation.d.ts +24 -0
- package/dist/models/DeletionOperation.js +16 -1
- package/dist/models/DeletionOperationListResponse.d.ts +52 -0
- package/dist/models/DeletionOperationListResponse.js +66 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.js +1 -0
- package/dist/runtime.d.ts +8 -0
- package/dist/runtime.js +19 -0
- package/docs/BoatApi.md +80 -1
- package/docs/DeletionOperation.md +4 -0
- package/docs/DeletionOperationListResponse.md +36 -0
- package/package.json +1 -1
- package/src/apis/BoatApi.ts +182 -80
- package/src/models/DeletionOperation.ts +29 -0
- package/src/models/DeletionOperationListResponse.ts +102 -0
- package/src/models/index.ts +1 -0
- package/src/runtime.ts +23 -0
package/dist/esm/apis/BoatApi.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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';
|
package/dist/esm/models/index.js
CHANGED
|
@@ -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';
|
package/dist/esm/runtime.d.ts
CHANGED
|
@@ -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;
|
package/dist/esm/runtime.js
CHANGED
|
@@ -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(),
|