@protontech/drive-sdk 0.14.7 → 0.14.8

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