@contentchef/contentchef-types 10.1.0-alpha.8 → 10.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.
@@ -77,8 +77,8 @@ export type ContentExportImportError = {
77
77
  };
78
78
  /**
79
79
  * This type represent one of the files produced by a content export, one per exported content
80
- * definition. Files are appended as soon as they are uploaded, so a still `processing` export
81
- * already lists the files that can be downloaded
80
+ * definition. The whole list is written when the export completes, so a `processing` export
81
+ * exposes no file yet
82
82
  */
83
83
  export type ContentExportFile = {
84
84
  /**
@@ -125,8 +125,8 @@ export type ContentExportRequestResponse = {
125
125
  */
126
126
  csvSeparator: string;
127
127
  /**
128
- * The files produced so far, one per exported content definition.
129
- * Null until the export starts producing them
128
+ * The produced files, one per exported content definition. Empty until [[status]] is
129
+ * `completed`, the whole list is written in one go when the export finalizes
130
130
  */
131
131
  files: ContentExportFile[] | null;
132
132
  /**
@@ -158,10 +158,10 @@ export type CreateContentExportRequestRequest = {
158
158
  /**
159
159
  * The filters selecting the contents to export, the same ones accepted by
160
160
  * [[ContentFacade.list]]. When omitted every unarchived content of the space is exported.
161
- * Archived contents cannot be imported back, so [[ListContentsFilters.contentsStatus]]
162
- * defaults to `unarchived`
161
+ * [[ListContentsFilters.contentsStatus]] cannot be given: archived contents cannot be
162
+ * imported back, so an export always covers the unarchived ones only
163
163
  */
164
- filters?: Partial<ListContentsFilters>;
164
+ filters?: Omit<Partial<ListContentsFilters>, 'contentsStatus'>;
165
165
  /**
166
166
  * The format to write the export files in, defaults to `json`
167
167
  */
@@ -244,6 +244,11 @@ export type ContentImportOptions = {
244
244
  * The separator the imported csv file is read with. Meaningless when [[format]] is `json`
245
245
  */
246
246
  csvSeparator?: string;
247
+ /**
248
+ * Whether payloads violating their content definition schema are applied anyway, with the
249
+ * violations logged instead of failing the row
250
+ */
251
+ skipPayloadValidation?: boolean;
247
252
  };
248
253
  /**
249
254
  * This type represent the model of a content import request
@@ -330,6 +335,12 @@ export type CreateContentImportRequestRequest = {
330
335
  * Ignored when [[format]] is `json`
331
336
  */
332
337
  csvSeparator?: string;
338
+ /**
339
+ * Whether to apply payloads that violate their content definition schema, recording the
340
+ * violations instead of failing the row. Defaults to false.
341
+ * [[ContentExportImportFacade.retryImport]] can turn it on for an already uploaded file
342
+ */
343
+ skipPayloadValidation?: boolean;
333
344
  };
334
345
  };
335
346
  /**
@@ -355,6 +366,46 @@ export type CreateContentImportRequestResponse = {
355
366
  */
356
367
  expiresInSeconds: number;
357
368
  };
369
+ /**
370
+ * This type represent the data needed to make a retry content import API request
371
+ */
372
+ export type RetryContentImportRequest = {
373
+ /**
374
+ * The unique id of the import request to re-run the file of. It must have been uploaded:
375
+ * an import still `awaiting_upload` has nothing to retry
376
+ */
377
+ importRequestId: ContentImportRequestId;
378
+ /**
379
+ * Whether to apply payloads that violate their content definition schema, recording the
380
+ * violations instead of failing the row. Use it to push through a run whose validation
381
+ * failures have been judged acceptable. Defaults to false
382
+ */
383
+ skipPayloadValidation?: boolean;
384
+ };
385
+ /**
386
+ * This type represent the response of a retry content import API request.
387
+ * A retry is a new import request re-running the whole original file, not only its failed rows:
388
+ * imports are update only and idempotent. Nothing has to be uploaded again, the file is copied
389
+ * server side, and that copy is what starts the new import
390
+ */
391
+ export type RetryContentImportResponse = {
392
+ /**
393
+ * The unique id of the created import request, the one to follow from now on
394
+ */
395
+ importRequestId: ContentImportRequestId;
396
+ /**
397
+ * The unique id of the import request being retried
398
+ */
399
+ retryOf: ContentImportRequestId;
400
+ /**
401
+ * The storage key the original file has been copied to
402
+ */
403
+ s3Key: string;
404
+ /**
405
+ * Whether the retry applies payloads violating their content definition schema
406
+ */
407
+ skipPayloadValidation: boolean;
408
+ };
358
409
  /**
359
410
  * This type represent the data needed to make a list content import requests API request
360
411
  */
