@protontech/drive-sdk 0.14.7 → 0.14.9

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 (66) hide show
  1. package/dist/interface/nodes.d.ts +1 -0
  2. package/dist/interface/nodes.js.map +1 -1
  3. package/dist/internal/apiService/driveTypes.d.ts +294 -261
  4. package/dist/internal/nodes/apiService.js +1 -0
  5. package/dist/internal/nodes/apiService.js.map +1 -1
  6. package/dist/internal/nodes/cache.test.js +1 -0
  7. package/dist/internal/nodes/cache.test.js.map +1 -1
  8. package/dist/internal/nodes/cryptoService.js +1 -0
  9. package/dist/internal/nodes/cryptoService.js.map +1 -1
  10. package/dist/internal/nodes/interface.d.ts +2 -0
  11. package/dist/internal/nodes/nodesAccess.js +4 -0
  12. package/dist/internal/nodes/nodesAccess.js.map +1 -1
  13. package/dist/internal/nodes/nodesRevisions.js +8 -0
  14. package/dist/internal/nodes/nodesRevisions.js.map +1 -1
  15. package/dist/internal/photos/albumsManager.js +9 -0
  16. package/dist/internal/photos/albumsManager.js.map +1 -1
  17. package/dist/internal/photos/albumsManager.test.js +37 -0
  18. package/dist/internal/photos/albumsManager.test.js.map +1 -1
  19. package/dist/internal/photos/apiService.js +4 -1
  20. package/dist/internal/photos/apiService.js.map +1 -1
  21. package/dist/internal/photos/nodes.d.ts +15 -4
  22. package/dist/internal/photos/nodes.js +26 -0
  23. package/dist/internal/photos/nodes.js.map +1 -1
  24. package/dist/internal/photos/nodes.test.js +28 -0
  25. package/dist/internal/photos/nodes.test.js.map +1 -1
  26. package/dist/internal/photos/upload.d.ts +4 -1
  27. package/dist/internal/photos/upload.js +8 -4
  28. package/dist/internal/photos/upload.js.map +1 -1
  29. package/dist/internal/upload/apiService.d.ts +3 -0
  30. package/dist/internal/upload/apiService.js +3 -0
  31. package/dist/internal/upload/apiService.js.map +1 -1
  32. package/dist/internal/upload/manager.d.ts +4 -1
  33. package/dist/internal/upload/manager.js +6 -2
  34. package/dist/internal/upload/manager.js.map +1 -1
  35. package/dist/internal/upload/smallFileUploader.d.ts +1 -0
  36. package/dist/internal/upload/smallFileUploader.js +1 -0
  37. package/dist/internal/upload/smallFileUploader.js.map +1 -1
  38. package/dist/internal/upload/streamUploader.d.ts +3 -2
  39. package/dist/internal/upload/streamUploader.js +40 -22
  40. package/dist/internal/upload/streamUploader.js.map +1 -1
  41. package/dist/internal/upload/streamUploader.test.js +3 -1
  42. package/dist/internal/upload/streamUploader.test.js.map +1 -1
  43. package/dist/protonDrivePhotosClient.d.ts +8 -0
  44. package/dist/protonDrivePhotosClient.js +11 -0
  45. package/dist/protonDrivePhotosClient.js.map +1 -1
  46. package/package.json +2 -1
  47. package/src/interface/nodes.ts +1 -0
  48. package/src/internal/apiService/driveTypes.ts +294 -261
  49. package/src/internal/nodes/apiService.ts +1 -0
  50. package/src/internal/nodes/cache.test.ts +1 -0
  51. package/src/internal/nodes/cryptoService.ts +1 -0
  52. package/src/internal/nodes/interface.ts +2 -0
  53. package/src/internal/nodes/nodesAccess.ts +4 -0
  54. package/src/internal/nodes/nodesRevisions.ts +8 -0
  55. package/src/internal/photos/albumsManager.test.ts +41 -0
  56. package/src/internal/photos/albumsManager.ts +9 -0
  57. package/src/internal/photos/apiService.ts +6 -1
  58. package/src/internal/photos/nodes.test.ts +42 -0
  59. package/src/internal/photos/nodes.ts +29 -0
  60. package/src/internal/photos/upload.ts +13 -2
  61. package/src/internal/upload/apiService.ts +6 -0
  62. package/src/internal/upload/manager.ts +7 -1
  63. package/src/internal/upload/smallFileUploader.ts +3 -0
  64. package/src/internal/upload/streamUploader.test.ts +3 -0
  65. package/src/internal/upload/streamUploader.ts +50 -23
  66. package/src/protonDrivePhotosClient.ts +15 -0
@@ -1735,6 +1735,26 @@ export interface paths {
1735
1735
  patch?: never;
1736
1736
  trace?: never;
1737
1737
  };
