@protontech/drive-sdk 0.0.12 → 0.0.13

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.
Files changed (89) hide show
  1. package/dist/errors.d.ts +7 -3
  2. package/dist/errors.js +9 -4
  3. package/dist/errors.js.map +1 -1
  4. package/dist/interface/index.d.ts +1 -1
  5. package/dist/interface/nodes.d.ts +12 -1
  6. package/dist/interface/nodes.js +11 -0
  7. package/dist/interface/nodes.js.map +1 -1
  8. package/dist/interface/upload.d.ts +51 -3
  9. package/dist/internal/apiService/driveTypes.d.ts +1341 -465
  10. package/dist/internal/apiService/errors.js +2 -2
  11. package/dist/internal/apiService/errors.js.map +1 -1
  12. package/dist/internal/apiService/transformers.js +2 -0
  13. package/dist/internal/apiService/transformers.js.map +1 -1
  14. package/dist/internal/asyncIteratorMap.d.ts +15 -0
  15. package/dist/internal/asyncIteratorMap.js +59 -0
  16. package/dist/internal/asyncIteratorMap.js.map +1 -0
  17. package/dist/internal/asyncIteratorMap.test.d.ts +1 -0
  18. package/dist/internal/asyncIteratorMap.test.js +120 -0
  19. package/dist/internal/asyncIteratorMap.test.js.map +1 -0
  20. package/dist/internal/nodes/apiService.d.ts +2 -2
  21. package/dist/internal/nodes/apiService.js +16 -6
  22. package/dist/internal/nodes/apiService.js.map +1 -1
  23. package/dist/internal/nodes/apiService.test.js +30 -8
  24. package/dist/internal/nodes/apiService.test.js.map +1 -1
  25. package/dist/internal/nodes/cache.js +1 -0
  26. package/dist/internal/nodes/cache.js.map +1 -1
  27. package/dist/internal/nodes/cache.test.js +1 -0
  28. package/dist/internal/nodes/cache.test.js.map +1 -1
  29. package/dist/internal/nodes/cryptoService.test.js +34 -0
  30. package/dist/internal/nodes/cryptoService.test.js.map +1 -1
  31. package/dist/internal/nodes/index.test.js +3 -1
  32. package/dist/internal/nodes/index.test.js.map +1 -1
  33. package/dist/internal/nodes/interface.d.ts +3 -1
  34. package/dist/internal/nodes/nodesAccess.js +28 -7
  35. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  36. package/dist/internal/nodes/nodesAccess.test.js +7 -6
  37. package/dist/internal/nodes/nodesAccess.test.js.map +1 -1
  38. package/dist/internal/sharing/apiService.js +19 -2
  39. package/dist/internal/sharing/apiService.js.map +1 -1
  40. package/dist/internal/upload/fileUploader.d.ts +49 -53
  41. package/dist/internal/upload/fileUploader.js +91 -395
  42. package/dist/internal/upload/fileUploader.js.map +1 -1
  43. package/dist/internal/upload/fileUploader.test.js +38 -292
  44. package/dist/internal/upload/fileUploader.test.js.map +1 -1
  45. package/dist/internal/upload/index.d.ts +3 -3
  46. package/dist/internal/upload/index.js +20 -41
  47. package/dist/internal/upload/index.js.map +1 -1
  48. package/dist/internal/upload/manager.d.ts +1 -1
  49. package/dist/internal/upload/manager.js +16 -19
  50. package/dist/internal/upload/manager.js.map +1 -1
  51. package/dist/internal/upload/manager.test.js +42 -83
  52. package/dist/internal/upload/manager.test.js.map +1 -1
  53. package/dist/internal/upload/streamUploader.d.ts +62 -0
  54. package/dist/internal/upload/streamUploader.js +441 -0
  55. package/dist/internal/upload/streamUploader.js.map +1 -0
  56. package/dist/internal/upload/streamUploader.test.d.ts +1 -0
  57. package/dist/internal/upload/streamUploader.test.js +358 -0
  58. package/dist/internal/upload/streamUploader.test.js.map +1 -0
  59. package/dist/protonDriveClient.d.ts +4 -4
  60. package/dist/protonDriveClient.js +1 -1
  61. package/dist/protonDriveClient.js.map +1 -1
  62. package/package.json +2 -2
  63. package/src/errors.ts +10 -4
  64. package/src/interface/index.ts +1 -1
  65. package/src/interface/nodes.ts +11 -0
  66. package/src/interface/upload.ts +53 -3
  67. package/src/internal/apiService/driveTypes.ts +1341 -465
  68. package/src/internal/apiService/errors.ts +3 -2
  69. package/src/internal/apiService/transformers.ts +2 -0
  70. package/src/internal/asyncIteratorMap.test.ts +150 -0
  71. package/src/internal/asyncIteratorMap.ts +64 -0
  72. package/src/internal/nodes/apiService.test.ts +36 -7
  73. package/src/internal/nodes/apiService.ts +19 -7
  74. package/src/internal/nodes/cache.test.ts +1 -0
  75. package/src/internal/nodes/cache.ts +1 -0
  76. package/src/internal/nodes/cryptoService.test.ts +38 -0
  77. package/src/internal/nodes/index.test.ts +3 -1
  78. package/src/internal/nodes/interface.ts +4 -1
  79. package/src/internal/nodes/nodesAccess.test.ts +7 -6
  80. package/src/internal/nodes/nodesAccess.ts +30 -7
  81. package/src/internal/sharing/apiService.ts +24 -2
  82. package/src/internal/upload/fileUploader.test.ts +46 -376
  83. package/src/internal/upload/fileUploader.ts +114 -494
  84. package/src/internal/upload/index.ts +26 -50
  85. package/src/internal/upload/manager.test.ts +45 -92
  86. package/src/internal/upload/manager.ts +30 -32
  87. package/src/internal/upload/streamUploader.test.ts +469 -0
  88. package/src/internal/upload/streamUploader.ts +552 -0
  89. package/src/protonDriveClient.ts +5 -4
@@ -80,18 +80,35 @@ export interface paths {
80
80
  patch?: never;
81
81
  trace?: never;
82
82
  };