@@ -431,7 +482,8 @@ export type ContentImportRequestItemResponse = {
431
482
  */
432
483
  locale: string | null;
433
484
  /**
434
- * What the import did to the content, null when the row failed
485
+ * What the import did to the content. Null when the row failed, and on a translation row
486
+ * that carried nothing to apply, which succeeds as a no-op
435
487
  */
436
488
  action: ContentImportItemAction | null;
437
489
  /**
@@ -240,3 +240,107 @@ export type UpdateSpacePublishingLocalesRequest = {
240
240
  * Return type of `updateSpacePublishingLocales`
241
241
  */
242
242
  export type UpdateSpacePublishingLocalesResponse = SpaceLocale;
243
+ /**
244
+ * This enum represent the lifecycle of a space deletion. A freshly requested deletion is
245
+ * `requested` and stays revocable until [[SpaceDeletionResponse.deleteAfter]], after which it
246
+ * becomes `running` and can no longer be withdrawn
247
+ */
248
+ export declare enum SpaceDeletionStatus {
249
+ /**
250
+ * Asked for, inside the revocation window, still revocable
251
+ */
252
+ REQUESTED = "requested",
253
+ /**
254
+ * Withdrawn inside the revocation window, nothing has been deleted
255
+ */
256
+ REVOKED = "revoked",
257
+ RUNNING = "running",
258
+ DELETED = "deleted",
259
+ FAILED = "failed",
260
+ /**
261
+ * A dry run, only started by hand: it reports what it would delete and changes nothing
262
+ */
263
+ INSPECTED = "inspected"
264
+ }
265
+ /**
266
+ * This type represent the model of a space deletion, the only record that outlives a deleted space
267
+ */
268
+ export type SpaceDeletionResponse = {
269
+ /**
270
+ * The space the deletion refers to
271
+ */
272
+ spaceId: string;
273
+ /**
274
+ * The current status of the deletion
275
+ */
276
+ status: SpaceDeletionStatus;
277
+ /**
278
+ * The name the space had, captured when the deletion was requested because deleting the space
279
+ * destroys it
280
+ */
281
+ spaceName?: string;
282
+ /**
283
+ * The subscription the space was claimed under, preserved for the same reason as [[spaceName]]
284
+ */
285
+ subscriptionId?: string;
286
+ /**
287
+ * The account that requested the deletion
288
+ */
289
+ requestedBy?: string;
290
+ /**
291
+ * The account that withdrew the deletion, only set when [[status]] is `revoked`
292
+ */
293
+ revokedBy?: string;
294
+ /**
295
+ * The ISO date the revocation window shuts at: until then the deletion can be withdrawn with
296
+ * [[SystemFacade.revokeSpaceDeletion]], after it the deletion starts
297
+ */
298
+ deleteAfter?: string;
299
+ /**
300
+ * The arn of the workflow execution performing the deletion
301
+ */
302
+ executionArn?: string;
303
+ /**
304
+ * Whether the deletion only reported what it would delete, without deleting anything
305
+ */
306
+ dryRun?: boolean;
307
+ /**
308
+ * How many rows have been deleted, per domain and per table. Written when the deletion ends
309
+ */
310
+ counts?: {
311
+ [domain: string]: {
312
+ [table: string]: number;
313
+ };
314
+ };
315
+ /**
316
+ * The message describing why the deletion failed, only set when [[status]] is `failed`
317
+ */
318
+ error?: string;
319
+ /**
320
+ * The ISO date the deletion record was last written at
321
+ */
322
+ updatedAt?: string;
323
+ };
324
+ /**
325
+ * This type represent the response of a delete space API request. The deletion has not happened
326
+ * yet: it is only requested, and stays revocable for [[revocableForHours]]
327
+ */
328
+ export type DeleteSpaceResponse = {
329
+ /**
330
+ * Always true, the request has been accepted
331
+ */
332
+ requested: boolean;
333
+ /**
334
+ * How long the deletion stays revocable, in hours
335
+ */
336
+ revocableForHours: number;
337
+ };
338
+ /**
339
+ * Return type of `revokeSpaceDeletion`, the withdrawn deletion record
340
+ */
341
+ export type RevokeSpaceDeletionResponse = SpaceDeletionResponse;
342
+ /**
343
+ * Return type of `getSpaceDeletionStatus`. It is null when the space has never had a deletion
344
+ * requested: no request is a normal answer, not a missing resource
345
+ */
346
+ export type GetSpaceDeletionStatusResponse = SpaceDeletionResponse | null;
package/dist/api/Space.js CHANGED
@@ -1,2 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SpaceDeletionStatus = void 0;
4
+ /**
5
+ * This enum represent the lifecycle of a space deletion. A freshly requested deletion is
6
+ * `requested` and stays revocable until [[SpaceDeletionResponse.deleteAfter]], after which it
7
+ * becomes `running` and can no longer be withdrawn
8
+ */
9
+ var SpaceDeletionStatus;
10
+ (function (SpaceDeletionStatus) {
11
+ /**
12
+ * Asked for, inside the revocation window, still revocable
13
+ */
14
+ SpaceDeletionStatus["REQUESTED"] = "requested";
15
+ /**
16
+ * Withdrawn inside the revocation window, nothing has been deleted
17
+ */
18
+ SpaceDeletionStatus["REVOKED"] = "revoked";
19
+ SpaceDeletionStatus["RUNNING"] = "running";
20
+ SpaceDeletionStatus["DELETED"] = "deleted";
21
+ SpaceDeletionStatus["FAILED"] = "failed";
22
+ /**
23
+ * A dry run, only started by hand: it reports what it would delete and changes nothing
24
+ */
25
+ SpaceDeletionStatus["INSPECTED"] = "inspected";
26
+ })(SpaceDeletionStatus || (exports.SpaceDeletionStatus = SpaceDeletionStatus = {}));
@@ -88,8 +88,8 @@ export type ContentExportImportError = {
88
88
 
89
89
  /**
90
90
  * This type represent one of the files produced by a content export, one per exported content
91
- * definition. Files are appended as soon as they are uploaded, so a still `processing` export
92
- * already lists the files that can be downloaded
91
+ * definition. The whole list is written when the export completes, so a `processing` export
92
+ * exposes no file yet
93
93
  */
94
94
  export type ContentExportFile = {
95
95
  /**
@@ -137,8 +137,8 @@ export type ContentExportRequestResponse = {
137
137
  */
138
138
  csvSeparator: string;
139
139
  /**
140
- * The files produced so far, one per exported content definition.
141
- * Null until the export starts producing them
140
+ * The produced files, one per exported content definition. Empty until [[status]] is
141
+ * `completed`, the whole list is written in one go when the export finalizes
142
142
  */
143
143
  files: ContentExportFile[] | null;
144
144
  /**
@@ -171,10 +171,10 @@ export type CreateContentExportRequestRequest = {
171
171
  /**
172
172
  * The filters selecting the contents to export, the same ones accepted by
173
173
  * [[ContentFacade.list]]. When omitted every unarchived content of the space is exported.
174
- * Archived contents cannot be imported back, so [[ListContentsFilters.contentsStatus]]
175
- * defaults to `unarchived`
174
+ * [[ListContentsFilters.contentsStatus]] cannot be given: archived contents cannot be
175
+ * imported back, so an export always covers the unarchived ones only
176
176
  */
177
- filters?: Partial<ListContentsFilters>;
177
+ filters?: Omit<Partial<ListContentsFilters>, 'contentsStatus'>;
178
178
  /**
179
179
  * The format to write the export files in, defaults to `json`
180
180
  */
@@ -263,6 +263,11 @@ export type ContentImportOptions = {
263
263
  * The separator the imported csv file is read with. Meaningless when [[format]] is `json`
264
264
  */
265
265
  csvSeparator?: string;
266
+ /**
267
+ * Whether payloads violating their content definition schema are applied anyway, with the
268
+ * violations logged instead of failing the row
269
+ */
270
+ skipPayloadValidation?: boolean;
266
271
  };
267
272
 
268
273
  /**
@@ -351,6 +356,12 @@ export type CreateContentImportRequestRequest = {
351
356
  * Ignored when [[format]] is `json`
352
357
  */
353
358
  csvSeparator?: string;
359
+ /**
360
+ * Whether to apply payloads that violate their content definition schema, recording the
361
+ * violations instead of failing the row. Defaults to false.
362
+ * [[ContentExportImportFacade.retryImport]] can turn it on for an already uploaded file
363
+ */
364
+ skipPayloadValidation?: boolean;
354
365
  };
355
366
  };
356
367
 
@@ -378,6 +389,48 @@ export type CreateContentImportRequestResponse = {
378
389
  expiresInSeconds: number;
379
390
  };
380
391
 
392
+ /**
393
+ * This type represent the data needed to make a retry content import API request
394
+ */
395
+ export type RetryContentImportRequest = {
396
+ /**
397
+ * The unique id of the import request to re-run the file of. It must have been uploaded:
398
+ * an import still `awaiting_upload` has nothing to retry
399
+ */
400
+ importRequestId: ContentImportRequestId;
401
+ /**
402
+ * Whether to apply payloads that violate their content definition schema, recording the
403
+ * violations instead of failing the row. Use it to push through a run whose validation
404
+ * failures have been judged acceptable. Defaults to false
405
+ */
406
+ skipPayloadValidation?: boolean;
407
+ };
408
+
409
+ /**
410
+ * This type represent the response of a retry content import API request.
411
+ * A retry is a new import request re-running the whole original file, not only its failed rows:
412
+ * imports are update only and idempotent. Nothing has to be uploaded again, the file is copied
413
+ * server side, and that copy is what starts the new import
414
+ */
415
+ export type RetryContentImportResponse = {
416
+ /**
417
+ * The unique id of the created import request, the one to follow from now on
418
+ */
419
+ importRequestId: ContentImportRequestId;
420
+ /**
421
+ * The unique id of the import request being retried
422
+ */
423
+ retryOf: ContentImportRequestId;
424
+ /**
425
+ * The storage key the original file has been copied to
426
+ */
427
+ s3Key: string;
428
+ /**
429
+ * Whether the retry applies payloads violating their content definition schema
430
+ */
431
+ skipPayloadValidation: boolean;
432
+ };
433
+
381
434
  /**
382
435
  * This type represent the data needed to make a list content import requests API request
383
436
  */
@@ -457,7 +510,8 @@ export type ContentImportRequestItemResponse = {
457
510
  */
458
511
  locale: string | null;
459
512
  /**
460
- * What the import did to the content, null when the row failed
513
+ * What the import did to the content. Null when the row failed, and on a translation row
514
+ * that carried nothing to apply, which succeeds as a no-op
461
515
  */
462
516
  action: ContentImportItemAction | null;
463
517
  /**
package/lib/api/Space.ts CHANGED
@@ -258,3 +258,108 @@ export type UpdateSpacePublishingLocalesRequest = {
258
258
  * Return type of `updateSpacePublishingLocales`
259
259
  */
260
260
  export type UpdateSpacePublishingLocalesResponse = SpaceLocale;
261
+
262
+ /**
263
+ * This enum represent the lifecycle of a space deletion. A freshly requested deletion is
264
+ * `requested` and stays revocable until [[SpaceDeletionResponse.deleteAfter]], after which it
265
+ * becomes `running` and can no longer be withdrawn
266
+ */
267
+ export enum SpaceDeletionStatus {
268
+ /**
269
+ * Asked for, inside the revocation window, still revocable
270
+ */
271
+ REQUESTED = 'requested',
272
+ /**
273
+ * Withdrawn inside the revocation window, nothing has been deleted
274
+ */
275
+ REVOKED = 'revoked',
276
+ RUNNING = 'running',
277
+ DELETED = 'deleted',
278
+ FAILED = 'failed',
279
+ /**
280
+ * A dry run, only started by hand: it reports what it would delete and changes nothing
281
+ */
282
+ INSPECTED = 'inspected'
283
+ }
284
+
285
+ /**
286
+ * This type represent the model of a space deletion, the only record that outlives a deleted space
287
+ */
288
+ export type SpaceDeletionResponse = {
289
+ /**
290
+ * The space the deletion refers to
291
+ */
292
+ spaceId: string;
293
+ /**
294
+ * The current status of the deletion
295
+ */
296
+ status: SpaceDeletionStatus;
297
+ /**
298
+ * The name the space had, captured when the deletion was requested because deleting the space
299
+ * destroys it
300
+ */
301
+ spaceName?: string;
302
+ /**
303
+ * The subscription the space was claimed under, preserved for the same reason as [[spaceName]]
304
+ */
305
+ subscriptionId?: string;
306
+ /**
307
+ * The account that requested the deletion
308
+ */
309
+ requestedBy?: string;
310
+ /**
311
+ * The account that withdrew the deletion, only set when [[status]] is `revoked`
312
+ */
313
+ revokedBy?: string;
314
+ /**
315
+ * The ISO date the revocation window shuts at: until then the deletion can be withdrawn with
316
+ * [[SystemFacade.revokeSpaceDeletion]], after it the deletion starts
317
+ */
318
+ deleteAfter?: string;
319
+ /**
320
+ * The arn of the workflow execution performing the deletion
321
+ */
322
+ executionArn?: string;
323
+ /**
324
+ * Whether the deletion only reported what it would delete, without deleting anything
325
+ */
326
+ dryRun?: boolean;
327
+ /**
328
+ * How many rows have been deleted, per domain and per table. Written when the deletion ends
329
+ */
330
+ counts?: { [domain: string]: { [table: string]: number; }; };
331
+ /**
332
+ * The message describing why the deletion failed, only set when [[status]] is `failed`
333
+ */
334
+ error?: string;
335
+ /**
336
+ * The ISO date the deletion record was last written at
337
+ */
338
+ updatedAt?: string;
339
+ };
340
+
341
+ /**
342
+ * This type represent the response of a delete space API request. The deletion has not happened
343
+ * yet: it is only requested, and stays revocable for [[revocableForHours]]
344
+ */
345
+ export type DeleteSpaceResponse = {
346
+ /**
347
+ * Always true, the request has been accepted
348
+ */
349
+ requested: boolean;
350
+ /**
351
+ * How long the deletion stays revocable, in hours
352
+ */
353
+ revocableForHours: number;
354
+ };
355
+
356
+ /**
357
+ * Return type of `revokeSpaceDeletion`, the withdrawn deletion record
358
+ */
359
+ export type RevokeSpaceDeletionResponse = SpaceDeletionResponse;
360
+
361
+ /**
362
+ * Return type of `getSpaceDeletionStatus`. It is null when the space has never had a deletion
363
+ * requested: no request is a normal answer, not a missing resource
364
+ */
365
+ export type GetSpaceDeletionStatusResponse = SpaceDeletionResponse | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentchef/contentchef-types",
3
- "version": "10.1.0-alpha.8",
3
+ "version": "10.1.0",
4
4
  "description": "ContentChef types",
5
5
  "author": "PierpaoloIannone <piannone@byte-code.com>",
6
6
  "homepage": "https://github.com/ContentChef/contentchef-management-js-client#readme",
@@ -34,5 +34,5 @@
34
34
  "devDependencies": {
35
35
  "typescript": "^5.9.3"
36
36
  },
37
- "gitHead": "972240c74e54c066563cc1460d5331bbfc9c0d65"
37
+ "gitHead": "686fc2951c882a81cdbe56b5df9d60309dfebf95"
38
38
  }