1738
+ "/drive/photos/volumes/{volumeID}/links/{linkID}/capture-time": {
1739
+ parameters: {
1740
+ query?: never;
1741
+ header?: never;
1742
+ path?: never;
1743
+ cookie?: never;
1744
+ };
1745
+ get?: never;
1746
+ /**
1747
+ * Update Photo Capture Time
1748
+ * @description ONLY updates the clear text photo capture time. Any user with WRITE permissions may update the capture time.
1749
+ */
1750
+ put: operations["put_drive-photos-volumes-{volumeID}-links-{linkID}-capture-time"];
1751
+ post?: never;
1752
+ delete?: never;
1753
+ options?: never;
1754
+ head?: never;
1755
+ patch?: never;
1756
+ trace?: never;
1757
+ };
1738
1758
  "/drive/photos/volumes/{volumeID}/links/{linkID}/revisions/{revisionID}/xattr": {
1739
1759
  parameters: {
1740
1760
  query?: never;
@@ -2664,27 +2684,6 @@ export interface paths {
2664
2684
  patch?: never;
2665
2685
  trace?: never;
2666
2686
  };
2667
- "/drive/shares/{shareID}/owner": {
2668
- parameters: {
2669
- query?: never;
2670
- header?: never;
2671
- path?: never;
2672
- cookie?: never;
2673
- };
2674
- get?: never;
2675
- put?: never;
2676
- /**
2677
- * Update ownership of a share
2678
- * @description Replace the signature and related membership of the share.
2679
- * This allows users to change the associated address & key they use for a share, so that they can get rid of it.
2680
- */
2681
- post: operations["post_drive-shares-{shareID}-owner"];
2682
- delete?: never;
2683
- options?: never;
2684
- head?: never;
2685
- patch?: never;
2686
- trace?: never;
2687
- };
2688
2687
  "/drive/shares/{shareID}/property": {
2689
2688
  parameters: {
2690
2689
  query?: never;
@@ -3331,7 +3330,7 @@ export interface components {
3331
3330
  schemas: {
3332
3331
  /**
3333
3332
  * ProtonResponseCode
3334
- * @enum {integer}
3333
+ * @constant
3335
3334
  */
3336
3335
  ResponseCodeSuccess: 1000;
3337
3336
  ProtonSuccess: {
@@ -3346,17 +3345,17 @@ export interface components {
3346
3345
  Details: Record<string, never>;
3347
3346
  };
3348
3347
  DriveConstants: {
3349
- /** @enum {integer} */
3348
+ /** @constant */
3350
3349
  BlockMaxSizeInBytes?: 5300000;
3351
- /** @enum {integer} */
3350
+ /** @constant */
3352
3351
  ThumbnailMaxSizeInBytes?: 65536;
3353
- /** @enum {integer} */
3352
+ /** @constant */
3354
3353
  DraftRevisionLifetimeInSec?: 14400;
3355
- /** @enum {integer} */
3354
+ /** @constant */
3356
3355
  ExtendedAttributesMaxSizeInBytes?: 65535;
3357
- /** @enum {integer} */
3356
+ /** @constant */
3358
3357
  UploadTokenExpirationTimeInSec?: 10800;
3359
- /** @enum {integer} */
3358
+ /** @constant */
3360
3359
  DownloadTokenExpirationTimeInSec?: 1800;
3361
3360
  };
3362
3361
  /** @description An encrypted ID */
@@ -3374,12 +3373,13 @@ export interface components {
3374
3373
  LinkID: components["schemas"]["Id"];
3375
3374
  /** @description Name Hash */
3376
3375
  Hash: string;
3377
- Name: string;
3376
+ Name: components["schemas"]["PGPMessage"];
3378
3377
  /**
3379
3378
  * Format: email
3380
3379
  * @description Email address used for signing name
3381
3380
  */
3382
3381
  NameSignatureEmail: string;
3382
+ /** @description Passphrase should be unchanged, reusing same session key as previously */
3383
3383
  NodePassphrase: components["schemas"]["PGPMessage"];
3384
3384
  /** @description Photo content hash */
3385
3385
  ContentHash: string;
@@ -3402,15 +3402,16 @@ export interface components {
3402
3402
  Hash: string;
3403
3403
  NodePassphrase: components["schemas"]["PGPMessage"];
3404
3404
  NodePassphraseSignature: components["schemas"]["PGPSignature"];
3405
+ /** @description Signature email address used to sign passphrase and name */
3405
3406
  SignatureEmail: components["schemas"]["AddressEmail"];
3406
3407
  NodeKey: components["schemas"]["PGPPrivateKey"];
3407
3408
  /** @description Node hash key (random bytes encoded in base64 format), encrypted and signed. */
3408
- NodeHashKey: string;
3409
+ NodeHashKey: components["schemas"]["PGPMessage"];
3409
3410
  /**
3410
3411
  * @description Extended attributes encrypted with link key
3411
3412
  * @default null
3412
3413
  */
3413
- XAttr: string | null;
3414
+ XAttr: components["schemas"]["PGPMessage"] | null;
3414
3415
  };
3415
3416
  CreateAlbumRequestDto: {
3416
3417
  Locked: boolean;
@@ -3439,11 +3440,11 @@ export interface components {
3439
3440
  Passphrase: components["schemas"]["PGPMessage"];
3440
3441
  PassphraseSignature: components["schemas"]["PGPSignature"];
3441
3442
  /** @description User's encrypted AddressKeyID. Must be the primary key from the AddressID */
3442
- AddressKeyID: string;
3443
+ AddressKeyID?: components["schemas"]["Id"] | null;
3443
3444
  };
3444
3445
  LinkDataDto: {
3445
3446
  /** @description Root folder name */
3446
- Name: string;
3447
+ Name: components["schemas"]["PGPMessage"];
3447
3448
  NodeKey: components["schemas"]["PGPPrivateKey"];
3448
3449
  NodePassphrase: components["schemas"]["PGPMessage"];
3449
3450
  NodePassphraseSignature: components["schemas"]["PGPSignature"];
@@ -3460,6 +3461,7 @@ export interface components {
3460
3461
  VolumeState: 1 | 3;
3461
3462
  ShareReferenceResponseDto: {
3462
3463
  ShareID: components["schemas"]["Id"];
3464
+ /** @description Deprecated, use `ShareID` instead */
3463
3465
  ID: components["schemas"]["Id"];
3464
3466
  LinkID: components["schemas"]["Id"];
3465
3467
  };
@@ -3477,6 +3479,7 @@ export interface components {
3477
3479
  DownloadedBytes: number;
3478
3480
  UploadedBytes: number;
3479
3481
  State: components["schemas"]["VolumeState"];
3482
+ /** @description Main share of the volume */
3480
3483
  Share: components["schemas"]["ShareReferenceResponseDto"];
3481
3484
  Type: components["schemas"]["VolumeType"];
3482
3485
  };
@@ -3508,16 +3511,17 @@ export interface components {
3508
3511
  LinkState: 0 | 1 | 2;
3509
3512
  FoundDuplicate: {
3510
3513
  /** @description NameHash of the found duplicate */
3511
- Hash?: string | null;
3514
+ Hash: string | null;
3512
3515
  /** @description ContentHash of the found duplicate */
3513
- ContentHash?: string | null;
3516
+ ContentHash: string | null;
3517
+ /** @description Can be null if the Link was deleted */
3514
3518
  LinkState: components["schemas"]["LinkState"];
3515
3519
  /** @description Client defined UID for the draft. Null if no ClientUID passed, or Revision was already committed. */
3516
- ClientUID?: string | null;
3520
+ ClientUID: string | null;
3517
3521
  /** @description LinkID, null if deleted */
3518
- LinkID: string;
3522
+ LinkID: components["schemas"]["Id"] | null;
3519
3523
  /** @description RevisionID, null if deleted */
3520
- RevisionID: string;
3524
+ RevisionID: components["schemas"]["Id"] | null;
3521
3525
  };
3522
3526
  FindDuplicatesOutputCollection: {
3523
3527
  DuplicateHashes: components["schemas"]["FoundDuplicate"][];
@@ -3538,7 +3542,7 @@ export interface components {
3538
3542
  };
3539
3543
  PhotoTagMigrationStatusResponseDto: {
3540
3544
  Finished: boolean;
3541
- Anchor?: components["schemas"]["PhotoTagMigrationDataDto"] | null;
3545
+ Anchor: components["schemas"]["PhotoTagMigrationDataDto"] | null;
3542
3546
  /**
3543
3547
  * ProtonResponseCode
3544
3548
  * @example 1000
@@ -3552,14 +3556,12 @@ export interface components {
3552
3556
  PhotoCount: number;
3553
3557
  LinkID: components["schemas"]["Id"];
3554
3558
  VolumeID: components["schemas"]["Id"];
3555
- /** @default null */
3556
3559
  ShareID: components["schemas"]["Id"] | null;
3557
- /** @default null */
3558
3560
  CoverLinkID: components["schemas"]["Id"] | null;
3559
3561
  };
3560
3562
  ListAlbumsResponseDto: {
3561
3563
  Albums: components["schemas"]["AlbumResponseDto"][];
3562
- AnchorID?: string | null;
3564
+ AnchorID: string | null;
3563
3565
  More: boolean;
3564
3566
  /**
3565
3567
  * ProtonResponseCode
@@ -3604,15 +3606,12 @@ export interface components {
3604
3606
  RelatedPhotos: components["schemas"]["ListPhotosAlbumRelatedPhotoItemResponseDto"][];
3605
3607
  AddedTime: number;
3606
3608
  IsChildOfAlbum: boolean;
3607
- /**
3608
- * @description Tags assigned to the photo
3609
- * @default []
3610
- */
3609
+ /** @description Tags assigned to the photo */
3611
3610
  Tags: number[];
3612
3611
  };
3613
3612
  ListPhotosAlbumResponseDto: {
3614
3613
  Photos: components["schemas"]["ListPhotosAlbumItemResponseDto"][];
3615
- AnchorID?: string | null;
3614
+ AnchorID: string | null;
3616
3615
  More: boolean;
3617
3616
  /**
3618
3617
  * ProtonResponseCode
@@ -3624,9 +3623,9 @@ export interface components {
3624
3623
  TransferPhotoLinkInBatchRequestDto: {
3625
3624
  LinkID: components["schemas"]["Id"];
3626
3625
  /** @description Name, reusing same session key as previously. */
3627
- Name: string;
3626
+ Name: components["schemas"]["PGPMessage"];
3628
3627
  /** @description Node passphrase, reusing same session key as previously. */
3629
- NodePassphrase: string;
3628
+ NodePassphrase: components["schemas"]["PGPMessage"];
3630
3629
  /** @description Name hash */
3631
3630
  Hash: string;
3632
3631
  /** @description Current name hash before move operation. Used to prevent race conditions. */
@@ -3673,7 +3672,7 @@ export interface components {
3673
3672
  };
3674
3673
  SharedWithMeResponseDto: {
3675
3674
  Albums: components["schemas"]["AlbumResponseDto"][];
3676
- AnchorID?: string | null;
3675
+ AnchorID: string | null;
3677
3676
  More: boolean;
3678
3677
  /**
3679
3678
  * ProtonResponseCode
@@ -3692,7 +3691,7 @@ export interface components {
3692
3691
  NameSignatureEmail?: string | null;
3693
3692
  OriginalHash?: string | null;
3694
3693
  /** @description Extended attributes encrypted with link key */
3695
- XAttr?: string | null;
3694
+ XAttr?: components["schemas"]["PGPMessage"] | null;
3696
3695
  };
3697
3696
  UpdateAlbumRequestDto: {
3698
3697
  CoverLinkID?: components["schemas"]["Id"] | null;
@@ -3715,7 +3714,7 @@ export interface components {
3715
3714
  UserID: components["schemas"]["Id"];
3716
3715
  Token: string;
3717
3716
  ShareURLID: components["schemas"]["Id"];
3718
- EncryptedUrlPassword?: components["schemas"]["PGPMessage"] | null;
3717
+ EncryptedUrlPassword: components["schemas"]["PGPMessage"] | null;
3719
3718
  State: components["schemas"]["BookmarkShareURLState"];
3720
3719
  CreateTime: number;
3721
3720
  ModifyTime: number;
@@ -3743,9 +3742,9 @@ export interface components {
3743
3742
  */
3744
3743
  URL?: string | null;
3745
3744
  /** @description Bare Download URL for the thumbnail */
3746
- BareURL?: string | null;
3745
+ BareURL: string | null;
3747
3746
  /** @description Token for the thumbnail URL */
3748
- Token?: string | null;
3747
+ Token: string | null;
3749
3748
  };
3750
3749
  TokenResponseDto: {
3751
3750
  /**
@@ -3753,6 +3752,7 @@ export interface components {
3753
3752
  * @example YTZZRH7DA8
3754
3753
  */
3755
3754
  Token: string;
3755
+ /** @description Types: Folder - 1, File - 2} */
3756
3756
  LinkType: components["schemas"]["NodeType"];
3757
3757
  VolumeID: components["schemas"]["Id"];
3758
3758
  LinkID: components["schemas"]["Id"];
@@ -3763,7 +3763,7 @@ export interface components {
3763
3763
  NodeKey: components["schemas"]["PGPPrivateKey"];
3764
3764
  Name: components["schemas"]["PGPMessage"];
3765
3765
  /** @description Base64 encoded content key packet. Null for folders */
3766
- ContentKeyPacket?: components["schemas"]["BinaryString"] | null;
3766
+ ContentKeyPacket: components["schemas"]["BinaryString"] | null;
3767
3767
  /** @example text/plain */
3768
3768
  MIMEType: string;
3769
3769
  /**
@@ -3775,24 +3775,17 @@ export interface components {
3775
3775
  */
3776
3776
  Permissions: 4 | 6;
3777
3777
  /** @description File size, null for folders */
3778
- Size?: number | null;
3778
+ Size: number | null;
3779
3779
  /** @description File properties */
3780
- ThumbnailURLInfo?: components["schemas"]["ThumbnailURLInfoResponseDto"] | null;
3781
- /** @default null */
3780
+ ThumbnailURLInfo: components["schemas"]["ThumbnailURLInfoResponseDto"] | null;
3782
3781
  NodeHashKey: components["schemas"]["PGPMessage"] | null;
3783
- /**
3784
- * @description Signature email of the share owner. Only set for a ShareURL with read+write permissions.
3785
- * @default null
3786
- */
3782
+ /** @description Signature email of the share owner. Only set for a ShareURL with read+write permissions. */
3787
3783
  SignatureEmail: string | null;
3788
- /**
3789
- * @description Only set for a ShareURL with read+write permissions.
3790
- * @default null
3791
- */
3784
+ /** @description Only set for a ShareURL with read+write permissions. */
3792
3785
  NodePassphraseSignature: components["schemas"]["PGPSignature"] | null;
3793
3786
  };
3794
3787
  BookmarkShareURLInfoResponseDto: {
3795
- EncryptedUrlPassword?: components["schemas"]["PGPMessage"] | null;
3788
+ EncryptedUrlPassword: components["schemas"]["PGPMessage"] | null;
3796
3789
  CreateTime: number;
3797
3790
  Token: components["schemas"]["TokenResponseDto"];
3798
3791
  };
@@ -3830,7 +3823,7 @@ export interface components {
3830
3823
  Passphrase: components["schemas"]["PGPMessage"];
3831
3824
  PassphraseSignature: components["schemas"]["PGPSignature"];
3832
3825
  /** @description User's encrypted AddressKeyID. Must be the primary key from the AddressID */
3833
- AddressKeyID: string;
3826
+ AddressKeyID?: components["schemas"]["Id"] | null;
3834
3827
  /**
3835
3828
  * @deprecated
3836
3829
  * @default null
@@ -3948,6 +3941,7 @@ export interface components {
3948
3941
  * @default null
3949
3942
  */
3950
3943
  ContentKeyPacketSignature: components["schemas"]["PGPSignature"] | null;
3944
+ /** @description Document=1, Sheet=2 */
3951
3945
  DocumentType?: components["schemas"]["DocumentType"];
3952
3946
  Name: components["schemas"]["PGPMessage"];
3953
3947
  /** @description File/folder name Hash */
@@ -4218,6 +4212,8 @@ export interface components {
4218
4212
  * @enum {integer}
4219
4213
  */
4220
4214
  State?: 1;
4215
+ /** @description Whether the checksum in xattr of the revision content was verified by the client during upload */
4216
+ ChecksumVerified?: boolean;
4221
4217
  /**
4222
4218
  * @deprecated
4223
4219
  * @description Revision has a thumbnail
@@ -4300,12 +4296,12 @@ export interface components {
4300
4296
  * @description The share the user has access to that is closest to the root. Delete events do not have it but other events do.
4301
4297
  * @default null
4302
4298
  */
4303
- ContextShareID: string | null;
4299
+ ContextShareID: components["schemas"]["Id"] | null;
4304
4300
  /**
4305
4301
  * @description If a file was moved to a different context share, this shows the old, origin share
4306
4302
  * @default null
4307
4303
  */
4308
- FromContextShareID: string | null;
4304
+ FromContextShareID: components["schemas"]["Id"];
4309
4305
  /**
4310
4306
  * @description Optional event data
4311
4307
  * @default null
@@ -4329,12 +4325,12 @@ export interface components {
4329
4325
  FLAG_RESTORE_REVISION_COMPLETE?: string;
4330
4326
  /** @description Parent before the move */
4331
4327
  FromParentLinkID?: string;
4332
- } | null;
4328
+ };
4333
4329
  };
4334
4330
  ListEventsResponseDto: {
4335
4331
  Events: components["schemas"]["EventResponseDto"][];
4336
4332
  /** @description Last event ID that can be used on the next call. Will be latest/newest-event-id if requested last-event-id does not exist. */
4337
- EventID: string;
4333
+ EventID: components["schemas"]["Id"];
4338
4334
  /**
4339
4335
  * @description 1 if there is more to pull, i.e. there are more events than returned in one call
4340
4336
  * @enum {integer}
@@ -4366,7 +4362,7 @@ export interface components {
4366
4362
  ListEventsV2ResponseDto: {
4367
4363
  Events: components["schemas"]["EventV2ResponseDto"][];
4368
4364
  /** @description Last event ID that can be used on the next call. Will be latest/newest-event-id if requested last-event-id does not exist. */
4369
- EventID: string;
4365
+ EventID: components["schemas"]["Id"];
4370
4366
  /** @description true if there is more to pull, i.e. there are more events than returned in one call */
4371
4367
  More: boolean;
4372
4368
  /** @description true if client needs to refresh from scratch as their provided event does not exist anymore, i.e. too much time passed since the last event sync */
@@ -4380,12 +4376,12 @@ export interface components {
4380
4376
  };
4381
4377
  CreateFolderRequestDto: {
4382
4378
  /** @description Node hash key (random bytes encoded in base64 format), encrypted and signed. */
4383
- NodeHashKey: string;
4379
+ NodeHashKey: components["schemas"]["PGPMessage"];
4384
4380
  /**
4385
4381
  * @description Extended attributes encrypted with link key
4386
4382
  * @default null
4387
4383
  */
4388
- XAttr: string | null;
4384
+ XAttr: components["schemas"]["PGPMessage"] | null;
4389
4385
  Name: components["schemas"]["PGPMessage"];
4390
4386
  /** @description File/folder name Hash */
4391
4387
  Hash: string;
@@ -4401,6 +4397,7 @@ export interface components {
4401
4397
  SignatureAddress: components["schemas"]["AddressEmail"] | null;
4402
4398
  };
4403
4399
  FolderResponseDto: {
4400
+ /** @description Link ID */
4404
4401
  ID: components["schemas"]["Id"];
4405
4402
  };
4406
4403
  CreateFolderResponseDto: {
@@ -4414,12 +4411,12 @@ export interface components {
4414
4411
  };
4415
4412
  CreateFolderRequestDto2: {
4416
4413
  /** @description Node hash key (random bytes encoded in base64 format), encrypted and signed. */
4417
- NodeHashKey: string;
4414
+ NodeHashKey: components["schemas"]["PGPMessage"];
4418
4415
  /**
4419
4416
  * @description Extended attributes encrypted with link key
4420
4417
  * @default null
4421
4418
  */
4422
- XAttr: string | null;
4419
+ XAttr: components["schemas"]["PGPMessage"] | null;
4423
4420
  Name: components["schemas"]["PGPMessage"];
4424
4421
  /** @description File/folder name Hash */
4425
4422
  Hash: string;
@@ -4451,7 +4448,7 @@ export interface components {
4451
4448
  ListChildrenResponseDto: {
4452
4449
  LinkIDs: components["schemas"]["Id"][];
4453
4450
  /** @description Used for pagination, pass to the next call to get the next page of results */
4454
- AnchorID?: string | null;
4451
+ AnchorID: components["schemas"]["Id"] | null;
4455
4452
  /** @description Indicates if there is a next page of results */
4456
4453
  More: boolean;
4457
4454
  /**
@@ -4473,7 +4470,7 @@ export interface components {
4473
4470
  Hash: string;
4474
4471
  RevisionID: components["schemas"]["Id"];
4475
4472
  LinkID: components["schemas"]["Id"];
4476
- ClientUID?: string | null;
4473
+ ClientUID: string | null;
4477
4474
  };
4478
4475
  AvailableHashesResponseDto: {
4479
4476
  AvailableHashes: string[];
@@ -4489,9 +4486,9 @@ export interface components {
4489
4486
  RelatedPhotoDto: {
4490
4487
  LinkID: components["schemas"]["Id"];
4491
4488
  /** @description Name, reusing same session key as previously. */
4492
- Name: string;
4489
+ Name: components["schemas"]["PGPMessage"];
4493
4490
  /** @description Node passphrase, reusing same session key as previously. */
4494
- NodePassphrase: string;
4491
+ NodePassphrase: components["schemas"]["PGPMessage"];
4495
4492
  /** @description Name hash */
4496
4493
  Hash: string;
4497
4494
  /** @description Photo content hash, hmacsha256 of sha1 content using parent folder's hash key [ hmacSha256(folder hash key, sha1(plain content)) ] */
@@ -4500,20 +4497,19 @@ export interface components {
4500
4497
  PhotosDto: {
4501
4498
  /** @description Photo content hash, hmacsha256 of sha1 content using parent folder's hash key [ hmacSha256(folder hash key, sha1(plain content)) ] */
4502
4499
  ContentHash: string;
4503
- /** @default [] */
4504
4500
  RelatedPhotos: components["schemas"]["RelatedPhotoDto"][];
4505
4501
  };
4506
4502
  CopyLinkRequestDto: {
4507
4503
  /** @description Name, reusing same session key as previously. */
4508
- Name: string;
4504
+ Name: components["schemas"]["PGPMessage"];
4509
4505
  /** @description Node passphrase, reusing same session key as previously. */
4510
- NodePassphrase: string;
4506
+ NodePassphrase: components["schemas"]["PGPMessage"];
4511
4507
  /** @description Name hash */
4512
4508
  Hash: string;
4513
4509
  /** @description Volume ID to copy to. */
4514
- TargetVolumeID: string;
4510
+ TargetVolumeID: components["schemas"]["Id"];
4515
4511
  /** @description New parent link ID to copy to. */
4516
- TargetParentLinkID: string;
4512
+ TargetParentLinkID: components["schemas"]["Id"];
4517
4513
  /**
4518
4514
  * Format: email
4519
4515
  * @description Signature email address used for signing name.
@@ -4544,7 +4540,7 @@ export interface components {
4544
4540
  * @description Only for legacy folders (signed by the user). Node hash key should be unchanged, just re-signed with the NodeKey.
4545
4541
  * @default null
4546
4542
  */
4547
- NodeHashKey: string | null;
4543
+ NodeHashKey: components["schemas"]["PGPMessage"] | null;
4548
4544
  };
4549
4545
  CopyLinkResponseDto: {
4550
4546
  LinkID: components["schemas"]["Id"];
@@ -4603,35 +4599,34 @@ export interface components {
4603
4599
  * Format: email
4604
4600
  * @description OwnerUser email for regular and photo volumes, null otherwise
4605
4601
  */
4606
- Email?: string | null;
4602
+ Email: string | null;
4607
4603
  /** @description OwnerOrganization name for org. volumes, null otherwise */
4608
- Organization?: string | null;
4604
+ Organization: string | null;
4609
4605
  };
4610
4606
  LinkDto: {
4611
4607
  LinkID: components["schemas"]["Id"];
4612
4608
  Type: components["schemas"]["NodeType2"];
4613
- ParentLinkID?: components["schemas"]["Id"] | null;
4609
+ ParentLinkID: components["schemas"]["Id"] | null;
4614
4610
  State: components["schemas"]["LinkState2"];
4615
4611
  CreateTime: number;
4616
4612
  ModifyTime: number;
4617
- TrashTime?: number | null;
4613
+ TrashTime: number | null;
4618
4614
  Name: components["schemas"]["PGPMessage"];
4619
- NameHash?: string | null;
4615
+ NameHash: string | null;
4620
4616
  NodeKey: components["schemas"]["PGPPrivateKey"];
4621
4617
  NodePassphrase: components["schemas"]["PGPMessage"];
4622
4618
  NodePassphraseSignature: components["schemas"]["PGPSignature"];
4623
4619
  /** Format: email */
4624
- SignatureEmail?: string | null;
4620
+ SignatureEmail: string | null;
4625
4621
  /** Format: email */
4626
- NameSignatureEmail?: string | null;
4622
+ NameSignatureEmail: string | null;
4627
4623
  OwnedBy: components["schemas"]["OwnedByDto"];
4628
- /** @default null */
4629
4624
  DirectPermissions: number | null;
4630
4625
  };
4631
4626
  PhotoDto: {
4632
4627
  CaptureTime: number;
4633
- MainPhotoLinkID?: components["schemas"]["Id"] | null;
4634
- ContentHash?: string | null;
4628
+ MainPhotoLinkID: components["schemas"]["Id"] | null;
4629
+ ContentHash: string | null;
4635
4630
  RelatedPhotosLinkIDs: components["schemas"]["Id"][];
4636
4631
  };
4637
4632
  /**
@@ -4651,6 +4646,8 @@ export interface components {
4651
4646
  RevisionID: components["schemas"]["Id"];
4652
4647
  CreateTime: number;
4653
4648
  EncryptedSize: number;
4649
+ /** @description Whether the checksum in xattr of the revision content was verified by the client during upload */
4650
+ ChecksumVerified: boolean;
4654
4651
  ManifestSignature?: components["schemas"]["PGPSignature"] | null;
4655
4652
  XAttr?: components["schemas"]["PGPMessage"] | null;
4656
4653
  Thumbnails: components["schemas"]["ThumbnailDto"][];
@@ -4658,7 +4655,7 @@ export interface components {
4658
4655
  SignatureEmail?: string | null;
4659
4656
  };
4660
4657
  FileDto: {
4661
- ActiveRevision?: components["schemas"]["ActiveRevisionDto"] | null;
4658
+ ActiveRevision: components["schemas"]["ActiveRevisionDto"] | null;
4662
4659
  TotalEncryptedSize: number;
4663
4660
  ContentKeyPacket: components["schemas"]["BinaryString"];
4664
4661
  MediaType?: string | null;
@@ -4684,11 +4681,11 @@ export interface components {
4684
4681
  /** Format: email */
4685
4682
  InviterEmail: string;
4686
4683
  /** @description base64 encoded key packet, encrypting the share passphrase's session key with the invitee's address key */
4687
- MemberSharePassphraseKeyPacket: string;
4684
+ MemberSharePassphraseKeyPacket: components["schemas"]["BinaryString"];
4688
4685
  /** @description PGP signature of the member key packet (encrypted) by inviter */
4689
- InviterSharePassphraseKeyPacketSignature: string;
4686
+ InviterSharePassphraseKeyPacketSignature: components["schemas"]["PGPSignature"];
4690
4687
  /** @description Signature of the share passphrase's session key with the private key of the user (invitee). */
4691
- InviteeSharePassphraseSessionKeySignature: string;
4688
+ InviteeSharePassphraseSessionKeySignature: components["schemas"]["PGPSignature"];
4692
4689
  };
4693
4690
  FileDetailsDto: {
4694
4691
  Link: components["schemas"]["LinkDto"];
@@ -4701,9 +4698,9 @@ export interface components {
4701
4698
  */
4702
4699
  Membership: components["schemas"]["MembershipDto"] | null;
4703
4700
  /** @default null */
4704
- Folder: null | null;
4701
+ Folder: null;
4705
4702
  /** @default null */
4706
- Album: null | null;
4703
+ Album: null;
4707
4704
  };
4708
4705
  FolderDto: {
4709
4706
  NodeHashKey?: components["schemas"]["PGPMessage"] | null;
@@ -4720,18 +4717,18 @@ export interface components {
4720
4717
  */
4721
4718
  Membership: components["schemas"]["MembershipDto"] | null;
4722
4719
  /** @default null */
4723
- File: null | null;
4720
+ File: null;
4724
4721
  /** @default null */
4725
- Album: null | null;
4722
+ Album: null;
4726
4723
  };
4727
4724
  AlbumDto: {
4728
4725
  Hidden: boolean;
4729
4726
  Locked: boolean;
4730
- CoverLinkID?: components["schemas"]["Id"] | null;
4727
+ CoverLinkID: components["schemas"]["Id"] | null;
4731
4728
  LastActivityTime: number;
4732
4729
  PhotoCount: number;
4733
4730
  NodeHashKey: components["schemas"]["PGPMessage"];
4734
- XAttr?: components["schemas"]["PGPMessage"] | null;
4731
+ XAttr: components["schemas"]["PGPMessage"] | null;
4735
4732
  };
4736
4733
  AlbumDetailsDto: {
4737
4734
  Link: components["schemas"]["LinkDto"];
@@ -4741,9 +4738,9 @@ export interface components {
4741
4738
  /** @default null */
4742
4739
  Membership: components["schemas"]["MembershipDto"] | null;
4743
4740
  /** @default null */
4744
- File: null | null;
4741
+ File: null;
4745
4742
  /** @default null */
4746
- Folder: null | null;
4743
+ Folder: null;
4747
4744
  };
4748
4745
  LoadLinkDetailsResponseDto: {
4749
4746
  Links: (components["schemas"]["FileDetailsDto"] | components["schemas"]["FolderDetailsDto"] | components["schemas"]["AlbumDetailsDto"])[];
@@ -4757,9 +4754,9 @@ export interface components {
4757
4754
  MoveLinkInBatchRequestDto: {
4758
4755
  LinkID: components["schemas"]["Id"];
4759
4756
  /** @description Name, reusing same session key as previously. */
4760
- Name: string;
4757
+ Name: components["schemas"]["PGPMessage"];
4761
4758
  /** @description Node passphrase, reusing same session key as previously. */
4762
- NodePassphrase: string;
4759
+ NodePassphrase: components["schemas"]["PGPMessage"];
4763
4760
  /** @description Name hash */
4764
4761
  Hash: string;
4765
4762
  /**
@@ -4796,9 +4793,9 @@ export interface components {
4796
4793
  };
4797
4794
  MoveLinkRequestDto: {
4798
4795
  /** @description Name, reusing same session key as previously. */
4799
- Name: string;
4796
+ Name: components["schemas"]["PGPMessage"];
4800
4797
  /** @description Node passphrase, reusing same session key as previously. */
4801
- NodePassphrase: string;
4798
+ NodePassphrase: components["schemas"]["PGPMessage"];
4802
4799
  /** @description Name hash */
4803
4800
  Hash: string;
4804
4801
  ParentLinkID: components["schemas"]["Id"];
@@ -4845,9 +4842,9 @@ export interface components {
4845
4842
  };
4846
4843
  MoveLinkRequestDto2: {
4847
4844
  /** @description Name, reusing same session key as previously. */
4848
- Name: string;
4845
+ Name: components["schemas"]["PGPMessage"];
4849
4846
  /** @description Node passphrase, reusing same session key as previously. */
4850
- NodePassphrase: string;
4847
+ NodePassphrase: components["schemas"]["PGPMessage"];
4851
4848
  /** @description Name hash */
4852
4849
  Hash: string;
4853
4850
  ParentLinkID: components["schemas"]["Id"];
@@ -4877,7 +4874,7 @@ export interface components {
4877
4874
  };
4878
4875
  RenameLinkRequestDto: {
4879
4876
  /** @description Name, reusing same session key as previously. */
4880
- Name: string;
4877
+ Name: components["schemas"]["PGPMessage"];
4881
4878
  /** @description Name hash; ignored/nullable for root-links */
4882
4879
  Hash?: string | null;
4883
4880
  /**
@@ -4922,7 +4919,7 @@ export interface components {
4922
4919
  * @description Main photo LinkID reference. Pass null if none.
4923
4920
  * @default null
4924
4921
  */
4925
- MainPhotoLinkID: string | null;
4922
+ MainPhotoLinkID: components["schemas"]["Id"] | null;
4926
4923
  /**
4927
4924
  * @deprecated
4928
4925
  * @description Deprecated: Clients persist exif information in xAttr instead
@@ -4957,7 +4954,7 @@ export interface components {
4957
4954
  * @description Extended attributes encrypted with link key
4958
4955
  * @default null
4959
4956
  */
4960
- XAttr: string | null;
4957
+ XAttr: components["schemas"]["PGPMessage"] | null;
4961
4958
  /** @default null */
4962
4959
  Photo: components["schemas"]["CommitRevisionPhotoDto"] | null;
4963
4960
  /**
@@ -4977,6 +4974,11 @@ export interface components {
4977
4974
  * @default null
4978
4975
  */
4979
4976
  State: number | null;
4977
+ /**
4978
+ * @description Whether the checksum in xattr of the revision content was verified by the client during upload
4979
+ * @default false
4980
+ */
4981
+ ChecksumVerified: boolean;
4980
4982
  };
4981
4983
  CreateFileDto: {
4982
4984
  /** @example text/plain */
@@ -4986,7 +4988,7 @@ export interface components {
4986
4988
  * @description Unencrypted signature of the content session key (plain text of the ContentKeyPacket), signed with the NodeKey.
4987
4989
  * @default null
4988
4990
  */
4989
- ContentKeyPacketSignature: string | null;
4991
+ ContentKeyPacketSignature: components["schemas"]["PGPSignature"] | null;
4990
4992
  /**
4991
4993
  * @description Client unique ID. Useful for marking client's drafts - in case of failure client can recognise its own draft and continue upload.
4992
4994
  * @default null
@@ -5012,9 +5014,10 @@ export interface components {
5012
5014
  SignatureAddress: components["schemas"]["AddressEmail"] | null;
5013
5015
  };
5014
5016
  FileResponseDto: {
5017
+ /** @description Link ID */
5015
5018
  ID: components["schemas"]["Id"];
5016
5019
  RevisionID: components["schemas"]["Id"];
5017
- ClientUID?: string | null;
5020
+ ClientUID: string | null;
5018
5021
  };
5019
5022
  CreateDraftFileResponseDto: {
5020
5023
  File: components["schemas"]["FileResponseDto"];
@@ -5040,6 +5043,7 @@ export interface components {
5040
5043
  IntendedUploadSize: number | null;
5041
5044
  };
5042
5045
  RevisionResponseDto: {
5046
+ /** @description Revision ID */
5043
5047
  ID: components["schemas"]["Id"];
5044
5048
  };
5045
5049
  CreateDraftRevisionResponseDto: {
@@ -5081,11 +5085,11 @@ export interface components {
5081
5085
  };
5082
5086
  RevisionResponseDto2: {
5083
5087
  ID: components["schemas"]["Id"];
5084
- ManifestSignature?: components["schemas"]["PGPSignature"] | null;
5088
+ ManifestSignature: components["schemas"]["PGPSignature"] | null;
5085
5089
  /** @description Size of revision (in bytes) */
5086
5090
  Size: number;
5087
5091
  State: components["schemas"]["RevisionState"];
5088
- XAttr?: components["schemas"]["PGPMessage"] | null;
5092
+ XAttr: components["schemas"]["PGPMessage"] | null;
5089
5093
  /**
5090
5094
  * @deprecated
5091
5095
  * @description Flag stating if revision has a thumbnail
@@ -5100,7 +5104,9 @@ export interface components {
5100
5104
  */
5101
5105
  ThumbnailSize: number;
5102
5106
  Thumbnails: components["schemas"]["ThumbnailResponseDto"][];
5103
- ClientUID?: string | null;
5107
+ /** @description Whether the checksum in xattr of the revision content was verified by the client during upload */
5108
+ ChecksumVerified: boolean;
5109
+ ClientUID: string | null;
5104
5110
  /** @default null */
5105
5111
  CreateTime: number | null;
5106
5112
  /**
@@ -5179,6 +5185,7 @@ export interface components {
5179
5185
  Code: 1000;
5180
5186
  };
5181
5187
  Verifier: {
5188
+ /** @description Derived from verificationCode from GET /verification endpoint: base64(xor(verificationCode, padWithZeros(dataPacket, 32))) */
5182
5189
  Token: components["schemas"]["BinaryString"];
5183
5190
  };
5184
5191
  RequestUploadBlockInput: {
@@ -5190,7 +5197,7 @@ export interface components {
5190
5197
  * @description Encrypted PGP Signature of the raw block content. Deprecated: Once clients do not validate the block signature, it should also not be calculated and uploaded anymore.
5191
5198
  * @default null
5192
5199
  */
5193
- EncSignature: string | null;
5200
+ EncSignature: components["schemas"]["PGPMessage"] | null;
5194
5201
  /**
5195
5202
  * @deprecated
5196
5203
  * @description Block size in bytes
@@ -5201,7 +5208,7 @@ export interface components {
5201
5208
  * @deprecated
5202
5209
  * @description sha256 hash of encrypted block, base64 encoded
5203
5210
  */
5204
- Hash: string;
5211
+ Hash?: components["schemas"]["BinaryString"] | null;
5205
5212
  };
5206
5213
  RequestUploadThumbnailInput: {
5207
5214
  Type: components["schemas"]["ThumbnailType"];
@@ -5215,7 +5222,7 @@ export interface components {
5215
5222
  * @deprecated
5216
5223
  * @description sha256 hash of encrypted block, base64 encoded
5217
5224
  */
5218
- Hash: string;
5225
+ Hash?: components["schemas"]["BinaryString"] | null;
5219
5226
  };
5220
5227
  RequestUploadInput: {
5221
5228
  LinkID: components["schemas"]["Id"];
@@ -5240,7 +5247,7 @@ export interface components {
5240
5247
  * @description sha256 hash of thumbnail contents
5241
5248
  * @default null
5242
5249
  */
5243
- ThumbnailHash: string | null;
5250
+ ThumbnailHash: components["schemas"]["BinaryString"] | null;
5244
5251
  /**
5245
5252
  * @deprecated
5246
5253
  * @description Size of thumbnail contents
@@ -5303,6 +5310,8 @@ export interface components {
5303
5310
  FailedItemCount: number;
5304
5311
  State: components["schemas"]["HealthCheckState"];
5305
5312
  };
5313
+ /** @enum {string} */
5314
+ AbuseDtoCategory: "spam" | "copyright" | "child-abuse" | "stolen-data" | "malware" | "other";
5306
5315
  AbuseReportDto: {
5307
5316
  /** @description Passphrase for reported Link's Node key, unencrypted, as a string, escaped for JSON. */
5308
5317
  ResourcePassphrase: string;
@@ -5311,8 +5320,7 @@ export interface components {
5311
5320
  * @example https://drive.proton.me/urls/1F9BKXYDMA#yF7d7bn01GMM
5312
5321
  */
5313
5322
  ShareURL: string;
5314
- /** @enum {string} */
5315
- AbuseCategory: "spam" | "copyright" | "child-abuse" | "stolen-data" | "malware" | "other";
5323
+ AbuseCategory: components["schemas"]["AbuseDtoCategory"];
5316
5324
  /**
5317
5325
  * @description Full password, including custom part, as string, escaped for JSON
5318
5326
  * @default
@@ -5338,9 +5346,9 @@ export interface components {
5338
5346
  RevisionID: components["schemas"]["Id"] | null;
5339
5347
  };
5340
5348
  FreshAccountResponseDto: {
5341
- EndTime?: number | null;
5349
+ EndTime: number | null;
5342
5350
  /** @description Maximum available space for the free upload timer, in bytes (API allows going 10% over limit for zero-rating) */
5343
- Quota?: number | null;
5351
+ Quota: number | null;
5344
5352
  /**
5345
5353
  * ProtonResponseCode
5346
5354
  * @example 1000
@@ -5351,8 +5359,8 @@ export interface components {
5351
5359
  ChecklistResponseDto: {
5352
5360
  /** @description Array of completed checklist items */
5353
5361
  Items: string[];
5354
- CreatedAt?: number | null;
5355
- ExpiresAt?: number | null;
5362
+ CreatedAt: number | null;
5363
+ ExpiresAt: number | null;
5356
5364
  /** @description User already has reward quota */
5357
5365
  UserWasRewarded: boolean;
5358
5366
  /** @description Client has displayed completed checklist */
@@ -5407,12 +5415,13 @@ export interface components {
5407
5415
  FavoritePhotoDataDto: {
5408
5416
  /** @description Name Hash */
5409
5417
  Hash: string;
5410
- Name: string;
5418
+ Name: components["schemas"]["PGPMessage"];
5411
5419
  /**
5412
5420
  * Format: email
5413
5421
  * @description Email address used for signing name
5414
5422
  */
5415
5423
  NameSignatureEmail: string;
5424
+ /** @description Passphrase should be unchanged, reusing same session key as previously */
5416
5425
  NodePassphrase: components["schemas"]["PGPMessage"];
5417
5426
  /** @description Photo content hash */
5418
5427
  ContentHash: string;
@@ -5445,7 +5454,7 @@ export interface components {
5445
5454
  };
5446
5455
  GetMigrationStatusResponseDto: {
5447
5456
  OldVolumeID: components["schemas"]["Id"];
5448
- NewVolumeID?: components["schemas"]["Id"] | null;
5457
+ NewVolumeID: components["schemas"]["Id"] | null;
5449
5458
  /**
5450
5459
  * ProtonResponseCode
5451
5460
  * @example 1000
@@ -5496,12 +5505,8 @@ export interface components {
5496
5505
  Hash: string;
5497
5506
  /** @description Photo content hash, Hashmac of content using parent folder's hash key */
5498
5507
  ContentHash?: string | null;
5499
- /**
5500
- * @description Tags assigned to the photo
5501
- * @default []
5502
- */
5508
+ /** @description Tags assigned to the photo */
5503
5509
  Tags: number[];
5504
- /** @default [] */
5505
5510
  RelatedPhotos: components["schemas"]["PhotoListingRelatedItemResponse"][];
5506
5511
  };
5507
5512
  PhotoListingResponse: {
@@ -5517,6 +5522,8 @@ export interface components {
5517
5522
  RevisionID: components["schemas"]["Id"];
5518
5523
  CreateTime: number;
5519
5524
  EncryptedSize: number;
5525
+ /** @description Whether the checksum in xattr of the revision content was verified by the client during upload */
5526
+ ChecksumVerified: boolean;
5520
5527
  ManifestSignature?: components["schemas"]["PGPSignature"] | null;
5521
5528
  XAttr?: components["schemas"]["PGPMessage"] | null;
5522
5529
  Thumbnails: components["schemas"]["ThumbnailDto"][];
@@ -5530,10 +5537,10 @@ export interface components {
5530
5537
  AddedTime: number;
5531
5538
  };
5532
5539
  PhotoFileDto: {
5533
- ActiveRevision?: components["schemas"]["ActivePhotoRevisionDto"] | null;
5540
+ ActiveRevision: components["schemas"]["ActivePhotoRevisionDto"] | null;
5534
5541
  CaptureTime: number;
5535
- MainPhotoLinkID?: components["schemas"]["Id"] | null;
5536
- ContentHash?: string | null;
5542
+ MainPhotoLinkID: components["schemas"]["Id"] | null;
5543
+ ContentHash: string | null;
5537
5544
  RelatedPhotosLinkIDs: components["schemas"]["Id"][];
5538
5545
  Albums: components["schemas"]["PhotoAlbumDto"][];
5539
5546
  /** @description Will be empty if the user is not the owner. */
@@ -5554,7 +5561,7 @@ export interface components {
5554
5561
  */
5555
5562
  Membership: components["schemas"]["MembershipDto"] | null;
5556
5563
  /** @default null */
5557
- Album: null | null;
5564
+ Album: null;
5558
5565
  };
5559
5566
  PhotoAlbumDetailsDto: {
5560
5567
  Link: components["schemas"]["LinkDto"];
@@ -5564,7 +5571,7 @@ export interface components {
5564
5571
  /** @default null */
5565
5572
  Membership: components["schemas"]["MembershipDto"] | null;
5566
5573
  /** @default null */
5567
- Photo: null | null;
5574
+ Photo: null;
5568
5575
  };
5569
5576
  PhotoRootFolderDetailsDto: {
5570
5577
  Link: components["schemas"]["LinkDto"];
@@ -5577,9 +5584,9 @@ export interface components {
5577
5584
  */
5578
5585
  Membership: components["schemas"]["MembershipDto"] | null;
5579
5586
  /** @default null */
5580
- Photo: null | null;
5587
+ Photo: null;
5581
5588
  /** @default null */
5582
- Album: null | null;
5589
+ Album: null;
5583
5590
  };
5584
5591
  LoadPhotoVolumeLinkDetailsResponseDto: {
5585
5592
  Links: (components["schemas"]["PhotoDetailsDto"] | components["schemas"]["PhotoAlbumDetailsDto"] | components["schemas"]["PhotoRootFolderDetailsDto"])[];
@@ -5593,6 +5600,10 @@ export interface components {
5593
5600
  RemoveTagsRequestDto: {
5594
5601
  Tags: components["schemas"]["TagType"][];
5595
5602
  };
5603
+ UpdatePhotoCaptureTimeRequestDto: {
5604
+ /** @description Unix timestamp used to determine position in timeline */
5605
+ CaptureTime: number;
5606
+ };
5596
5607
  UpdateXAttrRequest: {
5597
5608
  /**
5598
5609
  * Format: email
@@ -5600,7 +5611,7 @@ export interface components {
5600
5611
  */
5601
5612
  SignatureEmail: string;
5602
5613
  /** @description Extended attributes encrypted with link key */
5603
- XAttr: string;
5614
+ XAttr: components["schemas"]["PGPMessage"];
5604
5615
  };
5605
5616
  AuthShareTokenRequestDto: {
5606
5617
  ClientEphemeral: components["schemas"]["BinaryString"];
@@ -5624,19 +5635,12 @@ export interface components {
5624
5635
  UID: string;
5625
5636
  ServerProof: components["schemas"]["BinaryString"];
5626
5637
  Share: components["schemas"]["AuthShareDataResponseDto"];
5627
- /**
5628
- * @description Session Access token (present if new session)
5629
- * @default null
5630
- */
5638
+ /** @description Session Access token (present if new session) */
5631
5639
  AccessToken: string;
5632
- /**
5633
- * @description Duration of the session in seconds (present if new session)
5634
- * @default null
5635
- */
5640
+ /** @description Duration of the session in seconds (present if new session) */
5636
5641
  ExpiresIn: number;
5637
5642
  /**
5638
5643
  * @description Type of token (present if new session)
5639
- * @default null
5640
5644
  * @example Bearer
5641
5645
  */
5642
5646
  TokenType: string;
@@ -5685,10 +5689,7 @@ export interface components {
5685
5689
  /** @deprecated */
5686
5690
  IsDoc: boolean;
5687
5691
  VendorType: components["schemas"]["VendorType"];
5688
- /**
5689
- * @description Only set if the user is authenticated AND has direct access to the share already
5690
- * @default null
5691
- */
5692
+ /** @description Only set if the user is authenticated AND has direct access to the share already */
5692
5693
  DirectAccess: components["schemas"]["DirectAccessResponseDto"] | null;
5693
5694
  /**
5694
5695
  * ProtonResponseCode
@@ -5705,12 +5706,17 @@ export interface components {
5705
5706
  */
5706
5707
  SignatureEmail?: components["schemas"]["AddressEmail"] | null;
5707
5708
  /** @description Extended attributes encrypted with link key */
5708
- XAttr: string;
5709
+ XAttr: components["schemas"]["PGPMessage"];
5709
5710
  /**
5710
5711
  * @description Photo attributes
5711
5712
  * @default null
5712
5713
  */
5713
5714
  Photo: components["schemas"]["CommitRevisionPhotoDto"] | null;
5715
+ /**
5716
+ * @description Whether the checksum in xattr of the revision content was verified by the client during upload
5717
+ * @default false
5718
+ */
5719
+ ChecksumVerified: boolean;
5714
5720
  };
5715
5721
  CreateAnonymousDocumentDto: {
5716
5722
  Name: components["schemas"]["PGPMessage"];
@@ -5733,6 +5739,7 @@ export interface components {
5733
5739
  * @default null
5734
5740
  */
5735
5741
  ContentKeyPacketSignature: components["schemas"]["PGPSignature"] | null;
5742
+ /** @description Document=1, Sheet=2 */
5736
5743
  DocumentType?: components["schemas"]["DocumentType"];
5737
5744
  };
5738
5745
  CreateAnonymousDocumentResponseDto: {
@@ -5766,7 +5773,7 @@ export interface components {
5766
5773
  * @description Unencrypted signature of the content session key (plain text of the ContentKeyPacket), signed with the NodeKey.
5767
5774
  * @default null
5768
5775
  */
5769
- ContentKeyPacketSignature: string | null;
5776
+ ContentKeyPacketSignature: components["schemas"]["PGPSignature"] | null;
5770
5777
  /**
5771
5778
  * @description Client unique ID. Useful for marking client's drafts - in case of failure client can recognise its own draft and continue upload.
5772
5779
  * @default null
@@ -5797,7 +5804,7 @@ export interface components {
5797
5804
  NodePassphraseSignature: components["schemas"]["PGPSignature"];
5798
5805
  NodeKey: components["schemas"]["PGPPrivateKey"];
5799
5806
  /** @description Node hash key (random bytes encoded in base64 format), encrypted and signed. */
5800
- NodeHashKey: string;
5807
+ NodeHashKey: components["schemas"]["PGPMessage"];
5801
5808
  /**
5802
5809
  * Format: email
5803
5810
  * @description Signature email address used to sign passphrase and name
@@ -5808,7 +5815,7 @@ export interface components {
5808
5815
  * @description Extended attributes encrypted with link key
5809
5816
  * @default null
5810
5817
  */
5811
- XAttr: string | null;
5818
+ XAttr: components["schemas"]["PGPMessage"] | null;
5812
5819
  };
5813
5820
  CreateAnonymousFolderResponseDto: {
5814
5821
  Folder: components["schemas"]["FolderResponseDto"];
@@ -5830,7 +5837,7 @@ export interface components {
5830
5837
  };
5831
5838
  RenameAnonymousLinkRequestDto: {
5832
5839
  /** @description Name, reusing same session key as previously. */
5833
- Name: string;
5840
+ Name: components["schemas"]["PGPMessage"];
5834
5841
  /** @description Name hash */
5835
5842
  Hash: string;
5836
5843
  /** @description Current name hash before move operation. Used to prevent race conditions. */
@@ -5876,10 +5883,10 @@ export interface components {
5876
5883
  BlockResponseDto: {
5877
5884
  Index: number;
5878
5885
  Hash: components["schemas"]["BinaryString"];
5879
- Token?: string | null;
5886
+ Token: string | null;
5880
5887
  /** @deprecated */
5881
5888
  URL?: string | null;
5882
- BareURL?: string | null;
5889
+ BareURL: string | null;
5883
5890
  /**
5884
5891
  * @deprecated
5885
5892
  * @default null
@@ -5897,11 +5904,11 @@ export interface components {
5897
5904
  LinkID: components["schemas"]["Id"];
5898
5905
  /** @description Unix timestamp of when the photo was taken as extracted by client from exif */
5899
5906
  CaptureTime: number;
5900
- MainPhotoLinkID?: components["schemas"]["Id"] | null;
5907
+ MainPhotoLinkID: components["schemas"]["Id"] | null;
5901
5908
  /** @description File name hash */
5902
- Hash?: string | null;
5909
+ Hash: string | null;
5903
5910
  /** @description Photo content hash, Hashmac of content using parent folder's hash key */
5904
- ContentHash?: string | null;
5911
+ ContentHash: string | null;
5905
5912
  /** @description LinkIDs of related Photos if there are any */
5906
5913
  RelatedPhotosLinkIDs: components["schemas"]["Id"][];
5907
5914
  /**
@@ -5913,7 +5920,7 @@ export interface components {
5913
5920
  };
5914
5921
  DetailedRevisionResponseDto: {
5915
5922
  Blocks: components["schemas"]["BlockResponseDto"][];
5916
- Photo?: components["schemas"]["PhotoResponseDto"] | null;
5923
+ Photo: components["schemas"]["PhotoResponseDto"] | null;
5917
5924
  ID: components["schemas"]["Id"];
5918
5925
  ManifestSignature?: components["schemas"]["PGPSignature"] | null;
5919
5926
  /** @description Size of revision (in bytes) */
@@ -5934,6 +5941,8 @@ export interface components {
5934
5941
  */
5935
5942
  ThumbnailSize: number;
5936
5943
  Thumbnails: components["schemas"]["ThumbnailResponseDto"][];
5944
+ /** @description Whether the checksum in xattr of the revision content was verified by the client during upload */
5945
+ ChecksumVerified: boolean;
5937
5946
  ClientUID?: string | null;
5938
5947
  /** @default null */
5939
5948
  CreateTime: number | null;
@@ -6004,12 +6013,12 @@ export interface components {
6004
6013
  ShareID: components["schemas"]["Id"];
6005
6014
  /** @description URL to use to access the ShareURL */
6006
6015
  PublicUrl: string;
6007
- ExpirationTime?: number | null;
6008
- LastAccessTime?: number | null;
6016
+ ExpirationTime: number | null;
6017
+ LastAccessTime: number | null;
6009
6018
  CreateTime: number;
6010
6019
  MaxAccesses: number;
6011
6020
  NumAccesses: number;
6012
- Name?: components["schemas"]["PGPMessage"] | null;
6021
+ Name: components["schemas"]["PGPMessage"] | null;
6013
6022
  CreatorEmail: string;
6014
6023
  /**
6015
6024
  * @description Permission bitfield, cannot exceed the owner's permissions. Valid permissions:
@@ -6032,7 +6041,7 @@ export interface components {
6032
6041
  };
6033
6042
  ShareURLContext: {
6034
6043
  /** @description Share ID of the share highest in the tree with permissions */
6035
- ContextShareID: string;
6044
+ ContextShareID: components["schemas"]["Id"];
6036
6045
  ShareURLs: components["schemas"]["ShareURLResponseDto"][];
6037
6046
  /** @description Related link IDs and ancestors up to the share. */
6038
6047
  LinkIDs: components["schemas"]["Id"][];
@@ -6081,7 +6090,7 @@ export interface components {
6081
6090
  Flags: number;
6082
6091
  SharePassphraseKeyPacket: components["schemas"]["BinaryString"];
6083
6092
  /** @description PGP encrypted password. The password is encrypted with the user's address key. */
6084
- Password: string;
6093
+ Password: components["schemas"]["PGPMessage"];
6085
6094
  /** @description Maximum number of times this link can be accessed. 0 for infinite */
6086
6095
  MaxAccesses: number;
6087
6096
  /**
@@ -6098,7 +6107,7 @@ export interface components {
6098
6107
  * @description PGP encrypted name. The name is encrypted with the user's address key. The name is only for user convenience.
6099
6108
  * @default null
6100
6109
  */
6101
- Name: string | null;
6110
+ Name: components["schemas"]["PGPMessage"] | null;
6102
6111
  };
6103
6112
  UpdateShareURLRequestDto: {
6104
6113
  /** @description UNIX timestamp after which this link is no longer accessible. Use this or ExpirationDuration for a relative expiration period. Max 90 days from now. */
@@ -6106,7 +6115,7 @@ export interface components {
6106
6115
  /** @description Number of seconds after which this link is no longer accessible. Maximum 90 days. */
6107
6116
  ExpirationDuration?: number | null;
6108
6117
  /** @description PGP encrypted name. The name is encrypted with the user's address key. The name is only for user convenience. */
6109
- Name: number;
6118
+ Name?: components["schemas"]["PGPMessage"] | null;
6110
6119
  /**
6111
6120
  * @description Permission bitfield, cannot exceed the owner's permissions. Valid permissions:
6112
6121
  * - 4: read access
@@ -6283,11 +6292,12 @@ export interface components {
6283
6292
  */
6284
6293
  Permissions: 4 | 6 | 22;
6285
6294
  /** @description base64 encoded key packet, encrypting the share passphrase's session key with the invitee's address key */
6286
- KeyPacket: string;
6295
+ KeyPacket: components["schemas"]["BinaryString"];
6287
6296
  /** @description PGP signature of the member key packet (encrypted) by inviter */
6288
- KeyPacketSignature: string;
6297
+ KeyPacketSignature: components["schemas"]["PGPSignature"] | null;
6289
6298
  /** @description Signature of the share passphrase's session key with the private key of the user (invitee). */
6290
- SessionKeySignature: string;
6299
+ SessionKeySignature: components["schemas"]["PGPSignature"] | null;
6300
+ /** @description 1=active, 3=locked */
6291
6301
  State: components["schemas"]["ShareMemberState"];
6292
6302
  CreateTime: number;
6293
6303
  ModifyTime: number;
@@ -6304,6 +6314,7 @@ export interface components {
6304
6314
  AddressID: components["schemas"]["Id"];
6305
6315
  AddressKeyID: components["schemas"]["Id"];
6306
6316
  KeyPacket: components["schemas"]["BinaryString"];
6317
+ /** @description 1=active, 3=locked */
6307
6318
  State: components["schemas"]["ShareMemberState"];
6308
6319
  /**
6309
6320
  * @deprecated
@@ -6315,12 +6326,15 @@ export interface components {
6315
6326
  BootstrapShareResponseDto: {
6316
6327
  ShareID: components["schemas"]["Id"];
6317
6328
  VolumeID: components["schemas"]["Id"];
6329
+ /** @description 1=Main, 2=Standard, 3=Device, 4=Photo */
6318
6330
  Type: components["schemas"]["ShareType"];
6331
+ /** @description 1=Active, 3=Restored */
6319
6332
  State: components["schemas"]["ShareState"];
6333
+ /** @description 1=Regular, 2=Photo */
6320
6334
  VolumeType: components["schemas"]["VolumeType2"];
6321
6335
  /** Format: email */
6322
6336
  Creator: string;
6323
- Locked?: boolean | null;
6337
+ Locked: boolean | null;
6324
6338
  CreateTime: number;
6325
6339
  ModifyTime: number;
6326
6340
  LinkID: components["schemas"]["Id"];
@@ -6331,6 +6345,7 @@ export interface components {
6331
6345
  CreationTime: number;
6332
6346
  /** @deprecated */
6333
6347
  PermissionsMask: number;
6348
+ /** @description 1=folder, 2=file */
6334
6349
  LinkType: components["schemas"]["NodeType3"];
6335
6350
  /** @deprecated */
6336
6351
  Flags: number;
@@ -6342,12 +6357,12 @@ export interface components {
6342
6357
  Passphrase: components["schemas"]["PGPMessage"];
6343
6358
  PassphraseSignature: components["schemas"]["PGPSignature"];
6344
6359
  /** @description Address ID of the current user's address for the membership of this share. Can be missing if the user is not a direct member of the share. */
6345
- AddressID?: string | null;
6360
+ AddressID: components["schemas"]["Id"] | null;
6346
6361
  /**
6347
6362
  * @deprecated
6348
6363
  * @description Clients should not use this field but pass the address keyring when validating and decrypting related fields.
6349
6364
  */
6350
- AddressKeyID?: string | null;
6365
+ AddressKeyID?: components["schemas"]["Id"] | null;
6351
6366
  /** @description Your own memberships */
6352
6367
  Memberships: components["schemas"]["MemberResponseDto"][];
6353
6368
  /**
@@ -6355,7 +6370,7 @@ export interface components {
6355
6370
  * @description Deprecated, use `Memberships` instead
6356
6371
  */
6357
6372
  PossibleKeyPackets: components["schemas"]["KeyPacketResponseDto"][];
6358
- RootLinkRecoveryPassphrase?: components["schemas"]["PGPMessage"] | null;
6373
+ RootLinkRecoveryPassphrase: components["schemas"]["PGPMessage"] | null;
6359
6374
  /** @description Indicates if editor members of this share could reshare it or not */
6360
6375
  EditorsCanShare: boolean;
6361
6376
  /**
@@ -6366,6 +6381,7 @@ export interface components {
6366
6381
  Code: 1000;
6367
6382
  };
6368
6383
  GetHighestContextForDocumentResponse: {
6384
+ /** @description Context shareID of the highest level that the user is granted permission */
6369
6385
  ContextShareID: components["schemas"]["Id"];
6370
6386
  /**
6371
6387
  * ProtonResponseCode
@@ -6377,12 +6393,15 @@ export interface components {
6377
6393
  ShareResponseDto: {
6378
6394
  ShareID: components["schemas"]["Id"];
6379
6395
  VolumeID: components["schemas"]["Id"];
6396
+ /** @description 1=Main, 2=Standard, 3=Device, 4=Photo */
6380
6397
  Type: components["schemas"]["ShareType"];
6398
+ /** @description 1=Active, 3=Restored */
6381
6399
  State: components["schemas"]["ShareState"];
6400
+ /** @description 1=Regular, 2=Photo */
6382
6401
  VolumeType: components["schemas"]["VolumeType2"];
6383
6402
  /** Format: email */
6384
6403
  Creator: string;
6385
- Locked?: boolean | null;
6404
+ Locked: boolean | null;
6386
6405
  CreateTime: number;
6387
6406
  ModifyTime: number;
6388
6407
  LinkID: components["schemas"]["Id"];
@@ -6415,16 +6434,6 @@ export interface components {
6415
6434
  /** @description Indicates if editor members of this share could reshare it or not */
6416
6435
  Value: boolean;
6417
6436
  };
6418
- TransferInput: {
6419
- /** @description The ID of the new address */
6420
- AddressID: string;
6421
- /** @description The ID of the new key */
6422
- KeyID: string;
6423
- /** @description Armored signature of the share passphrase, signed with the users's address with AddressID. */
6424
- SharePassphraseSignature: string;
6425
- /** @description Base64 encoded key packet for the share passphrase, reusing the same session key as previously, and encrypted for the key referenced by the KeyID. */
6426
- MemberKeyPacket: string;
6427
- };
6428
6437
  UpdateSharePropertyRequestDto: {
6429
6438
  /**
6430
6439
  * @description Indicates if editor members of this share could reshare it or not
@@ -6434,9 +6443,9 @@ export interface components {
6434
6443
  };
6435
6444
  ShareKPMigrationData: {
6436
6445
  /** @description Share to migrate. Can only be Active (State=1) Shares of Type=2 */
6437
- ShareID: string;
6446
+ ShareID: components["schemas"]["Id"];
6438
6447
  /** @description Key packet to decrypt the share passphrase, encrypted with the node key, base64 encoded */
6439
- PassphraseNodeKeyPacket: string;
6448
+ PassphraseNodeKeyPacket: components["schemas"]["BinaryString"];
6440
6449
  };
6441
6450
  MigrateSharesRequestDto: {
6442
6451
  /**
@@ -6483,10 +6492,10 @@ export interface components {
6483
6492
  RootLinkID: components["schemas"]["Id"];
6484
6493
  ShareKey: components["schemas"]["PGPPrivateKey"];
6485
6494
  /** @description Full PGP message containing (optionally) PassphraseNodeKP and SharePassphrase-KP and data-packet (encrypted SharePassphrase) -> in this exact order */
6486
- SharePassphrase: string;
6495
+ SharePassphrase: components["schemas"]["PGPMessage"];
6487
6496
  SharePassphraseSignature: components["schemas"]["PGPSignature"];
6488
6497
  /** @description Key packet for passphrase of referenced link's node key passphrase */
6489
- PassphraseKeyPacket: string;
6498
+ PassphraseKeyPacket: components["schemas"]["BinaryString"];
6490
6499
  NameKeyPacket: components["schemas"]["BinaryString"];
6491
6500
  /**
6492
6501
  * @deprecated
@@ -6516,7 +6525,7 @@ export interface components {
6516
6525
  SharedByMeResponseDto: {
6517
6526
  Links: components["schemas"]["LinkSharedByMeResponseDto"][];
6518
6527
  /** @description Used for pagination, pass to the next call to get the next page of results */
6519
- AnchorID?: string | null;
6528
+ AnchorID: components["schemas"]["Id"] | null;
6520
6529
  /** @description Indicates if there is a next page of results */
6521
6530
  More: boolean;
6522
6531
  /**
@@ -6536,12 +6545,14 @@ export interface components {
6536
6545
  VolumeID: components["schemas"]["Id"];
6537
6546
  ShareID: components["schemas"]["Id"];
6538
6547
  LinkID: components["schemas"]["Id"];
6548
+ /** @description The target type of the Share that is corresponding to this invitation.
6549
+ * This should not be used as source of information to know what NodeType or MIMEType the targeted Share is. */
6539
6550
  ShareTargetType: components["schemas"]["TargetType"];
6540
6551
  };
6541
6552
  SharedWithMeResponseDto2: {
6542
6553
  Links: components["schemas"]["LinkSharedWithMeResponseDto"][];
6543
6554
  /** @description Used for pagination, pass to the next call to get the next page of results */
6544
- AnchorID?: string | null;
6555
+ AnchorID: components["schemas"]["Id"] | null;
6545
6556
  /** @description Indicates if there is a next page of results */
6546
6557
  More: boolean;
6547
6558
  /**
@@ -6565,7 +6576,7 @@ export interface components {
6565
6576
  */
6566
6577
  Permissions: 4 | 6 | 22;
6567
6578
  /** @description Base64 signature of "inviteemail|base64(share passphrase session key)" signed with the admin's address key and the signature context `drive.share-member.external-invitation` */
6568
- ExternalInvitationSignature: string;
6579
+ ExternalInvitationSignature: components["schemas"]["BinaryString"];
6569
6580
  };
6570
6581
  InvitationEmailDetailsRequestDto: {
6571
6582
  Message?: string | null;
@@ -6597,7 +6608,7 @@ export interface components {
6597
6608
  */
6598
6609
  Permissions: 4 | 6 | 22;
6599
6610
  /** @description Base64 signature of "inviteemail|base64(share passphrase session key)" signed with the admin's address key and the signature context `drive.share-member.external-invitation` */
6600
- ExternalInvitationSignature: string;
6611
+ ExternalInvitationSignature: components["schemas"]["BinaryString"];
6601
6612
  State: components["schemas"]["ExternalInvitationState"];
6602
6613
  CreateTime: number;
6603
6614
  };
@@ -6627,7 +6638,7 @@ export interface components {
6627
6638
  ListUserRegisteredExternalInvitationResponseDto: {
6628
6639
  ExternalInvitations: components["schemas"]["UserRegisteredExternalInvitationItemDto"][];
6629
6640
  /** @description Used for pagination, pass to the next call to get the next page of results */
6630
- AnchorID?: string | null;
6641
+ AnchorID: components["schemas"]["Id"] | null;
6631
6642
  /** @description Indicates if there is a next page of results */
6632
6643
  More: boolean;
6633
6644
  /**
@@ -6650,7 +6661,7 @@ export interface components {
6650
6661
  };
6651
6662
  AcceptInvitationRequestDto: {
6652
6663
  /** @description Signature of the share passphrase's session key with the private key of the user (invitee) and the signature context `drive.share-member.member`, base64 encoded */
6653
- SessionKeySignature: string;
6664
+ SessionKeySignature: components["schemas"]["BinaryString"];
6654
6665
  };
6655
6666
  InvitationRequestDto: {
6656
6667
  InviterEmail: components["schemas"]["AddressEmail"];
@@ -6665,9 +6676,9 @@ export interface components {
6665
6676
  */
6666
6677
  Permissions: 4 | 6 | 22;
6667
6678
  /** @description Encrypting the share passphrase's session key with the invitee's public address key, base64 encoded */
6668
- KeyPacket: string;
6679
+ KeyPacket: components["schemas"]["BinaryString"];
6669
6680
  /** @description Signature of the above member key packet with the private key of the user (inviter) and the signature context `drive.share-member.inviter`, base64 encoded */
6670
- KeyPacketSignature: string;
6681
+ KeyPacketSignature: components["schemas"]["BinaryString"];
6671
6682
  /** @default null */
6672
6683
  ExternalInvitationID: components["schemas"]["Id"] | null;
6673
6684
  };
@@ -6692,9 +6703,9 @@ export interface components {
6692
6703
  */
6693
6704
  Permissions: 4 | 6 | 22;
6694
6705
  /** @description base64 encoded key packet, encrypting the share passphrase's session key with the invitee's address key */
6695
- KeyPacket: string;
6706
+ KeyPacket: components["schemas"]["BinaryString"];
6696
6707
  /** @description PGP signature of the member key packet (encrypted) by inviter */
6697
- KeyPacketSignature: string;
6708
+ KeyPacketSignature: components["schemas"]["BinaryString"];
6698
6709
  CreateTime: number;
6699
6710
  };
6700
6711
  InviteUserResponseDto: {
@@ -6731,12 +6742,14 @@ export interface components {
6731
6742
  VolumeID: components["schemas"]["Id"];
6732
6743
  ShareID: components["schemas"]["Id"];
6733
6744
  InvitationID: components["schemas"]["Id"];
6745
+ /** @description The target type of the Share that is corresponding to this invitation.
6746
+ * This should not be used as source of information to know what NodeType or MIMEType the targeted Share is. */
6734
6747
  ShareTargetType: components["schemas"]["TargetType"];
6735
6748
  };
6736
6749
  ListPendingInvitationResponseDto: {
6737
6750
  Invitations: components["schemas"]["PendingInvitationItemDto"][];
6738
6751
  /** @description Used for pagination, pass to the next call to get the next page of results */
6739
- AnchorID?: string | null;
6752
+ AnchorID: components["schemas"]["Id"] | null;
6740
6753
  /** @description Indicates if there is a next page of results */
6741
6754
  More: boolean;
6742
6755
  /**
@@ -6753,13 +6766,15 @@ export interface components {
6753
6766
  ShareKey: components["schemas"]["PGPPrivateKey"];
6754
6767
  /** Format: email */
6755
6768
  CreatorEmail: string;
6769
+ /** @description The target type of the Share that is corresponding to this invitation.
6770
+ * This should not be used as source of information to know what NodeType or MIMEType the targeted Share is. */
6756
6771
  ShareTargetType: components["schemas"]["TargetType"];
6757
6772
  };
6758
6773
  LinkResponseDto: {
6759
6774
  Type: components["schemas"]["NodeType2"];
6760
6775
  LinkID: components["schemas"]["Id"];
6761
6776
  Name: components["schemas"]["PGPMessage"];
6762
- MIMEType?: string | null;
6777
+ MIMEType: string | null;
6763
6778
  };
6764
6779
  PendingInvitationResponseDto: {
6765
6780
  Invitation: components["schemas"]["InvitationResponseDto"];
@@ -6816,11 +6831,11 @@ export interface components {
6816
6831
  */
6817
6832
  Permissions: 4 | 6 | 22;
6818
6833
  /** @description base64 encoded key packet, encrypting the share passphrase's session key with the invitee's address key */
6819
- KeyPacket: string;
6834
+ KeyPacket: components["schemas"]["BinaryString"];
6820
6835
  /** @description PGP signature of the member key packet (encrypted) by inviter */
6821
- KeyPacketSignature: string;
6836
+ KeyPacketSignature: components["schemas"]["BinaryString"];
6822
6837
  /** @description Signature of the share passphrase's session key with the private key of the user (invitee). */
6823
- SessionKeySignature: string;
6838
+ SessionKeySignature: components["schemas"]["BinaryString"];
6824
6839
  CreateTime: number;
6825
6840
  };
6826
6841
  ListShareMembersResponseDto: {
@@ -6893,6 +6908,7 @@ export interface components {
6893
6908
  B2BPhotosEnabled: null;
6894
6909
  Layout: components["schemas"]["LayoutSetting"];
6895
6910
  Sort: components["schemas"]["SortSetting"];
6911
+ /** @description Number of days revisions should be retained. If null, default will be used by backend. Changing the setting is only available to paid users, free users will always use the default. */
6896
6912
  RevisionRetentionDays: components["schemas"]["RevisionRetentionDays"];
6897
6913
  /** @description Indicates if email notifications for comment activity in Proton Docs are enabled. If null, the default value to 0 = false will be used by backend. */
6898
6914
  DocsCommentsNotificationsEnabled?: boolean | null;
@@ -6914,6 +6930,7 @@ export interface components {
6914
6930
  * @description [DEPRECATED] Always true
6915
6931
  */
6916
6932
  B2BPhotosEnabled: boolean;
6933
+ /** @description Number of days revisions should be retained if not defined by the user. Default ALWAYS used for free users, even if different value is set (premium feature). */
6917
6934
  RevisionRetentionDays: components["schemas"]["RevisionRetentionDays2"];
6918
6935
  /** @description Indicates if email notifications for comment activity in Proton Docs are enabled. If null, the default value to 0 = false will be used by backend. */
6919
6936
  DocsCommentsNotificationsEnabled: boolean;
@@ -6923,7 +6940,9 @@ export interface components {
6923
6940
  PhotoTags: number[];
6924
6941
  };
6925
6942
  SettingsResponse: {
6943
+ /** @description User settings as defined by the user. */
6926
6944
  UserSettings: components["schemas"]["UserSettings"];
6945
+ /** @description Defaults for certain settings (e.g. if not set by user). */
6927
6946
  Defaults: components["schemas"]["Defaults"];
6928
6947
  /**
6929
6948
  * ProtonResponseCode
@@ -6935,6 +6954,7 @@ export interface components {
6935
6954
  UserSettingsRequest: {
6936
6955
  Layout: components["schemas"]["LayoutSetting"];
6937
6956
  Sort: components["schemas"]["SortSetting"];
6957
+ /** @description Number of days revisions should be retained. If null, default will be used by backend. Changing the setting is only available to paid users, free users will always use the default. */
6938
6958
  RevisionRetentionDays: components["schemas"]["RevisionRetentionDays"];
6939
6959
  /** @description Indicates if email notifications for comment activity in Proton Docs are enabled. If null, the default value to 0 = false will be used by backend. */
6940
6960
  DocsCommentsNotificationsEnabled?: boolean | null;
@@ -6948,7 +6968,7 @@ export interface components {
6948
6968
  CreateOrgVolumeRequestDto: {
6949
6969
  AddressID: components["schemas"]["AddressID"];
6950
6970
  /** @description XX's encrypted AddressKeyID. Must be the primary key from the AddressID */
6951
- AddressKeyID: string;
6971
+ AddressKeyID: components["schemas"]["Id"];
6952
6972
  ShareKey: components["schemas"]["PGPPrivateKey"];
6953
6973
  SharePassphrase: components["schemas"]["PGPMessage"];
6954
6974
  SharePassphraseSignature: components["schemas"]["PGPSignature"];
@@ -6962,6 +6982,7 @@ export interface components {
6962
6982
  VolumeName: string;
6963
6983
  };
6964
6984
  VolumeResponseDto: {
6985
+ /** @description Deprecated, use `VolumeID` instead */
6965
6986
  ID: components["schemas"]["Id"];
6966
6987
  /**
6967
6988
  * @deprecated
@@ -6981,6 +7002,7 @@ export interface components {
6981
7002
  DownloadedBytes: number;
6982
7003
  UploadedBytes: number;
6983
7004
  State: components["schemas"]["VolumeState"];
7005
+ /** @description Main share of the volume */
6984
7006
  Share: components["schemas"]["ShareReferenceResponseDto"];
6985
7007
  Type: components["schemas"]["VolumeType"];
6986
7008
  };
@@ -7004,7 +7026,7 @@ export interface components {
7004
7026
  FolderPassphraseSignature: components["schemas"]["PGPSignature"];
7005
7027
  FolderHashKey: components["schemas"]["PGPMessage"];
7006
7028
  /** @description User's encrypted AddressKeyID. Must be the primary key from the AddressID */
7007
- AddressKeyID: string;
7029
+ AddressKeyID?: components["schemas"]["Id"] | null;
7008
7030
  /**
7009
7031
  * @deprecated
7010
7032
  * @default null
@@ -7058,9 +7080,9 @@ export interface components {
7058
7080
  };
7059
7081
  RestoreMainShareDto: {
7060
7082
  /** @description ShareID of the existing, locked main share */
7061
- LockedShareID: string;
7083
+ LockedShareID: components["schemas"]["Id"];
7062
7084
  /** @description Folder name as armored PGP message */
7063
- Name: string;
7085
+ Name: components["schemas"]["PGPMessage"];
7064
7086
  /** @description Hash of the name */
7065
7087
  Hash: string;
7066
7088
  NodePassphrase: components["schemas"]["PGPMessage"];
@@ -7069,15 +7091,15 @@ export interface components {
7069
7091
  * @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.
7070
7092
  * @default null
7071
7093
  */
7072
- NodeHashKey: string | null;
7094
+ NodeHashKey: components["schemas"]["PGPMessage"] | null;
7073
7095
  };
7074
7096
  RestoreRootShareDto: {
7075
7097
  /** @description ShareID of the existing share on the old volume */
7076
- LockedShareID: string;
7098
+ LockedShareID: components["schemas"]["Id"];
7077
7099
  /** @description Key packet for the share passphrase, encrypted with the active key associated with the new volume. Encoded with Base64. */
7078
- ShareKeyPacket: string;
7100
+ ShareKeyPacket: components["schemas"]["BinaryString"];
7079
7101
  /** @description Signed with new key as armored PGP signature */
7080
- PassphraseSignature: string;
7102
+ PassphraseSignature: components["schemas"]["PGPSignature"];
7081
7103
  };
7082
7104
  RestoreVolumeDto: {
7083
7105
  SignatureAddress: components["schemas"]["AddressEmail"];
@@ -7088,7 +7110,7 @@ export interface components {
7088
7110
  /** @default [] */
7089
7111
  PhotoShares: components["schemas"]["RestoreRootShareDto"][];
7090
7112
  /** @description User's encrypted AddressKeyID. Must be the primary key from the signatureAddress */
7091
- AddressKeyID: string;
7113
+ AddressKeyID?: components["schemas"]["Id"] | null;
7092
7114
  };
7093
7115
  AddPhotoToAlbumWithLinkIDResponseDto: Record<string, never>;
7094
7116
  MultiResponsesPerLinkFactory: {
@@ -7106,12 +7128,12 @@ export interface components {
7106
7128
  * @description A conflicting Revision in Active state.
7107
7129
  * @default null
7108
7130
  */
7109
- ConflictRevisionID: string | null;
7131
+ ConflictRevisionID: components["schemas"]["Id"] | null;
7110
7132
  /**
7111
7133
  * @description A conflicting Revision in Draft state.
7112
7134
  * @default null
7113
7135
  */
7114
- ConflictDraftRevisionID: string | null;
7136
+ ConflictDraftRevisionID: components["schemas"]["Id"] | null;
7115
7137
  /**
7116
7138
  * @description ClientUID of conflicting Revision if in Draft state.
7117
7139
  * @default null
@@ -7122,7 +7144,7 @@ export interface components {
7122
7144
  * @description [DEPRECATED] for backwards compatibility on create revision, same value as ConflictDraftRevisionID
7123
7145
  * @default null
7124
7146
  */
7125
- RevisionID: string | null;
7147
+ RevisionID: components["schemas"]["Id"] | null;
7126
7148
  };
7127
7149
  ConflictErrorResponseDto: {
7128
7150
  Details: components["schemas"]["ConflictErrorDetailsDto"];
@@ -7132,7 +7154,7 @@ export interface components {
7132
7154
  ShareConflictErrorDetailsDto: {
7133
7155
  ConflictLinkID: components["schemas"]["Id"];
7134
7156
  /** @description A conflicting Share on the Link. */
7135
- ConflictShareID: string;
7157
+ ConflictShareID: components["schemas"]["Id"];
7136
7158
  };
7137
7159
  /** @description Conflict, a share already exists for the file or folder. */
7138
7160
  ShareConflictErrorResponseDto: {
@@ -7156,21 +7178,26 @@ export interface components {
7156
7178
  MIMEType: string;
7157
7179
  ContentKeyPacket: components["schemas"]["BinaryString"];
7158
7180
  /** @description Unencrypted signature of the content session key (plain text of the ContentKeyPacket), signed with the NodeKey. */
7159
- ContentKeyPacketSignature?: string | null;
7181
+ ContentKeyPacketSignature?: components["schemas"]["PGPSignature"] | null;
7160
7182
  ManifestSignature: components["schemas"]["PGPSignature"];
7161
7183
  ContentBlockVerificationToken?: components["schemas"]["BinaryString"] | null;
7162
7184
  /**
7163
7185
  * @description Extended attributes encrypted with link key
7164
7186
  * @default null
7165
7187
  */
7166
- XAttr: string | null;
7188
+ XAttr: components["schemas"]["PGPMessage"] | null;
7167
7189
  /** @default null */
7168
7190
  Photo: components["schemas"]["CommitRevisionPhotoDto"] | null;
7169
7191
  /**
7170
7192
  * @description Encrypted PGP Signature of the raw block content. Is null for empty files as they do not have blocks or when uploaded by anonymous users. Deprecated: Once clients do not validate the block signature, it should also not be calculated and uploaded anymore.
7171
7193
  * @default null
7172
7194
  */
7173
- ContentBlockEncSignature: string | null;
7195
+ ContentBlockEncSignature: components["schemas"]["PGPMessage"] | null;
7196
+ /**
7197
+ * @description Whether the checksum in xattr of the revision content was verified by the client during upload
7198
+ * @default false
7199
+ */
7200
+ ChecksumVerified: boolean;
7174
7201
  };
7175
7202
  SmallRevisionUploadMetadataRequestDto: {
7176
7203
  CurrentRevisionID: components["schemas"]["Id"];
@@ -7187,7 +7214,12 @@ export interface components {
7187
7214
  * @description File extended attributes encrypted with link key
7188
7215
  * @default null
7189
7216
  */
7190
- XAttr: string | null;
7217
+ XAttr: components["schemas"]["PGPMessage"] | null;
7218
+ /**
7219
+ * @description Whether the checksum in xattr of the revision content was verified by the client during upload
7220
+ * @default false
7221
+ */
7222
+ ChecksumVerified: boolean;
7191
7223
  };
7192
7224
  };
7193
7225
  responses: {
@@ -8514,7 +8546,7 @@ export interface operations {
8514
8546
  parameters: {
8515
8547
  query?: {
8516
8548
  /** @description Link ID use to indicate where to start the next page */
8517
- AnchorID?: (string & components["schemas"]["Id"]) | null;
8549
+ AnchorID?: string & (components["schemas"]["Id"] | null);
8518
8550
  /** @description Show folders only */
8519
8551
  FoldersOnly?: 0 | 1;
8520
8552
  };
@@ -10806,6 +10838,34 @@ export interface operations {
10806
10838
  };
10807
10839
  };
10808
10840
  };
10841
+ "put_drive-photos-volumes-{volumeID}-links-{linkID}-capture-time": {
10842
+ parameters: {
10843
+ query?: never;
10844
+ header?: never;
10845
+ path: {
10846
+ volumeID: string;
10847
+ linkID: string;
10848
+ };
10849
+ cookie?: never;
10850
+ };
10851
+ requestBody?: {
10852
+ content: {
10853
+ "application/json": components["schemas"]["UpdatePhotoCaptureTimeRequestDto"];
10854
+ };
10855
+ };
10856
+ responses: {
10857
+ /** @description Success */
10858
+ 200: {
10859
+ headers: {
10860
+ "x-pm-code": 1000;
10861
+ [name: string]: unknown;
10862
+ };
10863
+ content: {
10864
+ "application/json": components["schemas"]["SuccessfulResponse"];
10865
+ };
10866
+ };
10867
+ };
10868
+ };
10809
10869
  "put_drive-photos-volumes-{volumeID}-links-{linkID}-revisions-{revisionID}-xattr": {
10810
10870
  parameters: {
10811
10871
  query?: never;
@@ -12406,33 +12466,6 @@ export interface operations {
12406
12466
  };
12407
12467
  };
12408
12468
  };
12409
- "post_drive-shares-{shareID}-owner": {
12410
- parameters: {
12411
- query?: never;
12412
- header?: never;
12413
- path: {
12414
- shareID: string;
12415
- };
12416
- cookie?: never;
12417
- };
12418
- requestBody?: {
12419
- content: {
12420
- "application/json": components["schemas"]["TransferInput"];
12421
- };
12422
- };
12423
- responses: {
12424
- /** @description Success */
12425
- 200: {
12426
- headers: {
12427
- "x-pm-code": 1000;
12428
- [name: string]: unknown;
12429
- };
12430
- content: {
12431
- "application/json": components["schemas"]["SuccessfulResponse"];
12432
- };
12433
- };
12434
- };
12435
- };
12436
12469
  "post_drive-shares-{shareID}-property": {
12437
12470
  parameters: {
12438
12471
  query?: never;