]> git.proxmox.com Git - ceph.git/blame - ceph/doc/radosgw/adminops.rst
import quincy beta 17.1.0
[ceph.git] / ceph / doc / radosgw / adminops.rst
CommitLineData
20effc67
TL
1.. _radosgw admin ops:
2
7c673cae
FG
3==================
4 Admin Operations
5==================
6
7An admin API request will be done on a URI that starts with the configurable 'admin'
8resource entry point. Authorization for the admin API duplicates the S3 authorization
9mechanism. Some operations require that the user holds special administrative capabilities.
10The response entity type (XML or JSON) may be specified as the 'format' option in the
11request and defaults to JSON if not specified.
12
20effc67
TL
13Info
14====
15
16Get RGW cluster/endpoint information.
17
18:caps: info=read
19
20
21Syntax
22~~~~~~
23
24::
25
26 GET /{admin}/info?format=json HTTP/1.1
27 Host: {fqdn}
28
29
30Request Parameters
31~~~~~~~~~~~~~~~~~~
32
33None.
34
35
36Response Entities
37~~~~~~~~~~~~~~~~~
38
39If successful, the response contains an ``info`` section.
40
41``info``
42
43:Description: A container for all returned information.
44:Type: Container
45
46``cluster_id``
47
48:Description: The (typically unique) identifier for the controlling
49 backing store for the RGW cluster. In the typical case,
50 this is value returned from librados::rados::cluster_fsid().
51:Type: String
52:Parent: ``info``
53
54
55Special Error Responses
56~~~~~~~~~~~~~~~~~~~~~~~
57
58None.
59
60
7c673cae
FG
61Get Usage
62=========
63
64Request bandwidth usage information.
65
66Note: this feature is disabled by default, can be enabled by setting ``rgw
67enable usage log = true`` in the appropriate section of ceph.conf. For changes
68in ceph.conf to take effect, radosgw process restart is needed.
69
70:caps: usage=read
71
72Syntax
73~~~~~~
74
75::
76
77 GET /{admin}/usage?format=json HTTP/1.1
78 Host: {fqdn}
79
80
81
82Request Parameters
83~~~~~~~~~~~~~~~~~~
84
85``uid``
86
87:Description: The user for which the information is requested. If not specified will apply to all users.
88:Type: String
89:Example: ``foo_user``
90:Required: No
91
92``start``
93
94:Description: Date and (optional) time that specifies the start time of the requested data.
95:Type: String
96:Example: ``2012-09-25 16:00:00``
97:Required: No
98
99``end``
100
101:Description: Date and (optional) time that specifies the end time of the requested data (non-inclusive).
102:Type: String
103:Example: ``2012-09-25 16:00:00``
104:Required: No
105
106
107``show-entries``
108
109:Description: Specifies whether data entries should be returned.
110:Type: Boolean
111:Example: True [True]
112:Required: No
113
114
115``show-summary``
116
117:Description: Specifies whether data summary should be returned.
118:Type: Boolean
119:Example: True [True]
120:Required: No
121
122
123
124Response Entities
125~~~~~~~~~~~~~~~~~
126
127If successful, the response contains the requested information.
128
129``usage``
130
131:Description: A container for the usage information.
132:Type: Container
133
134``entries``
135
136:Description: A container for the usage entries information.
137:Type: Container
138
139``user``
140
141:Description: A container for the user data information.
142:Type: Container
143
144``owner``
145
146:Description: The name of the user that owns the buckets.
147:Type: String
148
149``bucket``
150
151:Description: The bucket name.
152:Type: String
153
154``time``
155
156:Description: Time lower bound for which data is being specified (rounded to the beginning of the first relevant hour).
157:Type: String
158
159``epoch``
160
161:Description: The time specified in seconds since 1/1/1970.
162:Type: String
163
164``categories``
165
166:Description: A container for stats categories.
167:Type: Container
168
169``entry``
170
171:Description: A container for stats entry.
172:Type: Container
173
174``category``
175
176:Description: Name of request category for which the stats are provided.
177:Type: String
178
179``bytes_sent``
180
181:Description: Number of bytes sent by the RADOS Gateway.
182:Type: Integer
183
184``bytes_received``
185
186:Description: Number of bytes received by the RADOS Gateway.
187:Type: Integer
188
189``ops``
190
191:Description: Number of operations.
192:Type: Integer
193
194``successful_ops``
195
196:Description: Number of successful operations.
197:Type: Integer
198
199``summary``
200
201:Description: A container for stats summary.
202:Type: Container
203
204``total``
205
206:Description: A container for stats summary aggregated total.
207:Type: Container
208
209Special Error Responses
210~~~~~~~~~~~~~~~~~~~~~~~
211
212TBD.
213
214Trim Usage
215==========
216
217Remove usage information. With no dates specified, removes all usage
218information.
219
220Note: this feature is disabled by default, can be enabled by setting ``rgw
221enable usage log = true`` in the appropriate section of ceph.conf. For changes
222in ceph.conf to take effect, radosgw process restart is needed.
223
224:caps: usage=write
225
226Syntax
227~~~~~~
228
229::
230
231 DELETE /{admin}/usage?format=json HTTP/1.1
232 Host: {fqdn}
233
234
235
236Request Parameters
237~~~~~~~~~~~~~~~~~~
238
239``uid``
240
241:Description: The user for which the information is requested. If not specified will apply to all users.
242:Type: String
243:Example: ``foo_user``
244:Required: No
245
246``start``
247
248:Description: Date and (optional) time that specifies the start time of the requested data.
249:Type: String
250:Example: ``2012-09-25 16:00:00``
251:Required: No
252
253``end``
254
255:Description: Date and (optional) time that specifies the end time of the requested data (none inclusive).
256:Type: String
257:Example: ``2012-09-25 16:00:00``
258:Required: No
259
260
261``remove-all``
262
263:Description: Required when uid is not specified, in order to acknowledge multi user data removal.
264:Type: Boolean
265:Example: True [False]
266:Required: No
267
268Special Error Responses
269~~~~~~~~~~~~~~~~~~~~~~~
270
271TBD.
272
273Get User Info
274=============
275
276Get user information.
277
278:caps: users=read
279
280
281Syntax
282~~~~~~
283
284::
285
286 GET /{admin}/user?format=json HTTP/1.1
287 Host: {fqdn}
288
289
290Request Parameters
291~~~~~~~~~~~~~~~~~~
292
293``uid``
294
295:Description: The user for which the information is requested.
296:Type: String
297:Example: ``foo_user``
298:Required: Yes
299
300
301Response Entities
302~~~~~~~~~~~~~~~~~
303
304If successful, the response contains the user information.
305
306``user``
307
308:Description: A container for the user data information.
309:Type: Container
310
311``user_id``
312
313:Description: The user id.
314:Type: String
315:Parent: ``user``
316
317``display_name``
318
319:Description: Display name for the user.
320:Type: String
321:Parent: ``user``
322
323``suspended``
324
325:Description: True if the user is suspended.
326:Type: Boolean
327:Parent: ``user``
328
329``max_buckets``
330
331:Description: The maximum number of buckets to be owned by the user.
332:Type: Integer
333:Parent: ``user``
334
335``subusers``
336
337:Description: Subusers associated with this user account.
338:Type: Container
339:Parent: ``user``
340
341``keys``
342
343:Description: S3 keys associated with this user account.
344:Type: Container
345:Parent: ``user``
346
347``swift_keys``
348
349:Description: Swift keys associated with this user account.
350:Type: Container
351:Parent: ``user``
352
353``caps``
354
355:Description: User capabilities.
356:Type: Container
357:Parent: ``user``
358
359Special Error Responses
360~~~~~~~~~~~~~~~~~~~~~~~
361
362None.
363
364Create User
365===========
366
367Create a new user. By default, a S3 key pair will be created automatically
368and returned in the response. If only one of ``access-key`` or ``secret-key``
369is provided, the omitted key will be automatically generated. By default, a
370generated key is added to the keyring without replacing an existing key pair.
371If ``access-key`` is specified and refers to an existing key owned by the user
372then it will be modified.
373
d2e6a577
FG
374.. versionadded:: Luminous
375
376A ``tenant`` may either be specified as a part of uid or as an additional
377request param.
378
7c673cae
FG
379:caps: users=write
380
381Syntax
382~~~~~~
383
384::
385
386 PUT /{admin}/user?format=json HTTP/1.1
387 Host: {fqdn}
388
389
390
391Request Parameters
392~~~~~~~~~~~~~~~~~~
393
394``uid``
395
396:Description: The user ID to be created.
397:Type: String
398:Example: ``foo_user``
399:Required: Yes
11fdf7f2
TL
400
401A tenant name may also specified as a part of ``uid``, by following the syntax
402``tenant$user``, refer to :ref:`Multitenancy <rgw-multitenancy>` for more details.
7c673cae
FG
403
404``display-name``
405
406:Description: The display name of the user to be created.
407:Type: String
408:Example: ``foo user``
409:Required: Yes
410
411
412``email``
413
414:Description: The email address associated with the user.
415:Type: String
416:Example: ``foo@bar.com``
417:Required: No
418
419``key-type``
420
421:Description: Key type to be generated, options are: swift, s3 (default).
422:Type: String
423:Example: ``s3`` [``s3``]
424:Required: No
425
426``access-key``
427
428:Description: Specify access key.
429:Type: String
430:Example: ``ABCD0EF12GHIJ2K34LMN``
431:Required: No
432
433
434``secret-key``
435
436:Description: Specify secret key.
437:Type: String
438:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
439:Required: No
440
441``user-caps``
442
443:Description: User capabilities.
444:Type: String
445:Example: ``usage=read, write; users=read``
446:Required: No
447
448``generate-key``
449
450:Description: Generate a new key pair and add to the existing keyring.
451:Type: Boolean
452:Example: True [True]
453:Required: No
454
455``max-buckets``
456
457:Description: Specify the maximum number of buckets the user can own.
458:Type: Integer
459:Example: 500 [1000]
460:Required: No
461
462``suspended``
463
464:Description: Specify whether the user should be suspended.
465:Type: Boolean
466:Example: False [False]
467:Required: No
468
d2e6a577 469.. versionadded:: Jewel
11fdf7f2 470
d2e6a577
FG
471``tenant``
472
473:Description: the Tenant under which a user is a part of.
474:Type: string
475:Example: tenant1
476:Required: No
477
7c673cae
FG
478Response Entities
479~~~~~~~~~~~~~~~~~
480
481If successful, the response contains the user information.
482
483``user``
484
485:Description: A container for the user data information.
486:Type: Container
487
d2e6a577 488``tenant``
11fdf7f2
TL
489
490:Description: The tenant which user is a part of.
d2e6a577
FG
491:Type: String
492:Parent: ``user``
493
7c673cae
FG
494``user_id``
495
496:Description: The user id.
497:Type: String
498:Parent: ``user``
499
500``display_name``
501
502:Description: Display name for the user.
503:Type: String
504:Parent: ``user``
505
506``suspended``
507
508:Description: True if the user is suspended.
509:Type: Boolean
510:Parent: ``user``
511
512``max_buckets``
513
514:Description: The maximum number of buckets to be owned by the user.
515:Type: Integer
516:Parent: ``user``
517
518``subusers``
519
520:Description: Subusers associated with this user account.
521:Type: Container
522:Parent: ``user``
523
524``keys``
525
526:Description: S3 keys associated with this user account.
527:Type: Container
528:Parent: ``user``
529
530``swift_keys``
531
532:Description: Swift keys associated with this user account.
533:Type: Container
534:Parent: ``user``
535
536``caps``
537
538:Description: User capabilities.
539:Type: Container
540:Parent: ``user``
541
542Special Error Responses
543~~~~~~~~~~~~~~~~~~~~~~~
544
545``UserExists``
546
547:Description: Attempt to create existing user.
548:Code: 409 Conflict
549
550``InvalidAccessKey``
551
552:Description: Invalid access key specified.
553:Code: 400 Bad Request
554
555``InvalidKeyType``
556
557:Description: Invalid key type specified.
558:Code: 400 Bad Request
559
560``InvalidSecretKey``
561
562:Description: Invalid secret key specified.
563:Code: 400 Bad Request
564
565``InvalidKeyType``
566
567:Description: Invalid key type specified.
568:Code: 400 Bad Request
569
570``KeyExists``
571
572:Description: Provided access key exists and belongs to another user.
573:Code: 409 Conflict
574
575``EmailExists``
576
577:Description: Provided email address exists.
578:Code: 409 Conflict
579
580``InvalidCapability``
581
582:Description: Attempt to grant invalid admin capability.
583:Code: 400 Bad Request
584
585
586Modify User
587===========
588
589Modify a user.
590
591:caps: users=write
592
593Syntax
594~~~~~~
595
596::
597
598 POST /{admin}/user?format=json HTTP/1.1
599 Host: {fqdn}
600
601
602Request Parameters
603~~~~~~~~~~~~~~~~~~
604
605``uid``
606
607:Description: The user ID to be modified.
608:Type: String
609:Example: ``foo_user``
610:Required: Yes
611
612``display-name``
613
614:Description: The display name of the user to be modified.
615:Type: String
616:Example: ``foo user``
617:Required: No
618
619``email``
620
621:Description: The email address to be associated with the user.
622:Type: String
623:Example: ``foo@bar.com``
624:Required: No
625
626``generate-key``
627
628:Description: Generate a new key pair and add to the existing keyring.
629:Type: Boolean
630:Example: True [False]
631:Required: No
632
633``access-key``
634
635:Description: Specify access key.
636:Type: String
637:Example: ``ABCD0EF12GHIJ2K34LMN``
638:Required: No
639
640``secret-key``
641
642:Description: Specify secret key.
643:Type: String
644:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
645:Required: No
646
647``key-type``
648
649:Description: Key type to be generated, options are: swift, s3 (default).
650:Type: String
651:Example: ``s3``
652:Required: No
653
7c673cae
FG
654``max-buckets``
655
656:Description: Specify the maximum number of buckets the user can own.
657:Type: Integer
658:Example: 500 [1000]
659:Required: No
660
661``suspended``
662
663:Description: Specify whether the user should be suspended.
664:Type: Boolean
665:Example: False [False]
666:Required: No
667
9f95a23c
TL
668``op-mask``
669
670:Description: The op-mask of the user to be modified.
671:Type: String
672:Example: ``read, write, delete, *``
673:Required: No
674
7c673cae
FG
675Response Entities
676~~~~~~~~~~~~~~~~~
677
678If successful, the response contains the user information.
679
680``user``
681
682:Description: A container for the user data information.
683:Type: Container
684
685``user_id``
686
687:Description: The user id.
688:Type: String
689:Parent: ``user``
690
691``display_name``
692
693:Description: Display name for the user.
694:Type: String
695:Parent: ``user``
696
697
698``suspended``
699
700:Description: True if the user is suspended.
701:Type: Boolean
702:Parent: ``user``
703
704
705``max_buckets``
706
707:Description: The maximum number of buckets to be owned by the user.
708:Type: Integer
709:Parent: ``user``
710
711
712``subusers``
713
714:Description: Subusers associated with this user account.
715:Type: Container
716:Parent: ``user``
717
718
719``keys``
720
721:Description: S3 keys associated with this user account.
722:Type: Container
723:Parent: ``user``
724
725
726``swift_keys``
727
728:Description: Swift keys associated with this user account.
729:Type: Container
730:Parent: ``user``
731
732
733``caps``
734
735:Description: User capabilities.
736:Type: Container
737:Parent: ``user``
738
739
740Special Error Responses
741~~~~~~~~~~~~~~~~~~~~~~~
742
743``InvalidAccessKey``
744
745:Description: Invalid access key specified.
746:Code: 400 Bad Request
747
748``InvalidKeyType``
749
750:Description: Invalid key type specified.
751:Code: 400 Bad Request
752
753``InvalidSecretKey``
754
755:Description: Invalid secret key specified.
756:Code: 400 Bad Request
757
758``KeyExists``
759
760:Description: Provided access key exists and belongs to another user.
761:Code: 409 Conflict
762
763``EmailExists``
764
765:Description: Provided email address exists.
766:Code: 409 Conflict
767
768``InvalidCapability``
769
770:Description: Attempt to grant invalid admin capability.
771:Code: 400 Bad Request
772
773Remove User
774===========
775
776Remove an existing user.
777
778:caps: users=write
779
780Syntax
781~~~~~~
782
783::
784
785 DELETE /{admin}/user?format=json HTTP/1.1
786 Host: {fqdn}
787
788
789Request Parameters
790~~~~~~~~~~~~~~~~~~
791
792``uid``
793
794:Description: The user ID to be removed.
795:Type: String
796:Example: ``foo_user``
797:Required: Yes.
798
799``purge-data``
800
801:Description: When specified the buckets and objects belonging
802 to the user will also be removed.
803:Type: Boolean
804:Example: True
805:Required: No
806
807Response Entities
808~~~~~~~~~~~~~~~~~
809
810None
811
812Special Error Responses
813~~~~~~~~~~~~~~~~~~~~~~~
814
815None.
816
817Create Subuser
818==============
819
820Create a new subuser (primarily useful for clients using the Swift API).
11fdf7f2 821Note that in general for a subuser to be useful, it must be granted
7c673cae
FG
822permissions by specifying ``access``. As with user creation if
823``subuser`` is specified without ``secret``, then a secret key will
824be automatically generated.
825
826:caps: users=write
827
828Syntax
829~~~~~~
830
831::
832
833 PUT /{admin}/user?subuser&format=json HTTP/1.1
20effc67 834 Host: {fqdn}
7c673cae
FG
835
836
837Request Parameters
838~~~~~~~~~~~~~~~~~~
839
840``uid``
841
842:Description: The user ID under which a subuser is to be created.
843:Type: String
844:Example: ``foo_user``
845:Required: Yes
846
847
848``subuser``
849
850:Description: Specify the subuser ID to be created.
851:Type: String
852:Example: ``sub_foo``
853:Required: Yes
854
855``secret-key``
856
857:Description: Specify secret key.
858:Type: String
859:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
860:Required: No
861
862``key-type``
863
864:Description: Key type to be generated, options are: swift (default), s3.
865:Type: String
866:Example: ``swift`` [``swift``]
867:Required: No
868
869``access``
870
871:Description: Set access permissions for sub-user, should be one
872 of ``read, write, readwrite, full``.
873:Type: String
874:Example: ``read``
875:Required: No
876
877``generate-secret``
878
879:Description: Generate the secret key.
880:Type: Boolean
881:Example: True [False]
882:Required: No
883
884Response Entities
885~~~~~~~~~~~~~~~~~
886
887If successful, the response contains the subuser information.
888
889
890``subusers``
891
892:Description: Subusers associated with the user account.
893:Type: Container
894
895``id``
896
897:Description: Subuser id.
898:Type: String
899:Parent: ``subusers``
900
901``permissions``
902
903:Description: Subuser access to user account.
904:Type: String
905:Parent: ``subusers``
906
907Special Error Responses
908~~~~~~~~~~~~~~~~~~~~~~~
909
910``SubuserExists``
911
912:Description: Specified subuser exists.
913:Code: 409 Conflict
914
915``InvalidKeyType``
916
917:Description: Invalid key type specified.
918:Code: 400 Bad Request
919
920``InvalidSecretKey``
921
922:Description: Invalid secret key specified.
923:Code: 400 Bad Request
924
925``InvalidAccess``
926
927:Description: Invalid subuser access specified.
928:Code: 400 Bad Request
929
930Modify Subuser
931==============
932
933Modify an existing subuser
934
935:caps: users=write
936
937Syntax
938~~~~~~
939
940::
941
942 POST /{admin}/user?subuser&format=json HTTP/1.1
20effc67 943 Host: {fqdn}
7c673cae
FG
944
945
946Request Parameters
947~~~~~~~~~~~~~~~~~~
948
949``uid``
950
951:Description: The user ID under which the subuser is to be modified.
952:Type: String
953:Example: ``foo_user``
954:Required: Yes
955
956``subuser``
957
958:Description: The subuser ID to be modified.
959:Type: String
960:Example: ``sub_foo``
961:Required: Yes
962
963``generate-secret``
964
965:Description: Generate a new secret key for the subuser,
966 replacing the existing key.
967:Type: Boolean
968:Example: True [False]
969:Required: No
970
971``secret``
972
973:Description: Specify secret key.
974:Type: String
975:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
976:Required: No
977
978``key-type``
979
980:Description: Key type to be generated, options are: swift (default), s3 .
981:Type: String
982:Example: ``swift`` [``swift``]
983:Required: No
984
985``access``
986
987:Description: Set access permissions for sub-user, should be one
988 of ``read, write, readwrite, full``.
989:Type: String
990:Example: ``read``
991:Required: No
992
993
994Response Entities
995~~~~~~~~~~~~~~~~~
996
997If successful, the response contains the subuser information.
998
999
1000``subusers``
1001
1002:Description: Subusers associated with the user account.
1003:Type: Container
1004
1005``id``
1006
1007:Description: Subuser id.
1008:Type: String
1009:Parent: ``subusers``
1010
1011``permissions``
1012
1013:Description: Subuser access to user account.
1014:Type: String
1015:Parent: ``subusers``
1016
1017Special Error Responses
1018~~~~~~~~~~~~~~~~~~~~~~~
1019
1020``InvalidKeyType``
1021
1022:Description: Invalid key type specified.
1023:Code: 400 Bad Request
1024
1025``InvalidSecretKey``
1026
1027:Description: Invalid secret key specified.
1028:Code: 400 Bad Request
1029
1030``InvalidAccess``
1031
1032:Description: Invalid subuser access specified.
1033:Code: 400 Bad Request
1034
1035Remove Subuser
1036==============
1037
1038Remove an existing subuser
1039
1040:caps: users=write
1041
1042Syntax
1043~~~~~~
1044
1045::
1046
1047 DELETE /{admin}/user?subuser&format=json HTTP/1.1
20effc67 1048 Host: {fqdn}
7c673cae
FG
1049
1050
1051Request Parameters
1052~~~~~~~~~~~~~~~~~~
1053
1054``uid``
1055
1056:Description: The user ID under which the subuser is to be removed.
1057:Type: String
1058:Example: ``foo_user``
1059:Required: Yes
1060
1061
1062``subuser``
1063
1064:Description: The subuser ID to be removed.
1065:Type: String
1066:Example: ``sub_foo``
1067:Required: Yes
1068
1069``purge-keys``
1070
1071:Description: Remove keys belonging to the subuser.
1072:Type: Boolean
1073:Example: True [True]
1074:Required: No
1075
1076Response Entities
1077~~~~~~~~~~~~~~~~~
1078
1079None.
1080
1081Special Error Responses
1082~~~~~~~~~~~~~~~~~~~~~~~
1083None.
1084
1085Create Key
1086==========
1087
1088Create a new key. If a ``subuser`` is specified then by default created keys
1089will be swift type. If only one of ``access-key`` or ``secret-key`` is provided the
1090committed key will be automatically generated, that is if only ``secret-key`` is
1091specified then ``access-key`` will be automatically generated. By default, a
1092generated key is added to the keyring without replacing an existing key pair.
1093If ``access-key`` is specified and refers to an existing key owned by the user
1094then it will be modified. The response is a container listing all keys of the same
1095type as the key created. Note that when creating a swift key, specifying the option
1096``access-key`` will have no effect. Additionally, only one swift key may be held by
1097each user or subuser.
1098
1099:caps: users=write
1100
1101
1102Syntax
1103~~~~~~
1104
1105::
1106
1107 PUT /{admin}/user?key&format=json HTTP/1.1
20effc67 1108 Host: {fqdn}
7c673cae
FG
1109
1110
1111Request Parameters
1112~~~~~~~~~~~~~~~~~~
1113
1114``uid``
1115
1116:Description: The user ID to receive the new key.
1117:Type: String
1118:Example: ``foo_user``
1119:Required: Yes
1120
1121``subuser``
1122
1123:Description: The subuser ID to receive the new key.
1124:Type: String
1125:Example: ``sub_foo``
1126:Required: No
1127
1128``key-type``
1129
1130:Description: Key type to be generated, options are: swift, s3 (default).
1131:Type: String
1132:Example: ``s3`` [``s3``]
1133:Required: No
1134
1135``access-key``
1136
1137:Description: Specify the access key.
1138:Type: String
1139:Example: ``AB01C2D3EF45G6H7IJ8K``
1140:Required: No
1141
1142``secret-key``
1143
1144:Description: Specify the secret key.
1145:Type: String
1146:Example: ``0ab/CdeFGhij1klmnopqRSTUv1WxyZabcDEFgHij``
1147:Required: No
1148
1149``generate-key``
1150
1151:Description: Generate a new key pair and add to the existing keyring.
1152:Type: Boolean
1153:Example: True [``True``]
1154:Required: No
1155
1156
1157Response Entities
1158~~~~~~~~~~~~~~~~~
1159
1160``keys``
1161
1162:Description: Keys of type created associated with this user account.
1163:Type: Container
1164
1165``user``
1166
1167:Description: The user account associated with the key.
1168:Type: String
1169:Parent: ``keys``
1170
1171``access-key``
1172
1173:Description: The access key.
1174:Type: String
1175:Parent: ``keys``
1176
1177``secret-key``
1178
1179:Description: The secret key
1180:Type: String
1181:Parent: ``keys``
1182
1183
1184Special Error Responses
1185~~~~~~~~~~~~~~~~~~~~~~~
1186
1187``InvalidAccessKey``
1188
1189:Description: Invalid access key specified.
1190:Code: 400 Bad Request
1191
1192``InvalidKeyType``
1193
1194:Description: Invalid key type specified.
1195:Code: 400 Bad Request
1196
1197``InvalidSecretKey``
1198
1199:Description: Invalid secret key specified.
1200:Code: 400 Bad Request
1201
1202``InvalidKeyType``
1203
1204:Description: Invalid key type specified.
1205:Code: 400 Bad Request
1206
1207``KeyExists``
1208
1209:Description: Provided access key exists and belongs to another user.
1210:Code: 409 Conflict
1211
1212Remove Key
1213==========
1214
1215Remove an existing key.
1216
1217:caps: users=write
1218
1219Syntax
1220~~~~~~
1221
1222::
1223
1224 DELETE /{admin}/user?key&format=json HTTP/1.1
20effc67 1225 Host: {fqdn}
7c673cae
FG
1226
1227
1228Request Parameters
1229~~~~~~~~~~~~~~~~~~
1230
1231``access-key``
1232
1233:Description: The S3 access key belonging to the S3 key pair to remove.
1234:Type: String
1235:Example: ``AB01C2D3EF45G6H7IJ8K``
1236:Required: Yes
1237
1238``uid``
1239
1240:Description: The user to remove the key from.
1241:Type: String
1242:Example: ``foo_user``
1243:Required: No
1244
1245``subuser``
1246
1247:Description: The subuser to remove the key from.
1248:Type: String
1249:Example: ``sub_foo``
1250:Required: No
1251
1252``key-type``
1253
1254:Description: Key type to be removed, options are: swift, s3.
1255 NOTE: Required to remove swift key.
1256:Type: String
1257:Example: ``swift``
1258:Required: No
1259
1260Special Error Responses
1261~~~~~~~~~~~~~~~~~~~~~~~
1262
1263None.
1264
1265Response Entities
1266~~~~~~~~~~~~~~~~~
1267
1268None.
1269
1270Get Bucket Info
1271===============
1272
1273Get information about a subset of the existing buckets. If ``uid`` is specified
11fdf7f2 1274without ``bucket`` then all buckets belonging to the user will be returned. If
7c673cae
FG
1275``bucket`` alone is specified, information for that particular bucket will be
1276retrieved.
1277
1278:caps: buckets=read
1279
1280Syntax
1281~~~~~~
1282
1283::
1284
1285 GET /{admin}/bucket?format=json HTTP/1.1
20effc67 1286 Host: {fqdn}
7c673cae
FG
1287
1288
1289Request Parameters
1290~~~~~~~~~~~~~~~~~~
1291
1292``bucket``
1293
1294:Description: The bucket to return info on.
1295:Type: String
1296:Example: ``foo_bucket``
1297:Required: No
1298
1299``uid``
1300
1301:Description: The user to retrieve bucket information for.
1302:Type: String
1303:Example: ``foo_user``
1304:Required: No
1305
1306``stats``
1307
1308:Description: Return bucket statistics.
1309:Type: Boolean
1310:Example: True [False]
1311:Required: No
1312
1313Response Entities
1314~~~~~~~~~~~~~~~~~
1315
1316If successful the request returns a buckets container containing
1317the desired bucket information.
1318
1319``stats``
1320
1321:Description: Per bucket information.
1322:Type: Container
1323
1324``buckets``
1325
1326:Description: Contains a list of one or more bucket containers.
1327:Type: Container
1328
1329``bucket``
1330
1331:Description: Container for single bucket information.
1332:Type: Container
1333:Parent: ``buckets``
1334
1335``name``
1336
1337:Description: The name of the bucket.
1338:Type: String
1339:Parent: ``bucket``
1340
1341``pool``
1342
1343:Description: The pool the bucket is stored in.
1344:Type: String
1345:Parent: ``bucket``
1346
1347``id``
1348
1349:Description: The unique bucket id.
1350:Type: String
1351:Parent: ``bucket``
1352
1353``marker``
1354
1355:Description: Internal bucket tag.
1356:Type: String
1357:Parent: ``bucket``
1358
1359``owner``
1360
1361:Description: The user id of the bucket owner.
1362:Type: String
1363:Parent: ``bucket``
1364
1365``usage``
1366
1367:Description: Storage usage information.
1368:Type: Container
1369:Parent: ``bucket``
1370
1371``index``
1372
1373:Description: Status of bucket index.
1374:Type: String
1375:Parent: ``bucket``
1376
1377Special Error Responses
1378~~~~~~~~~~~~~~~~~~~~~~~
1379
1380``IndexRepairFailed``
1381
1382:Description: Bucket index repair failed.
1383:Code: 409 Conflict
1384
1385Check Bucket Index
1386==================
1387
1388Check the index of an existing bucket. NOTE: to check multipart object
1389accounting with ``check-objects``, ``fix`` must be set to True.
1390
1391:caps: buckets=write
1392
1393Syntax
1394~~~~~~
1395
1396::
1397
1398 GET /{admin}/bucket?index&format=json HTTP/1.1
20effc67 1399 Host: {fqdn}
7c673cae
FG
1400
1401
1402Request Parameters
1403~~~~~~~~~~~~~~~~~~
1404
1405``bucket``
1406
1407:Description: The bucket to return info on.
1408:Type: String
1409:Example: ``foo_bucket``
1410:Required: Yes
1411
1412``check-objects``
1413
1414:Description: Check multipart object accounting.
1415:Type: Boolean
1416:Example: True [False]
1417:Required: No
1418
1419``fix``
1420
1421:Description: Also fix the bucket index when checking.
1422:Type: Boolean
1423:Example: False [False]
1424:Required: No
1425
1426Response Entities
1427~~~~~~~~~~~~~~~~~
1428
1429``index``
1430
1431:Description: Status of bucket index.
1432:Type: String
1433
1434Special Error Responses
1435~~~~~~~~~~~~~~~~~~~~~~~
1436
1437``IndexRepairFailed``
1438
1439:Description: Bucket index repair failed.
1440:Code: 409 Conflict
1441
1442Remove Bucket
1443=============
1444
1445Delete an existing bucket.
1446
1447:caps: buckets=write
1448
1449Syntax
1450~~~~~~
1451
1452::
1453
1454 DELETE /{admin}/bucket?format=json HTTP/1.1
20effc67 1455 Host: {fqdn}
7c673cae
FG
1456
1457
1458
1459Request Parameters
1460~~~~~~~~~~~~~~~~~~
1461
1462``bucket``
1463
1464:Description: The bucket to remove.
1465:Type: String
1466:Example: ``foo_bucket``
1467:Required: Yes
1468
1469``purge-objects``
1470
1471:Description: Remove a buckets objects before deletion.
1472:Type: Boolean
1473:Example: True [False]
1474:Required: No
1475
1476Response Entities
1477~~~~~~~~~~~~~~~~~
1478
1479None.
1480
1481Special Error Responses
1482~~~~~~~~~~~~~~~~~~~~~~~
1483
1484``BucketNotEmpty``
1485
1486:Description: Attempted to delete non-empty bucket.
1487:Code: 409 Conflict
1488
1489``ObjectRemovalFailed``
1490
1491:Description: Unable to remove objects.
1492:Code: 409 Conflict
1493
1494Unlink Bucket
1495=============
1496
1497Unlink a bucket from a specified user. Primarily useful for changing
1498bucket ownership.
1499
1500:caps: buckets=write
1501
1502Syntax
1503~~~~~~
1504
1505::
1506
1507 POST /{admin}/bucket?format=json HTTP/1.1
20effc67 1508 Host: {fqdn}
7c673cae
FG
1509
1510
1511Request Parameters
1512~~~~~~~~~~~~~~~~~~
1513
1514``bucket``
1515
1516:Description: The bucket to unlink.
1517:Type: String
1518:Example: ``foo_bucket``
1519:Required: Yes
1520
1521``uid``
1522
1523:Description: The user ID to unlink the bucket from.
1524:Type: String
1525:Example: ``foo_user``
1526:Required: Yes
1527
1528Response Entities
1529~~~~~~~~~~~~~~~~~
1530
1531None.
1532
1533Special Error Responses
1534~~~~~~~~~~~~~~~~~~~~~~~
1535
1536``BucketUnlinkFailed``
1537
1538:Description: Unable to unlink bucket from specified user.
1539:Code: 409 Conflict
1540
1541Link Bucket
1542===========
1543
1544Link a bucket to a specified user, unlinking the bucket from
1545any previous user.
1546
1547:caps: buckets=write
1548
1549Syntax
1550~~~~~~
1551
1552::
1553
1554 PUT /{admin}/bucket?format=json HTTP/1.1
20effc67 1555 Host: {fqdn}
7c673cae
FG
1556
1557
1558Request Parameters
1559~~~~~~~~~~~~~~~~~~
1560
1561``bucket``
1562
1563:Description: The bucket name to unlink.
1564:Type: String
1565:Example: ``foo_bucket``
1566:Required: Yes
1567
1568``bucket-id``
1569
1570:Description: The bucket id to unlink.
1571:Type: String
1572:Example: ``dev.6607669.420``
9f95a23c 1573:Required: No
7c673cae
FG
1574
1575``uid``
1576
1577:Description: The user ID to link the bucket to.
1578:Type: String
1579:Example: ``foo_user``
1580:Required: Yes
1581
1582Response Entities
1583~~~~~~~~~~~~~~~~~
1584
1585``bucket``
1586
1587:Description: Container for single bucket information.
1588:Type: Container
1589
1590``name``
1591
1592:Description: The name of the bucket.
1593:Type: String
1594:Parent: ``bucket``
1595
1596``pool``
1597
1598:Description: The pool the bucket is stored in.
1599:Type: String
1600:Parent: ``bucket``
1601
1602``id``
1603
1604:Description: The unique bucket id.
1605:Type: String
1606:Parent: ``bucket``
1607
1608``marker``
1609
1610:Description: Internal bucket tag.
1611:Type: String
1612:Parent: ``bucket``
1613
1614``owner``
1615
1616:Description: The user id of the bucket owner.
1617:Type: String
1618:Parent: ``bucket``
1619
1620``usage``
1621
1622:Description: Storage usage information.
1623:Type: Container
1624:Parent: ``bucket``
1625
1626``index``
1627
1628:Description: Status of bucket index.
1629:Type: String
1630:Parent: ``bucket``
1631
1632Special Error Responses
1633~~~~~~~~~~~~~~~~~~~~~~~
1634
1635``BucketUnlinkFailed``
1636
1637:Description: Unable to unlink bucket from specified user.
1638:Code: 409 Conflict
1639
1640``BucketLinkFailed``
1641
1642:Description: Unable to link bucket to specified user.
1643:Code: 409 Conflict
1644
1645Remove Object
1646=============
1647
1648Remove an existing object. NOTE: Does not require owner to be non-suspended.
1649
1650:caps: buckets=write
1651
1652Syntax
1653~~~~~~
1654
1655::
1656
1657 DELETE /{admin}/bucket?object&format=json HTTP/1.1
20effc67 1658 Host: {fqdn}
7c673cae
FG
1659
1660Request Parameters
1661~~~~~~~~~~~~~~~~~~
1662
1663``bucket``
1664
1665:Description: The bucket containing the object to be removed.
1666:Type: String
1667:Example: ``foo_bucket``
1668:Required: Yes
1669
1670``object``
1671
1672:Description: The object to remove.
1673:Type: String
1674:Example: ``foo.txt``
1675:Required: Yes
1676
1677Response Entities
1678~~~~~~~~~~~~~~~~~
1679
1680None.
1681
1682Special Error Responses
1683~~~~~~~~~~~~~~~~~~~~~~~
1684
1685``NoSuchObject``
1686
1687:Description: Specified object does not exist.
1688:Code: 404 Not Found
1689
1690``ObjectRemovalFailed``
1691
1692:Description: Unable to remove objects.
1693:Code: 409 Conflict
1694
1695
1696
1697Get Bucket or Object Policy
1698===========================
1699
1700Read the policy of an object or bucket.
1701
1702:caps: buckets=read
1703
1704Syntax
1705~~~~~~
1706
1707::
1708
1709 GET /{admin}/bucket?policy&format=json HTTP/1.1
20effc67 1710 Host: {fqdn}
7c673cae
FG
1711
1712
1713Request Parameters
1714~~~~~~~~~~~~~~~~~~
1715
1716``bucket``
1717
1718:Description: The bucket to read the policy from.
1719:Type: String
1720:Example: ``foo_bucket``
1721:Required: Yes
1722
1723``object``
1724
1725:Description: The object to read the policy from.
1726:Type: String
1727:Example: ``foo.txt``
1728:Required: No
1729
1730Response Entities
1731~~~~~~~~~~~~~~~~~
1732
1733If successful, returns the object or bucket policy
1734
1735``policy``
1736
1737:Description: Access control policy.
1738:Type: Container
1739
1740Special Error Responses
1741~~~~~~~~~~~~~~~~~~~~~~~
1742
1743``IncompleteBody``
1744
1745:Description: Either bucket was not specified for a bucket policy request or bucket
1746 and object were not specified for an object policy request.
1747:Code: 400 Bad Request
1748
1749Add A User Capability
1750=====================
1751
1752Add an administrative capability to a specified user.
1753
1754:caps: users=write
1755
1756Syntax
1757~~~~~~
1758
1759::
1760
1761 PUT /{admin}/user?caps&format=json HTTP/1.1
20effc67 1762 Host: {fqdn}
7c673cae
FG
1763
1764Request Parameters
1765~~~~~~~~~~~~~~~~~~
1766
1767``uid``
1768
1769:Description: The user ID to add an administrative capability to.
1770:Type: String
1771:Example: ``foo_user``
1772:Required: Yes
1773
1774``user-caps``
1775
1776:Description: The administrative capability to add to the user.
1777:Type: String
1778:Example: ``usage=read,write;user=write``
1779:Required: Yes
1780
1781Response Entities
1782~~~~~~~~~~~~~~~~~
1783
1784If successful, the response contains the user's capabilities.
1785
1786``user``
1787
1788:Description: A container for the user data information.
1789:Type: Container
1790:Parent: ``user``
1791
1792``user_id``
1793
1794:Description: The user id.
1795:Type: String
1796:Parent: ``user``
1797
1798``caps``
1799
1800:Description: User capabilities.
1801:Type: Container
1802:Parent: ``user``
1803
1804
1805Special Error Responses
1806~~~~~~~~~~~~~~~~~~~~~~~
1807
1808``InvalidCapability``
1809
1810:Description: Attempt to grant invalid admin capability.
1811:Code: 400 Bad Request
1812
1813Example Request
1814~~~~~~~~~~~~~~~
1815
1816::
1817
1818 PUT /{admin}/user?caps&user-caps=usage=read,write;user=write&format=json HTTP/1.1
1819 Host: {fqdn}
1820 Content-Type: text/plain
1821 Authorization: {your-authorization-token}
1822
1823
1824
1825Remove A User Capability
1826========================
1827
1828Remove an administrative capability from a specified user.
1829
1830:caps: users=write
1831
1832Syntax
1833~~~~~~
1834
1835::
1836
1837 DELETE /{admin}/user?caps&format=json HTTP/1.1
20effc67 1838 Host: {fqdn}
7c673cae
FG
1839
1840Request Parameters
1841~~~~~~~~~~~~~~~~~~
1842
1843``uid``
1844
1845:Description: The user ID to remove an administrative capability from.
1846:Type: String
1847:Example: ``foo_user``
1848:Required: Yes
1849
1850``user-caps``
1851
1852:Description: The administrative capabilities to remove from the user.
1853:Type: String
1854:Example: ``usage=read, write``
1855:Required: Yes
1856
1857Response Entities
1858~~~~~~~~~~~~~~~~~
1859
1860If successful, the response contains the user's capabilities.
1861
1862``user``
1863
1864:Description: A container for the user data information.
1865:Type: Container
1866:Parent: ``user``
1867
1868``user_id``
1869
1870:Description: The user id.
1871:Type: String
1872:Parent: ``user``
1873
1874``caps``
1875
1876:Description: User capabilities.
1877:Type: Container
1878:Parent: ``user``
1879
1880
1881Special Error Responses
1882~~~~~~~~~~~~~~~~~~~~~~~
1883
1884``InvalidCapability``
1885
1886:Description: Attempt to remove an invalid admin capability.
1887:Code: 400 Bad Request
1888
1889``NoSuchCap``
1890
1891:Description: User does not possess specified capability.
1892:Code: 404 Not Found
1893
7c673cae
FG
1894
1895Quotas
1896======
1897
1898The Admin Operations API enables you to set quotas on users and on bucket owned
1899by users. See `Quota Management`_ for additional details. Quotas include the
1900maximum number of objects in a bucket and the maximum storage size in megabytes.
1901
1902To view quotas, the user must have a ``users=read`` capability. To set,
1903modify or disable a quota, the user must have ``users=write`` capability.
1904See the `Admin Guide`_ for details.
1905
1906Valid parameters for quotas include:
1907
1908- **Bucket:** The ``bucket`` option allows you to specify a quota for
1909 buckets owned by a user.
1910
1911- **Maximum Objects:** The ``max-objects`` setting allows you to specify
1912 the maximum number of objects. A negative value disables this setting.
11fdf7f2 1913
7c673cae 1914- **Maximum Size:** The ``max-size`` option allows you to specify a quota
f64942e4
AA
1915 for the maximum number of bytes. The ``max-size-kb`` option allows you
1916 to specify it in KiB. A negative value disables this setting.
1917
7c673cae
FG
1918- **Quota Type:** The ``quota-type`` option sets the scope for the quota.
1919 The options are ``bucket`` and ``user``.
1920
1921- **Enable/Disable Quota:** The ``enabled`` option specifies whether the
1922 quota should be enabled. The value should be either 'True' or 'False'.
1923
1924Get User Quota
1925~~~~~~~~~~~~~~
1926
11fdf7f2 1927To get a quota, the user must have ``users`` capability set with ``read``
7c673cae
FG
1928permission. ::
1929
1930 GET /admin/user?quota&uid=<uid>&quota-type=user
1931
1932
1933Set User Quota
1934~~~~~~~~~~~~~~
1935
11fdf7f2 1936To set a quota, the user must have ``users`` capability set with ``write``
7c673cae
FG
1937permission. ::
1938
1939 PUT /admin/user?quota&uid=<uid>&quota-type=user
1940
1941
1942The content must include a JSON representation of the quota settings
1943as encoded in the corresponding read operation.
1944
1945
1946Get Bucket Quota
1947~~~~~~~~~~~~~~~~
1948
11fdf7f2 1949To get a quota, the user must have ``users`` capability set with ``read``
7c673cae
FG
1950permission. ::
1951
1952 GET /admin/user?quota&uid=<uid>&quota-type=bucket
1953
1954
1955Set Bucket Quota
1956~~~~~~~~~~~~~~~~
1957
11fdf7f2 1958To set a quota, the user must have ``users`` capability set with ``write``
7c673cae
FG
1959permission. ::
1960
1961 PUT /admin/user?quota&uid=<uid>&quota-type=bucket
1962
1963The content must include a JSON representation of the quota settings
1964as encoded in the corresponding read operation.
1965
1966
94b18763
FG
1967Set Quota for an Individual Bucket
1968~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1969
1970To set a quota, the user must have ``buckets`` capability set with ``write``
1971permission. ::
1972
20effc67 1973 PUT /admin/bucket?quota&uid=<uid>&bucket=<bucket-name>
94b18763
FG
1974
1975The content must include a JSON representation of the quota settings
1976as mentioned in Set Bucket Quota section above.
1977
7c673cae
FG
1978
1979
20effc67
TL
1980Rate Limit
1981==========
1982
1983The Admin Operations API enables you to set and get ratelimit configurations on users and on bucket and global rate limit configurations. See `Rate Limit Management`_ for additional details.
1984Rate Limit includes the maximum number of operations and/or bytes per minute, separated by read and/or write, to a bucket and/or by a user and the maximum storage size in megabytes.
1985
1986To view rate limit, the user must have a ``ratelimit=read`` capability. To set,
1987modify or disable a ratelimit, the user must have ``ratelimit=write`` capability.
1988See the `Admin Guide`_ for details.
1989
1990Valid parameters for quotas include:
1991
1992- **Bucket:** The ``bucket`` option allows you to specify a rate limit for
1993 a bucket.
1994
1995- **User:** The ``uid`` option allows you to specify a rate limit for a user.
1996
1997- **Maximum Read Bytes:** The ``max-read-bytes`` setting allows you to specify
1998 the maximum number of read bytes per minute. A 0 value disables this setting.
1999
2000- **Maximum Write Bytes:** The ``max-write-bytes`` setting allows you to specify
2001 the maximum number of write bytes per minute. A 0 value disables this setting.
2002
2003- **Maximum Read Ops:** The ``max-read-ops`` setting allows you to specify
2004 the maximum number of read ops per minute. A 0 value disables this setting.
2005
2006- **Maximum Write Ops:** The ``max-write-ops`` setting allows you to specify
2007 the maximum number of write ops per minute. A 0 value disables this setting.
2008
2009- **Global:** The ``global`` option allows you to specify a global rate limit.
2010 The value should be either 'True' or 'False'.
2011
2012- **Rate Limit Scope:** The ``ratelimit-scope`` option sets the scope for the rate limit.
2013 The options are ``bucket`` , ``user`` and ``anonymous``.
2014 ``anonymous`` is only valid for setting global configuration
2015
2016- **Enable/Disable Rate Limit:** The ``enabled`` option specifies whether the
2017 rate limit should be enabled. The value should be either 'True' or 'False'.
2018
2019Get User Rate Limit
2020~~~~~~~~~~~~~~~~~~~
2021
2022To get a rate limit, the user must have ``ratelimit`` capability set with ``read``
2023permission. ::
2024
2025 GET /{admin}/ratelimit?ratelimit-scope=user&uid=<uid>
2026
2027
2028Set User Rate Limit
2029~~~~~~~~~~~~~~~~~~~
2030
2031To set a rate limit, the user must have ``ratelimit`` capability set with ``write``
2032permission. ::
2033
2034 POST /{admin}/ratelimit?ratelimit-scope=user&uid=<uid><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>][enabled=<True|False>]>
2035
2036
2037
2038Get Bucket Rate Limit
2039~~~~~~~~~~~~~~~~~~~~~
2040
2041To get a rate limit, the user must have ``users`` capability set with ``read``
2042permission. ::
2043
2044 GET /{admin}/ratelimit?bucket=<bucket>&ratelimit-scope=bucket
2045
2046
2047
2048Set Rate Limit for an Individual Bucket
2049~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2050
2051To set a rate limit, the user must have ``ratelimit`` capability set with ``write``
2052permission. ::
2053
2054 POST /{admin}/ratelimit?bucket=<bucket-name>&ratelimit-scope=bucket<[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>]>
2055
2056
2057
2058Get Global Rate Limit
2059~~~~~~~~~~~~~~~~~~~~~
2060
2061To get a global rate limit, the user must have ``ratelimit`` capability set with ``read``
2062permission. ::
2063
2064 GET /{admin}/ratelimit?global=<True|False>
2065
2066
2067
2068Set Global User Rate Limit
2069~~~~~~~~~~~~~~~~~~~~~~~~~~
2070
2071To set a rate limit, the user must have ``ratelimit`` capability set with ``write``
2072permission. ::
2073
2074 POST /{admin}/ratelimit?ratelimit-scope=user&global=<True|False><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>][enabled=<True|False>]>
2075
2076
2077
2078Set Global Rate Limit Bucket
2079~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2080
2081To set a rate limit, the user must have ``ratelimit`` capability set with ``write``
2082permission. ::
2083
2084 POST /{admin}/ratelimit?ratelimit-scope=bucket&global=<True|False><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>]>
2085
2086
2087
2088Set Global Anonymous User Rate Limit
2089~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2090
2091To set a rate limit, the user must have ``ratelimit`` capability set with ``write``
2092permission. ::
2093
2094 POST /{admin}/ratelimit?ratelimit-scope=anon&global=<True|False><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>][enabled=<True|False>]>
2095
2096
2097
7c673cae
FG
2098Standard Error Responses
2099========================
2100
2101``AccessDenied``
2102
2103:Description: Access denied.
2104:Code: 403 Forbidden
2105
2106``InternalError``
2107
2108:Description: Internal server error.
2109:Code: 500 Internal Server Error
2110
2111``NoSuchUser``
2112
2113:Description: User does not exist.
2114:Code: 404 Not Found
2115
2116``NoSuchBucket``
2117
2118:Description: Bucket does not exist.
2119:Code: 404 Not Found
2120
2121``NoSuchKey``
2122
2123:Description: No such access key.
2124:Code: 404 Not Found
2125
2126
2127
11fdf7f2
TL
2128
2129Binding libraries
2130========================
2131
2132``Golang``
2133
2134 - `IrekFasikhov/go-rgwadmin`_
2135 - `QuentinPerez/go-radosgw`_
2136
2137``Java``
2138
2139 - `twonote/radosgw-admin4j`_
2140
2141``Python``
2142
2143 - `UMIACS/rgwadmin`_
2144 - `valerytschopp/python-radosgw-admin`_
2145
2146
2147
7c673cae
FG
2148.. _Admin Guide: ../admin
2149.. _Quota Management: ../admin#quota-management
20effc67 2150.. _Rate Limit Management: ../admin#rate-limit-management
11fdf7f2
TL
2151.. _IrekFasikhov/go-rgwadmin: https://github.com/IrekFasikhov/go-rgwadmin
2152.. _QuentinPerez/go-radosgw: https://github.com/QuentinPerez/go-radosgw
2153.. _twonote/radosgw-admin4j: https://github.com/twonote/radosgw-admin4j
2154.. _UMIACS/rgwadmin: https://github.com/UMIACS/rgwadmin
2155.. _valerytschopp/python-radosgw-admin: https://github.com/valerytschopp/python-radosgw-admin
2156