-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathteam.stone
More file actions
3639 lines (2971 loc) · 134 KB
/
Copy pathteam.stone
File metadata and controls
3639 lines (2971 loc) · 134 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
namespace team
import account
import async
import common
import file_properties
import files
import secondary_emails
import team_common
import team_policies
import users
import users_common
union_closed TeamMembershipType
full
"User uses a license and has full access to team resources like the shared quota."
limited
@common.Deprecated
"User does not have access to the shared quota and team admins have restricted administrative control."
struct RemovedStatus
is_recoverable Boolean
"True if the removed team member is recoverable."
is_disconnected Boolean
"True if the team member's account was converted to individual account."
example default
is_recoverable = false
is_disconnected = false
union_closed TeamMemberStatus
"The user's status as a member of a specific team."
active
"User has successfully joined the team."
invited
"User has been invited to a team, but has not joined the team yet."
suspended
"User is no longer a member of the team, but the account can be un-suspended,
re-establishing the user as a team member."
removed RemovedStatus
"User is no longer a member of the team.
Removed users are only listed when include_removed is true in members/list."
struct MemberProfile
"Basic member profile."
team_member_id team_common.TeamMemberId
"ID of user as a member of a team."
external_id String?
"External ID that a team can attach to the user.
An application using the API may find it easier to use their
own IDs instead of Dropbox IDs like account_id or team_member_id."
account_id users_common.AccountId?
"A user's account identifier."
email String
"Email address of user."
email_verified Boolean
"Is true if the user's email is verified to be owned by the user."
secondary_emails List(secondary_emails.SecondaryEmail)?
"Secondary emails of a user."
status TeamMemberStatus
"The user's status as a member of a specific team."
name users.Name
"Representations for a person's name."
membership_type TeamMembershipType
"The user's membership type: full (normal team member) vs limited (does not use a license; no access to the team's shared quota)."
invited_on common.DropboxTimestamp?
"The date and time the user was invited to the team (contains value only when the member's status matches :field:`TeamMemberStatus.invited`)."
joined_on common.DropboxTimestamp?
"The date and time the user joined as a member of a specific team."
suspended_on common.DropboxTimestamp?
"The date and time the user was suspended from the team (contains value only when the member's status matches :field:`TeamMemberStatus.suspended`)."
persistent_id String?
"Persistent ID that a team can attach to the user.
The persistent ID is unique ID to be used for SAML authentication."
is_directory_restricted Boolean?
"Whether the user is a directory restricted user."
profile_photo_url String?
"URL for the photo representing the user, if one is set."
example default
team_member_id = "dbmid:1234567"
account_id = "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc"
email = "mary@lamb.com"
email_verified = true
secondary_emails = [default, second_sec_email, third_sec_email]
status = active
name = default
membership_type = full
joined_on = "2015-05-12T15:50:38Z"
profile_photo_url = "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128"
struct TeamMemberProfile extends MemberProfile
"Profile of a user as a member of a team."
groups List(team_common.GroupId)
"List of group IDs of groups that the user belongs to."
member_folder_id common.NamespaceId
"The namespace id of the user's member folder."
root_folder_id common.NamespaceId
"The namespace id of the user's root folder."
example default
team_member_id = "dbmid:FDFSVF-DFSDF"
account_id = "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc"
external_id = "244423"
email = "tami@seagull.com"
email_verified = false
secondary_emails = [third_sec_email, default]
status = active
name = default
groups = ["g:e2db7665347abcd600000000001a2b3c"]
membership_type = full
joined_on = "2015-05-12T15:50:38Z"
member_folder_id = "20"
root_folder_id = "30"
profile_photo_url = "https://dl-web.dropbox.com/account_photo/get/dbaphid%3AAAHWGmIXV3sUuOmBfTz0wPsiqHUpBWvv3ZA?vers=1556069330102&size=128x128"
union DesktopPlatform
windows
"Official Windows Dropbox desktop client."
mac
"Official Mac Dropbox desktop client."
linux
"Official Linux Dropbox desktop client."
union MobileClientPlatform
iphone
"Official Dropbox iPhone client."
ipad
"Official Dropbox iPad client."
android
"Official Dropbox Android client."
windows_phone
"Official Dropbox Windows phone client."
blackberry
"Official Dropbox Blackberry client."
union ListMemberDevicesError
member_not_found
"Member not found."
union ListMembersDevicesError
reset
"Indicates that the cursor has been invalidated. Call
:route:`devices/list_members_devices` again with an empty cursor to obtain a new cursor."
union_closed RevokeDeviceSessionArg
web_session DeviceSessionArg
"End an active session."
desktop_client RevokeDesktopClientArg
"Unlink a linked desktop device."
mobile_client DeviceSessionArg
"Unlink a linked mobile device."
example default
web_session = default
union RevokeDeviceSessionError
device_session_not_found
"Device session not found."
member_not_found
"Member not found."
union RevokeDeviceSessionBatchError
""
union ListTeamDevicesError
reset
"Indicates that the cursor has been invalidated. Call
:route:`devices/list_team_devices` again with an empty cursor to obtain a new cursor."
struct DeviceSessionArg
session_id String
"The session id."
team_member_id String
"The unique id of the member owning the device."
example default
session_id = "1234faaf0678bcde"
team_member_id = "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
struct RevokeDesktopClientArg extends DeviceSessionArg
delete_on_unlink Boolean = false
"Whether to delete all files of the account (this is possible only if supported by
the desktop client and will be made the next time the client access the account)."
example default
session_id = "1234faaf0678bcde"
team_member_id = "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
struct ListMemberDevicesArg
team_member_id String
"The team's member id."
include_web_sessions Boolean = true
"Whether to list web sessions of the team's member."
include_desktop_clients Boolean = true
"Whether to list linked desktop devices of the team's member."
include_mobile_clients Boolean = true
"Whether to list linked mobile devices of the team's member."
example default
team_member_id = "dbmid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
struct DeviceSession
session_id String
"The session id."
ip_address String?
"The IP address of the last activity from this session."
country String?
"The country from which the last activity from this session was made."
created common.DropboxTimestamp?
"The time this session was created."
updated common.DropboxTimestamp?
"The time of the last activity from this session."
struct ActiveWebSession extends DeviceSession
"Information on active web sessions."
user_agent String
"Information on the hosting device."
os String
"Information on the hosting operating system."
browser String
"Information on the browser used for this web session."
expires common.DropboxTimestamp?
"The time this session expires."
example default
session_id = "dbwsid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
ip_address = "3.3.3.3"
country = "United States"
created = "2015-05-12T15:50:38Z"
updated = "2015-05-12T15:51:22Z"
user_agent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.815.0 Safari/535.1"
os = "Windows"
browser = "Chrome"
expires = "2015-05-13T15:51:22Z"
struct DesktopClientSession extends DeviceSession
"Information about linked Dropbox desktop client sessions."
host_name String
"Name of the hosting desktop."
client_type DesktopPlatform
"The Dropbox desktop client type."
client_version String
"The Dropbox client version."
platform String
"Information on the hosting platform."
is_delete_on_unlink_supported Boolean
"Whether it's possible to delete all of the account files upon unlinking."
example default
session_id = "dbdsid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
ip_address = "3.3.3.3"
country = "United States"
created = "2015-05-12T15:50:38Z"
updated = "2015-05-12T15:51:22Z"
host_name = "Home_desktop"
client_type = mac
client_version = "3.9.19"
platform = "Mac OS X 10.10.3"
is_delete_on_unlink_supported = true
struct MobileClientSession extends DeviceSession
"Information about linked Dropbox mobile client sessions."
device_name String
"The device name."
client_type MobileClientPlatform
"The mobile application type."
client_version String?
"The dropbox client version."
os_version String?
"The hosting OS version."
last_carrier String?
"last carrier used by the device."
example default
session_id = "dbmsid:AAFdgehTzw7WlXhZJsbGCLePe8RvQGYDr-I"
ip_address = "3.3.3.3"
country = "United States"
created = "2015-05-12T15:50:38Z"
updated = "2015-05-12T15:51:22Z"
device_name = "Iphone 6"
client_type = iphone
client_version = "3.9.5"
os_version = "8.4"
last_carrier = "Verizon"
struct ListMemberDevicesResult
active_web_sessions List(ActiveWebSession)?
"List of web sessions made by this team member."
desktop_client_sessions List(DesktopClientSession)?
"List of desktop clients used by this team member."
mobile_client_sessions List(MobileClientSession)?
"List of mobile client used by this team member."
struct ListMembersDevicesArg
cursor String?
"At the first call to the :route:`devices/list_members_devices` the cursor shouldn't be passed.
Then, if the result of the call includes a cursor, the following requests should include the
received cursors in order to receive the next sub list of team devices."
include_web_sessions Boolean = true
"Whether to list web sessions of the team members."
include_desktop_clients Boolean = true
"Whether to list desktop clients of the team members."
include_mobile_clients Boolean = true
"Whether to list mobile clients of the team members."
struct MemberDevices
"Information on devices of a team's member."
team_member_id String
"The member unique Id."
web_sessions List(ActiveWebSession)?
"List of web sessions made by this team member."
desktop_clients List(DesktopClientSession)?
"List of desktop clients by this team member."
mobile_clients List(MobileClientSession)?
"List of mobile clients by this team member."
example default
team_member_id = "dbmid:AAHhy7WsR0x-u4ZCqiDl5Fz5zvuL3kmspwU"
struct ListMembersDevicesResult
devices List(MemberDevices)
"The devices of each member of the team."
has_more Boolean
"If true, then there are more devices available. Pass the
cursor to :route:`devices/list_members_devices` to retrieve the rest."
cursor String?
"Pass the cursor into :route:`devices/list_members_devices` to receive the next
sub list of team's devices."
struct RevokeDeviceSessionBatchArg
revoke_devices List(RevokeDeviceSessionArg)
example default
revoke_devices = [default]
struct RevokeDeviceSessionStatus
success Boolean
"Result of the revoking request."
error_type RevokeDeviceSessionError?
"The error cause in case of a failure."
struct RevokeDeviceSessionBatchResult
revoke_devices_status List(RevokeDeviceSessionStatus)
struct ListTeamDevicesArg
cursor String?
"At the first call to the :route:`devices/list_team_devices` the cursor shouldn't be passed.
Then, if the result of the call includes a cursor, the following requests should include the
received cursors in order to receive the next sub list of team devices."
include_web_sessions Boolean = true
"Whether to list web sessions of the team members."
include_desktop_clients Boolean = true
"Whether to list desktop clients of the team members."
include_mobile_clients Boolean = true
"Whether to list mobile clients of the team members."
example default
cursor = "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
struct ListTeamDevicesResult
devices List(MemberDevices)
"The devices of each member of the team."
has_more Boolean
"If true, then there are more devices available. Pass the
cursor to :route:`devices/list_team_devices` to retrieve the rest."
cursor String?
"Pass the cursor into :route:`devices/list_team_devices` to receive the next
sub list of team's devices."
example default
devices = [default]
has_more = false
route devices/list_member_devices (ListMemberDevicesArg, ListMemberDevicesResult, ListMemberDevicesError)
"List all device sessions of a team's member."
attrs
auth = "team"
scope = "sessions.list"
route devices/list_members_devices (ListMembersDevicesArg, ListMembersDevicesResult, ListMembersDevicesError)
"List all device sessions of a team.
Permission : Team member file access."
attrs
auth = "team"
scope = "sessions.list"
route devices/revoke_device_session (RevokeDeviceSessionArg, Void, RevokeDeviceSessionError)
"Revoke a device session of a team's member."
attrs
auth = "team"
scope = "sessions.modify"
route devices/revoke_device_session_batch (RevokeDeviceSessionBatchArg, RevokeDeviceSessionBatchResult, RevokeDeviceSessionBatchError)
"Revoke a list of device sessions of team members."
attrs
auth = "team"
scope = "sessions.modify"
route devices/list_team_devices (ListTeamDevicesArg, ListTeamDevicesResult, ListTeamDevicesError) deprecated
"List all device sessions of a team.
Permission : Team member file access."
attrs
auth = "team"
scope = "sessions.list"
union TeamFolderStatus
active
"The team folder and sub-folders are available to all members."
archived
"The team folder is archived and is not accessible outside of the team folder manager."
archive_in_progress
"The team folder is in the process of being archived and is not accessible outside of the team folder manager."
inactive
"The team folder is unmounted and can be restored."
struct TeamFolderIdArg
team_folder_id common.SharedFolderId
"The ID of the team folder."
example default
team_folder_id = "123456789"
struct TeamFolderIdListArg
team_folder_ids List(common.SharedFolderId, min_items=1)
"The list of team folder IDs."
example default
team_folder_ids = ["947182", "5819424", "852307532"]
struct TeamFolderMetadata
"Properties of a team folder."
team_folder_id common.SharedFolderId
"The ID of the team folder."
name String
"The name of the team folder."
status TeamFolderStatus
"The status of the team folder."
is_team_shared_dropbox Boolean
"True if this team folder is a shared team root."
sync_setting files.SyncSetting
"The sync setting applied to this team folder."
content_sync_settings List(files.ContentSyncSetting)
"Sync settings applied to contents of this team folder."
quota_limit Int64 = 0
"The quota limit in bytes for this team folder namespace tree."
example default
name = "Marketing"
team_folder_id = "123456789"
status = active
is_team_shared_dropbox = false
sync_setting = default
content_sync_settings = [default]
quota_limit = 123456789
union TeamFolderAccessError
invalid_team_folder_id
"The team folder ID is invalid."
no_access
"The authenticated app does not have permission to manage that team folder."
union TeamFolderInvalidStatusError
active
"The folder is active and the operation did not succeed."
archived
"The folder is archived and the operation did not succeed."
archive_in_progress
"The folder is being archived and the operation did not succeed."
union TeamFolderTeamSharedDropboxError
disallowed
"This action is not allowed for a shared team root."
union BaseTeamFolderError
"Base error that all errors for existing team folders should extend."
access_error TeamFolderAccessError
status_error TeamFolderInvalidStatusError
team_shared_dropbox_error TeamFolderTeamSharedDropboxError
struct TeamFolderCreateArg
name String
"Name for the new team folder."
sync_setting files.SyncSettingArg?
"The sync setting to apply to this team folder. Only permitted if the team has team selective sync enabled."
example default
name = "Marketing"
sync_setting = not_synced
union TeamFolderCreateError
invalid_folder_name
"The provided name cannot be used."
folder_name_already_used
"There is already a team folder with the provided name."
folder_name_reserved
"The provided name cannot be used because it is reserved."
sync_settings_error files.SyncSettingsError
"An error occurred setting the sync settings."
struct TeamFolderRenameArg extends TeamFolderIdArg
name String
"New team folder name."
example default
team_folder_id = "123456789"
name = "Sales"
union TeamFolderRenameError extends BaseTeamFolderError
invalid_folder_name
"The provided folder name cannot be used."
folder_name_already_used
"There is already a team folder with the same name."
folder_name_reserved
"The provided name cannot be used because it is reserved."
struct TeamFolderListArg
limit UInt32(max_value=1000, min_value=1) = 1000
"The maximum number of results to return per request."
example default
limit = 100
struct TeamFolderListResult
"Result for :route:`team_folder/list` and :route:`team_folder/list/continue`."
team_folders List(TeamFolderMetadata)
"List of all team folders in the authenticated team."
cursor String
"Pass the cursor into :route:`team_folder/list/continue` to obtain additional team folders."
has_more Boolean
"Is true if there are additional team folders that have not been returned
yet. An additional call to :route:`team_folder/list/continue` can retrieve them."
example default
team_folders = [default]
cursor = "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
has_more = false
struct TeamFolderListError
access_error TeamFolderAccessError
struct TeamFolderListContinueArg
cursor String
"Indicates from what point to get the next set of team folders."
example default
cursor = "ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu"
union TeamFolderListContinueError
invalid_cursor
"The cursor is invalid."
union_closed TeamFolderGetInfoItem
id_not_found String = ""
"An ID that was provided as a parameter to :route:`team_folder/get_info` did not
match any of the team's team folders."
team_folder_metadata TeamFolderMetadata
"Properties of a team folder."
union TeamFolderActivateError extends BaseTeamFolderError
""
union TeamFolderRestoreError extends BaseTeamFolderError
""
struct TeamFolderArchiveArg extends TeamFolderIdArg
force_async_off Boolean = false
"Whether to force the archive to happen synchronously."
example default
team_folder_id = "123456789"
force_async_off = false
union_closed TeamFolderArchiveLaunch extends async.LaunchResultBase
complete TeamFolderMetadata
example default
complete = default
example async_job_id
async_job_id = "34g93hh34h04y384084"
union TeamFolderArchiveError extends BaseTeamFolderError
""
union_closed TeamFolderArchiveJobStatus extends async.PollResultBase
complete TeamFolderMetadata
"The archive job has finished. The value is the metadata for the resulting team folder."
failed TeamFolderArchiveError
"Error occurred while performing an asynchronous job from :route:`team_folder/archive`."
example default
complete = default
union TeamFolderPermanentlyDeleteError extends BaseTeamFolderError
""
struct TeamFolderUpdateSyncSettingsArg extends TeamFolderIdArg
sync_setting files.SyncSettingArg?
"Sync setting to apply to the team folder itself. Only meaningful if the team folder is not a shared team root."
content_sync_settings List(files.ContentSyncSettingArg)?
"Sync settings to apply to contents of this team folder."
example default
team_folder_id = "123456789"
sync_setting = default
content_sync_settings = [default]
union TeamFolderUpdateSyncSettingsError extends BaseTeamFolderError
sync_settings_error files.SyncSettingsError
"An error occurred setting the sync settings."
route team_folder/create (TeamFolderCreateArg, TeamFolderMetadata, TeamFolderCreateError)
"Creates a new, active, team folder with no members. This endpoint can only be used for teams
that do not already have a shared team space.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.write"
route team_folder/rename (TeamFolderRenameArg, TeamFolderMetadata, TeamFolderRenameError)
"Changes an active team folder's name.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.write"
route team_folder/list (TeamFolderListArg, TeamFolderListResult, TeamFolderListError)
"Lists all team folders.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.read"
route team_folder/list/continue (TeamFolderListContinueArg, TeamFolderListResult, TeamFolderListContinueError)
"Once a cursor has been retrieved from :route:`team_folder/list`, use this to paginate
through all team folders.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.read"
route team_folder/get_info (TeamFolderIdListArg, List(TeamFolderGetInfoItem), Void)
"Retrieves metadata for team folders.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.read"
route team_folder/activate (TeamFolderIdArg, TeamFolderMetadata, TeamFolderActivateError)
"Sets an archived team folder's status to active.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.write"
route team_folder/restore (TeamFolderIdArg, TeamFolderMetadata, TeamFolderRestoreError)
"Sets an inactive team folder's status to active.
Permission: Team member file access."
attrs
auth = "team"
is_preview = true
scope = "team_data.content.write"
route team_folder/archive (TeamFolderArchiveArg, TeamFolderArchiveLaunch, TeamFolderArchiveError)
"Sets an active team folder's status to archived and removes all folder and file members.
This endpoint cannot be used for teams that have a shared team space. This route will
either finish synchronously, or return a job ID and do the async archive job in
background. Please use team_folder/archive/check to check the job status.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.write"
route team_folder/archive/check (async.PollArg, TeamFolderArchiveJobStatus, async.PollError)
"Returns the status of an asynchronous job for archiving a team folder.
The job may show '.tag' as complete, but the team folder could still be in the process of archiving (indicated by
:field:`TeamFolderMetadata.status` with 'archive_in_progress').
To confirm that the team folder is fully archived, check the field :field:`TeamFolderMetadata.status` in the response
for the value 'archived'.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.write"
route team_folder/permanently_delete (TeamFolderIdArg, Void, TeamFolderPermanentlyDeleteError)
"Permanently deletes an archived team folder. This endpoint cannot be used for teams
that have a shared team space.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.content.write"
route team_folder/update_sync_settings (TeamFolderUpdateSyncSettingsArg, TeamFolderMetadata, TeamFolderUpdateSyncSettingsError)
"Updates the sync settings on a team folder or its contents. Use of this endpoint requires that the team has team selective sync enabled."
attrs
auth = "team"
scope = "team_data.content.write"
alias LegalHoldId = String(pattern="^pid_dbhid:.+")
alias LegalHoldPolicyName = String(max_length=140)
alias LegalHoldPolicyDescription = String(max_length=501)
alias Path = String(pattern="(/(.|[\\r\\n])*)?")
alias LegalHoldsPolicyCreateResult = LegalHoldPolicy
alias LegalHoldsGetPolicyResult = LegalHoldPolicy
alias ListHeldRevisionCursor = String(min_length=1)
alias LegalHoldsPolicyUpdateResult = LegalHoldPolicy
union LegalHoldStatus
active
"The legal hold policy is active."
released
"The legal hold policy was released."
activating
"The legal hold policy is activating."
updating
"The legal hold policy is updating."
exporting
"The legal hold policy is exporting."
releasing
"The legal hold policy is releasing."
union LegalHoldsError
unknown_legal_hold_error
"There has been an unknown legal hold error."
insufficient_permissions
"You don't have permissions to perform this action."
union LegalHoldsPolicyCreateError extends LegalHoldsError
start_date_is_later_than_end_date
"Start date must be earlier than end date."
empty_members_list
"The users list must have at least one user."
invalid_members
"Some members in the members list are not valid to be placed under legal hold."
number_of_users_on_hold_is_greater_than_hold_limitation
"You cannot add more than 5 users in a legal hold."
transient_error
"Temporary infrastructure failure, please retry."
name_must_be_unique
"The name provided is already in use by another legal hold."
team_exceeded_legal_hold_quota
"Team exceeded legal hold quota."
invalid_date
"The provided date is invalid."
union LegalHoldsGetPolicyError extends LegalHoldsError
legal_hold_policy_not_found
"Legal hold policy does not exist for :field:`LegalHoldsGetPolicyArg.id`."
union LegalHoldsListPoliciesError extends LegalHoldsError
transient_error
"Temporary infrastructure failure, please retry."
union LegalHoldsListHeldRevisionsError extends LegalHoldsError
transient_error
"Temporary infrastructure failure, please retry."
legal_hold_still_empty
"The legal hold is not holding any revisions yet."
inactive_legal_hold
"Trying to list revisions for an inactive legal hold."
union LegalHoldsListHeldRevisionsContinueError
unknown_legal_hold_error
"There has been an unknown legal hold error."
transient_error
"Temporary infrastructure failure, please retry."
reset
"Indicates that the cursor has been invalidated. Call
:route:`legal_holds/list_held_revisions_continue` again with an empty cursor to obtain a new cursor."
union LegalHoldsPolicyUpdateError extends LegalHoldsError
transient_error
"Temporary infrastructure failure, please retry."
inactive_legal_hold
"Trying to release an inactive legal hold."
legal_hold_performing_another_operation
"Legal hold is currently performing another operation."
invalid_members
"Some members in the members list are not valid to be placed under legal hold."
number_of_users_on_hold_is_greater_than_hold_limitation
"You cannot add more than 5 users in a legal hold."
empty_members_list
"The users list must have at least one user."
name_must_be_unique
"The name provided is already in use by another legal hold."
legal_hold_policy_not_found
"Legal hold policy does not exist for :field:`LegalHoldsPolicyUpdateArg.id`."
union LegalHoldsPolicyReleaseError extends LegalHoldsError
legal_hold_performing_another_operation
"Legal hold is currently performing another operation."
legal_hold_already_releasing
"Legal hold is currently performing a release or is already released."
legal_hold_policy_not_found
"Legal hold policy does not exist for :field:`LegalHoldsPolicyReleaseArg.id`."
struct MembersInfo
team_member_ids List(team_common.TeamMemberId)
"Team member IDs of the users under this hold."
permanently_deleted_users UInt64
"The number of permanently deleted users that were under this hold."
example default
team_member_ids = ["dbmid:efgh5678"]
permanently_deleted_users = 2
struct LegalHoldPolicy
id LegalHoldId
"The legal hold id."
name LegalHoldPolicyName
"Policy name."
description LegalHoldPolicyDescription?
"A description of the legal hold policy."
activation_time common.DropboxTimestamp?
"The time at which the legal hold was activated."
members MembersInfo
"Team members IDs and number of permanently deleted members under hold."
status LegalHoldStatus
"The current state of the hold."
start_date common.DropboxTimestamp
"Start date of the legal hold policy."
end_date common.DropboxTimestamp?
"End date of the legal hold policy."
example default
id = "pid_dbhid:abcd1234"
name = "acme cfo policy"
activation_time = "2016-01-20T00:00:10Z"
members = default
status = active
start_date = "2016-01-01T00:00:00Z"
end_date = "2017-12-31T00:00:00Z"
struct LegalHoldsPolicyCreateArg
name LegalHoldPolicyName
"Policy name."
description LegalHoldPolicyDescription?
"A description of the legal hold policy."
members List(team_common.TeamMemberId)
"List of team member IDs added to the hold."
start_date common.DropboxTimestamp?
"start date of the legal hold policy."
end_date common.DropboxTimestamp?
"end date of the legal hold policy."
example default
name = "acme cfo policy"
members = ["dbmid:FDFSVF-DFSDF"]
start_date = "2016-01-01T00:00:00Z"
end_date = "2017-12-31T00:00:00Z"
struct LegalHoldsGetPolicyArg
id LegalHoldId
"The legal hold Id."
example default
id = "pid_dbhid:abcd1234"
struct LegalHoldsListPoliciesArg
include_released Boolean = false
"Whether to return holds that were released."
example default
include_released = false
struct LegalHoldsListPoliciesResult
policies List(LegalHoldPolicy)
example default
policies = [default]
struct LegalHoldsListHeldRevisionsArg
id LegalHoldId
"The legal hold Id."
example default
id = "pid_dbhid:abcd1234"
struct LegalHoldHeldRevisionMetadata
new_filename String
"The held revision filename."
original_revision_id files.Rev
"The id of the held revision."
original_file_path Path
"The original path of the held revision."
server_modified common.DropboxTimestamp
"The last time the file was modified on Dropbox."
author_member_id team_common.TeamMemberId
"The member id of the revision's author."
author_member_status TeamMemberStatus
"The member status of the revision's author."
author_email common.EmailAddress
"The email address of the held revision author."
file_type String
"The type of the held revision's file."
size UInt64
"The file size in bytes."
content_hash files.Sha256HexHash
"A hash of the file content. This field can be used to verify data integrity. For more
information see our :link:`Content hash https://www.dropbox.com/developers/reference/content-hash` page."
example default
new_filename = "111_222.pdf"
original_revision_id = "ab2rij4i5ojgfd"
original_file_path = "/a.pdf"
server_modified = "2019-08-12T12:08:52Z"
author_member_id = "dbmid:abcd1234abcd1234abcd1234abcd1234a23"
author_member_status = active
author_email = "a@a.com"
file_type = "Document"
size = 3
content_hash = "abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"
struct LegalHoldsListHeldRevisionResult
entries List(LegalHoldHeldRevisionMetadata)
"List of file entries that under the hold."
cursor ListHeldRevisionCursor?
"The cursor idicates where to continue reading file metadata entries for the next API call. When there are no more entries, the cursor will return none.
Pass the cursor into
/2/team/legal_holds/list_held_revisions/continue."
has_more Boolean
"True if there are more file entries that haven't been returned. You can retrieve them with a call to /legal_holds/list_held_revisions_continue."
example default
entries = [default]
has_more = false
struct LegalHoldsListHeldRevisionsContinueArg
id LegalHoldId
"The legal hold Id."
cursor ListHeldRevisionCursor?
"The cursor idicates where to continue reading file metadata entries for the next API call. When there are no more entries, the cursor will return none."
example default
id = "pid_dbhid:abcd1234"
struct LegalHoldsPolicyUpdateArg
id LegalHoldId
"The legal hold Id."
name LegalHoldPolicyName?
"Policy new name."
description LegalHoldPolicyDescription?
"Policy new description."
members List(team_common.TeamMemberId)?
"List of team member IDs to apply the policy on."
example default
id = "pid_dbhid:abcd1234"
members = ["dbmid:FDFSVF-DFSDF"]
struct LegalHoldsPolicyReleaseArg
id LegalHoldId
"The legal hold Id."
example default
id = "pid_dbhid:abcd1234"
route legal_holds/create_policy (LegalHoldsPolicyCreateArg, LegalHoldsPolicyCreateResult, LegalHoldsPolicyCreateError)
"Creates new legal hold policy.
Note: Legal Holds is a paid add-on. Not all teams have the feature.
Permission : Team member file access."
attrs
auth = "team"
scope = "team_data.governance.write"
route legal_holds/get_policy (LegalHoldsGetPolicyArg, LegalHoldsGetPolicyResult, LegalHoldsGetPolicyError)
"Gets a legal hold by Id.
Note: Legal Holds is a paid add-on. Not all teams have the feature.
Permission : Team member file access."
attrs
auth = "team"