83
- "/drive/photos/migrate-legacy": {
83
+ "/drive/photos/volumes/{volumeID}/albums/{linkID}/duplicates": {
84
84
  parameters: {
85
85
  query?: never;
86
86
  header?: never;
87
87
  path?: never;
88
88
  cookie?: never;
89
89
  };
90
- /** Get status of migration from legacy photo share on a regular volume into a new Photo Volume */
91
- get: operations["get_drive-photos-migrate-legacy"];
90
+ get?: never;
92
91
  put?: never;
93
- /** Start migration from legacy photo share on a regular volume into a new Photo Volume */
94
- post: operations["post_drive-photos-migrate-legacy"];
92
+ /** Find duplicates in album */
93
+ post: operations["post_drive-photos-volumes-{volumeID}-albums-{linkID}-duplicates"];
94
+ delete?: never;
95
+ options?: never;
96
+ head?: never;
97
+ patch?: never;
98
+ trace?: never;
99
+ };
100
+ "/drive/photos/volumes/{volumeID}/tags-migration": {
101
+ parameters: {
102
+ query?: never;
103
+ header?: never;
104
+ path?: never;
105
+ cookie?: never;
106
+ };
107
+ /** Get photo tag migration status */
108
+ get: operations["get_drive-photos-volumes-{volumeID}-tags-migration"];
109
+ put?: never;
110
+ /** Update tag migration status */
111
+ post: operations["post_drive-photos-volumes-{volumeID}-tags-migration"];
95
112
  delete?: never;
96
113
  options?: never;
97
114
  head?: never;
@@ -115,6 +132,23 @@ export interface paths {
115
132
  patch?: never;
116
133
  trace?: never;
117
134
  };
135
+ "/drive/photos/volumes/{volumeID}/recover-multiple": {
136
+ parameters: {
137
+ query?: never;
138
+ header?: never;
139
+ path?: never;
140
+ cookie?: never;
141
+ };
142
+ get?: never;
143
+ /** Recover photos from your photo volume */
144
+ put: operations["put_drive-photos-volumes-{volumeID}-recover-multiple"];
145
+ post?: never;
146
+ delete?: never;
147
+ options?: never;
148
+ head?: never;
149
+ patch?: never;
150
+ trace?: never;
151
+ };
118
152
  "/drive/photos/volumes/{volumeID}/albums/{linkID}/remove-multiple": {
119
153
  parameters: {
120
154
  query?: never;
@@ -147,6 +181,43 @@ export interface paths {
147
181
  patch?: never;
148
182
  trace?: never;
149
183
  };
184
+ "/drive/volumes/{volumeID}/links/transfer-multiple": {
185
+ parameters: {
186
+ query?: never;
187
+ header?: never;
188
+ path?: never;
189
+ cookie?: never;
190
+ };
191
+ get?: never;
192
+ /**
193
+ * Transfer photos from and to albums
194
+ * @deprecated
195
+ */
196
+ put: operations["put_drive-volumes-{volumeID}-links-transfer-multiple"];
197
+ post?: never;
198
+ delete?: never;
199
+ options?: never;
200
+ head?: never;
201
+ patch?: never;
202
+ trace?: never;
203
+ };
204
+ "/drive/photos/volumes/{volumeID}/links/transfer-multiple": {
205
+ parameters: {
206
+ query?: never;
207
+ header?: never;
208
+ path?: never;
209
+ cookie?: never;
210
+ };
211
+ get?: never;
212
+ /** Transfer photos from and to albums */
213
+ put: operations["put_drive-photos-volumes-{volumeID}-links-transfer-multiple"];
214
+ post?: never;
215
+ delete?: never;
216
+ options?: never;
217
+ head?: never;
218
+ patch?: never;
219
+ trace?: never;
220
+ };
150
221
  "/drive/v2/urls/{token}/bookmark": {
151
222
  parameters: {
152
223
  query?: never;
@@ -370,26 +441,6 @@ export interface paths {
370
441
  patch?: never;
371
442
  trace?: never;
372
443
  };
373
- "/drive/volumes/{volumeID}/links/{linkID}/copy": {
374
- parameters: {
375
- query?: never;
376
- header?: never;
377
- path?: never;
378
- cookie?: never;
379
- };
380
- get?: never;
381
- put?: never;
382
- /**
383
- * Copy a node to a volume
384
- * @description Copy a single file to a volume, providing the new parent link ID.
385
- */
386
- post: operations["post_drive-volumes-{volumeID}-links-{linkID}-copy"];
387
- delete?: never;
388
- options?: never;
389
- head?: never;
390
- patch?: never;
391
- trace?: never;
392
- };
393
444
  "/drive/shares/{shareID}/folders": {
394
445
  parameters: {
395
446
  query?: never;
@@ -571,6 +622,26 @@ export interface paths {
571
622
  patch?: never;
572
623
  trace?: never;
573
624
  };
625
+ "/drive/volumes/{volumeID}/links/{linkID}/copy": {
626
+ parameters: {
627
+ query?: never;
628
+ header?: never;
629
+ path?: never;
630
+ cookie?: never;
631
+ };
632
+ get?: never;
633
+ put?: never;
634
+ /**
635
+ * Copy a node to a volume
636
+ * @description Copy a single file to a volume, providing the new parent link ID.
637
+ */
638
+ post: operations["post_drive-volumes-{volumeID}-links-{linkID}-copy"];
639
+ delete?: never;
640
+ options?: never;
641
+ head?: never;
642
+ patch?: never;
643
+ trace?: never;
644
+ };
574
645
  "/drive/v2/volumes/{volumeID}/delete_multiple": {
575
646
  parameters: {
576
647
  query?: never;
@@ -711,8 +782,7 @@ export interface paths {
711
782
  *
712
783
  * Clients moving a file or folder MUST reuse the existing session keys
713
784
  * for the name and passphrase as these are also used by shares pointing
714
- * to the link. The passphrase should NOT be changed, only the KeyPacket
715
- * is used.
785
+ * to the link. The passphrase should NOT be changed, reusing same session key as previously.
716
786
  */
717
787
  put: operations["put_drive-shares-{shareID}-links-{linkID}-move"];
718
788
  post?: never;
@@ -781,8 +851,7 @@ export interface paths {
781
851
  * @description Move a file or folder. Client must provide new values for fields encrypted with parent NodeKey.
782
852
  * Clients moving a file or folder MUST reuse the existing session keys
783
853
  * for the name and passphrase as these are also used by shares pointing
784
- * to the link. The passphrase should NOT be changed, only the KeyPacket
785
- * is used.
854
+ * to the link. The passphrase should NOT be changed,reusing same session key as previously
786
855
  */
787
856
  put: operations["put_drive-v2-volumes-{volumeID}-links-{linkID}-move"];
788
857
  post?: never;
@@ -1099,6 +1168,8 @@ export interface paths {
1099
1168
  * @deprecated
1100
1169
  * @description List all trashed items of a given share.
1101
1170
  * Only used by clients that don’t show photos and devices. Going forward, the volume-based route should be used instead.
1171
+ *
1172
+ * CANNOT be used on Photo-Volume -> use volume-trash
1102
1173
  */
1103
1174
  get: operations["get_drive-shares-{shareID}-trash"];
1104
1175
  put?: never;
@@ -1108,6 +1179,8 @@ export interface paths {
1108
1179
  * @deprecated
1109
1180
  * @description Permanently delete all links from trash of a given share.
1110
1181
  * Only used by clients that don’t show photos and devices. Going forward, the volume-based route should be used instead.
1182
+ *
1183
+ * CANNOT be used on Photo-Volume -> use volume-trash
1111
1184
  */
1112
1185
  delete: operations["delete_drive-shares-{shareID}-trash"];
1113
1186
  options?: never;
@@ -1126,7 +1199,11 @@ export interface paths {
1126
1199
  get: operations["get_drive-volumes-{volumeID}-trash"];
1127
1200
  put?: never;
1128
1201
  post?: never;
1129
- /** Empty volume trash */
1202
+ /**
1203
+ * Empty volume trash
1204
+ * @description When there are fewer items in trash than a certain threshold, trash will be deleted synchronously returning a 200 HTTP code.
1205
+ * Otherwise, it will happen async returning a 202 HTTP code.
1206
+ */
1130
1207
  delete: operations["delete_drive-volumes-{volumeID}-trash"];
1131
1208
  options?: never;
1132
1209
  head?: never;
@@ -1144,6 +1221,8 @@ export interface paths {
1144
1221
  /**
1145
1222
  * Restore items from trash
1146
1223
  * @description Restore list of links from trash to original location.
1224
+ *
1225
+ * /shares endpoint should NOT be used on Photo-Volume -> use volume-trash
1147
1226
  */
1148
1227
  put: operations["put_drive-v2-volumes-{volumeID}-trash-restore_multiple"];
1149
1228
  post?: never;
@@ -1164,6 +1243,8 @@ export interface paths {
1164
1243
  /**
1165
1244
  * Restore items from trash
1166
1245
  * @description Restore list of links from trash to original location.
1246
+ *
1247
+ * /shares endpoint should NOT be used on Photo-Volume -> use volume-trash
1167
1248
  */
1168
1249
  put: operations["put_drive-shares-{shareID}-trash-restore_multiple"];
1169
1250
  post?: never;
@@ -1387,7 +1468,10 @@ export interface paths {
1387
1468
  };
1388
1469
  get?: never;
1389
1470
  put?: never;
1390
- /** Create photo share */
1471
+ /**
1472
+ * DEPRECATED: Create photo share
1473
+ * @deprecated
1474
+ */
1391
1475
  post: operations["post_drive-volumes-{volumeID}-photos-share"];
1392
1476
  delete?: never;
1393
1477
  options?: never;
@@ -1415,6 +1499,23 @@ export interface paths {
1415
1499
  patch?: never;
1416
1500
  trace?: never;
1417
1501
  };
1502
+ "/drive/photos/volumes/{volumeID}/links/{linkID}/favorite": {
1503
+ parameters: {
1504
+ query?: never;
1505
+ header?: never;
1506
+ path?: never;
1507
+ cookie?: never;
1508
+ };
1509
+ get?: never;
1510
+ put?: never;
1511
+ /** Favorite existing photo */
1512
+ post: operations["post_drive-photos-volumes-{volumeID}-links-{linkID}-favorite"];
1513
+ delete?: never;
1514
+ options?: never;
1515
+ head?: never;
1516
+ patch?: never;
1517
+ trace?: never;
1518
+ };
1418
1519
  "/drive/volumes/{volumeID}/photos/duplicates": {
1419
1520
  parameters: {
1420
1521
  query?: never;
@@ -1432,6 +1533,24 @@ export interface paths {
1432
1533
  patch?: never;
1433
1534
  trace?: never;
1434
1535
  };
1536
+ "/drive/photos/migrate-legacy": {
1537
+ parameters: {
1538
+ query?: never;
1539
+ header?: never;
1540
+ path?: never;
1541
+ cookie?: never;
1542
+ };
1543
+ /** Get status of migration from legacy photo share on a regular volume into a new Photo Volume */
1544
+ get: operations["get_drive-photos-migrate-legacy"];
1545
+ put?: never;
1546
+ /** Start migration from legacy photo share on a regular volume into a new Photo Volume */
1547
+ post: operations["post_drive-photos-migrate-legacy"];
1548
+ delete?: never;
1549
+ options?: never;
1550
+ head?: never;
1551
+ patch?: never;
1552
+ trace?: never;
1553
+ };
1435
1554
  "/drive/volumes/{volumeID}/photos": {
1436
1555
  parameters: {
1437
1556
  query?: never;
@@ -1452,6 +1571,26 @@ export interface paths {
1452
1571
  patch?: never;
1453
1572
  trace?: never;
1454
1573
  };
1574
+ "/drive/photos/volumes/{volumeID}/links/{linkID}/revisions/{revisionID}/xattr": {
1575
+ parameters: {
1576
+ query?: never;
1577
+ header?: never;
1578
+ path?: never;
1579
+ cookie?: never;
1580
+ };
1581
+ get?: never;
1582
+ /**
1583
+ * Update xAttr Photo-Link
1584
+ * @description ONLY for use by iOS, due to a bug in the iOS client, xAttr were not populated for photos, the client can use this endpoint to fix this.
1585
+ */
1586
+ put: operations["put_drive-photos-volumes-{volumeID}-links-{linkID}-revisions-{revisionID}-xattr"];
1587
+ post?: never;
1588
+ delete?: never;
1589
+ options?: never;
1590
+ head?: never;
1591
+ patch?: never;
1592
+ trace?: never;
1593
+ };
1455
1594
  "/drive/urls/{token}/files/{linkID}/checkAvailableHashes": {
1456
1595
  parameters: {
1457
1596
  query?: never;
@@ -2525,7 +2664,10 @@ export interface paths {
2525
2664
  cookie?: never;
2526
2665
  };
2527
2666
  get?: never;
2528
- /** Delete locked volume */
2667
+ /**
2668
+ * Delete the whole volume if is locked or the locked root shares in the volume.
2669
+ * @description Web client calls this endpoint when the user decides to delete their locked data and not recover it.
2670
+ */
2529
2671
  put: operations["put_drive-volumes-{volumeID}-delete_locked"];
2530
2672
  post?: never;
2531
2673
  delete?: never;
@@ -2562,7 +2704,13 @@ export interface paths {
2562
2704
  cookie?: never;
2563
2705
  };
2564
2706
  get?: never;
2565
- /** Restore locked volume */
2707
+ /**
2708
+ * Restore locked data in volume.
2709
+ * @description There are two modes:
2710
+ * 1. When the user has a locked volume and a different active one, you need to restore the locked volume data into the active
2711
+ * one of the same type (e.g., locked regular into active regular). This is processed async.
2712
+ * 2. When the user has locked root shares in an active volume, the data is restored within the same volume. This is done synchronous.
2713
+ */
2566
2714
  put: operations["put_drive-volumes-{volumeID}-restore"];
2567
2715
  post?: never;
2568
2716
  delete?: never;
@@ -2642,9 +2790,12 @@ export interface components {
2642
2790
  */
2643
2791
  Code: 1000;
2644
2792
  };
2645
- GetMigrationStatusResponseDto: {
2646
- OldVolumeID: components["schemas"]["Id2"];
2647
- NewVolumeID?: components["schemas"]["Id2"] | null;
2793
+ FindDuplicatesInput: {
2794
+ /** @description List of Name HMACs to check */
2795
+ NameHashes: string[];
2796
+ };
2797
+ FindDuplicatesOutputCollection: {
2798
+ DuplicateHashes: components["schemas"]["FoundDuplicate"][];
2648
2799
  /**
2649
2800
  * ProtonResponseCode
2650
2801
  * @example 1000
@@ -2652,13 +2803,15 @@ export interface components {
2652
2803
  */
2653
2804
  Code: 1000;
2654
2805
  };
2655
- AcceptedResponse: {
2806
+ PhotoTagMigrationStatusResponseDto: {
2807
+ Finished: boolean;
2808
+ Anchor?: components["schemas"]["PhotoTagMigrationDataDto"] | null;
2656
2809
  /**
2657
2810
  * ProtonResponseCode
2658
- * @example 1002
2811
+ * @example 1000
2659
2812
  * @enum {integer}
2660
2813
  */
2661
- Code: 1002;
2814
+ Code: 1000;
2662
2815
  };
2663
2816
  ListAlbumsResponseDto: {
2664
2817
  Albums: components["schemas"]["AlbumResponseDto"][];
@@ -2685,6 +2838,8 @@ export interface components {
2685
2838
  Tag: components["schemas"]["TagType"] | null;
2686
2839
  /** @default false */
2687
2840
  OnlyChildren: boolean;
2841
+ /** @default false */
2842
+ IncludeTrashed: boolean;
2688
2843
  };
2689
2844
  /**
2690
2845
  * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>Favorites</td></tr><tr><td>1</td><td>Screenshots</td></tr><tr><td>2</td><td>Videos</td></tr><tr><td>3</td><td>LivePhotos</td></tr><tr><td>4</td><td>MotionPhotos</td></tr><tr><td>5</td><td>Selfies</td></tr><tr><td>6</td><td>Portraits</td></tr><tr><td>7</td><td>Bursts</td></tr><tr><td>8</td><td>Panoramas</td></tr><tr><td>9</td><td>Raw</td></tr></table></details></details>
@@ -2702,9 +2857,28 @@ export interface components {
2702
2857
  */
2703
2858
  Code: 1000;
2704
2859
  };
2860
+ TransferPhotoLinksRequestDto: {
2861
+ ParentLinkID: components["schemas"]["Id"];
2862
+ Links: components["schemas"]["TransferPhotoLinkInBatchRequestDto"][];
2863
+ /**
2864
+ * Format: email
2865
+ * @description Signature email address used for signing name
2866
+ */
2867
+ NameSignatureEmail: string;
2868
+ /**
2869
+ * Format: email
2870
+ * @description Signature email address used for the NodePassphraseSignature.
2871
+ * @default null
2872
+ */
2873
+ SignatureEmail: string | null;
2874
+ };
2705
2875
  RemovePhotosFromAlbumRequestDto: {
2706
2876
  LinkIDs: components["schemas"]["Id"][];
2707
2877
  };
2878
+ UpdatePhotoTagMigrationStatusRequestDto: {
2879
+ Finished: boolean;
2880
+ Anchor: components["schemas"]["PhotoTagMigrationUpdateDto"];
2881
+ };
2708
2882
  /** @description An encrypted ID */
2709
2883
  Id: string;
2710
2884
  SharedWithMeResponseDto: {
@@ -2792,6 +2966,7 @@ export interface components {
2792
2966
  * @default null
2793
2967
  */
2794
2968
  ContentKeyPacketSignature: components["schemas"]["PGPSignature"] | null;
2969
+ DocumentType?: components["schemas"]["DocumentType"];
2795
2970
  Name: components["schemas"]["PGPMessage"];
2796
2971
  /** @description File/folder name Hash */
2797
2972
  Hash: string;
@@ -2859,48 +3034,6 @@ export interface components {
2859
3034
  */
2860
3035
  Code: 1000;
2861
3036
  };
2862
- CopyLinkRequestDto: {
2863
- /** @description Name, reusing same session key as previously. */
2864
- Name: string;
2865
- /** @description Node passphrase, passphrase should be unchanged, only key packet is used. */
2866
- NodePassphrase: string;
2867
- /** @description Name hash */
2868
- Hash: string;
2869
- /** @description Volume ID to copy to. */
2870
- TargetVolumeID: string;
2871
- /** @description New parent link ID to copy to. */
2872
- TargetParentLinkID: string;
2873
- /**
2874
- * Format: email
2875
- * @description Signature email address used for signing name.
2876
- */
2877
- NameSignatureEmail: string;
2878
- /**
2879
- * @description Optional, except when moving a Photo-Link. Photo content hash, hmacsha256 of sha1 content using parent folder's hash key [ hmacSha256(folder hash key, sha1(plain content)) ]
2880
- * @default null
2881
- */
2882
- ContentHash: string | null;
2883
- /**
2884
- * @description Node Passphrase Signature. Required when moving an anonymous Link. It must be signed by the SignatureEmail address.
2885
- * @default null
2886
- */
2887
- NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
2888
- /**
2889
- * Format: email
2890
- * @description Signature email address used for the NodePassphrase.
2891
- * @default null
2892
- */
2893
- SignatureEmail: string | null;
2894
- };
2895
- CopyLinkResponseDto: {
2896
- LinkID: components["schemas"]["Id2"];
2897
- /**
2898
- * ProtonResponseCode
2899
- * @example 1000
2900
- * @enum {integer}
2901
- */
2902
- Code: 1000;
2903
- };
2904
3037
  CreateFolderRequestDto: {
2905
3038
  /** @description Node hash key (random bytes encoded in base64 format), encrypted and signed. */
2906
3039
  NodeHashKey: string;
@@ -3000,18 +3133,70 @@ export interface components {
3000
3133
  */
3001
3134
  Code: 1000;
3002
3135
  };
3003
- FetchLinksMetadataRequestDto: {
3136
+ CopyLinkRequestDto: {
3137
+ /** @description Name, reusing same session key as previously. */
3138
+ Name: string;
3139
+ /** @description Node passphrase, reusing same session key as previously. */
3140
+ NodePassphrase: string;
3141
+ /** @description Name hash */
3142
+ Hash: string;
3143
+ /** @description Volume ID to copy to. */
3144
+ TargetVolumeID: string;
3145
+ /** @description New parent link ID to copy to. */
3146
+ TargetParentLinkID: string;
3004
3147
  /**
3005
- * @deprecated
3006
- * @description Get thumbnail download URLs
3007
- * @default 0
3008
- * @enum {integer}
3148
+ * Format: email
3149
+ * @description Signature email address used for signing name.
3009
3150
  */
3010
- Thumbnails: 0 | 1;
3011
- LinkIDs: components["schemas"]["EncryptedId"][];
3012
- };
3013
- FetchLinksMetadataResponseDto: {
3014
- Links: components["schemas"]["ExtendedLinkTransformer"][];
3151
+ NameSignatureEmail: string;
3152
+ /**
3153
+ * @description Node Passphrase Signature. Required when moving an anonymous Link. It must be signed by the SignatureEmail address.
3154
+ * @default null
3155
+ */
3156
+ NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
3157
+ /**
3158
+ * Format: email
3159
+ * @description Signature email address used for the NodePassphraseSignature.
3160
+ * @default null
3161
+ */
3162
+ SignatureEmail: string | null;
3163
+ /**
3164
+ * @description Optional, except when moving a Photo-Link.
3165
+ * @default null
3166
+ */
3167
+ Photos: components["schemas"]["PhotosDto"] | null;
3168
+ /**
3169
+ * @description Only for legacy files (signed by the user). Unencrypted signature of the content session key (plain text of the ContentKeyPacket), signed with the NodeKey.
3170
+ * @default null
3171
+ */
3172
+ ContentKeyPacketSignature: components["schemas"]["PGPSignature"] | null;
3173
+ /**
3174
+ * @description Only for legacy folders (signed by the user). Node hash key should be unchanged, just re-signed with the NodeKey.
3175
+ * @default null
3176
+ */
3177
+ NodeHashKey: string | null;
3178
+ };
3179
+ CopyLinkResponseDto: {
3180
+ LinkID: components["schemas"]["Id2"];
3181
+ /**
3182
+ * ProtonResponseCode
3183
+ * @example 1000
3184
+ * @enum {integer}
3185
+ */
3186
+ Code: 1000;
3187
+ };
3188
+ FetchLinksMetadataRequestDto: {
3189
+ /**
3190
+ * @deprecated
3191
+ * @description Get thumbnail download URLs
3192
+ * @default 0
3193
+ * @enum {integer}
3194
+ */
3195
+ Thumbnails: 0 | 1;
3196
+ LinkIDs: components["schemas"]["EncryptedId"][];
3197
+ };
3198
+ FetchLinksMetadataResponseDto: {
3199
+ Links: components["schemas"]["ExtendedLinkTransformer"][];
3015
3200
  /**
3016
3201
  * ProtonResponseCode
3017
3202
  * @example 1000
@@ -3029,7 +3214,7 @@ export interface components {
3029
3214
  Code: 1000;
3030
3215
  };
3031
3216
  LoadLinkDetailsResponseDto: {
3032
- Links: (components["schemas"]["FileDetailsDto"] | components["schemas"]["FolderDetailsDto"])[];
3217
+ Links: (components["schemas"]["FileDetailsDto"] | components["schemas"]["FolderDetailsDto"] | components["schemas"]["AlbumDetailsDto"])[];
3033
3218
  /**
3034
3219
  * ProtonResponseCode
3035
3220
  * @example 1000
@@ -3048,17 +3233,15 @@ export interface components {
3048
3233
  NameSignatureEmail: string | null;
3049
3234
  /**
3050
3235
  * Format: email
3051
- * @description Signature email address used for the NodePassphrase.
3236
+ * @description Signature email address used for the NodePassphraseSignature.
3052
3237
  * @default null
3053
3238
  */
3054
3239
  SignatureEmail: string | null;
3055
- /** @default null */
3056
- NewShareID: components["schemas"]["Id"] | null;
3057
3240
  };
3058
3241
  MoveLinkRequestDto: {
3059
3242
  /** @description Name, reusing same session key as previously. */
3060
3243
  Name: string;
3061
- /** @description Node passphrase, passphrase should be unchanged, only key packet is used. */
3244
+ /** @description Node passphrase, reusing same session key as previously. */
3062
3245
  NodePassphrase: string;
3063
3246
  /** @description Name hash */
3064
3247
  Hash: string;
@@ -3099,7 +3282,7 @@ export interface components {
3099
3282
  NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
3100
3283
  /**
3101
3284
  * Format: email
3102
- * @description Signature email address used for the NodePassphrase.
3285
+ * @description Signature email address used for the NodePassphraseSignature.
3103
3286
  * @default null
3104
3287
  */
3105
3288
  SignatureEmail: string | null;
@@ -3140,7 +3323,7 @@ export interface components {
3140
3323
  MoveLinkRequestDto2: {
3141
3324
  /** @description Name, reusing same session key as previously. */
3142
3325
  Name: string;
3143
- /** @description Node passphrase, passphrase should be unchanged, only key packet is used. */
3326
+ /** @description Node passphrase, reusing same session key as previously. */
3144
3327
  NodePassphrase: string;
3145
3328
  /** @description Name hash */
3146
3329
  Hash: string;
@@ -3164,7 +3347,7 @@ export interface components {
3164
3347
  NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
3165
3348
  /**
3166
3349
  * Format: email
3167
- * @description Signature email address used for the NodePassphrase.
3350
+ * @description Signature email address used for the NodePassphraseSignature.
3168
3351
  * @default null
3169
3352
  */
3170
3353
  SignatureEmail: string | null;
@@ -3270,6 +3453,15 @@ export interface components {
3270
3453
  */
3271
3454
  NoBlockUrls: boolean;
3272
3455
  };
3456
+ ListRevisionsResponseDto: {
3457
+ Revisions: components["schemas"]["RevisionResponseDto"][];
3458
+ /**
3459
+ * ProtonResponseCode
3460
+ * @example 1000
3461
+ * @enum {integer}
3462
+ */
3463
+ Code: 1000;
3464
+ };
3273
3465
  RestoreRevisionAcceptedResponse: {
3274
3466
  /**
3275
3467
  * ProtonResponseCode
@@ -3444,8 +3636,13 @@ export interface components {
3444
3636
  AddTagsRequestDto: {
3445
3637
  Tags: components["schemas"]["TagType"][];
3446
3638
  };
3447
- CreatePhotoShareResponseDto: {
3448
- Share: components["schemas"]["ShareResponseDto"];
3639
+ FavoritePhotoRequestDto: {
3640
+ PhotoData?: components["schemas"]["FavoritePhotoDataDto"] | null;
3641
+ };
3642
+ FavoritePhotoResponseDto: {
3643
+ LinkID: components["schemas"]["Id2"];
3644
+ VolumeID: components["schemas"]["Id2"];
3645
+ RelatedPhotos: components["schemas"]["FavoriteRelatedPhotoResponseDto"][];
3449
3646
  /**
3450
3647
  * ProtonResponseCode
3451
3648
  * @example 1000
@@ -3453,12 +3650,9 @@ export interface components {
3453
3650
  */
3454
3651
  Code: 1000;
3455
3652
  };
3456
- FindDuplicatesInput: {
3457
- /** @description List of Name HMACs to check */
3458
- NameHashes: string[];
3459
- };
3460
- FindDuplicatesOutputCollection: {
3461
- DuplicateHashes: components["schemas"]["FoundDuplicate"][];
3653
+ GetMigrationStatusResponseDto: {
3654
+ OldVolumeID: components["schemas"]["Id2"];
3655
+ NewVolumeID?: components["schemas"]["Id2"] | null;
3462
3656
  /**
3463
3657
  * ProtonResponseCode
3464
3658
  * @example 1000
@@ -3466,6 +3660,14 @@ export interface components {
3466
3660
  */
3467
3661
  Code: 1000;
3468
3662
  };
3663
+ AcceptedResponse: {
3664
+ /**
3665
+ * ProtonResponseCode
3666
+ * @example 1002
3667
+ * @enum {integer}
3668
+ */
3669
+ Code: 1002;
3670
+ };
3469
3671
  ListPhotosParameters: {
3470
3672
  /** @default true */
3471
3673
  Desc: boolean;
@@ -3493,9 +3695,19 @@ export interface components {
3493
3695
  */
3494
3696
  Code: 1000;
3495
3697
  };
3698
+ MigrateFromLegacyRequest: Record<string, never>;
3496
3699
  RemoveTagsRequestDto: {
3497
3700
  Tags: components["schemas"]["TagType"][];
3498
3701
  };
3702
+ UpdateXAttrRequest: {
3703
+ /**
3704
+ * Format: email
3705
+ * @description Signature email address used to sign XAttributes; must be the same as the current revision signatureEmail, cannot be updated
3706
+ */
3707
+ SignatureEmail: string;
3708
+ /** @description Extended attributes encrypted with link key */
3709
+ XAttr: string;
3710
+ };
3499
3711
  CommitAnonymousRevisionDto: {
3500
3712
  ManifestSignature: components["schemas"]["PGPSignature"];
3501
3713
  /**
@@ -3701,17 +3913,18 @@ export interface components {
3701
3913
  VolumeID: components["schemas"]["Id2"];
3702
3914
  Type: components["schemas"]["ShareType"];
3703
3915
  State: components["schemas"]["ShareState"];
3916
+ VolumeType: components["schemas"]["VolumeType"];
3704
3917
  /** Format: email */
3705
3918
  Creator: string;
3706
3919
  Locked?: boolean | null;
3707
- CreateTime?: number | null;
3708
- ModifyTime?: number | null;
3920
+ CreateTime: number;
3921
+ ModifyTime: number;
3709
3922
  LinkID: components["schemas"]["Id2"];
3710
3923
  /**
3711
3924
  * @deprecated
3712
3925
  * @description Deprecated: Use `CreateTime`
3713
3926
  */
3714
- CreationTime?: number | null;
3927
+ CreationTime: number;
3715
3928
  /** @deprecated */
3716
3929
  PermissionsMask: number;
3717
3930
  LinkType: components["schemas"]["NodeType"];
@@ -3771,7 +3984,7 @@ export interface components {
3771
3984
  Code: 1000;
3772
3985
  };
3773
3986
  ListSharesResponseDto: {
3774
- Shares: components["schemas"]["ShareResponseDto2"][];
3987
+ Shares: components["schemas"]["ShareResponseDto"][];
3775
3988
  /**
3776
3989
  * ProtonResponseCode
3777
3990
  * @example 1000
@@ -3833,7 +4046,9 @@ export interface components {
3833
4046
  SRPSession: components["schemas"]["BinaryString2"];
3834
4047
  Version: number;
3835
4048
  Flags: number;
4049
+ /** @deprecated */
3836
4050
  IsDoc: boolean;
4051
+ VendorType: components["schemas"]["VendorType"];
3837
4052
  /**
3838
4053
  * ProtonResponseCode
3839
4054
  * @example 1000
@@ -3855,6 +4070,15 @@ export interface components {
3855
4070
  */
3856
4071
  Code: 1000;
3857
4072
  };
4073
+ GetRevisionResponseDto: {
4074
+ Revision: components["schemas"]["DetailedRevisionResponseDto"];
4075
+ /**
4076
+ * ProtonResponseCode
4077
+ * @example 1000
4078
+ * @enum {integer}
4079
+ */
4080
+ Code: 1000;
4081
+ };
3858
4082
  GetSharedFileInfoRequestDto: {
3859
4083
  /** @default 1 */
3860
4084
  FromBlockIndex: number;
@@ -4086,6 +4310,18 @@ export interface components {
4086
4310
  */
4087
4311
  Code: 1000;
4088
4312
  };
4313
+ ListPendingInvitationQueryParameters: {
4314
+ AnchorID?: components["schemas"]["Id"] | null;
4315
+ /** @default 150 */
4316
+ PageSize: number;
4317
+ /** @default null */
4318
+ ShareTargetTypes: components["schemas"]["TargetType"][] | null;
4319
+ };
4320
+ /**
4321
+ * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Name</th><th>Description</th></tr><tr><td>0</td><td>Root</td><td>main, device or photo root share</td></tr><tr><td>1</td><td>Folder</td><td></td></tr><tr><td>2</td><td>File</td><td></td></tr><tr><td>3</td><td>Album</td><td></td></tr><tr><td>4</td><td>Photo</td><td></td></tr><tr><td>5</td><td>ProtonVendor</td><td>documents and sheets</td></tr></table></details></details>
4322
+ * @enum {integer}
4323
+ */
4324
+ TargetType: 0 | 1 | 2 | 3 | 4 | 5;
4089
4325
  ListPendingInvitationResponseDto: {
4090
4326
  Invitations: components["schemas"]["PendingInvitationItemDto"][];
4091
4327
  /** @description Used for pagination, pass to the next call to get the next page of results */
@@ -4101,7 +4337,7 @@ export interface components {
4101
4337
  };
4102
4338
  PendingInvitationResponseDto: {
4103
4339
  Invitation: components["schemas"]["InvitationResponseDto"];
4104
- Share: components["schemas"]["ShareResponseDto3"];
4340
+ Share: components["schemas"]["ShareResponseDto2"];
4105
4341
  Link: components["schemas"]["LinkResponseDto"];
4106
4342
  /**
4107
4343
  * ProtonResponseCode
@@ -4202,6 +4438,10 @@ export interface components {
4202
4438
  DocsCommentsNotificationsEnabled?: boolean | null;
4203
4439
  /** @description Indicates if email notifications for comment activity in Proton Docs should include the document name. If null, the default value to 0 = false will be used by backend. */
4204
4440
  DocsCommentsNotificationsIncludeDocumentName?: boolean | null;
4441
+ /** @description Indicates user-preferred font in Proton Docs. */
4442
+ DocsFontPreference?: string | null;
4443
+ /** @description Order and visibility of Photo Tags, tags not in the list should not be shown; Use defaults when NULL; Show no tags if empty array. */
4444
+ PhotoTags?: components["schemas"]["TagType"][] | null;
4205
4445
  };
4206
4446
  CreateVolumeRequestDto: {
4207
4447
  /** @description User's Address encrypted ID */
@@ -4245,25 +4485,47 @@ export interface components {
4245
4485
  */
4246
4486
  Code: 1000;
4247
4487
  };
4488
+ /** @description Name, Hash, NodePassphrase and NodePassphraseSignature are required when restoring a regular volume but should not be passed when restoring a photo volume. Please pass them as part of MainShares array to support multiple locked main shares. */
4248
4489
  RestoreVolumeDto: {
4249
- /** @description Folder name as armored PGP message */
4250
- Name: string;
4251
4490
  /** Format: email */
4252
4491
  SignatureAddress: string;
4253
- /** @description Hash of the name */
4254
- Hash: string;
4255
- NodePassphrase: components["schemas"]["PGPMessage"];
4256
- NodePassphraseSignature: components["schemas"]["PGPSignature"];
4257
- TargetVolumeID: components["schemas"]["Id"];
4492
+ /**
4493
+ * @deprecated
4494
+ * @default null
4495
+ */
4496
+ TargetVolumeID: components["schemas"]["Id"] | null;
4497
+ /**
4498
+ * @deprecated
4499
+ * @description Folder name as armored PGP message
4500
+ * @default null
4501
+ */
4502
+ Name: string | null;
4503
+ /**
4504
+ * @deprecated
4505
+ * @description Hash of the name
4506
+ */
4507
+ Hash?: string | null;
4508
+ /**
4509
+ * @deprecated
4510
+ * @default null
4511
+ */
4512
+ NodePassphrase: components["schemas"]["PGPMessage"] | null;
4513
+ /**
4514
+ * @deprecated
4515
+ * @default null
4516
+ */
4517
+ NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
4518
+ /** @default [] */
4519
+ MainShares: components["schemas"]["RestoreMainShareDto"][];
4258
4520
  /** @default [] */
4259
4521
  Devices: components["schemas"]["RestoreDeviceDto"][];
4260
4522
  /** @default [] */
4261
4523
  PhotoShares: components["schemas"]["RestorePhotoShareDto"][];
4262
4524
  /**
4263
- * @description Node Hash Key should be provided if it needs to be signed because it was unsigned or signed with the address key (legacy). It should be signed with the new parent's node key. If it was properly signed with the parent node key, it should not be updated. Armored PGP message.
4525
+ * @deprecated
4264
4526
  * @default null
4265
4527
  */
4266
- NodeHashKey: string | null;
4528
+ NodeHashKey: components["schemas"]["PGPMessage"] | null;
4267
4529
  /** @description User's encrypted AddressKeyID. Must be the primary key from the signatureAddress */
4268
4530
  AddressKeyID: string;
4269
4531
  };
@@ -4469,101 +4731,21 @@ export interface components {
4469
4731
  Tags?: number[];
4470
4732
  } | null;
4471
4733
  } & components["schemas"]["LinkTransformer"];
4472
- /** Revision */
4473
- DetailedRevisionTransformer: {
4474
- /** @description Block list */
4475
- Blocks: {
4476
- /** @description Block index */
4477
- Index: number;
4478
- /** @description Encrypted block's sha256 hash, in base64 */
4479
- Hash: string;
4480
- /** @description Token for download url */
4481
- Token: string | null;
4482
- /**
4483
- * @deprecated
4484
- * @description Block download url
4485
- * @example https://block.example.com/abcd/
4486
- */
4487
- URL?: string | null;
4488
- /**
4489
- * @description Bare Block download url
4490
- * @example https://block.example.com/abcd/
4491
- */
4492
- BareURL: string | null;
4493
- /**
4494
- * @description Encrypted block signature
4495
- * @example -----BEGIN PGP MESSAGE-----...
4496
- */
4497
- EncSignature: string | null;
4498
- /**
4499
- * Format: email
4500
- * @description Email used to sign block
4501
- */
4502
- SignatureEmail?: string | null;
4503
- }[];
4504
- Photo: components["schemas"]["PhotoTransformer2"] | null;
4505
- } & components["schemas"]["RevisionTransformer"];
4734
+ GetRevisionResponseDto2: {
4735
+ Revision: components["schemas"]["DetailedRevisionResponseDto2"];
4736
+ /**
4737
+ * ProtonResponseCode
4738
+ * @example 1000
4739
+ * @enum {integer}
4740
+ */
4741
+ Code: 1000;
4742
+ };
4506
4743
  /** @description Conflict, a share already exists for the file or folder. */
4507
4744
  ShareConflictErrorResponseDto: {
4508
4745
  Details: components["schemas"]["ShareConflictErrorDetailsDto"];
4509
4746
  Error: string;
4510
4747
  Code: number;
4511
4748
  };
4512
- /** Revision */
4513
- RevisionTransformer: {
4514
- /** @description Encrypted revision ID */
4515
- ID: string;
4516
- /** @description Client managed unique ID */
4517
- ClientUID: string | null;
4518
- /** @description Creation time (UNIX timestamp) */
4519
- CreateTime: number;
4520
- /** @description Size of revision (in bytes) */
4521
- Size: number;
4522
- /**
4523
- * @description Manifest signature, signed with the user's address associated with the share, `SignatureEmail`
4524
- * @example -----BEGIN PGP SIGNATURE-----...
4525
- */
4526
- ManifestSignature: string | null;
4527
- /**
4528
- * Format: email
4529
- * @description User's email associated with the share and used to sign the manifest and block contents.
4530
- */
4531
- SignatureEmail: string;
4532
- /**
4533
- * Format: email
4534
- * @deprecated
4535
- * @description [DEPRECATED] use `SignatureEmail` Email address corresponding to the signature
4536
- */
4537
- SignatureAddress: string;
4538
- /**
4539
- * @description State (0=Draft, 1=Active, 2=Obsolete)
4540
- * @enum {integer}
4541
- */
4542
- State: 0 | 1 | 2;
4543
- /**
4544
- * @description Extended attributes.
4545
- * @example -----BEGIN PGP MESSAGE
4546
- */
4547
- XAttr: string | null;
4548
- /**
4549
- * @deprecated
4550
- * @description Flag stating if revision has a thumbnail
4551
- * @enum {integer}
4552
- */
4553
- Thumbnail: 0 | 1;
4554
- /**
4555
- * @deprecated
4556
- * @description Hash for thumbnail
4557
- */
4558
- ThumbnailHash?: string | null;
4559
- /**
4560
- * @deprecated
4561
- * @description Size thumbnail in bytes; 0 if no thumbnail present
4562
- * @example 512
4563
- */
4564
- ThumbnailSize: number;
4565
- Thumbnails: components["schemas"]["ThumbnailTransformer"][];
4566
- };
4567
4749
  SmallFileUploadMetadataRequestDto: {
4568
4750
  Name: components["schemas"]["PGPMessage"];
4569
4751
  NameHash: string;
@@ -4701,27 +4883,41 @@ export interface components {
4701
4883
  };
4702
4884
  PhotoVolumeResponseDto: {
4703
4885
  VolumeID: components["schemas"]["Id2"];
4704
- CreateTime?: number | null;
4705
- ModifyTime?: number | null;
4886
+ CreateTime: number;
4887
+ ModifyTime: number;
4706
4888
  /** @description Used space in bytes */
4707
4889
  UsedSpace: number;
4708
4890
  DownloadedBytes: number;
4709
4891
  UploadedBytes: number;
4710
4892
  State: components["schemas"]["VolumeState"];
4711
4893
  Share: components["schemas"]["ShareReferenceResponseDto"];
4712
- Type: components["schemas"]["VolumeType"];
4894
+ Type: components["schemas"]["VolumeType2"];
4895
+ };
4896
+ FoundDuplicate: {
4897
+ /** @description NameHash of the found duplicate */
4898
+ Hash?: string | null;
4899
+ /** @description ContentHash of the found duplicate */
4900
+ ContentHash?: string | null;
4713
4901
  /**
4714
- * @description Status of restore task if applicable:
4715
- * - 0 => done
4716
- * - 1 => in progress
4717
- * - -1 => failed
4718
- * @default null
4719
- * @enum {integer|null}
4902
+ * @description Can be null if the Link was deleted
4903
+ * @enum {unknown|null}
4720
4904
  */
4721
- RestoreStatus: 0 | 1 | -1 | null;
4905
+ LinkState?: 0 | 1 | 2 | null;
4906
+ /** @description Client defined UID for the draft. Null if no ClientUID passed, or Revision was already committed. */
4907
+ ClientUID?: string | null;
4908
+ /** @description LinkID, null if deleted */
4909
+ LinkID: string;
4910
+ /** @description RevisionID, null if deleted */
4911
+ RevisionID: string;
4912
+ };
4913
+ PhotoTagMigrationDataDto: {
4914
+ LastProcessedLinkID: components["schemas"]["Id2"];
4915
+ LastProcessedCaptureTime: number;
4916
+ LastMigrationTimestamp: number;
4917
+ /** @description Client unique ID. Indicates which client started migration, and thus can/should continue.
4918
+ * if null, client side migration is expired (client has not checked in for > 1h), any eligible client can continue migration */
4919
+ LastClientUID?: string | null;
4722
4920
  };
4723
- /** @description An encrypted ID */
4724
- Id2: string;
4725
4921
  AlbumResponseDto: {
4726
4922
  Locked: boolean;
4727
4923
  LastActivityTime: number;
@@ -4747,6 +4943,34 @@ export interface components {
4747
4943
  */
4748
4944
  Tags: number[];
4749
4945
  };
4946
+ TransferPhotoLinkInBatchRequestDto: {
4947
+ LinkID: components["schemas"]["Id"];
4948
+ /** @description Name, reusing same session key as previously. */
4949
+ Name: string;
4950
+ /** @description Node passphrase, reusing same session key as previously. */
4951
+ NodePassphrase: string;
4952
+ /** @description Name hash */
4953
+ Hash: string;
4954
+ /** @description Current name hash before move operation. Used to prevent race conditions. */
4955
+ OriginalHash: string;
4956
+ /**
4957
+ * @description Optional, when transferring an Album-Link, required when transferring photos. Photo content hash, hmacsha256 of sha1 content using parent folder's hash key [ hmacSha256(folder hash key, sha1(plain content)) ]
4958
+ * @default null
4959
+ */
4960
+ ContentHash: string | null;
4961
+ /**
4962
+ * @description Node Passphrase Signature. Required when moving an anonymous Link. It must be signed by the SignatureEmail address.
4963
+ * @default null
4964
+ */
4965
+ NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
4966
+ };
4967
+ PhotoTagMigrationUpdateDto: {
4968
+ LastProcessedLinkID: components["schemas"]["Id"];
4969
+ LastProcessedCaptureTime: number;
4970
+ CurrentTimestamp: number;
4971
+ /** @description Client unique ID. Indicates which client started migration, and thus can/should continue. */
4972
+ ClientUID: string;
4973
+ };
4750
4974
  AlbumLinkUpdateDto: {
4751
4975
  Name?: components["schemas"]["PGPMessage"] | null;
4752
4976
  Hash?: string | null;
@@ -4834,6 +5058,11 @@ export interface components {
4834
5058
  BinaryString: string;
4835
5059
  /** @description An armored PGP Signature */
4836
5060
  PGPSignature: string;
5061
+ /**
5062
+ * @description <p>Document=1, Sheet=2</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Document</td></tr><tr><td>2</td><td>Sheet</td></tr></table></details></details>
5063
+ * @enum {integer}
5064
+ */
5065
+ DocumentType: 1 | 2;
4837
5066
  /** @description An armored PGP Message */
4838
5067
  PGPMessage: string;
4839
5068
  /** @description An armored PGP Private Key */
@@ -4843,6 +5072,8 @@ export interface components {
4843
5072
  LinkID: components["schemas"]["Id2"];
4844
5073
  RevisionID: components["schemas"]["Id2"];
4845
5074
  };
5075
+ /** @description An encrypted ID */
5076
+ Id2: string;
4846
5077
  EventResponseDto: {
4847
5078
  EventID: components["schemas"]["Id2"];
4848
5079
  EventType: components["schemas"]["EventType"];
@@ -4877,7 +5108,10 @@ export interface components {
4877
5108
  FLAG_RESTORE_COMPLETE?: string;
4878
5109
  /** @description Restoration has failed for corresponding locked volume */
4879
5110
  FLAG_RESTORE_FAILED?: string;
4880
- /** @description Revision has been restored for this LinkID */
5111
+ /**
5112
+ * @deprecated
5113
+ * @description Revision has been restored for this LinkID
5114
+ */
4881
5115
  FLAG_RESTORE_REVISION_COMPLETE?: string;
4882
5116
  /** @description Parent before the move */
4883
5117
  FromParentLinkID?: string;
@@ -4899,6 +5133,12 @@ export interface components {
4899
5133
  LinkID: components["schemas"]["Id2"];
4900
5134
  ClientUID?: string | null;
4901
5135
  };
5136
+ PhotosDto: {
5137
+ /** @description Photo content hash, hmacsha256 of sha1 content using parent folder's hash key [ hmacSha256(folder hash key, sha1(plain content)) ] */
5138
+ ContentHash: string;
5139
+ /** @default [] */
5140
+ RelatedPhotos: components["schemas"]["RelatedPhotoDto"][];
5141
+ };
4902
5142
  ListMissingHashKeyItemDto: {
4903
5143
  LinkID: components["schemas"]["Id2"];
4904
5144
  VolumeID: components["schemas"]["Id2"];
@@ -4913,6 +5153,8 @@ export interface components {
4913
5153
  Membership: components["schemas"]["MembershipDto"] | null;
4914
5154
  /** @default null */
4915
5155
  Folder: null | null;
5156
+ /** @default null */
5157
+ Album: null | null;
4916
5158
  };
4917
5159
  FolderDetailsDto: {
4918
5160
  Link: components["schemas"]["LinkDto"];
@@ -4923,12 +5165,26 @@ export interface components {
4923
5165
  Membership: components["schemas"]["MembershipDto"] | null;
4924
5166
  /** @default null */
4925
5167
  File: null | null;
5168
+ /** @default null */
5169
+ Album: null | null;
5170
+ };
5171
+ AlbumDetailsDto: {
5172
+ Link: components["schemas"]["LinkDto"];
5173
+ Album: components["schemas"]["AlbumDto"];
5174
+ /** @default null */
5175
+ Sharing: components["schemas"]["SharingDto"] | null;
5176
+ /** @default null */
5177
+ Membership: components["schemas"]["MembershipDto"] | null;
5178
+ /** @default null */
5179
+ File: null | null;
5180
+ /** @default null */
5181
+ Folder: null | null;
4926
5182
  };
4927
5183
  MoveLinkInBatchRequestDto: {
4928
5184
  LinkID: components["schemas"]["Id"];
4929
5185
  /** @description Name, reusing same session key as previously. */
4930
5186
  Name: string;
4931
- /** @description Node passphrase, passphrase should be unchanged, only key packet is used. */
5187
+ /** @description Node passphrase, reusing same session key as previously. */
4932
5188
  NodePassphrase: string;
4933
5189
  /** @description Name hash */
4934
5190
  Hash: string;
@@ -4979,13 +5235,51 @@ export interface components {
4979
5235
  Index: number;
4980
5236
  Token: string;
4981
5237
  };
4982
- /** @description Base64 encoded binary data */
4983
- BinaryString2: string;
4984
- ShareTrashList: {
4985
- ShareID: components["schemas"]["Id2"];
4986
- /** @description List of trashed link IDs for that share */
4987
- LinkIDs: components["schemas"]["Id2"][];
4988
- /** @description List of trashed link's parentLinkIDs */
5238
+ RevisionResponseDto: {
5239
+ ID: components["schemas"]["Id2"];
5240
+ ManifestSignature?: components["schemas"]["PGPSignature2"] | null;
5241
+ /** @description Size of revision (in bytes) */
5242
+ Size: number;
5243
+ State: components["schemas"]["RevisionState"];
5244
+ XAttr?: components["schemas"]["PGPMessage2"] | null;
5245
+ /**
5246
+ * @deprecated
5247
+ * @description Flag stating if revision has a thumbnail
5248
+ * @enum {integer}
5249
+ */
5250
+ Thumbnail: 0 | 1;
5251
+ /** @deprecated */
5252
+ ThumbnailHash?: components["schemas"]["BinaryString2"] | null;
5253
+ /**
5254
+ * @deprecated
5255
+ * @description Size thumbnail in bytes; 0 if no thumbnail present
5256
+ */
5257
+ ThumbnailSize: number;
5258
+ Thumbnails: components["schemas"]["ThumbnailResponseDto"][];
5259
+ ClientUID?: string | null;
5260
+ /** @default null */
5261
+ CreateTime: number | null;
5262
+ /**
5263
+ * Format: email
5264
+ * @description User's email associated with the share and used to sign the manifest and block contents.
5265
+ * @default null
5266
+ */
5267
+ SignatureEmail: string | null;
5268
+ /**
5269
+ * Format: email
5270
+ * @deprecated
5271
+ * @description [DEPRECATED] use `SignatureEmail` Email address corresponding to the signature
5272
+ * @default null
5273
+ */
5274
+ SignatureAddress: string | null;
5275
+ };
5276
+ /** @description Base64 encoded binary data */
5277
+ BinaryString2: string;
5278
+ ShareTrashList: {
5279
+ ShareID: components["schemas"]["Id2"];
5280
+ /** @description List of trashed link IDs for that share */
5281
+ LinkIDs: components["schemas"]["Id2"][];
5282
+ /** @description List of trashed link's parentLinkIDs */
4989
5283
  ParentIDs: components["schemas"]["Id2"][];
4990
5284
  };
4991
5285
  RequestUploadBlockInput: {
@@ -5029,33 +5323,37 @@ export interface components {
5029
5323
  /** @description Allow or not the user to create writable ShareURLs */
5030
5324
  PublicCollaboration: boolean;
5031
5325
  };
5032
- ShareResponseDto: {
5033
- ShareID: components["schemas"]["Id2"];
5034
- LinkID: components["schemas"]["Id2"];
5035
- };
5036
- FoundDuplicate: {
5037
- /** @description NameHash of the found duplicate */
5038
- Hash?: string | null;
5039
- /** @description ContentHash of the found duplicate */
5040
- ContentHash?: string | null;
5326
+ FavoritePhotoDataDto: {
5327
+ /** @description Name Hash */
5328
+ Hash: string;
5329
+ Name: string;
5041
5330
  /**
5042
- * @description Can be null if the Link was deleted
5043
- * @enum {unknown|null}
5331
+ * Format: email
5332
+ * @description Email address used for signing name
5044
5333
  */
5045
- LinkState?: 0 | 1 | 2 | null;
5046
- /** @description Client defined UID for the draft. Null if no ClientUID passed, or Revision was already committed. */
5047
- ClientUID?: string | null;
5048
- /** @description LinkID, null if deleted */
5049
- LinkID: string;
5050
- /** @description RevisionID, null if deleted */
5051
- RevisionID: string;
5334
+ NameSignatureEmail: string;
5335
+ NodePassphrase: components["schemas"]["PGPMessage"];
5336
+ /** @description Photo content hash */
5337
+ ContentHash: string;
5338
+ /** @description Nullable; Node Passphrase Signature. Required when moving an anonymous Link. It must be signed by the SignatureEmail address. */
5339
+ NodePassphraseSignature?: components["schemas"]["PGPSignature"] | null;
5340
+ /**
5341
+ * Format: email
5342
+ * @description Nullable: Required when moving an anonymous link. Email address used for the NodePassphraseSignature
5343
+ */
5344
+ SignatureEmail?: string | null;
5345
+ /** @default [] */
5346
+ RelatedPhotos: components["schemas"]["AlbumPhotoLinkDataDto"][];
5347
+ };
5348
+ FavoriteRelatedPhotoResponseDto: {
5349
+ LinkID: components["schemas"]["Id2"];
5052
5350
  };
5053
5351
  PhotoListingItemResponse: {
5054
5352
  LinkID: components["schemas"]["Id2"];
5055
5353
  /** @description Unix timestamp of when the photo was taken as extracted by client from exif */
5056
5354
  CaptureTime: number;
5057
5355
  /** @description File name hash */
5058
- Hash?: string | null;
5356
+ Hash: string;
5059
5357
  /** @description Photo content hash, Hashmac of content using parent folder's hash key */
5060
5358
  ContentHash?: string | null;
5061
5359
  /**
@@ -5137,6 +5435,8 @@ export interface components {
5137
5435
  Membership: components["schemas"]["MembershipDto2"] | null;
5138
5436
  /** @default null */
5139
5437
  File: null | null;
5438
+ /** @default null */
5439
+ Album: null | null;
5140
5440
  };
5141
5441
  /**
5142
5442
  * @description <p>1=Main, 2=Standard, 3=Device, 4=Photo</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Name</th><th>Description</th></tr><tr><td>1</td><td>Main</td><td>* Root share for my files</td></tr><tr><td>2</td><td>Standard</td><td>* Collaborative share anywhere in the link tree (but not at the root folder as it cannot be shared)</td></tr><tr><td>3</td><td>Device</td><td>* Root share of devices</td></tr><tr><td>4</td><td>Photo</td><td>* Root share for photos</td></tr></table></details></details>
@@ -5144,10 +5444,15 @@ export interface components {
5144
5444
  */
5145
5445
  ShareType: 1 | 2 | 3 | 4;
5146
5446
  /**
5147
- * @description <p>1=Active, 3=Restored</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Active</td></tr><tr><td>2</td><td>Deleted</td></tr><tr><td>3</td><td>Restored</td></tr><tr><td>4</td><td>Migrating</td></tr><tr><td>33</td><td>HiddenRestoreVolumeIncident2025</td></tr></table></details></details>
5447
+ * @description <p>1=Active, 3=Restored</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Active</td></tr><tr><td>2</td><td>Deleted</td></tr><tr><td>3</td><td>Restored</td></tr><tr><td>4</td><td>Migrating</td></tr><tr><td>5</td><td>Migrated</td></tr><tr><td>6</td><td>Locked</td></tr></table></details></details>
5148
5448
  * @enum {integer}
5149
5449
  */
5150
- ShareState: 1 | 2 | 3 | 4 | 33;
5450
+ ShareState: 1 | 2 | 3 | 4 | 5 | 6;
5451
+ /**
5452
+ * @description <p>1=Regular, 2=Photo</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Regular</td></tr><tr><td>2</td><td>Photo</td></tr></table></details></details>
5453
+ * @enum {integer}
5454
+ */
5455
+ VolumeType: 1 | 2;
5151
5456
  /**
5152
5457
  * @description <p>1=folder, 2=file</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Folder</td></tr><tr><td>2</td><td>File</td></tr><tr><td>3</td><td>Album</td></tr></table></details></details>
5153
5458
  * @enum {integer}
@@ -5205,22 +5510,23 @@ export interface components {
5205
5510
  */
5206
5511
  Unlockable: boolean | null;
5207
5512
  };
5208
- ShareResponseDto2: {
5513
+ ShareResponseDto: {
5209
5514
  ShareID: components["schemas"]["Id2"];
5210
5515
  VolumeID: components["schemas"]["Id2"];
5211
5516
  Type: components["schemas"]["ShareType"];
5212
5517
  State: components["schemas"]["ShareState"];
5518
+ VolumeType: components["schemas"]["VolumeType"];
5213
5519
  /** Format: email */
5214
5520
  Creator: string;
5215
5521
  Locked?: boolean | null;
5216
- CreateTime?: number | null;
5217
- ModifyTime?: number | null;
5522
+ CreateTime: number;
5523
+ ModifyTime: number;
5218
5524
  LinkID: components["schemas"]["Id2"];
5219
5525
  /**
5220
5526
  * @deprecated
5221
5527
  * @description Deprecated: Use `CreateTime`
5222
5528
  */
5223
- CreationTime?: number | null;
5529
+ CreationTime: number;
5224
5530
  /** @deprecated */
5225
5531
  PermissionsMask: number;
5226
5532
  /** @deprecated */
@@ -5248,6 +5554,11 @@ export interface components {
5248
5554
  Error: string;
5249
5555
  Code: number;
5250
5556
  };
5557
+ /**
5558
+ * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>ProtonDrive</td></tr><tr><td>1</td><td>ProtonDoc</td></tr><tr><td>2</td><td>ProtonSheet</td></tr></table></details></details>
5559
+ * @enum {integer}
5560
+ */
5561
+ VendorType: 0 | 1 | 2;
5251
5562
  TokenResponseDto: {
5252
5563
  /**
5253
5564
  * @description Url Token
@@ -5291,6 +5602,46 @@ export interface components {
5291
5602
  */
5292
5603
  NodePassphraseSignature: components["schemas"]["PGPSignature2"] | null;
5293
5604
  };
5605
+ DetailedRevisionResponseDto: {
5606
+ Blocks: components["schemas"]["BlockResponseDto"][];
5607
+ Photo?: components["schemas"]["PhotoResponseDto"] | null;
5608
+ ID: components["schemas"]["Id2"];
5609
+ ManifestSignature?: components["schemas"]["PGPSignature2"] | null;
5610
+ /** @description Size of revision (in bytes) */
5611
+ Size: number;
5612
+ State: components["schemas"]["RevisionState"];
5613
+ XAttr?: components["schemas"]["PGPMessage2"] | null;
5614
+ /**
5615
+ * @deprecated
5616
+ * @description Flag stating if revision has a thumbnail
5617
+ * @enum {integer}
5618
+ */
5619
+ Thumbnail: 0 | 1;
5620
+ /** @deprecated */
5621
+ ThumbnailHash?: components["schemas"]["BinaryString2"] | null;
5622
+ /**
5623
+ * @deprecated
5624
+ * @description Size thumbnail in bytes; 0 if no thumbnail present
5625
+ */
5626
+ ThumbnailSize: number;
5627
+ Thumbnails: components["schemas"]["ThumbnailResponseDto"][];
5628
+ ClientUID?: string | null;
5629
+ /** @default null */
5630
+ CreateTime: number | null;
5631
+ /**
5632
+ * Format: email
5633
+ * @description User's email associated with the share and used to sign the manifest and block contents.
5634
+ * @default null
5635
+ */
5636
+ SignatureEmail: string | null;
5637
+ /**
5638
+ * Format: email
5639
+ * @deprecated
5640
+ * @description [DEPRECATED] use `SignatureEmail` Email address corresponding to the signature
5641
+ * @default null
5642
+ */
5643
+ SignatureAddress: string | null;
5644
+ };
5294
5645
  GetSharedFileInfoPayloadDto: {
5295
5646
  SharePasswordSalt: components["schemas"]["BinaryString2"];
5296
5647
  SharePassphrase: components["schemas"]["PGPMessage2"];
@@ -5542,6 +5893,7 @@ export interface components {
5542
5893
  VolumeID: components["schemas"]["Id2"];
5543
5894
  ShareID: components["schemas"]["Id2"];
5544
5895
  LinkID: components["schemas"]["Id2"];
5896
+ ShareTargetType: components["schemas"]["TargetType2"];
5545
5897
  };
5546
5898
  ExternalInvitationRequestDto: {
5547
5899
  InviterAddressID: components["schemas"]["Id"];
@@ -5634,8 +5986,9 @@ export interface components {
5634
5986
  VolumeID: components["schemas"]["Id2"];
5635
5987
  ShareID: components["schemas"]["Id2"];
5636
5988
  InvitationID: components["schemas"]["Id2"];
5989
+ ShareTargetType: components["schemas"]["TargetType2"];
5637
5990
  };
5638
- ShareResponseDto3: {
5991
+ ShareResponseDto2: {
5639
5992
  ShareID: components["schemas"]["Id2"];
5640
5993
  VolumeID: components["schemas"]["Id2"];
5641
5994
  Passphrase: components["schemas"]["PGPMessage2"];
@@ -5711,7 +6064,9 @@ export interface components {
5711
6064
  DocsCommentsNotificationsEnabled?: boolean | null;
5712
6065
  /** @description Indicates if email notifications for comment activity in Proton Docs should include the document name. If null, the default value to 0 = false will be used by backend. */
5713
6066
  DocsCommentsNotificationsIncludeDocumentName?: boolean | null;
5714
- /** @description Default order and visibility of Photo Tags. */
6067
+ /** @description Indicates user-preferred font in Proton Docs. */
6068
+ DocsFontPreference?: string | null;
6069
+ /** @description Order and visibility of Photo Tags, tags not in the list should not be shown; Use defaults when NULL; Show no tags if empty array. */
5715
6070
  PhotoTags?: number[] | null;
5716
6071
  };
5717
6072
  Defaults: {
@@ -5746,31 +6101,37 @@ export interface components {
5746
6101
  * @deprecated
5747
6102
  * @description Deprecated, use `CreateTime` instead
5748
6103
  */
5749
- CreationTime?: number | null;
6104
+ CreationTime: number;
5750
6105
  /**
5751
6106
  * @deprecated
5752
6107
  * @default null
5753
6108
  */
5754
6109
  MaxSpace: number | null;
5755
6110
  VolumeID: components["schemas"]["Id2"];
5756
- CreateTime?: number | null;
5757
- ModifyTime?: number | null;
6111
+ CreateTime: number;
6112
+ ModifyTime: number;
5758
6113
  /** @description Used space in bytes */
5759
6114
  UsedSpace: number;
5760
6115
  DownloadedBytes: number;
5761
6116
  UploadedBytes: number;
5762
6117
  State: components["schemas"]["VolumeState"];
5763
6118
  Share: components["schemas"]["ShareReferenceResponseDto"];
5764
- Type: components["schemas"]["VolumeType"];
6119
+ Type: components["schemas"]["VolumeType2"];
6120
+ };
6121
+ RestoreMainShareDto: {
6122
+ /** @description ShareID of the existing, locked main share */
6123
+ LockedShareID: string;
6124
+ /** @description Folder name as armored PGP message */
6125
+ Name: string;
6126
+ /** @description Hash of the name */
6127
+ Hash: string;
6128
+ NodePassphrase: components["schemas"]["PGPMessage"];
6129
+ NodePassphraseSignature: components["schemas"]["PGPSignature"];
5765
6130
  /**
5766
- * @description Status of restore task if applicable:
5767
- * - 0 => done
5768
- * - 1 => in progress
5769
- * - -1 => failed
6131
+ * @description Node Hash Key should be provided if it needs to be signed because it was unsigned or signed with the address key (legacy). It should be signed with the new parent's node key. If it was properly signed with the parent node key, it should not be updated. Armored PGP message.
5770
6132
  * @default null
5771
- * @enum {integer|null}
5772
6133
  */
5773
- RestoreStatus: 0 | 1 | -1 | null;
6134
+ NodeHashKey: string | null;
5774
6135
  };
5775
6136
  RestoreDeviceDto: {
5776
6137
  /** @description ShareID of the existing share on the old volume */
@@ -5814,8 +6175,7 @@ export interface components {
5814
6175
  };
5815
6176
  /** Thumbnail */
5816
6177
  ThumbnailTransformer: {
5817
- /** @description Encrypted Thumbnail ID. Will be null for legacy Thumbnails. */
5818
- ThumbnailID: string | null;
6178
+ ThumbnailID: string;
5819
6179
  /** @enum {integer} */
5820
6180
  Type: 1 | 2 | 3;
5821
6181
  /** @description Base64 encoded thumbnail-content-hash */
@@ -5888,10 +6248,11 @@ export interface components {
5888
6248
  */
5889
6249
  MIMEType: string;
5890
6250
  /**
5891
- * @description Attributes
5892
- * @example 1
6251
+ * @deprecated
6252
+ * @description Always returns 1
6253
+ * @enum {integer}
5893
6254
  */
5894
- Attributes: number;
6255
+ Attributes: 1;
5895
6256
  /**
5896
6257
  * @deprecated
5897
6258
  * @description Always returns 7, read+write+execute
@@ -5930,23 +6291,45 @@ export interface components {
5930
6291
  /** @description Timestamp, time at which the file was trashed, null if file is not trashed. */
5931
6292
  Trashed: number | null;
5932
6293
  };
5933
- /** Photo */
5934
- PhotoTransformer2: {
5935
- LinkID: string;
5936
- /** @description Unix timestamp of when the photo was taken as extracted by client from exif */
5937
- CaptureTime: number;
5938
- MainPhotoLinkID: string | null;
5939
- /** @description File name hash */
5940
- Hash: string;
6294
+ DetailedRevisionResponseDto2: {
6295
+ Blocks: components["schemas"]["BlockResponseDto2"][];
6296
+ Photo?: components["schemas"]["PhotoResponseDto2"] | null;
6297
+ ID: components["schemas"]["Id"];
6298
+ ManifestSignature?: components["schemas"]["PGPSignature"] | null;
6299
+ /** @description Size of revision (in bytes) */
6300
+ Size: number;
6301
+ State: components["schemas"]["RevisionState2"];
6302
+ XAttr?: components["schemas"]["PGPMessage"] | null;
5941
6303
  /**
5942
6304
  * @deprecated
5943
- * @description Deprecated: Clients persist exif information in xAttr instead
6305
+ * @description Flag stating if revision has a thumbnail
6306
+ * @enum {integer}
5944
6307
  */
5945
- Exif?: string | null;
5946
- /** @description Photo content hash, Hashmac of content using parent folder's hash key */
5947
- ContentHash: string | null;
5948
- /** @description LinkIDs of related Photos if there are any */
5949
- RelatedPhotosLinkIDs: string[];
6308
+ Thumbnail: 0 | 1;
6309
+ /** @deprecated */
6310
+ ThumbnailHash?: components["schemas"]["BinaryString"] | null;
6311
+ /**
6312
+ * @deprecated
6313
+ * @description Size thumbnail in bytes; 0 if no thumbnail present
6314
+ */
6315
+ ThumbnailSize: number;
6316
+ Thumbnails: components["schemas"]["ThumbnailResponseDto2"][];
6317
+ ClientUID?: string | null;
6318
+ /** @default null */
6319
+ CreateTime: number | null;
6320
+ /**
6321
+ * Format: email
6322
+ * @description User's email associated with the share and used to sign the manifest and block contents.
6323
+ * @default null
6324
+ */
6325
+ SignatureEmail: string | null;
6326
+ /**
6327
+ * Format: email
6328
+ * @deprecated
6329
+ * @description [DEPRECATED] use `SignatureEmail` Email address corresponding to the signature
6330
+ * @default null
6331
+ */
6332
+ SignatureAddress: string | null;
5950
6333
  };
5951
6334
  ShareConflictErrorDetailsDto: {
5952
6335
  ConflictLinkID: components["schemas"]["Id"];
@@ -5970,7 +6353,12 @@ export interface components {
5970
6353
  * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Regular</td></tr><tr><td>2</td><td>Photo</td></tr></table></details></details>
5971
6354
  * @enum {integer}
5972
6355
  */
5973
- VolumeType: 1 | 2;
6356
+ VolumeType2: 1 | 2;
6357
+ /**
6358
+ * @description <p>Can be null if the Link was deleted</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>Draft</td></tr><tr><td>1</td><td>Active</td></tr><tr><td>2</td><td>Trashed</td></tr></table></details></details>
6359
+ * @enum {integer}
6360
+ */
6361
+ LinkState: 0 | 1 | 2;
5974
6362
  ListPhotosAlbumRelatedPhotoItemResponseDto: {
5975
6363
  LinkID: components["schemas"]["Id2"];
5976
6364
  CaptureTime: number;
@@ -6000,7 +6388,7 @@ export interface components {
6000
6388
  /** @description UNIX timestamp when the Device got last synced */
6001
6389
  LastSyncTime?: number | null;
6002
6390
  CreateTime: number;
6003
- ModifyTime?: number | null;
6391
+ ModifyTime: number;
6004
6392
  /**
6005
6393
  * @deprecated
6006
6394
  * @description Deprecated: use `CreateTime`
@@ -6016,7 +6404,7 @@ export interface components {
6016
6404
  DeviceDto: {
6017
6405
  DeviceID: components["schemas"]["Id2"];
6018
6406
  CreateTime: number;
6019
- ModifyTime?: number | null;
6407
+ ModifyTime: number;
6020
6408
  Type: components["schemas"]["DeviceType2"];
6021
6409
  };
6022
6410
  /**
@@ -6030,6 +6418,17 @@ export interface components {
6030
6418
  IsShared: boolean;
6031
6419
  IsTrashed: boolean;
6032
6420
  };
6421
+ RelatedPhotoDto: {
6422
+ LinkID: components["schemas"]["Id"];
6423
+ /** @description Name, reusing same session key as previously. */
6424
+ Name: string;
6425
+ /** @description Node passphrase, reusing same session key as previously. */
6426
+ NodePassphrase: string;
6427
+ /** @description Name hash */
6428
+ Hash: string;
6429
+ /** @description Photo content hash, hmacsha256 of sha1 content using parent folder's hash key [ hmacSha256(folder hash key, sha1(plain content)) ] */
6430
+ ContentHash: string;
6431
+ };
6033
6432
  LinkDto: {
6034
6433
  LinkID: components["schemas"]["Id"];
6035
6434
  Type: components["schemas"]["NodeType4"];
@@ -6076,6 +6475,21 @@ export interface components {
6076
6475
  NodeHashKey?: components["schemas"]["PGPMessage"] | null;
6077
6476
  XAttr?: components["schemas"]["PGPMessage"] | null;
6078
6477
  };
6478
+ AlbumDto: {
6479
+ NodeHashKey?: components["schemas"]["PGPMessage"] | null;
6480
+ XAttr?: components["schemas"]["PGPMessage"] | null;
6481
+ };
6482
+ /**
6483
+ * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>Draft</td></tr><tr><td>1</td><td>Active</td></tr><tr><td>2</td><td>Obsolete</td></tr></table></details></details>
6484
+ * @enum {integer}
6485
+ */
6486
+ RevisionState: 0 | 1 | 2;
6487
+ ThumbnailResponseDto: {
6488
+ ThumbnailID: components["schemas"]["Id2"];
6489
+ Type: components["schemas"]["ThumbnailType2"];
6490
+ Hash: components["schemas"]["BinaryString2"];
6491
+ Size: number;
6492
+ };
6079
6493
  Verifier: {
6080
6494
  Token: components["schemas"]["BinaryString"];
6081
6495
  };
@@ -6089,17 +6503,12 @@ export interface components {
6089
6503
  * @enum {integer}
6090
6504
  */
6091
6505
  ThumbnailType2: 1 | 2 | 3;
6092
- /**
6093
- * @description <p>Can be null if the Link was deleted</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>Draft</td></tr><tr><td>1</td><td>Active</td></tr><tr><td>2</td><td>Trashed</td></tr></table></details></details>
6094
- * @enum {integer}
6095
- */
6096
- LinkState: 0 | 1 | 2;
6097
6506
  PhotoListingRelatedItemResponse: {
6098
6507
  LinkID: components["schemas"]["Id2"];
6099
6508
  /** @description Unix timestamp of when the photo was taken as extracted by client from exif */
6100
6509
  CaptureTime: number;
6101
6510
  /** @description File name hash */
6102
- Hash?: string | null;
6511
+ Hash: string;
6103
6512
  /** @description Photo content hash, Hashmac of content using parent folder's hash key */
6104
6513
  ContentHash?: string | null;
6105
6514
  };
@@ -6177,6 +6586,44 @@ export interface components {
6177
6586
  /** @description Token for the thumbnail URL */
6178
6587
  Token?: string | null;
6179
6588
  };
6589
+ BlockResponseDto: {
6590
+ Index: number;
6591
+ Hash: components["schemas"]["BinaryString2"];
6592
+ Token?: string | null;
6593
+ /** @deprecated */
6594
+ URL?: string | null;
6595
+ BareURL?: string | null;
6596
+ EncSignature?: components["schemas"]["PGPMessage2"] | null;
6597
+ /**
6598
+ * Format: email
6599
+ * @description Email used to sign block
6600
+ */
6601
+ SignatureEmail?: string | null;
6602
+ };
6603
+ PhotoResponseDto: {
6604
+ LinkID: components["schemas"]["Id2"];
6605
+ /** @description Unix timestamp of when the photo was taken as extracted by client from exif */
6606
+ CaptureTime: number;
6607
+ MainPhotoLinkID?: components["schemas"]["Id2"] | null;
6608
+ /** @description File name hash */
6609
+ Hash?: string | null;
6610
+ /** @description Photo content hash, Hashmac of content using parent folder's hash key */
6611
+ ContentHash?: string | null;
6612
+ /** @description LinkIDs of related Photos if there are any */
6613
+ RelatedPhotosLinkIDs: components["schemas"]["Id2"][];
6614
+ /**
6615
+ * @deprecated
6616
+ * @description Deprecated: Clients persist exif information in xAttr instead
6617
+ * @default null
6618
+ */
6619
+ Exif: string | null;
6620
+ };
6621
+ /**
6622
+ * @description <p>The target type of the Share that is corresponding to this invitation.<br />
6623
+ * This should not be used as source of information to know what NodeType or MIMEType the targeted Share is.</p><details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Name</th><th>Description</th></tr><tr><td>0</td><td>Root</td><td>main, device or photo root share</td></tr><tr><td>1</td><td>Folder</td><td></td></tr><tr><td>2</td><td>File</td><td></td></tr><tr><td>3</td><td>Album</td><td></td></tr><tr><td>4</td><td>Photo</td><td></td></tr><tr><td>5</td><td>ProtonVendor</td><td>documents and sheets</td></tr></table></details></details>
6624
+ * @enum {integer}
6625
+ */
6626
+ TargetType2: 0 | 1 | 2 | 3 | 4 | 5;
6180
6627
  /**
6181
6628
  * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>1</td><td>Pending</td></tr><tr><td>2</td><td>UserRegistered</td></tr><tr><td>4</td><td>Deleted</td></tr></table></details></details>
6182
6629
  * @enum {integer}
@@ -6202,6 +6649,49 @@ export interface components {
6202
6649
  * @enum {integer}
6203
6650
  */
6204
6651
  RevisionRetentionDays3: 0 | 7 | 30 | 180 | 365 | 3650;
6652
+ BlockResponseDto2: {
6653
+ Index: number;
6654
+ Hash: components["schemas"]["BinaryString"];
6655
+ Token?: string | null;
6656
+ /** @deprecated */
6657
+ URL?: string | null;
6658
+ BareURL?: string | null;
6659
+ EncSignature?: components["schemas"]["PGPMessage"] | null;
6660
+ /**
6661
+ * Format: email
6662
+ * @description Email used to sign block
6663
+ */
6664
+ SignatureEmail?: string | null;
6665
+ };
6666
+ PhotoResponseDto2: {
6667
+ LinkID: components["schemas"]["Id"];
6668
+ /** @description Unix timestamp of when the photo was taken as extracted by client from exif */
6669
+ CaptureTime: number;
6670
+ MainPhotoLinkID?: components["schemas"]["Id"] | null;
6671
+ /** @description File name hash */
6672
+ Hash?: string | null;
6673
+ /** @description Photo content hash, Hashmac of content using parent folder's hash key */
6674
+ ContentHash?: string | null;
6675
+ /** @description LinkIDs of related Photos if there are any */
6676
+ RelatedPhotosLinkIDs: components["schemas"]["Id"][];
6677
+ /**
6678
+ * @deprecated
6679
+ * @description Deprecated: Clients persist exif information in xAttr instead
6680
+ * @default null
6681
+ */
6682
+ Exif: string | null;
6683
+ };
6684
+ /**
6685
+ * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>Draft</td></tr><tr><td>1</td><td>Active</td></tr><tr><td>2</td><td>Obsolete</td></tr></table></details></details>
6686
+ * @enum {integer}
6687
+ */
6688
+ RevisionState2: 0 | 1 | 2;
6689
+ ThumbnailResponseDto2: {
6690
+ ThumbnailID: components["schemas"]["Id"];
6691
+ Type: components["schemas"]["ThumbnailType"];
6692
+ Hash: components["schemas"]["BinaryString"];
6693
+ Size: number;
6694
+ };
6205
6695
  /**
6206
6696
  * @description <details><summary>See values descriptions</summary><details><summary>See values descriptions</summary><table><tr><th>Value</th><th>Description</th></tr><tr><td>0</td><td>Disabled</td></tr><tr><td>1</td><td>Enabled</td></tr></table></details></details>
6207
6697
  * @enum {integer}
@@ -6236,7 +6726,7 @@ export interface components {
6236
6726
  ThumbnailDto: {
6237
6727
  ThumbnailID: components["schemas"]["Id"];
6238
6728
  Type: components["schemas"]["ThumbnailType"];
6239
- Hash: string;
6729
+ Hash: components["schemas"]["BinaryString"];
6240
6730
  EncryptedSize: number;
6241
6731
  };
6242
6732
  PhotoDto: {
@@ -6587,71 +7077,239 @@ export interface operations {
6587
7077
  };
6588
7078
  };
6589
7079
  };
6590
- "get_drive-photos-migrate-legacy": {
7080
+ "post_drive-photos-volumes-{volumeID}-albums-{linkID}-duplicates": {
6591
7081
  parameters: {
6592
7082
  query?: never;
6593
7083
  header?: never;
6594
- path?: never;
7084
+ path: {
7085
+ volumeID: string;
7086
+ linkID: string;
7087
+ };
6595
7088
  cookie?: never;
6596
7089
  };
6597
- requestBody?: never;
7090
+ requestBody?: {
7091
+ content: {
7092
+ "application/json": components["schemas"]["FindDuplicatesInput"];
7093
+ };
7094
+ };
7095
+ responses: {
7096
+ /** @description Success */
7097
+ 200: {
7098
+ headers: {
7099
+ "x-pm-code": 1000;
7100
+ [name: string]: unknown;
7101
+ };
7102
+ content: {
7103
+ "application/json": components["schemas"]["FindDuplicatesOutputCollection"];
7104
+ };
7105
+ };
7106
+ };
7107
+ };
7108
+ "get_drive-photos-volumes-{volumeID}-tags-migration": {
7109
+ parameters: {
7110
+ query?: never;
7111
+ header?: never;
7112
+ path: {
7113
+ volumeID: string;
7114
+ };
7115
+ cookie?: never;
7116
+ };
7117
+ requestBody?: never;
7118
+ responses: {
7119
+ /** @description Success */
7120
+ 200: {
7121
+ headers: {
7122
+ "x-pm-code": 1000;
7123
+ [name: string]: unknown;
7124
+ };
7125
+ content: {
7126
+ "application/json": components["schemas"]["PhotoTagMigrationStatusResponseDto"];
7127
+ };
7128
+ };
7129
+ /** @description Unprocessable Entity */
7130
+ 422: {
7131
+ headers: {
7132
+ [name: string]: unknown;
7133
+ };
7134
+ content: {
7135
+ "application/json": {
7136
+ /** @description Potential codes and their meaning:
7137
+ * - 2501: volume does not exist, or is not photo volume
7138
+ * - 2011: Insufficient permissions, not volume owner
7139
+ * */
7140
+ Code: number;
7141
+ };
7142
+ };
7143
+ };
7144
+ };
7145
+ };
7146
+ "post_drive-photos-volumes-{volumeID}-tags-migration": {
7147
+ parameters: {
7148
+ query?: never;
7149
+ header?: never;
7150
+ path: {
7151
+ volumeID: string;
7152
+ };
7153
+ cookie?: never;
7154
+ };
7155
+ requestBody?: {
7156
+ content: {
7157
+ "application/json": components["schemas"]["UpdatePhotoTagMigrationStatusRequestDto"];
7158
+ };
7159
+ };
7160
+ responses: {
7161
+ /** @description Success */
7162
+ 200: {
7163
+ headers: {
7164
+ "x-pm-code": 1000;
7165
+ [name: string]: unknown;
7166
+ };
7167
+ content: {
7168
+ "application/json": components["schemas"]["SuccessfulResponse"];
7169
+ };
7170
+ };
7171
+ /** @description Unprocessable Entity */
7172
+ 422: {
7173
+ headers: {
7174
+ [name: string]: unknown;
7175
+ };
7176
+ content: {
7177
+ "application/json": {
7178
+ /** @description Potential codes and their meaning:
7179
+ * - 2501: volume does not exist, or is not photo volume
7180
+ * - 2011: Insufficient permissions, not volume owner
7181
+ * */
7182
+ Code: number;
7183
+ };
7184
+ };
7185
+ };
7186
+ };
7187
+ };
7188
+ "get_drive-photos-volumes-{volumeID}-albums-{linkID}-children": {
7189
+ parameters: {
7190
+ query?: {
7191
+ AnchorID?: components["schemas"]["ListPhotosAlbumQueryParameters"]["AnchorID"];
7192
+ Sort?: components["schemas"]["ListPhotosAlbumQueryParameters"]["Sort"];
7193
+ Desc?: components["schemas"]["ListPhotosAlbumQueryParameters"]["Desc"];
7194
+ Tag?: components["schemas"]["ListPhotosAlbumQueryParameters"]["Tag"];
7195
+ OnlyChildren?: components["schemas"]["ListPhotosAlbumQueryParameters"]["OnlyChildren"];
7196
+ IncludeTrashed?: components["schemas"]["ListPhotosAlbumQueryParameters"]["IncludeTrashed"];
7197
+ };
7198
+ header?: never;
7199
+ path: {
7200
+ volumeID: string;
7201
+ linkID: string;
7202
+ };
7203
+ cookie?: never;
7204
+ };
7205
+ requestBody?: never;
7206
+ responses: {
7207
+ /** @description Success */
7208
+ 200: {
7209
+ headers: {
7210
+ "x-pm-code": 1000;
7211
+ [name: string]: unknown;
7212
+ };
7213
+ content: {
7214
+ "application/json": components["schemas"]["ListPhotosAlbumResponseDto"];
7215
+ };
7216
+ };
7217
+ /** @description Unprocessable Entity */
7218
+ 422: {
7219
+ headers: {
7220
+ [name: string]: unknown;
7221
+ };
7222
+ content: {
7223
+ "application/json": {
7224
+ /** @description Potential codes and their meaning:
7225
+ * - 2501: Volume not found
7226
+ * - 2501: File or folder not found
7227
+ * - 2011: Insufficient permissions
7228
+ * */
7229
+ Code: number;
7230
+ };
7231
+ };
7232
+ };
7233
+ };
7234
+ };
7235
+ "put_drive-photos-volumes-{volumeID}-recover-multiple": {
7236
+ parameters: {
7237
+ query?: never;
7238
+ header?: never;
7239
+ path: {
7240
+ volumeID: string;
7241
+ };
7242
+ cookie?: never;
7243
+ };
7244
+ requestBody?: {
7245
+ content: {
7246
+ "application/json": components["schemas"]["TransferPhotoLinksRequestDto"];
7247
+ };
7248
+ };
6598
7249
  responses: {
6599
- /** @description Success */
7250
+ /** @description Ok */
6600
7251
  200: {
6601
7252
  headers: {
6602
- "x-pm-code": 1000;
6603
- [name: string]: unknown;
6604
- };
6605
- content: {
6606
- "application/json": components["schemas"]["GetMigrationStatusResponseDto"];
6607
- };
6608
- };
6609
- /** @description Accepted */
6610
- 202: {
6611
- headers: {
6612
- "x-pm-code": 1002;
6613
7253
  [name: string]: unknown;
6614
7254
  };
6615
7255
  content: {
6616
- "application/json": components["schemas"]["AcceptedResponse"];
7256
+ "application/json": {
7257
+ /** @enum {integer} */
7258
+ Code?: 1001;
7259
+ Responses?: {
7260
+ /** @description Encrypted link ID */
7261
+ LinkID?: string;
7262
+ Response?: components["schemas"]["ProtonSuccess"] | components["schemas"]["ProtonError"];
7263
+ }[];
7264
+ };
6617
7265
  };
6618
7266
  };
6619
- /** @description Failed dependency */
6620
- 424: {
7267
+ /** @description Unprocessable Entity */
7268
+ 422: {
6621
7269
  headers: {
6622
7270
  [name: string]: unknown;
6623
7271
  };
6624
7272
  content: {
6625
7273
  "application/json": {
6626
- /**
6627
- * @description Potential codes:
6628
- * - 2032
6629
- *
6630
- * @enum {integer}
6631
- */
6632
- Code: 2032;
7274
+ /** @description Potential codes and their meaning:
7275
+ * - 2501: The volume does not exist.
7276
+ * - 2511: cannot recover photos from a share
7277
+ * - 2011: cannot move favorite photos from a share
7278
+ * - 2000: All main photos have to be sent with related photos.
7279
+ * */
7280
+ Code: number;
6633
7281
  };
6634
7282
  };
6635
7283
  };
6636
7284
  };
6637
7285
  };
6638
- "post_drive-photos-migrate-legacy": {
7286
+ "post_drive-photos-volumes-{volumeID}-albums-{linkID}-remove-multiple": {
6639
7287
  parameters: {
6640
7288
  query?: never;
6641
7289
  header?: never;
6642
- path?: never;
7290
+ path: {
7291
+ volumeID: string;
7292
+ linkID: string;
7293
+ };
6643
7294
  cookie?: never;
6644
7295
  };
6645
- requestBody?: never;
7296
+ requestBody?: {
7297
+ content: {
7298
+ "application/json": components["schemas"]["RemovePhotosFromAlbumRequestDto"];
7299
+ };
7300
+ };
6646
7301
  responses: {
6647
- /** @description Accepted */
6648
- 202: {
7302
+ /** @description Ok */
7303
+ 200: {
6649
7304
  headers: {
6650
- "x-pm-code": 1002;
6651
7305
  [name: string]: unknown;
6652
7306
  };
6653
7307
  content: {
6654
- "application/json": components["schemas"]["AcceptedResponse"];
7308
+ "application/json": {
7309
+ /** @enum {integer} */
7310
+ Code?: 1001;
7311
+ Responses?: components["schemas"]["RemovePhotoFromAlbumWithLinkIDResponseDto"][];
7312
+ };
6655
7313
  };
6656
7314
  };
6657
7315
  /** @description Unprocessable Entity */
@@ -6662,46 +7320,21 @@ export interface operations {
6662
7320
  content: {
6663
7321
  "application/json": {
6664
7322
  /** @description Potential codes and their meaning:
6665
- * - 2500: Migration in progress
6666
- * - 2501: Share not found
7323
+ * - 2500: A volume is already active
6667
7324
  * */
6668
7325
  Code: number;
6669
7326
  };
6670
7327
  };
6671
7328
  };
6672
- /** @description Failed dependency */
6673
- 424: {
6674
- headers: {
6675
- [name: string]: unknown;
6676
- };
6677
- content: {
6678
- "application/json": {
6679
- /**
6680
- * @description Potential codes:
6681
- * - 2032
6682
- *
6683
- * @enum {integer}
6684
- */
6685
- Code: 2032;
6686
- };
6687
- };
6688
- };
6689
7329
  };
6690
7330
  };
6691
- "get_drive-photos-volumes-{volumeID}-albums-{linkID}-children": {
7331
+ "get_drive-photos-albums-shared-with-me": {
6692
7332
  parameters: {
6693
7333
  query?: {
6694
- AnchorID?: components["schemas"]["ListPhotosAlbumQueryParameters"]["AnchorID"];
6695
- Sort?: components["schemas"]["ListPhotosAlbumQueryParameters"]["Sort"];
6696
- Desc?: components["schemas"]["ListPhotosAlbumQueryParameters"]["Desc"];
6697
- Tag?: components["schemas"]["ListPhotosAlbumQueryParameters"]["Tag"];
6698
- OnlyChildren?: components["schemas"]["ListPhotosAlbumQueryParameters"]["OnlyChildren"];
7334
+ AnchorID?: components["schemas"]["Id"] | null;
6699
7335
  };
6700
7336
  header?: never;
6701
- path: {
6702
- volumeID: string;
6703
- linkID: string;
6704
- };
7337
+ path?: never;
6705
7338
  cookie?: never;
6706
7339
  };
6707
7340
  requestBody?: never;
@@ -6713,7 +7346,7 @@ export interface operations {
6713
7346
  [name: string]: unknown;
6714
7347
  };
6715
7348
  content: {
6716
- "application/json": components["schemas"]["ListPhotosAlbumResponseDto"];
7349
+ "application/json": components["schemas"]["SharedWithMeResponseDto"];
6717
7350
  };
6718
7351
  };
6719
7352
  /** @description Unprocessable Entity */
@@ -6724,8 +7357,6 @@ export interface operations {
6724
7357
  content: {
6725
7358
  "application/json": {
6726
7359
  /** @description Potential codes and their meaning:
6727
- * - 2501: Volume not found
6728
- * - 2501: File or folder not found
6729
7360
  * - 2011: Insufficient permissions
6730
7361
  * */
6731
7362
  Code: number;
@@ -6734,19 +7365,18 @@ export interface operations {
6734
7365
  };
6735
7366
  };
6736
7367
  };
6737
- "post_drive-photos-volumes-{volumeID}-albums-{linkID}-remove-multiple": {
7368
+ "put_drive-volumes-{volumeID}-links-transfer-multiple": {
6738
7369
  parameters: {
6739
7370
  query?: never;
6740
7371
  header?: never;
6741
7372
  path: {
6742
7373
  volumeID: string;
6743
- linkID: string;
6744
7374
  };
6745
7375
  cookie?: never;
6746
7376
  };
6747
7377
  requestBody?: {
6748
7378
  content: {
6749
- "application/json": components["schemas"]["RemovePhotosFromAlbumRequestDto"];
7379
+ "application/json": components["schemas"]["TransferPhotoLinksRequestDto"];
6750
7380
  };
6751
7381
  };
6752
7382
  responses: {
@@ -6759,7 +7389,11 @@ export interface operations {
6759
7389
  "application/json": {
6760
7390
  /** @enum {integer} */
6761
7391
  Code?: 1001;
6762
- Responses?: components["schemas"]["RemovePhotoFromAlbumWithLinkIDResponseDto"][];
7392
+ Responses?: {
7393
+ /** @description Encrypted link ID */
7394
+ LinkID?: string;
7395
+ Response?: components["schemas"]["ProtonSuccess"] | components["schemas"]["ProtonError"];
7396
+ }[];
6763
7397
  };
6764
7398
  };
6765
7399
  };
@@ -6771,7 +7405,9 @@ export interface operations {
6771
7405
  content: {
6772
7406
  "application/json": {
6773
7407
  /** @description Potential codes and their meaning:
6774
- * - 2500: A volume is already active
7408
+ * - 2501: The volume does not exist.
7409
+ * - 2511: cannot move favorite photos from a share
7410
+ * - 2000: All main photos have to be sent with related photos.
6775
7411
  * */
6776
7412
  Code: number;
6777
7413
  };
@@ -6779,25 +7415,36 @@ export interface operations {
6779
7415
  };
6780
7416
  };
6781
7417
  };
6782
- "get_drive-photos-albums-shared-with-me": {
7418
+ "put_drive-photos-volumes-{volumeID}-links-transfer-multiple": {
6783
7419
  parameters: {
6784
- query?: {
6785
- AnchorID?: components["schemas"]["Id"] | null;
6786
- };
7420
+ query?: never;
6787
7421
  header?: never;
6788
- path?: never;
7422
+ path: {
7423
+ volumeID: string;
7424
+ };
6789
7425
  cookie?: never;
6790
7426
  };
6791
- requestBody?: never;
7427
+ requestBody?: {
7428
+ content: {
7429
+ "application/json": components["schemas"]["TransferPhotoLinksRequestDto"];
7430
+ };
7431
+ };
6792
7432
  responses: {
6793
- /** @description Success */
7433
+ /** @description Ok */
6794
7434
  200: {
6795
7435
  headers: {
6796
- "x-pm-code": 1000;
6797
7436
  [name: string]: unknown;
6798
7437
  };
6799
7438
  content: {
6800
- "application/json": components["schemas"]["SharedWithMeResponseDto"];
7439
+ "application/json": {
7440
+ /** @enum {integer} */
7441
+ Code?: 1001;
7442
+ Responses?: {
7443
+ /** @description Encrypted link ID */
7444
+ LinkID?: string;
7445
+ Response?: components["schemas"]["ProtonSuccess"] | components["schemas"]["ProtonError"];
7446
+ }[];
7447
+ };
6801
7448
  };
6802
7449
  };
6803
7450
  /** @description Unprocessable Entity */
@@ -6808,7 +7455,9 @@ export interface operations {
6808
7455
  content: {
6809
7456
  "application/json": {
6810
7457
  /** @description Potential codes and their meaning:
6811
- * - 2011: Insufficient permissions
7458
+ * - 2501: The volume does not exist.
7459
+ * - 2511: cannot move favorite photos from a share
7460
+ * - 2000: All main photos have to be sent with related photos.
6812
7461
  * */
6813
7462
  Code: number;
6814
7463
  };
@@ -7264,59 +7913,6 @@ export interface operations {
7264
7913
  };
7265
7914
  };
7266
7915
  };
7267
- "post_drive-volumes-{volumeID}-links-{linkID}-copy": {
7268
- parameters: {
7269
- query?: never;
7270
- header?: never;
7271
- path: {
7272
- volumeID: string;
7273
- linkID: string;
7274
- };
7275
- cookie?: never;
7276
- };
7277
- requestBody?: {
7278
- content: {
7279
- "application/json": components["schemas"]["CopyLinkRequestDto"];
7280
- };
7281
- };
7282
- responses: {
7283
- /** @description Success */
7284
- 200: {
7285
- headers: {
7286
- "x-pm-code": 1000;
7287
- [name: string]: unknown;
7288
- };
7289
- content: {
7290
- "application/json": components["schemas"]["CopyLinkResponseDto"];
7291
- };
7292
- };
7293
- /** @description Unprocessable Entity */
7294
- 422: {
7295
- headers: {
7296
- [name: string]: unknown;
7297
- };
7298
- content: {
7299
- "application/json": {
7300
- /**
7301
- * @description Potential codes and their meaning:
7302
- * - 2011: Copying Proton Docs to another account is not possible yet.
7303
- * - 2501: Volume not found
7304
- * - 2501: File or folder not found
7305
- * - 2501: parent folder was not found
7306
- * - 200300: max folder size reached
7307
- * - 2011: the user does not have permissions to create a file in this share
7308
- * - 2000: the user cannot move or rename root folder
7309
- * - 200002: Storage quota exceeded
7310
- * - 200301: target parent exceeded max folder depth
7311
- *
7312
- * @enum {integer}
7313
- */
7314
- Code: 200300 | 2501 | 2011 | 2000 | 200002 | 200301;
7315
- };
7316
- };
7317
- };
7318
- };
7319
- };
7320
7916
  "post_drive-shares-{shareID}-folders": {
7321
7917
  parameters: {
7322
7918
  query?: never;
@@ -7643,6 +8239,59 @@ export interface operations {
7643
8239
  };
7644
8240
  };
7645
8241
  };
8242
+ "post_drive-volumes-{volumeID}-links-{linkID}-copy": {
8243
+ parameters: {
8244
+ query?: never;
8245
+ header?: never;
8246
+ path: {
8247
+ volumeID: string;
8248
+ linkID: string;
8249
+ };
8250
+ cookie?: never;
8251
+ };
8252
+ requestBody?: {
8253
+ content: {
8254
+ "application/json": components["schemas"]["CopyLinkRequestDto"];
8255
+ };
8256
+ };
8257
+ responses: {
8258
+ /** @description Success */
8259
+ 200: {
8260
+ headers: {
8261
+ "x-pm-code": 1000;
8262
+ [name: string]: unknown;
8263
+ };
8264
+ content: {
8265
+ "application/json": components["schemas"]["CopyLinkResponseDto"];
8266
+ };
8267
+ };
8268
+ /** @description Unprocessable Entity */
8269
+ 422: {
8270
+ headers: {
8271
+ [name: string]: unknown;
8272
+ };
8273
+ content: {
8274
+ "application/json": {
8275
+ /**
8276
+ * @description Potential codes and their meaning:
8277
+ * - 2011: Copying Proton Docs to another account is not possible yet.
8278
+ * - 2501: Volume not found
8279
+ * - 2501: File or folder not found
8280
+ * - 2501: parent folder was not found
8281
+ * - 200300: max folder size reached
8282
+ * - 2011: the user does not have permissions to create a file in this share
8283
+ * - 2000: the user cannot move or rename root folder
8284
+ * - 200002: Storage quota exceeded
8285
+ * - 200301: target parent exceeded max folder depth
8286
+ *
8287
+ * @enum {integer}
8288
+ */
8289
+ Code: 200300 | 2501 | 2011 | 2000 | 200002 | 200301;
8290
+ };
8291
+ };
8292
+ };
8293
+ };
8294
+ };
7646
8295
  "post_drive-v2-volumes-{volumeID}-delete_multiple": {
7647
8296
  parameters: {
7648
8297
  query?: never;
@@ -7853,7 +8502,11 @@ export interface operations {
7853
8502
  "application/json": {
7854
8503
  /** @enum {integer} */
7855
8504
  Code?: 1001;
7856
- Responses?: components["responses"]["ProtonSuccessResponse"][];
8505
+ Responses?: {
8506
+ /** @description Encrypted link ID */
8507
+ LinkID?: string;
8508
+ Response?: components["schemas"]["ProtonSuccess"] | components["schemas"]["ProtonError"];
8509
+ }[];
7857
8510
  };
7858
8511
  };
7859
8512
  };
@@ -7866,6 +8519,7 @@ export interface operations {
7866
8519
  "application/json": {
7867
8520
  /** @description Potential codes and their meaning:
7868
8521
  * - 2501: The volume does not exist.
8522
+ * - 2511: cannot move favorite photos from a share
7869
8523
  * - 2000: All main photos have to be sent with related photos.
7870
8524
  * */
7871
8525
  Code: number;
@@ -7902,6 +8556,7 @@ export interface operations {
7902
8556
  * - 200300: max folder size reached
7903
8557
  * - 200301: max folder depth reached
7904
8558
  * - 2500: file or folder with same name already exists
8559
+ * - 2511: cannot move favorite photos from a share
7905
8560
  * - 2501: parent folder was not found
7906
8561
  * */
7907
8562
  Code?: number;
@@ -7996,6 +8651,7 @@ export interface operations {
7996
8651
  * - 200300: max folder size reached
7997
8652
  * - 200301: max folder depth reached
7998
8653
  * - 2500: file or folder with same name already exists
8654
+ * - 2511: cannot move favorite photos from a share
7999
8655
  * - 2501: parent folder was not found
8000
8656
  * */
8001
8657
  Code?: number;
@@ -8032,10 +8688,7 @@ export interface operations {
8032
8688
  [name: string]: unknown;
8033
8689
  };
8034
8690
  content: {
8035
- "application/json": {
8036
- Code: components["schemas"]["ResponseCodeSuccess"];
8037
- Revision: components["schemas"]["DetailedRevisionTransformer"];
8038
- };
8691
+ "application/json": components["schemas"]["GetRevisionResponseDto2"];
8039
8692
  };
8040
8693
  };
8041
8694
  };
@@ -8151,10 +8804,7 @@ export interface operations {
8151
8804
  [name: string]: unknown;
8152
8805
  };
8153
8806
  content: {
8154
- "application/json": {
8155
- Code: components["schemas"]["ResponseCodeSuccess"];
8156
- Revision: components["schemas"]["DetailedRevisionTransformer"];
8157
- };
8807
+ "application/json": components["schemas"]["GetRevisionResponseDto2"];
8158
8808
  };
8159
8809
  };
8160
8810
  };
@@ -8366,16 +9016,14 @@ export interface operations {
8366
9016
  };
8367
9017
  requestBody?: never;
8368
9018
  responses: {
8369
- /** @description Revisions */
9019
+ /** @description Success */
8370
9020
  200: {
8371
9021
  headers: {
9022
+ "x-pm-code": 1000;
8372
9023
  [name: string]: unknown;
8373
9024
  };
8374
9025
  content: {
8375
- "application/json": {
8376
- Code: components["schemas"]["ResponseCodeSuccess"];
8377
- Revisions: components["schemas"]["RevisionTransformer"][];
8378
- };
9026
+ "application/json": components["schemas"]["ListRevisionsResponseDto"];
8379
9027
  };
8380
9028
  };
8381
9029
  };
@@ -8449,16 +9097,14 @@ export interface operations {
8449
9097
  };
8450
9098
  requestBody?: never;
8451
9099
  responses: {
8452
- /** @description Revisions */
9100
+ /** @description Success */
8453
9101
  200: {
8454
9102
  headers: {
9103
+ "x-pm-code": 1000;
8455
9104
  [name: string]: unknown;
8456
9105
  };
8457
9106
  content: {
8458
- "application/json": {
8459
- Code: components["schemas"]["ResponseCodeSuccess"];
8460
- Revisions: components["schemas"]["RevisionTransformer"][];
8461
- };
9107
+ "application/json": components["schemas"]["ListRevisionsResponseDto"];
8462
9108
  };
8463
9109
  };
8464
9110
  };
@@ -8778,6 +9424,16 @@ export interface operations {
8778
9424
  "application/json": components["schemas"]["SuccessfulResponse"];
8779
9425
  };
8780
9426
  };
9427
+ /** @description Empty trash queued for async processing */
9428
+ 202: {
9429
+ headers: {
9430
+ "x-pm-code": 1002;
9431
+ [name: string]: unknown;
9432
+ };
9433
+ content: {
9434
+ "application/json": components["schemas"]["EmptyTrashAcceptedResponse"];
9435
+ };
9436
+ };
8781
9437
  };
8782
9438
  };
8783
9439
  "get_drive-volumes-{volumeID}-trash": {
@@ -8817,7 +9473,17 @@ export interface operations {
8817
9473
  };
8818
9474
  requestBody?: never;
8819
9475
  responses: {
8820
- /** @description Empty volume trash queued for async processing */
9476
+ /** @description Success */
9477
+ 200: {
9478
+ headers: {
9479
+ "x-pm-code": 1000;
9480
+ [name: string]: unknown;
9481
+ };
9482
+ content: {
9483
+ "application/json": components["schemas"]["SuccessfulResponse"];
9484
+ };
9485
+ };
9486
+ /** @description Empty trash queued for async processing */
8821
9487
  202: {
8822
9488
  headers: {
8823
9489
  "x-pm-code": 1002;
@@ -9427,11 +10093,28 @@ export interface operations {
9427
10093
  };
9428
10094
  cookie?: never;
9429
10095
  };
9430
- requestBody?: {
9431
- content: {
9432
- "application/json": components["schemas"]["CreatePhotoShareRequestDto"];
10096
+ requestBody?: never;
10097
+ responses: {
10098
+ /** @description Invalid request; update app */
10099
+ 422: {
10100
+ headers: {
10101
+ [name: string]: unknown;
10102
+ };
10103
+ content?: never;
10104
+ };
10105
+ };
10106
+ };
10107
+ "delete_drive-volumes-{volumeID}-photos-share-{shareID}": {
10108
+ parameters: {
10109
+ query?: never;
10110
+ header?: never;
10111
+ path: {
10112
+ volumeID: string;
10113
+ shareID: string;
9433
10114
  };
10115
+ cookie?: never;
9434
10116
  };
10117
+ requestBody?: never;
9435
10118
  responses: {
9436
10119
  /** @description Success */
9437
10120
  200: {
@@ -9440,22 +10123,27 @@ export interface operations {
9440
10123
  [name: string]: unknown;
9441
10124
  };
9442
10125
  content: {
9443
- "application/json": components["schemas"]["CreatePhotoShareResponseDto"];
10126
+ "application/json": components["schemas"]["SuccessfulResponse"];
9444
10127
  };
9445
10128
  };
10129
+ 422: components["responses"]["ProtonErrorResponse"];
9446
10130
  };
9447
10131
  };
9448
- "delete_drive-volumes-{volumeID}-photos-share-{shareID}": {
10132
+ "post_drive-photos-volumes-{volumeID}-links-{linkID}-favorite": {
9449
10133
  parameters: {
9450
10134
  query?: never;
9451
10135
  header?: never;
9452
10136
  path: {
9453
10137
  volumeID: string;
9454
- shareID: string;
10138
+ linkID: string;
9455
10139
  };
9456
10140
  cookie?: never;
9457
10141
  };
9458
- requestBody?: never;
10142
+ requestBody?: {
10143
+ content: {
10144
+ "application/json": components["schemas"]["FavoritePhotoRequestDto"];
10145
+ };
10146
+ };
9459
10147
  responses: {
9460
10148
  /** @description Success */
9461
10149
  200: {
@@ -9464,10 +10152,23 @@ export interface operations {
9464
10152
  [name: string]: unknown;
9465
10153
  };
9466
10154
  content: {
9467
- "application/json": components["schemas"]["SuccessfulResponse"];
10155
+ "application/json": components["schemas"]["FavoritePhotoResponseDto"];
10156
+ };
10157
+ };
10158
+ /** @description Unprocessable Entity */
10159
+ 422: {
10160
+ headers: {
10161
+ [name: string]: unknown;
10162
+ };
10163
+ content: {
10164
+ "application/json": {
10165
+ /** @description Potential codes and their meaning:
10166
+ * - 2501: The link or volume does not exist.
10167
+ * */
10168
+ Code: number;
10169
+ };
9468
10170
  };
9469
10171
  };
9470
- 422: components["responses"]["ProtonErrorResponse"];
9471
10172
  };
9472
10173
  };
9473
10174
  "post_drive-volumes-{volumeID}-photos-duplicates": {
@@ -9497,6 +10198,110 @@ export interface operations {
9497
10198
  };
9498
10199
  };
9499
10200
  };
10201
+ "get_drive-photos-migrate-legacy": {
10202
+ parameters: {
10203
+ query?: never;
10204
+ header?: never;
10205
+ path?: never;
10206
+ cookie?: never;
10207
+ };
10208
+ requestBody?: never;
10209
+ responses: {
10210
+ /** @description Success */
10211
+ 200: {
10212
+ headers: {
10213
+ "x-pm-code": 1000;
10214
+ [name: string]: unknown;
10215
+ };
10216
+ content: {
10217
+ "application/json": components["schemas"]["GetMigrationStatusResponseDto"];
10218
+ };
10219
+ };
10220
+ /** @description Accepted */
10221
+ 202: {
10222
+ headers: {
10223
+ "x-pm-code": 1002;
10224
+ [name: string]: unknown;
10225
+ };
10226
+ content: {
10227
+ "application/json": components["schemas"]["AcceptedResponse"];
10228
+ };
10229
+ };
10230
+ /** @description Unprocessable Entity */
10231
+ 422: {
10232
+ headers: {
10233
+ [name: string]: unknown;
10234
+ };
10235
+ content: {
10236
+ "application/json": {
10237
+ /** @description Potential codes and their meaning:
10238
+ * - 2501: The link or volume does not exist.
10239
+ * */
10240
+ Code: number;
10241
+ };
10242
+ };
10243
+ };
10244
+ };
10245
+ };
10246
+ "post_drive-photos-migrate-legacy": {
10247
+ parameters: {
10248
+ query?: never;
10249
+ header?: never;
10250
+ path?: never;
10251
+ cookie?: never;
10252
+ };
10253
+ requestBody?: {
10254
+ content: {
10255
+ "application/json": components["schemas"]["MigrateFromLegacyRequest"];
10256
+ };
10257
+ };
10258
+ responses: {
10259
+ /** @description Accepted */
10260
+ 202: {
10261
+ headers: {
10262
+ "x-pm-code": 1002;
10263
+ [name: string]: unknown;
10264
+ };
10265
+ content: {
10266
+ "application/json": components["schemas"]["AcceptedResponse"];
10267
+ };
10268
+ };
10269
+ /** @description Unprocessable Entity */
10270
+ 422: {
10271
+ headers: {
10272
+ [name: string]: unknown;
10273
+ };
10274
+ content: {
10275
+ "application/json": {
10276
+ /** @description Potential codes and their meaning:
10277
+ * - 2500: Migration in progress
10278
+ * - 2501: Share not found
10279
+ * - 2501: Volume not found
10280
+ * - 2501: Address not found
10281
+ * */
10282
+ Code: number;
10283
+ };
10284
+ };
10285
+ };
10286
+ /** @description Failed dependency */
10287
+ 424: {
10288
+ headers: {
10289
+ [name: string]: unknown;
10290
+ };
10291
+ content: {
10292
+ "application/json": {
10293
+ /**
10294
+ * @description Potential codes:
10295
+ * - 2032
10296
+ *
10297
+ * @enum {integer}
10298
+ */
10299
+ Code: 2032;
10300
+ };
10301
+ };
10302
+ };
10303
+ };
10304
+ };
9500
10305
  "get_drive-volumes-{volumeID}-photos": {
9501
10306
  parameters: {
9502
10307
  query?: {
@@ -9528,6 +10333,68 @@ export interface operations {
9528
10333
  };
9529
10334
  };
9530
10335
  };
10336
+ "put_drive-photos-volumes-{volumeID}-links-{linkID}-revisions-{revisionID}-xattr": {
10337
+ parameters: {
10338
+ query?: never;
10339
+ header?: never;
10340
+ path: {
10341
+ volumeID: string;
10342
+ linkID: string;
10343
+ revisionID: string;
10344
+ };
10345
+ cookie?: never;
10346
+ };
10347
+ requestBody?: {
10348
+ content: {
10349
+ "application/json": components["schemas"]["UpdateXAttrRequest"];
10350
+ };
10351
+ };
10352
+ responses: {
10353
+ /** @description Success */
10354
+ 200: {
10355
+ headers: {
10356
+ "x-pm-code": 1000;
10357
+ [name: string]: unknown;
10358
+ };
10359
+ content: {
10360
+ "application/json": components["schemas"]["SuccessfulResponse"];
10361
+ };
10362
+ };
10363
+ /** @description Unprocessable Entity */
10364
+ 422: {
10365
+ headers: {
10366
+ [name: string]: unknown;
10367
+ };
10368
+ content: {
10369
+ "application/json": {
10370
+ /** @description Potential codes and their meaning:
10371
+ * - 2001: Wrong signature email passed
10372
+ * - 2001: Invalid PGP message
10373
+ * - 200501: Invalid Key Packet
10374
+ * */
10375
+ Code: number;
10376
+ };
10377
+ };
10378
+ };
10379
+ /** @description Failed dependency */
10380
+ 424: {
10381
+ headers: {
10382
+ [name: string]: unknown;
10383
+ };
10384
+ content: {
10385
+ "application/json": {
10386
+ /**
10387
+ * @description Potential codes:
10388
+ * - 2032
10389
+ *
10390
+ * @enum {integer}
10391
+ */
10392
+ Code: 2032;
10393
+ };
10394
+ };
10395
+ };
10396
+ };
10397
+ };
9531
10398
  "post_drive-urls-{token}-files-{linkID}-checkAvailableHashes": {
9532
10399
  parameters: {
9533
10400
  query?: never;
@@ -10526,16 +11393,14 @@ export interface operations {
10526
11393
  };
10527
11394
  requestBody?: never;
10528
11395
  responses: {
10529
- /** @description Revision */
11396
+ /** @description Success */
10530
11397
  200: {
10531
11398
  headers: {
11399
+ "x-pm-code": 1000;
10532
11400
  [name: string]: unknown;
10533
11401
  };
10534
11402
  content: {
10535
- "application/json": {
10536
- Code: components["schemas"]["ResponseCodeSuccess"];
10537
- Revision: components["schemas"]["DetailedRevisionTransformer"];
10538
- };
11403
+ "application/json": components["schemas"]["GetRevisionResponseDto"];
10539
11404
  };
10540
11405
  };
10541
11406
  422: components["responses"]["ProtonErrorResponse"];
@@ -11268,8 +12133,9 @@ export interface operations {
11268
12133
  "get_drive-v2-shares-invitations": {
11269
12134
  parameters: {
11270
12135
  query?: {
11271
- AnchorID?: components["schemas"]["Id"] | null;
11272
- PageSize?: number;
12136
+ AnchorID?: components["schemas"]["ListPendingInvitationQueryParameters"]["AnchorID"];
12137
+ PageSize?: components["schemas"]["ListPendingInvitationQueryParameters"]["PageSize"];
12138
+ ShareTargetTypes?: components["schemas"]["ListPendingInvitationQueryParameters"]["ShareTargetTypes"];
11273
12139
  };
11274
12140
  header?: never;
11275
12141
  path?: never;
@@ -11835,6 +12701,16 @@ export interface operations {
11835
12701
  "application/json": components["schemas"]["SuccessfulResponse"];
11836
12702
  };
11837
12703
  };
12704
+ /** @description Accepted */
12705
+ 202: {
12706
+ headers: {
12707
+ "x-pm-code": 1002;
12708
+ [name: string]: unknown;
12709
+ };
12710
+ content: {
12711
+ "application/json": components["schemas"]["AcceptedResponse"];
12712
+ };
12713
+ };
11838
12714
  422: components["responses"]["ProtonErrorResponse"];
11839
12715
  };
11840
12716
  };