github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/docs/assets/js/swagger.yml (about) 1 openapi: "3.0.0" 2 3 info: 4 description: lakeFS HTTP API 5 title: lakeFS API 6 license: 7 name: "Apache 2.0" 8 url: https://www.apache.org/licenses/LICENSE-2.0.html 9 version: 1.0.0 10 11 servers: 12 - url: "/api/v1" 13 description: lakeFS server endpoint 14 security: 15 - jwt_token: [] 16 - basic_auth: [] 17 - cookie_auth: [] 18 - oidc_auth: [] 19 - saml_auth: [] 20 components: 21 securitySchemes: 22 basic_auth: 23 type: http 24 scheme: basic 25 jwt_token: 26 type: http 27 scheme: bearer 28 bearerFormat: JWT 29 cookie_auth: 30 type: apiKey 31 in: cookie 32 name: internal_auth_session 33 oidc_auth: 34 type: apiKey 35 in: cookie 36 name: oidc_auth_session 37 saml_auth: 38 type: apiKey 39 in: cookie 40 name: saml_auth_session 41 42 parameters: 43 PaginationPrefix: 44 in: query 45 name: prefix 46 description: return items prefixed with this value 47 schema: 48 type: string 49 50 PaginationAfter: 51 in: query 52 name: after 53 description: return items after this value 54 schema: 55 type: string 56 57 PaginationAmount: 58 in: query 59 name: amount 60 description: how many items to return 61 schema: 62 type: integer 63 minimum: -1 64 maximum: 1000 65 default: 100 66 67 PaginationDelimiter: 68 in: query 69 name: delimiter 70 description: delimiter used to group common prefixes by 71 schema: 72 type: string 73 74 IfNoneMatch: 75 in: header 76 name: If-None-Match 77 description: Set to "*" to atomically allow the upload only if the key has no object yet. Other values are not supported. 78 example: "*" 79 required: false 80 schema: 81 type: string 82 83 responses: 84 NotFoundOrNoACL: 85 description: Group not found, or group found but has no ACL 86 content: 87 application/json: 88 schema: 89 $ref: "#/components/schemas/ErrorNoACL" 90 91 Unauthorized: 92 description: Unauthorized 93 content: 94 application/json: 95 schema: 96 $ref: "#/components/schemas/Error" 97 ServerError: 98 description: Internal Server Error 99 content: 100 application/json: 101 schema: 102 $ref: "#/components/schemas/Error" 103 NotFound: 104 description: Resource Not Found 105 content: 106 application/json: 107 schema: 108 $ref: "#/components/schemas/Error" 109 Conflict: 110 description: Resource Conflicts With Target 111 content: 112 application/json: 113 schema: 114 $ref: "#/components/schemas/Error" 115 PreconditionFailed: 116 description: Precondition Failed 117 content: 118 application/json: 119 schema: 120 $ref: "#/components/schemas/Error" 121 BadRequest: 122 description: Bad Request 123 content: 124 application/json: 125 schema: 126 $ref: "#/components/schemas/Error" 127 Forbidden: 128 description: Forbidden 129 content: 130 application/json: 131 schema: 132 $ref: "#/components/schemas/Error" 133 ValidationError: 134 description: Validation Error 135 content: 136 application/json: 137 schema: 138 $ref: "#/components/schemas/Error" 139 140 schemas: 141 Pagination: 142 type: object 143 required: 144 - has_more 145 - max_per_page 146 - results 147 - next_offset 148 properties: 149 has_more: 150 type: boolean 151 description: Next page is available 152 next_offset: 153 type: string 154 description: Token used to retrieve the next page 155 results: 156 type: integer 157 minimum: 0 158 description: Number of values found in the results 159 max_per_page: 160 type: integer 161 minimum: 0 162 description: Maximal number of entries per page 163 164 Repository: 165 type: object 166 required: 167 - creation_date 168 - id 169 - default_branch 170 - storage_namespace 171 properties: 172 id: 173 type: string 174 creation_date: 175 type: integer 176 format: int64 177 description: Unix Epoch in seconds 178 default_branch: 179 type: string 180 storage_namespace: 181 type: string 182 description: Filesystem URI to store the underlying data in (e.g. "s3://my-bucket/some/path/") 183 read_only: 184 type: boolean 185 description: Whether the repository is a read-only repository- not relevant for bare repositories 186 187 RepositoryMetadata: 188 type: object 189 additionalProperties: 190 type: string 191 192 RepositoryMetadataSet: 193 type: object 194 required: 195 - metadata 196 properties: 197 metadata: 198 type: object 199 additionalProperties: 200 type: string 201 202 RepositoryMetadataKeys: 203 type: object 204 required: 205 - keys 206 properties: 207 keys: 208 type: array 209 items: 210 type: string 211 description: metadata key 212 213 RepositoryList: 214 type: object 215 required: 216 - pagination 217 - results 218 properties: 219 pagination: 220 $ref: "#/components/schemas/Pagination" 221 results: 222 type: array 223 items: 224 $ref: "#/components/schemas/Repository" 225 226 FindMergeBaseResult: 227 type: object 228 required: 229 - source_commit_id 230 - destination_commit_id 231 - base_commit_id 232 properties: 233 source_commit_id: 234 type: string 235 description: "The commit ID of the merge source" 236 destination_commit_id: 237 type: string 238 description: "The commit ID of the merge destination" 239 base_commit_id: 240 type: string 241 description: "The commit ID of the merge base" 242 243 MergeResult: 244 type: object 245 required: 246 - reference 247 properties: 248 reference: 249 type: string 250 251 RepositoryCreation: 252 type: object 253 required: 254 - name 255 - storage_namespace 256 properties: 257 name: 258 type: string 259 pattern: "^[a-z0-9][a-z0-9-]{2,62}$" 260 storage_namespace: 261 type: string 262 description: 'Filesystem URI to store the underlying data in (e.g. "s3://my-bucket/some/path/")' 263 example: "s3://example-bucket/" 264 pattern: "^(s3|gs|https?|mem|local|transient)://.*$" 265 default_branch: 266 type: string 267 example: "main" 268 sample_data: 269 type: boolean 270 example: "true" 271 default: false 272 read_only: 273 type: boolean 274 example: "true" 275 default: false 276 277 PathList: 278 type: object 279 required: 280 - paths 281 properties: 282 paths: 283 type: array 284 items: 285 type: string 286 description: Object path 287 288 ObjectStats: 289 type: object 290 required: 291 - checksum 292 - physical_address 293 - path 294 - path_type 295 - mtime 296 properties: 297 path: 298 type: string 299 path_type: 300 type: string 301 enum: [common_prefix, object] 302 physical_address: 303 type: string 304 description: | 305 The location of the object on the underlying object store. 306 Formatted as a native URI with the object store type as scheme ("s3://...", "gs://...", etc.) 307 Or, in the case of presign=true, will be an HTTP URL to be consumed via regular HTTP GET 308 physical_address_expiry: 309 type: integer 310 format: int64 311 description: | 312 If present and nonzero, physical_address is a pre-signed URL and 313 will expire at this Unix Epoch time. This will be shorter than 314 the pre-signed URL lifetime if an authentication token is about 315 to expire. 316 317 This field is *optional*. 318 checksum: 319 type: string 320 size_bytes: 321 type: integer 322 format: int64 323 mtime: 324 type: integer 325 format: int64 326 description: Unix Epoch in seconds 327 metadata: 328 $ref: "#/components/schemas/ObjectUserMetadata" 329 content_type: 330 type: string 331 description: Object media type 332 333 ObjectStatsList: 334 type: object 335 required: 336 - pagination 337 - results 338 properties: 339 pagination: 340 $ref: "#/components/schemas/Pagination" 341 results: 342 type: array 343 items: 344 $ref: "#/components/schemas/ObjectStats" 345 346 ObjectCopyCreation: 347 type: object 348 required: 349 - src_path 350 properties: 351 src_path: 352 type: string 353 description: path of the copied object relative to the ref 354 src_ref: 355 type: string 356 description: a reference, if empty uses the provided branch as ref 357 force: 358 type: boolean 359 default: false 360 361 ObjectStageCreation: 362 type: object 363 required: 364 - physical_address 365 - checksum 366 - size_bytes 367 properties: 368 physical_address: 369 type: string 370 checksum: 371 type: string 372 size_bytes: 373 type: integer 374 format: int64 375 mtime: 376 type: integer 377 format: int64 378 description: Unix Epoch in seconds 379 metadata: 380 $ref: "#/components/schemas/ObjectUserMetadata" 381 content_type: 382 type: string 383 description: Object media type 384 force: 385 type: boolean 386 default: false 387 388 ObjectUserMetadata: 389 type: object 390 additionalProperties: 391 type: string 392 393 UnderlyingObjectProperties: 394 type: object 395 properties: 396 storage_class: 397 type: string 398 nullable: true 399 Ref: 400 type: object 401 required: 402 - id 403 - commit_id 404 properties: 405 id: 406 type: string 407 commit_id: 408 type: string 409 410 RefList: 411 type: object 412 required: 413 - pagination 414 - results 415 properties: 416 pagination: 417 $ref: "#/components/schemas/Pagination" 418 results: 419 type: array 420 items: 421 $ref: "#/components/schemas/Ref" 422 423 Diff: 424 type: object 425 required: 426 - type 427 - path 428 - path_type 429 properties: 430 type: 431 type: string 432 enum: [added, removed, changed, conflict, prefix_changed] 433 path: 434 type: string 435 path_type: 436 type: string 437 enum: [common_prefix, object] 438 size_bytes: 439 type: integer 440 description: represents the size of the added/changed/deleted entry 441 format: int64 442 443 DiffList: 444 type: object 445 required: 446 - pagination 447 - results 448 properties: 449 pagination: 450 $ref: "#/components/schemas/Pagination" 451 results: 452 type: array 453 items: 454 $ref: "#/components/schemas/Diff" 455 456 ResetCreation: 457 type: object 458 required: 459 - type 460 properties: 461 type: 462 type: string 463 enum: [object, common_prefix, reset] 464 description: What to reset according to path. 465 path: 466 type: string 467 force: 468 type: boolean 469 default: false 470 471 RevertCreation: 472 type: object 473 required: 474 - parent_number 475 - ref 476 properties: 477 ref: 478 type: string 479 description: the commit to revert, given by a ref 480 parent_number: 481 type: integer 482 description: when reverting a merge commit, the parent number (starting from 1) relative to which to perform the revert. 483 force: 484 type: boolean 485 default: false 486 allow_empty: 487 type: boolean 488 default: false 489 description: allow empty commit (revert without changes) 490 491 CherryPickCreation: 492 type: object 493 required: 494 - ref 495 properties: 496 ref: 497 type: string 498 description: the commit to cherry-pick, given by a ref 499 parent_number: 500 type: integer 501 description: | 502 When cherry-picking a merge commit, the parent number (starting from 1) with which to perform the diff. 503 The default branch is parent 1. 504 force: 505 type: boolean 506 default: false 507 508 Commit: 509 type: object 510 required: 511 - id 512 - parents 513 - committer 514 - message 515 - creation_date 516 - meta_range_id 517 properties: 518 id: 519 type: string 520 parents: 521 type: array 522 items: 523 type: string 524 committer: 525 type: string 526 message: 527 type: string 528 creation_date: 529 type: integer 530 format: int64 531 description: Unix Epoch in seconds 532 meta_range_id: 533 type: string 534 metadata: 535 type: object 536 additionalProperties: 537 type: string 538 generation: 539 type: integer 540 format: int64 541 version: 542 type: integer 543 minimum: 0 544 maximum: 1 545 546 CommitList: 547 type: object 548 required: 549 - pagination 550 - results 551 properties: 552 pagination: 553 $ref: "#/components/schemas/Pagination" 554 results: 555 type: array 556 items: 557 $ref: "#/components/schemas/Commit" 558 559 CommitCreation: 560 type: object 561 required: 562 - message 563 properties: 564 message: 565 type: string 566 metadata: 567 type: object 568 additionalProperties: 569 type: string 570 date: 571 description: set date to override creation date in the commit (Unix Epoch in seconds) 572 type: integer 573 format: int64 574 allow_empty: 575 description: sets whether a commit can contain no changes 576 type: boolean 577 default: false 578 force: 579 type: boolean 580 default: false 581 582 CommitRecordCreation: 583 type: object 584 required: 585 - commit_id 586 - version 587 - committer 588 - message 589 - metarange_id 590 - creation_date 591 - parents 592 - generation 593 properties: 594 commit_id: 595 type: string 596 description: id of the commit record 597 version: 598 type: integer 599 minimum: 0 600 maximum: 1 601 description: version of the commit record 602 committer: 603 type: string 604 description: committer of the commit record 605 message: 606 type: string 607 description: message of the commit record 608 metarange_id: 609 type: string 610 description: metarange_id of the commit record 611 creation_date: 612 type: integer 613 format: int64 614 description: Unix Epoch in seconds 615 parents: 616 type: array 617 items: 618 type: string 619 description: parents of the commit record 620 metadata: 621 type: object 622 additionalProperties: 623 type: string 624 description: metadata of the commit record 625 generation: 626 type: integer 627 format: int64 628 description: generation of the commit record 629 force: 630 type: boolean 631 default: false 632 633 Merge: 634 type: object 635 properties: 636 message: 637 type: string 638 metadata: 639 type: object 640 additionalProperties: 641 type: string 642 strategy: 643 description: In case of a merge conflict, this option will force the merge process to automatically favor changes from the dest branch ('dest-wins') or from the source branch('source-wins'). In case no selection is made, the merge process will fail in case of a conflict 644 type: string 645 force: 646 type: boolean 647 default: false 648 649 BranchCreation: 650 type: object 651 required: 652 - name 653 - source 654 properties: 655 name: 656 type: string 657 source: 658 type: string 659 force: 660 type: boolean 661 default: false 662 663 TagCreation: 664 type: object 665 description: Make tag ID point at this REF. 666 required: 667 - id 668 - ref 669 properties: 670 id: 671 type: string 672 description: ID of tag to create 673 ref: 674 type: string 675 description: the commit to tag 676 force: 677 type: boolean 678 default: false 679 680 TaskInfo: 681 type: object 682 required: 683 - id 684 properties: 685 id: 686 type: string 687 description: ID of the task 688 689 RepositoryDumpStatus: 690 type: object 691 required: 692 - id 693 - done 694 - update_time 695 properties: 696 id: 697 type: string 698 description: ID of the task 699 done: 700 type: boolean 701 update_time: 702 type: string 703 format: date-time 704 error: 705 type: string 706 refs: 707 $ref: "#/components/schemas/RefsDump" 708 709 RepositoryRestoreStatus: 710 type: object 711 required: 712 - id 713 - done 714 - update_time 715 properties: 716 id: 717 type: string 718 description: ID of the task 719 done: 720 type: boolean 721 update_time: 722 type: string 723 format: date-time 724 error: 725 type: string 726 727 RefsDump: 728 type: object 729 required: 730 - branches_meta_range_id 731 - tags_meta_range_id 732 - commits_meta_range_id 733 properties: 734 commits_meta_range_id: 735 type: string 736 tags_meta_range_id: 737 type: string 738 branches_meta_range_id: 739 type: string 740 741 RefsRestore: 742 type: object 743 required: 744 - branches_meta_range_id 745 - tags_meta_range_id 746 - commits_meta_range_id 747 properties: 748 commits_meta_range_id: 749 type: string 750 tags_meta_range_id: 751 type: string 752 branches_meta_range_id: 753 type: string 754 force: 755 type: boolean 756 default: false 757 758 StorageURI: 759 description: URI to a path in a storage provider (e.g. "s3://bucket1/path/to/object") 760 required: 761 - location 762 type: object 763 properties: 764 location: 765 type: string 766 767 Error: 768 type: object 769 required: 770 - message 771 properties: 772 message: 773 description: short message explaining the error 774 type: string 775 776 ObjectError: 777 type: object 778 required: 779 - status_code 780 - message 781 properties: 782 status_code: 783 type: integer 784 description: HTTP status code associated for operation on path 785 message: 786 type: string 787 description: short message explaining status_code 788 path: 789 type: string 790 description: affected path 791 792 ObjectErrorList: 793 type: object 794 required: 795 - errors 796 properties: 797 errors: 798 type: array 799 items: 800 $ref: "#/components/schemas/ObjectError" 801 802 ErrorNoACL: 803 type: object 804 required: 805 - message 806 properties: 807 message: 808 description: short message explaining the error 809 type: string 810 no_acl: 811 description: "true if the group exists but has no ACL" 812 type: boolean 813 814 User: 815 type: object 816 required: 817 - id 818 - creation_date 819 properties: 820 id: 821 type: string 822 description: A unique identifier for the user. Cannot be edited. 823 creation_date: 824 type: integer 825 format: int64 826 description: Unix Epoch in seconds 827 friendly_name: 828 type: string 829 description: | 830 A shorter name for the user than the id. Unlike id it does not identify the user (it 831 might not be unique). Used in some places in the UI. 832 email: 833 type: string 834 description: | 835 The email address of the user. If API authentication is enabled, this field is mandatory and will be invited to login. 836 If API authentication is disabled, this field will be ignored. All current APIAuthenticators require the email to be 837 lowercase and unique, although custom authenticators may not enforce this. 838 839 CurrentUser: 840 type: object 841 required: 842 - user 843 properties: 844 user: 845 $ref: "#/components/schemas/User" 846 847 UserCreation: 848 type: object 849 properties: 850 id: 851 type: string 852 description: a unique identifier for the user. 853 invite_user: 854 type: boolean 855 required: 856 - id 857 858 LoginConfig: 859 type: object 860 properties: 861 RBAC: 862 description: | 863 RBAC will remain enabled on GUI if "external". That only works 864 with an external auth service. 865 type: string 866 enum: [simplified, external] 867 login_url: 868 description: primary URL to use for login. 869 type: string 870 login_failed_message: 871 description: | 872 message to display to users who fail to login; a full sentence that is rendered 873 in HTML and may contain a link to a secondary login method 874 type: string 875 fallback_login_url: 876 description: secondary URL to offer users to use for login. 877 type: string 878 fallback_login_label: 879 description: label to place on fallback_login_url. 880 type: string 881 login_cookie_names: 882 description: cookie names used to store JWT 883 type: array 884 items: 885 type: string 886 logout_url: 887 description: URL to use for logging out. 888 type: string 889 required: 890 - login_url 891 - login_cookie_names 892 - logout_url 893 894 SetupState: 895 type: object 896 properties: 897 state: 898 type: string 899 enum: [initialized, not_initialized] 900 comm_prefs_missing: 901 type: boolean 902 description: true if the comm prefs are missing. 903 login_config: 904 $ref: "#/components/schemas/LoginConfig" 905 AccessKeyCredentials: 906 type: object 907 properties: 908 # Example values as seen on 909 # https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html 910 access_key_id: 911 description: access key ID to set for user for use in integration testing. 912 example: AKIAIOSFODNN7EXAMPLE 913 type: string 914 minLength: 1 915 secret_access_key: 916 description: secret access key to set for user for use in integration testing. 917 example: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 918 type: string 919 minLength: 1 920 required: 921 - access_key_id 922 - secret_access_key 923 924 Setup: 925 type: object 926 properties: 927 username: 928 description: an identifier for the user (e.g. jane.doe) 929 type: string 930 key: 931 $ref: "#/components/schemas/AccessKeyCredentials" 932 required: 933 - username 934 935 CommPrefsInput: 936 type: object 937 properties: 938 email: 939 description: the provided email 940 type: string 941 featureUpdates: 942 description: user preference to receive feature updates 943 type: boolean 944 securityUpdates: 945 description: user preference to receive security updates 946 type: boolean 947 required: 948 - featureUpdates 949 - securityUpdates 950 951 952 Credentials: 953 type: object 954 required: 955 - creation_date 956 - access_key_id 957 properties: 958 access_key_id: 959 type: string 960 creation_date: 961 type: integer 962 format: int64 963 description: Unix Epoch in seconds 964 965 CredentialsList: 966 type: object 967 required: 968 - pagination 969 - results 970 properties: 971 pagination: 972 $ref: "#/components/schemas/Pagination" 973 results: 974 type: array 975 items: 976 $ref: "#/components/schemas/Credentials" 977 978 CredentialsWithSecret: 979 type: object 980 required: 981 - access_key_id 982 - creation_date 983 - secret_access_key 984 properties: 985 access_key_id: 986 type: string 987 secret_access_key: 988 type: string 989 creation_date: 990 type: integer 991 format: int64 992 description: Unix Epoch in seconds 993 994 Group: 995 type: object 996 required: 997 - creation_date 998 - id 999 properties: 1000 id: 1001 type: string 1002 name: 1003 type: string 1004 creation_date: 1005 type: integer 1006 format: int64 1007 description: Unix Epoch in seconds 1008 1009 GroupList: 1010 type: object 1011 required: 1012 - results 1013 - pagination 1014 properties: 1015 pagination: 1016 $ref: "#/components/schemas/Pagination" 1017 results: 1018 type: array 1019 items: 1020 $ref: "#/components/schemas/Group" 1021 1022 AuthCapabilities: 1023 type: object 1024 properties: 1025 invite_user: 1026 type: boolean 1027 forgot_password: 1028 type: boolean 1029 1030 UserList: 1031 type: object 1032 required: 1033 - pagination 1034 - results 1035 properties: 1036 pagination: 1037 $ref: "#/components/schemas/Pagination" 1038 results: 1039 type: array 1040 items: 1041 $ref: "#/components/schemas/User" 1042 1043 LoginInformation: 1044 type: object 1045 required: 1046 - access_key_id 1047 - secret_access_key 1048 properties: 1049 access_key_id: 1050 type: string 1051 secret_access_key: 1052 type: string 1053 1054 ExternalLoginInformation: 1055 type: object 1056 required: 1057 - identityRequest 1058 properties: 1059 token_expiration_duration: 1060 type: integer 1061 identityRequest: 1062 type: object 1063 1064 StsAuthRequest: 1065 type: object 1066 required: 1067 - code 1068 - state 1069 - redirect_uri 1070 properties: 1071 code: 1072 type: string 1073 state: 1074 type: string 1075 redirect_uri: 1076 type: string 1077 ttl_seconds: 1078 type: integer 1079 format: int64 1080 description: | 1081 The time-to-live for the generated token in seconds. The default 1082 value is 3600 seconds (1 hour) maximum time allowed is 12 hours. 1083 AuthenticationToken: 1084 type: object 1085 required: 1086 - token 1087 properties: 1088 token: 1089 description: a JWT token that could be used to authenticate requests 1090 type: string 1091 token_expiration: 1092 type: integer 1093 format: int64 1094 description: Unix Epoch in seconds 1095 1096 GroupCreation: 1097 type: object 1098 required: 1099 - id 1100 properties: 1101 id: 1102 type: string 1103 1104 Statement: 1105 type: object 1106 required: 1107 - effect 1108 - resource 1109 - action 1110 properties: 1111 effect: 1112 type: string 1113 enum: [allow, deny] 1114 resource: 1115 type: string 1116 action: 1117 type: array 1118 items: 1119 type: string 1120 minItems: 1 1121 1122 Policy: 1123 type: object 1124 required: 1125 - id 1126 - statement 1127 properties: 1128 id: 1129 type: string 1130 creation_date: 1131 type: integer 1132 format: int64 1133 description: Unix Epoch in seconds 1134 statement: 1135 type: array 1136 items: 1137 $ref: "#/components/schemas/Statement" 1138 minItems: 1 1139 1140 PolicyList: 1141 type: object 1142 required: 1143 - pagination 1144 - results 1145 properties: 1146 pagination: 1147 $ref: "#/components/schemas/Pagination" 1148 results: 1149 type: array 1150 items: 1151 $ref: "#/components/schemas/Policy" 1152 1153 ACL: 1154 type: object 1155 required: 1156 - permission 1157 properties: 1158 permission: 1159 type: string 1160 description: | 1161 Permission level to give this ACL. "Read", "Write", "Super" and 1162 "Admin" are all supported. 1163 1164 StorageConfig: 1165 type: object 1166 required: 1167 - blockstore_type 1168 - blockstore_namespace_example 1169 - blockstore_namespace_ValidityRegex 1170 - pre_sign_support 1171 - pre_sign_support_ui 1172 - import_support 1173 - import_validity_regex 1174 properties: 1175 blockstore_type: 1176 type: string 1177 blockstore_namespace_example: 1178 type: string 1179 blockstore_namespace_ValidityRegex: 1180 type: string 1181 default_namespace_prefix: 1182 type: string 1183 pre_sign_support: 1184 type: boolean 1185 pre_sign_support_ui: 1186 type: boolean 1187 import_support: 1188 type: boolean 1189 import_validity_regex: 1190 type: string 1191 pre_sign_multipart_upload: 1192 type: boolean 1193 1194 Config: 1195 type: object 1196 properties: 1197 version_config: 1198 $ref: "#/components/schemas/VersionConfig" 1199 storage_config: 1200 $ref: "#/components/schemas/StorageConfig" 1201 VersionConfig: 1202 type: object 1203 properties: 1204 version: 1205 type: string 1206 latest_version: 1207 type: string 1208 upgrade_recommended: 1209 type: boolean 1210 upgrade_url: 1211 type: string 1212 GarbageCollectionConfig: 1213 type: object 1214 properties: 1215 grace_period: 1216 description: Duration in seconds. Objects created in the recent grace_period will not be collected. 1217 type: integer 1218 1219 ActionRun: 1220 type: object 1221 required: 1222 - run_id 1223 - branch 1224 - start_time 1225 - commit_id 1226 - event_type 1227 - status 1228 properties: 1229 run_id: 1230 type: string 1231 branch: 1232 type: string 1233 start_time: 1234 type: string 1235 format: date-time 1236 end_time: 1237 type: string 1238 format: date-time 1239 event_type: 1240 type: string 1241 status: 1242 type: string 1243 enum: [failed, completed] 1244 commit_id: 1245 type: string 1246 1247 ActionRunList: 1248 type: object 1249 required: 1250 - pagination 1251 - results 1252 properties: 1253 pagination: 1254 $ref: "#/components/schemas/Pagination" 1255 results: 1256 type: array 1257 items: 1258 $ref: "#/components/schemas/ActionRun" 1259 1260 HookRun: 1261 type: object 1262 required: 1263 - hook_run_id 1264 - action 1265 - hook_id 1266 - start_time 1267 - status 1268 properties: 1269 hook_run_id: 1270 type: string 1271 action: 1272 type: string 1273 hook_id: 1274 type: string 1275 start_time: 1276 type: string 1277 format: date-time 1278 end_time: 1279 type: string 1280 format: date-time 1281 status: 1282 type: string 1283 enum: [failed, completed] 1284 1285 HookRunList: 1286 type: object 1287 required: 1288 - pagination 1289 - results 1290 properties: 1291 pagination: 1292 $ref: "#/components/schemas/Pagination" 1293 results: 1294 type: array 1295 items: 1296 $ref: "#/components/schemas/HookRun" 1297 1298 StagingLocation: 1299 type: object 1300 description: location for placing an object when staging it 1301 properties: 1302 physical_address: 1303 type: string 1304 presigned_url: 1305 type: string 1306 nullable: true 1307 description: if presign=true is passed in the request, this field will contain a pre-signed URL to use when uploading 1308 presigned_url_expiry: 1309 type: integer 1310 format: int64 1311 description: | 1312 If present and nonzero, physical_address is a pre-signed URL and 1313 will expire at this Unix Epoch time. This will be shorter than 1314 the pre-signed URL lifetime if an authentication token is about 1315 to expire. 1316 1317 This field is *optional*. 1318 1319 StagingMetadata: 1320 type: object 1321 description: information about uploaded object 1322 properties: 1323 staging: 1324 $ref: "#/components/schemas/StagingLocation" 1325 checksum: 1326 type: string 1327 description: unique identifier of object content on backing store (typically ETag) 1328 size_bytes: 1329 type: integer 1330 format: int64 1331 user_metadata: 1332 type: object 1333 additionalProperties: 1334 type: string 1335 content_type: 1336 type: string 1337 description: Object media type 1338 force: 1339 type: boolean 1340 default: false 1341 required: 1342 - staging 1343 - checksum 1344 - size_bytes 1345 1346 GarbageCollectionPrepareResponse: 1347 type: object 1348 properties: 1349 run_id: 1350 type: string 1351 description: a unique identifier generated for this GC job 1352 example: 64eaa103-d726-4a33-bcb8-7c0b4abfe09e 1353 gc_commits_location: 1354 type: string 1355 description: location of the resulting commits csv table (partitioned by run_id) 1356 example: s3://my-storage-namespace/_lakefs/retention/commits 1357 gc_addresses_location: 1358 type: string 1359 description: location to use for expired addresses parquet table (partitioned by run_id) 1360 example: s3://my-storage-namespace/_lakefs/retention/addresses 1361 gc_commits_presigned_url: 1362 type: string 1363 description: a presigned url to download the commits csv 1364 required: 1365 - run_id 1366 - gc_commits_location 1367 - gc_addresses_location 1368 1369 PrepareGCUncommittedRequest: 1370 type: object 1371 properties: 1372 continuation_token: 1373 type: string 1374 1375 PrepareGCUncommittedResponse: 1376 type: object 1377 properties: 1378 run_id: 1379 type: string 1380 gc_uncommitted_location: 1381 type: string 1382 description: location of uncommitted information data 1383 continuation_token: 1384 type: string 1385 required: 1386 - run_id 1387 - gc_uncommitted_location 1388 1389 GarbageCollectionRule: 1390 type: object 1391 properties: 1392 branch_id: 1393 type: string 1394 retention_days: 1395 type: integer 1396 required: 1397 - branch_id 1398 - retention_days 1399 1400 GarbageCollectionRules: 1401 type: object 1402 properties: 1403 default_retention_days: 1404 type: integer 1405 branches: 1406 type: array 1407 items: 1408 $ref: "#/components/schemas/GarbageCollectionRule" 1409 required: 1410 - default_retention_days 1411 - branches 1412 1413 BranchProtectionRule: 1414 type: object 1415 properties: 1416 pattern: 1417 type: string 1418 description: fnmatch pattern for the branch name, supporting * and ? wildcards 1419 example: "stable_*" 1420 minLength: 1 1421 required: 1422 - pattern 1423 1424 ImportLocation: 1425 type: object 1426 required: 1427 - type 1428 - path 1429 - destination 1430 properties: 1431 type: 1432 type: string 1433 enum: [ common_prefix, object ] 1434 description: Path type, can either be 'common_prefix' or 'object' 1435 path: 1436 type: string 1437 description: A source location to a 'common_prefix' or to a single object. Must match the lakeFS installation blockstore type. 1438 example: s3://my-bucket/production/collections/ 1439 destination: 1440 type: string 1441 description: | 1442 Destination for the imported objects on the branch. Must be a relative path to the branch. 1443 If the type is an 'object', the destination is the exact object name under the branch. 1444 If the type is a 'common_prefix', the destination is the prefix under the branch. 1445 example: collections/ 1446 1447 ImportCreation: 1448 type: object 1449 required: 1450 - paths 1451 - commit 1452 properties: 1453 paths: 1454 type: array 1455 items: 1456 $ref: "#/components/schemas/ImportLocation" 1457 commit: 1458 $ref: "#/components/schemas/CommitCreation" 1459 force: 1460 type: boolean 1461 default: false 1462 example: 1463 paths: 1464 - path: s3://my-bucket/production/collections/ 1465 destination: collections/ 1466 type: common_prefix 1467 - path: s3://my-bucket/production/collections/file1 1468 destination: collections/file1 1469 type: object 1470 1471 RangeMetadata: 1472 type: object 1473 required: 1474 - id 1475 - min_key 1476 - max_key 1477 - count 1478 - estimated_size 1479 properties: 1480 id: 1481 type: string 1482 description: ID of the range. 1483 example: 480e19972a6fbe98ab8e81ae5efdfd1a29037587e91244e87abd4adefffdb01c 1484 min_key: 1485 type: string 1486 description: First key in the range. 1487 example: production/collections/some/file_1.parquet 1488 max_key: 1489 type: string 1490 description: Last key in the range. 1491 example: production/collections/some/file_8229.parquet 1492 count: 1493 type: integer 1494 description: Number of records in the range. 1495 estimated_size: 1496 type: integer 1497 description: Estimated size of the range in bytes 1498 1499 ImportStatus: 1500 type: object 1501 properties: 1502 completed: 1503 type: boolean 1504 update_time: 1505 type: string 1506 format: date-time 1507 ingested_objects: 1508 description: Number of objects processed so far 1509 type: integer 1510 format: int64 1511 metarange_id: 1512 type: string 1513 commit: 1514 $ref: "#/components/schemas/Commit" 1515 error: 1516 $ref: "#/components/schemas/Error" 1517 required: 1518 - update_time 1519 - completed 1520 1521 ImportCreationResponse: 1522 type: object 1523 properties: 1524 id: 1525 description: The id of the import process 1526 type: string 1527 required: 1528 - id 1529 1530 MetaRangeCreation: 1531 type: object 1532 properties: 1533 ranges: 1534 type: array 1535 items: 1536 $ref: "#/components/schemas/RangeMetadata" 1537 minItems: 1 1538 required: 1539 - ranges 1540 1541 MetaRangeCreationResponse: 1542 type: object 1543 properties: 1544 id: 1545 description: The id of the created metarange 1546 type: string 1547 1548 UpdateToken: 1549 type: object 1550 properties: 1551 staging_token: 1552 type: string 1553 required: 1554 - staging_token 1555 1556 StatsEvent: 1557 type: object 1558 properties: 1559 class: 1560 description: stats event class (e.g. "s3_gateway", "openapi_request", "experimental-feature", "ui-event") 1561 type: string 1562 name: 1563 description: stats event name (e.g. "put_object", "create_repository", "<experimental-feature-name>") 1564 type: string 1565 count: 1566 description: number of events of the class and name 1567 type: integer 1568 required: 1569 - class 1570 - name 1571 - count 1572 1573 StatsEventsList: 1574 type: object 1575 required: 1576 - events 1577 properties: 1578 events: 1579 type: array 1580 items: 1581 $ref: "#/components/schemas/StatsEvent" 1582 1583 PresignMultipartUpload: 1584 type: object 1585 properties: 1586 upload_id: 1587 type: string 1588 physical_address: 1589 type: string 1590 presigned_urls: 1591 type: array 1592 items: 1593 type: string 1594 required: 1595 - upload_id 1596 - physical_address 1597 1598 UploadPart: 1599 type: object 1600 properties: 1601 part_number: 1602 type: integer 1603 etag: 1604 type: string 1605 required: 1606 - part_number 1607 - etag 1608 1609 CompletePresignMultipartUpload: 1610 type: object 1611 properties: 1612 physical_address: 1613 type: string 1614 parts: 1615 type: array 1616 description: "List of uploaded parts, should be ordered by ascending part number" 1617 items: 1618 $ref: "#/components/schemas/UploadPart" 1619 user_metadata: 1620 type: object 1621 additionalProperties: 1622 type: string 1623 content_type: 1624 type: string 1625 description: Object media type 1626 required: 1627 - physical_address 1628 - parts 1629 1630 AbortPresignMultipartUpload: 1631 type: object 1632 properties: 1633 physical_address: 1634 type: string 1635 required: 1636 - physical_address 1637 1638 UsageReport: 1639 type: object 1640 properties: 1641 year: 1642 type: integer 1643 month: 1644 type: integer 1645 count: 1646 type: integer 1647 format: int64 1648 required: 1649 - year 1650 - month 1651 - count 1652 1653 InstallationUsageReport: 1654 type: object 1655 properties: 1656 installation_id: 1657 type: string 1658 reports: 1659 type: array 1660 items: 1661 $ref: "#/components/schemas/UsageReport" 1662 required: 1663 - installation_id 1664 - reports 1665 1666 ExternalPrincipalList: 1667 type: object 1668 required: 1669 - pagination 1670 - results 1671 properties: 1672 pagination: 1673 $ref: "#/components/schemas/Pagination" 1674 results: 1675 type: array 1676 items: 1677 $ref: "#/components/schemas/ExternalPrincipal" 1678 ExternalPrincipalSettings: 1679 type: object 1680 additionalProperties: 1681 type: string 1682 description: Additional settings to be consumed by the remote authenticator 1683 ExternalPrincipalCreation: 1684 type: object 1685 properties: 1686 settings: 1687 type: object 1688 items: 1689 $ref: "#/components/schemas/ExternalPrincipalSettings" 1690 ExternalPrincipal: 1691 type: object 1692 required: 1693 - user_id 1694 - id 1695 properties: 1696 id: 1697 type: string 1698 description: A unique identifier for the external principal i.e aws:sts::123:assumed-role/role-name 1699 user_id: 1700 type: string 1701 description: | 1702 lakeFS user ID to associate with an external principal. 1703 settings: 1704 type: object 1705 items: 1706 $ref: "#/components/schemas/ExternalPrincipalSettings" 1707 paths: 1708 /setup_comm_prefs: 1709 post: 1710 tags: 1711 - internal 1712 operationId: setupCommPrefs 1713 summary: setup communications preferences 1714 security: [] 1715 requestBody: 1716 required: true 1717 content: 1718 application/json: 1719 schema: 1720 $ref: "#/components/schemas/CommPrefsInput" 1721 responses: 1722 200: 1723 description: communication preferences saved successfully 1724 409: 1725 description: setup was already completed 1726 content: 1727 application/json: 1728 schema: 1729 $ref: "#/components/schemas/Error" 1730 412: 1731 description: wrong setup state for this operation 1732 content: 1733 application/json: 1734 schema: 1735 $ref: "#/components/schemas/Error" 1736 420: 1737 description: too many requests 1738 default: 1739 $ref: "#/components/responses/ServerError" 1740 1741 /setup_lakefs: 1742 get: 1743 tags: 1744 - internal 1745 operationId: getSetupState 1746 summary: check if the lakeFS installation is already set up 1747 security: [] 1748 responses: 1749 200: 1750 description: lakeFS setup state 1751 content: 1752 application/json: 1753 schema: 1754 $ref: "#/components/schemas/SetupState" 1755 420: 1756 description: too many requests 1757 default: 1758 $ref: "#/components/responses/ServerError" 1759 post: 1760 tags: 1761 - internal 1762 operationId: setup 1763 summary: setup lakeFS and create a first user 1764 security: [] 1765 requestBody: 1766 required: true 1767 content: 1768 application/json: 1769 schema: 1770 $ref: "#/components/schemas/Setup" 1771 responses: 1772 200: 1773 description: user created successfully 1774 content: 1775 application/json: 1776 schema: 1777 $ref: "#/components/schemas/CredentialsWithSecret" 1778 400: 1779 $ref: "#/components/responses/BadRequest" 1780 409: 1781 description: setup was already called 1782 content: 1783 application/json: 1784 schema: 1785 $ref: "#/components/schemas/Error" 1786 420: 1787 description: too many requests 1788 default: 1789 $ref: "#/components/responses/ServerError" 1790 1791 /user: 1792 get: 1793 tags: 1794 - auth 1795 operationId: getCurrentUser 1796 summary: get current user 1797 responses: 1798 200: 1799 description: user 1800 content: 1801 application/json: 1802 schema: 1803 $ref: "#/components/schemas/CurrentUser" 1804 1805 /auth/login: 1806 post: 1807 tags: 1808 - auth 1809 operationId: login 1810 summary: perform a login 1811 security: [] # No authentication 1812 requestBody: 1813 content: 1814 application/json: 1815 schema: 1816 $ref: "#/components/schemas/LoginInformation" 1817 responses: 1818 200: 1819 description: successful login 1820 headers: 1821 Set-Cookie: 1822 schema: 1823 type: string 1824 example: "access_token=abcde12356; Path=/; HttpOnly" 1825 content: 1826 application/json: 1827 schema: 1828 $ref: "#/components/schemas/AuthenticationToken" 1829 401: 1830 $ref: "#/components/responses/Unauthorized" 1831 420: 1832 description: too many requests 1833 default: 1834 $ref: "#/components/responses/ServerError" 1835 1836 /auth/external/principal/login: 1837 post: 1838 tags: 1839 - external 1840 - experimental 1841 - auth 1842 operationId: externalPrincipalLogin 1843 summary: perform a login using an external authenticator 1844 security: [] 1845 requestBody: 1846 content: 1847 application/json: 1848 schema: 1849 $ref: "#/components/schemas/ExternalLoginInformation" 1850 responses: 1851 200: 1852 description: successful external login 1853 content: 1854 application/json: 1855 schema: 1856 $ref: "#/components/schemas/AuthenticationToken" 1857 400: 1858 $ref: "#/components/responses/BadRequest" 1859 401: 1860 $ref: "#/components/responses/Unauthorized" 1861 403: 1862 $ref: "#/components/responses/Forbidden" 1863 404: 1864 $ref: "#/components/responses/NotFound" 1865 420: 1866 description: too many requests 1867 default: 1868 $ref: "#/components/responses/ServerError" 1869 1870 /sts/login: 1871 post: 1872 tags: 1873 - experimental 1874 operationId: stsLogin # change to stsLogin 1875 summary: perform a login with STS 1876 security: [] 1877 requestBody: 1878 required: true 1879 content: 1880 application/json: 1881 schema: 1882 $ref: "#/components/schemas/StsAuthRequest" 1883 responses: 1884 200: 1885 description: successful STS login 1886 content: 1887 application/json: 1888 schema: 1889 $ref: "#/components/schemas/AuthenticationToken" 1890 401: 1891 $ref: "#/components/responses/Unauthorized" 1892 420: 1893 description: too many requests 1894 default: 1895 $ref: "#/components/responses/ServerError" 1896 1897 /auth/capabilities: 1898 get: 1899 tags: 1900 - internal 1901 operationId: getAuthCapabilities 1902 summary: list authentication capabilities supported 1903 security: [] 1904 responses: 1905 200: 1906 description: auth capabilities 1907 content: 1908 application/json: 1909 schema: 1910 $ref: "#/components/schemas/AuthCapabilities" 1911 420: 1912 description: too many requests 1913 default: 1914 $ref: "#/components/responses/ServerError" 1915 1916 /auth/users: 1917 get: 1918 tags: 1919 - auth 1920 operationId: listUsers 1921 summary: list users 1922 parameters: 1923 - $ref: "#/components/parameters/PaginationPrefix" 1924 - $ref: "#/components/parameters/PaginationAfter" 1925 - $ref: "#/components/parameters/PaginationAmount" 1926 responses: 1927 200: 1928 description: user list 1929 content: 1930 application/json: 1931 schema: 1932 $ref: "#/components/schemas/UserList" 1933 401: 1934 $ref: "#/components/responses/Unauthorized" 1935 420: 1936 description: too many requests 1937 default: 1938 $ref: "#/components/responses/ServerError" 1939 post: 1940 tags: 1941 - auth 1942 operationId: createUser 1943 summary: create user 1944 requestBody: 1945 content: 1946 application/json: 1947 schema: 1948 $ref: "#/components/schemas/UserCreation" 1949 responses: 1950 201: 1951 description: user 1952 content: 1953 application/json: 1954 schema: 1955 $ref: "#/components/schemas/User" 1956 400: 1957 description: validation error 1958 content: 1959 application/json: 1960 schema: 1961 $ref: "#/components/schemas/Error" 1962 401: 1963 $ref: "#/components/responses/Unauthorized" 1964 409: 1965 $ref: "#/components/responses/Conflict" 1966 420: 1967 description: too many requests 1968 default: 1969 $ref: "#/components/responses/ServerError" 1970 1971 /auth/users/{userId}: 1972 parameters: 1973 - in: path 1974 name: userId 1975 required: true 1976 schema: 1977 type: string 1978 get: 1979 tags: 1980 - auth 1981 operationId: getUser 1982 summary: get user 1983 responses: 1984 200: 1985 description: user 1986 content: 1987 application/json: 1988 schema: 1989 $ref: "#/components/schemas/User" 1990 401: 1991 $ref: "#/components/responses/Unauthorized" 1992 404: 1993 $ref: "#/components/responses/NotFound" 1994 420: 1995 description: too many requests 1996 default: 1997 $ref: "#/components/responses/ServerError" 1998 delete: 1999 tags: 2000 - auth 2001 operationId: deleteUser 2002 summary: delete user 2003 responses: 2004 204: 2005 description: user deleted successfully 2006 401: 2007 $ref: "#/components/responses/Unauthorized" 2008 404: 2009 $ref: "#/components/responses/NotFound" 2010 420: 2011 description: too many requests 2012 default: 2013 $ref: "#/components/responses/ServerError" 2014 2015 /auth/groups: 2016 get: 2017 tags: 2018 - auth 2019 operationId: listGroups 2020 summary: list groups 2021 parameters: 2022 - $ref: "#/components/parameters/PaginationPrefix" 2023 - $ref: "#/components/parameters/PaginationAfter" 2024 - $ref: "#/components/parameters/PaginationAmount" 2025 responses: 2026 200: 2027 description: group list 2028 content: 2029 application/json: 2030 schema: 2031 $ref: "#/components/schemas/GroupList" 2032 401: 2033 $ref: "#/components/responses/Unauthorized" 2034 420: 2035 description: too many requests 2036 default: 2037 $ref: "#/components/responses/ServerError" 2038 post: 2039 tags: 2040 - auth 2041 operationId: createGroup 2042 summary: create group 2043 requestBody: 2044 content: 2045 application/json: 2046 schema: 2047 $ref: "#/components/schemas/GroupCreation" 2048 responses: 2049 201: 2050 description: group 2051 content: 2052 application/json: 2053 schema: 2054 $ref: "#/components/schemas/Group" 2055 401: 2056 $ref: "#/components/responses/Unauthorized" 2057 404: 2058 $ref: "#/components/responses/NotFound" 2059 420: 2060 description: too many requests 2061 default: 2062 $ref: "#/components/responses/ServerError" 2063 2064 /auth/groups/{groupId}: 2065 parameters: 2066 - in: path 2067 name: groupId 2068 required: true 2069 schema: 2070 type: string 2071 get: 2072 tags: 2073 - auth 2074 operationId: getGroup 2075 summary: get group 2076 responses: 2077 200: 2078 description: group 2079 content: 2080 application/json: 2081 schema: 2082 $ref: "#/components/schemas/Group" 2083 401: 2084 $ref: "#/components/responses/Unauthorized" 2085 404: 2086 $ref: "#/components/responses/NotFound" 2087 420: 2088 description: too many requests 2089 default: 2090 $ref: "#/components/responses/ServerError" 2091 delete: 2092 tags: 2093 - auth 2094 operationId: deleteGroup 2095 summary: delete group 2096 responses: 2097 204: 2098 description: group deleted successfully 2099 401: 2100 $ref: "#/components/responses/Unauthorized" 2101 404: 2102 $ref: "#/components/responses/NotFound" 2103 420: 2104 description: too many requests 2105 default: 2106 $ref: "#/components/responses/ServerError" 2107 2108 /auth/policies: 2109 get: 2110 tags: 2111 - auth 2112 operationId: listPolicies 2113 summary: list policies 2114 parameters: 2115 - $ref: "#/components/parameters/PaginationPrefix" 2116 - $ref: "#/components/parameters/PaginationAfter" 2117 - $ref: "#/components/parameters/PaginationAmount" 2118 responses: 2119 200: 2120 description: policy list 2121 content: 2122 application/json: 2123 schema: 2124 $ref: "#/components/schemas/PolicyList" 2125 401: 2126 $ref: "#/components/responses/Unauthorized" 2127 420: 2128 description: too many requests 2129 default: 2130 $ref: "#/components/responses/ServerError" 2131 post: 2132 tags: 2133 - auth 2134 operationId: createPolicy 2135 summary: create policy 2136 requestBody: 2137 required: true 2138 content: 2139 application/json: 2140 schema: 2141 $ref: "#/components/schemas/Policy" 2142 responses: 2143 201: 2144 description: policy 2145 content: 2146 application/json: 2147 schema: 2148 $ref: "#/components/schemas/Policy" 2149 400: 2150 $ref: "#/components/responses/ValidationError" 2151 401: 2152 $ref: "#/components/responses/Unauthorized" 2153 409: 2154 $ref: "#/components/responses/Conflict" 2155 420: 2156 description: too many requests 2157 default: 2158 $ref: "#/components/responses/ServerError" 2159 2160 /auth/policies/{policyId}: 2161 parameters: 2162 - in: path 2163 name: policyId 2164 required: true 2165 schema: 2166 type: string 2167 get: 2168 tags: 2169 - auth 2170 operationId: getPolicy 2171 summary: get policy 2172 responses: 2173 200: 2174 description: policy 2175 content: 2176 application/json: 2177 schema: 2178 $ref: "#/components/schemas/Policy" 2179 401: 2180 $ref: "#/components/responses/Unauthorized" 2181 404: 2182 $ref: "#/components/responses/NotFound" 2183 420: 2184 description: too many requests 2185 default: 2186 $ref: "#/components/responses/ServerError" 2187 put: 2188 tags: 2189 - auth 2190 operationId: updatePolicy 2191 summary: update policy 2192 requestBody: 2193 required: true 2194 content: 2195 application/json: 2196 schema: 2197 $ref: "#/components/schemas/Policy" 2198 responses: 2199 200: 2200 description: policy 2201 content: 2202 application/json: 2203 schema: 2204 $ref: "#/components/schemas/Policy" 2205 400: 2206 $ref: "#/components/responses/ValidationError" 2207 401: 2208 $ref: "#/components/responses/Unauthorized" 2209 404: 2210 $ref: "#/components/responses/NotFound" 2211 420: 2212 description: too many requests 2213 default: 2214 $ref: "#/components/responses/ServerError" 2215 delete: 2216 tags: 2217 - auth 2218 operationId: deletePolicy 2219 summary: delete policy 2220 responses: 2221 204: 2222 description: policy deleted successfully 2223 401: 2224 $ref: "#/components/responses/Unauthorized" 2225 404: 2226 $ref: "#/components/responses/NotFound" 2227 420: 2228 description: too many requests 2229 default: 2230 $ref: "#/components/responses/ServerError" 2231 2232 /auth/groups/{groupId}/members: 2233 parameters: 2234 - in: path 2235 name: groupId 2236 required: true 2237 schema: 2238 type: string 2239 get: 2240 tags: 2241 - auth 2242 operationId: listGroupMembers 2243 summary: list group members 2244 parameters: 2245 - $ref: "#/components/parameters/PaginationPrefix" 2246 - $ref: "#/components/parameters/PaginationAfter" 2247 - $ref: "#/components/parameters/PaginationAmount" 2248 responses: 2249 200: 2250 description: group member list 2251 content: 2252 application/json: 2253 schema: 2254 $ref: "#/components/schemas/UserList" 2255 401: 2256 $ref: "#/components/responses/Unauthorized" 2257 420: 2258 description: too many requests 2259 default: 2260 $ref: "#/components/responses/ServerError" 2261 2262 /auth/groups/{groupId}/members/{userId}: 2263 parameters: 2264 - in: path 2265 name: groupId 2266 required: true 2267 schema: 2268 type: string 2269 - in: path 2270 name: userId 2271 required: true 2272 schema: 2273 type: string 2274 put: 2275 tags: 2276 - auth 2277 operationId: addGroupMembership 2278 summary: add group membership 2279 responses: 2280 201: 2281 description: membership added successfully 2282 401: 2283 $ref: "#/components/responses/Unauthorized" 2284 404: 2285 $ref: "#/components/responses/NotFound" 2286 420: 2287 description: too many requests 2288 default: 2289 $ref: "#/components/responses/ServerError" 2290 2291 delete: 2292 tags: 2293 - auth 2294 operationId: deleteGroupMembership 2295 summary: delete group membership 2296 responses: 2297 204: 2298 description: membership deleted successfully 2299 401: 2300 $ref: "#/components/responses/Unauthorized" 2301 404: 2302 $ref: "#/components/responses/NotFound" 2303 420: 2304 description: too many requests 2305 default: 2306 $ref: "#/components/responses/ServerError" 2307 2308 /auth/users/{userId}/credentials: 2309 parameters: 2310 - in: path 2311 name: userId 2312 required: true 2313 schema: 2314 type: string 2315 get: 2316 tags: 2317 - auth 2318 parameters: 2319 - $ref: "#/components/parameters/PaginationPrefix" 2320 - $ref: "#/components/parameters/PaginationAfter" 2321 - $ref: "#/components/parameters/PaginationAmount" 2322 operationId: listUserCredentials 2323 summary: list user credentials 2324 responses: 2325 200: 2326 description: credential list 2327 content: 2328 application/json: 2329 schema: 2330 $ref: "#/components/schemas/CredentialsList" 2331 401: 2332 $ref: "#/components/responses/Unauthorized" 2333 404: 2334 $ref: "#/components/responses/NotFound" 2335 420: 2336 description: too many requests 2337 default: 2338 $ref: "#/components/responses/ServerError" 2339 2340 post: 2341 tags: 2342 - auth 2343 operationId: createCredentials 2344 summary: create credentials 2345 responses: 2346 201: 2347 description: credentials 2348 content: 2349 application/json: 2350 schema: 2351 $ref: "#/components/schemas/CredentialsWithSecret" 2352 401: 2353 $ref: "#/components/responses/Unauthorized" 2354 404: 2355 $ref: "#/components/responses/NotFound" 2356 420: 2357 description: too many requests 2358 default: 2359 $ref: "#/components/responses/ServerError" 2360 2361 /auth/users/{userId}/credentials/{accessKeyId}: 2362 parameters: 2363 - in: path 2364 name: userId 2365 required: true 2366 schema: 2367 type: string 2368 - in: path 2369 name: accessKeyId 2370 required: true 2371 schema: 2372 type: string 2373 delete: 2374 tags: 2375 - auth 2376 operationId: deleteCredentials 2377 summary: delete credentials 2378 responses: 2379 204: 2380 description: credentials deleted successfully 2381 401: 2382 $ref: "#/components/responses/Unauthorized" 2383 404: 2384 $ref: "#/components/responses/NotFound" 2385 420: 2386 description: too many requests 2387 default: 2388 $ref: "#/components/responses/ServerError" 2389 2390 get: 2391 tags: 2392 - auth 2393 operationId: getCredentials 2394 summary: get credentials 2395 responses: 2396 200: 2397 description: credentials 2398 content: 2399 application/json: 2400 schema: 2401 $ref: "#/components/schemas/Credentials" 2402 401: 2403 $ref: "#/components/responses/Unauthorized" 2404 404: 2405 $ref: "#/components/responses/NotFound" 2406 420: 2407 description: too many requests 2408 default: 2409 $ref: "#/components/responses/ServerError" 2410 2411 /auth/users/{userId}/groups: 2412 parameters: 2413 - in: path 2414 name: userId 2415 required: true 2416 schema: 2417 type: string 2418 get: 2419 tags: 2420 - auth 2421 parameters: 2422 - $ref: "#/components/parameters/PaginationPrefix" 2423 - $ref: "#/components/parameters/PaginationAfter" 2424 - $ref: "#/components/parameters/PaginationAmount" 2425 operationId: listUserGroups 2426 summary: list user groups 2427 responses: 2428 200: 2429 description: group list 2430 content: 2431 application/json: 2432 schema: 2433 $ref: "#/components/schemas/GroupList" 2434 401: 2435 $ref: "#/components/responses/Unauthorized" 2436 404: 2437 $ref: "#/components/responses/NotFound" 2438 420: 2439 description: too many requests 2440 default: 2441 $ref: "#/components/responses/ServerError" 2442 2443 /auth/users/{userId}/policies: 2444 parameters: 2445 - in: path 2446 name: userId 2447 required: true 2448 schema: 2449 type: string 2450 get: 2451 tags: 2452 - auth 2453 parameters: 2454 - $ref: "#/components/parameters/PaginationPrefix" 2455 - $ref: "#/components/parameters/PaginationAfter" 2456 - $ref: "#/components/parameters/PaginationAmount" 2457 - in: query 2458 name: effective 2459 schema: 2460 type: boolean 2461 default: false 2462 description: will return all distinct policies attached to the user or any of its groups 2463 operationId: listUserPolicies 2464 summary: list user policies 2465 responses: 2466 200: 2467 description: policy list 2468 content: 2469 application/json: 2470 schema: 2471 $ref: "#/components/schemas/PolicyList" 2472 401: 2473 $ref: "#/components/responses/Unauthorized" 2474 404: 2475 $ref: "#/components/responses/NotFound" 2476 420: 2477 description: too many requests 2478 default: 2479 $ref: "#/components/responses/ServerError" 2480 2481 /auth/users/{userId}/policies/{policyId}: 2482 parameters: 2483 - in: path 2484 name: userId 2485 required: true 2486 schema: 2487 type: string 2488 - in: path 2489 name: policyId 2490 required: true 2491 schema: 2492 type: string 2493 put: 2494 tags: 2495 - auth 2496 operationId: attachPolicyToUser 2497 summary: attach policy to user 2498 responses: 2499 201: 2500 description: policy attached successfully 2501 401: 2502 $ref: "#/components/responses/Unauthorized" 2503 404: 2504 $ref: "#/components/responses/NotFound" 2505 420: 2506 description: too many requests 2507 default: 2508 $ref: "#/components/responses/ServerError" 2509 delete: 2510 tags: 2511 - auth 2512 operationId: detachPolicyFromUser 2513 summary: detach policy from user 2514 responses: 2515 204: 2516 description: policy detached successfully 2517 401: 2518 $ref: "#/components/responses/Unauthorized" 2519 404: 2520 $ref: "#/components/responses/NotFound" 2521 420: 2522 description: too many requests 2523 default: 2524 $ref: "#/components/responses/ServerError" 2525 2526 2527 /auth/users/{userId}/external/principals: 2528 parameters: 2529 - in: path 2530 name: userId 2531 required: true 2532 schema: 2533 type: string 2534 - in: query 2535 name: principalId 2536 required: true 2537 schema: 2538 type: string 2539 post: 2540 tags: 2541 - auth 2542 - external 2543 - experimental 2544 operationId: createUserExternalPrincipal 2545 summary: attach external principal to user 2546 requestBody: 2547 required: false 2548 content: 2549 application/json: 2550 schema: 2551 $ref: "#/components/schemas/ExternalPrincipalCreation" 2552 responses: 2553 201: 2554 description: external principal attached successfully 2555 401: 2556 $ref: "#/components/responses/Unauthorized" 2557 404: 2558 $ref: "#/components/responses/NotFound" 2559 409: 2560 $ref: "#/components/responses/Conflict" 2561 420: 2562 description: too many requests 2563 default: 2564 $ref: "#/components/responses/ServerError" 2565 delete: 2566 tags: 2567 - auth 2568 - external 2569 - experimental 2570 operationId: deleteUserExternalPrincipal 2571 summary: delete external principal from user 2572 responses: 2573 204: 2574 description: external principal detached successfully 2575 401: 2576 $ref: "#/components/responses/Unauthorized" 2577 404: 2578 $ref: "#/components/responses/NotFound" 2579 420: 2580 description: too many requests 2581 default: 2582 $ref: "#/components/responses/ServerError" 2583 2584 /auth/users/{userId}/external/principals/ls: 2585 parameters: 2586 - in: path 2587 name: userId 2588 required: true 2589 schema: 2590 type: string 2591 get: 2592 tags: 2593 - auth 2594 - external 2595 - experimental 2596 parameters: 2597 - $ref: "#/components/parameters/PaginationPrefix" 2598 - $ref: "#/components/parameters/PaginationAfter" 2599 - $ref: "#/components/parameters/PaginationAmount" 2600 operationId: listUserExternalPrincipals 2601 summary: list user external policies attached to a user 2602 responses: 2603 200: 2604 description: external principals list 2605 content: 2606 application/json: 2607 schema: 2608 $ref: "#/components/schemas/ExternalPrincipalList" 2609 401: 2610 $ref: "#/components/responses/Unauthorized" 2611 404: 2612 $ref: "#/components/responses/NotFound" 2613 420: 2614 description: too many requests 2615 default: 2616 $ref: "#/components/responses/ServerError" 2617 2618 /auth/external/principals: 2619 parameters: 2620 - in: query 2621 name: principalId 2622 required: true 2623 schema: 2624 type: string 2625 get: 2626 tags: 2627 - auth 2628 - external 2629 - experimental 2630 operationId: getExternalPrincipal 2631 summary: describe external principal by id 2632 responses: 2633 200: 2634 description: external principal 2635 content: 2636 application/json: 2637 schema: 2638 $ref: "#/components/schemas/ExternalPrincipal" 2639 401: 2640 $ref: "#/components/responses/Unauthorized" 2641 404: 2642 $ref: "#/components/responses/NotFound" 2643 420: 2644 description: too many requests 2645 default: 2646 $ref: "#/components/responses/ServerError" 2647 2648 /auth/groups/{groupId}/policies: 2649 parameters: 2650 - in: path 2651 name: groupId 2652 required: true 2653 schema: 2654 type: string 2655 get: 2656 tags: 2657 - auth 2658 parameters: 2659 - $ref: "#/components/parameters/PaginationPrefix" 2660 - $ref: "#/components/parameters/PaginationAfter" 2661 - $ref: "#/components/parameters/PaginationAmount" 2662 operationId: listGroupPolicies 2663 summary: list group policies 2664 responses: 2665 200: 2666 description: policy list 2667 content: 2668 application/json: 2669 schema: 2670 $ref: "#/components/schemas/PolicyList" 2671 401: 2672 $ref: "#/components/responses/Unauthorized" 2673 404: 2674 $ref: "#/components/responses/NotFound" 2675 420: 2676 description: too many requests 2677 default: 2678 $ref: "#/components/responses/ServerError" 2679 2680 /auth/groups/{groupId}/policies/{policyId}: 2681 parameters: 2682 - in: path 2683 name: groupId 2684 required: true 2685 schema: 2686 type: string 2687 - in: path 2688 name: policyId 2689 required: true 2690 schema: 2691 type: string 2692 put: 2693 tags: 2694 - auth 2695 operationId: attachPolicyToGroup 2696 summary: attach policy to group 2697 responses: 2698 201: 2699 description: policy attached successfully 2700 401: 2701 $ref: "#/components/responses/Unauthorized" 2702 404: 2703 $ref: "#/components/responses/NotFound" 2704 420: 2705 description: too many requests 2706 default: 2707 $ref: "#/components/responses/ServerError" 2708 2709 delete: 2710 tags: 2711 - auth 2712 operationId: detachPolicyFromGroup 2713 summary: detach policy from group 2714 responses: 2715 204: 2716 description: policy detached successfully 2717 401: 2718 $ref: "#/components/responses/Unauthorized" 2719 404: 2720 $ref: "#/components/responses/NotFound" 2721 420: 2722 description: too many requests 2723 default: 2724 $ref: "#/components/responses/ServerError" 2725 2726 /auth/groups/{groupId}/acl: 2727 parameters: 2728 - in: path 2729 name: groupId 2730 required: true 2731 schema: 2732 type: string 2733 2734 post: 2735 tags: 2736 - auth 2737 operationId: setGroupACL 2738 summary: set ACL of group 2739 requestBody: 2740 required: true 2741 content: 2742 application/json: 2743 schema: 2744 $ref: "#/components/schemas/ACL" 2745 responses: 2746 201: 2747 description: ACL successfully changed 2748 401: 2749 $ref: "#/components/responses/Unauthorized" 2750 404: 2751 $ref: "#/components/responses/NotFound" 2752 420: 2753 description: too many requests 2754 default: 2755 $ref: "#/components/responses/ServerError" 2756 2757 get: 2758 tags: 2759 - auth 2760 operationId: getGroupACL 2761 summary: get ACL of group 2762 responses: 2763 200: 2764 description: ACL of group 2765 content: 2766 application/json: 2767 schema: 2768 $ref: "#/components/schemas/ACL" 2769 401: 2770 $ref: "#/components/responses/Unauthorized" 2771 404: 2772 $ref: "#/components/responses/NotFoundOrNoACL" 2773 420: 2774 description: too many requests 2775 default: 2776 $ref: "#/components/responses/ServerError" 2777 2778 /repositories: 2779 get: 2780 tags: 2781 - repositories 2782 parameters: 2783 - $ref: "#/components/parameters/PaginationPrefix" 2784 - $ref: "#/components/parameters/PaginationAfter" 2785 - $ref: "#/components/parameters/PaginationAmount" 2786 operationId: listRepositories 2787 summary: list repositories 2788 responses: 2789 200: 2790 description: repository list 2791 content: 2792 application/json: 2793 schema: 2794 $ref: "#/components/schemas/RepositoryList" 2795 401: 2796 $ref: "#/components/responses/Unauthorized" 2797 420: 2798 description: too many requests 2799 default: 2800 $ref: "#/components/responses/ServerError" 2801 post: 2802 tags: 2803 - repositories 2804 operationId: createRepository 2805 summary: create repository 2806 requestBody: 2807 required: true 2808 content: 2809 application/json: 2810 schema: 2811 $ref: "#/components/schemas/RepositoryCreation" 2812 parameters: 2813 - in: query 2814 name: bare 2815 schema: 2816 type: boolean 2817 default: false 2818 description: If true, create a bare repository with no initial commit and branch 2819 responses: 2820 201: 2821 description: repository 2822 content: 2823 application/json: 2824 schema: 2825 $ref: "#/components/schemas/Repository" 2826 400: 2827 $ref: "#/components/responses/ValidationError" 2828 401: 2829 $ref: "#/components/responses/Unauthorized" 2830 409: 2831 $ref: "#/components/responses/Conflict" 2832 420: 2833 description: too many requests 2834 default: 2835 $ref: "#/components/responses/ServerError" 2836 2837 /repositories/{repository}: 2838 parameters: 2839 - in: path 2840 name: repository 2841 required: true 2842 schema: 2843 type: string 2844 get: 2845 tags: 2846 - repositories 2847 operationId: getRepository 2848 summary: get repository 2849 responses: 2850 200: 2851 description: repository 2852 content: 2853 application/json: 2854 schema: 2855 $ref: "#/components/schemas/Repository" 2856 401: 2857 $ref: "#/components/responses/Unauthorized" 2858 404: 2859 $ref: "#/components/responses/NotFound" 2860 420: 2861 description: too many requests 2862 default: 2863 $ref: "#/components/responses/ServerError" 2864 delete: 2865 tags: 2866 - repositories 2867 operationId: deleteRepository 2868 summary: delete repository 2869 parameters: 2870 - in: query 2871 name: force 2872 schema: 2873 type: boolean 2874 default: false 2875 description: Bypass read-only protection and delete the repository 2876 responses: 2877 204: 2878 description: repository deleted successfully 2879 401: 2880 $ref: "#/components/responses/Unauthorized" 2881 404: 2882 $ref: "#/components/responses/NotFound" 2883 420: 2884 description: too many requests 2885 default: 2886 $ref: "#/components/responses/ServerError" 2887 2888 /repositories/{repository}/metadata: 2889 parameters: 2890 - in: path 2891 name: repository 2892 required: true 2893 schema: 2894 type: string 2895 get: 2896 tags: 2897 - repositories 2898 operationId: getRepositoryMetadata 2899 summary: get repository metadata 2900 responses: 2901 200: 2902 description: repository metadata 2903 content: 2904 application/json: 2905 schema: 2906 $ref: "#/components/schemas/RepositoryMetadata" 2907 401: 2908 $ref: "#/components/responses/Unauthorized" 2909 404: 2910 $ref: "#/components/responses/NotFound" 2911 420: 2912 description: too many requests 2913 default: 2914 $ref: "#/components/responses/ServerError" 2915 post: 2916 tags: 2917 - internal 2918 operationId: setRepositoryMetadata 2919 summary: set repository metadata 2920 description: | 2921 Set repository metadata. This will only add or update the provided keys, and will not remove any existing keys. 2922 requestBody: 2923 required: true 2924 content: 2925 application/json: 2926 schema: 2927 $ref: "#/components/schemas/RepositoryMetadataSet" 2928 responses: 2929 204: 2930 description: repository metadata set successfully 2931 401: 2932 $ref: "#/components/responses/Unauthorized" 2933 404: 2934 $ref: "#/components/responses/NotFound" 2935 420: 2936 description: too many requests 2937 default: 2938 $ref: "#/components/responses/ServerError" 2939 delete: 2940 tags: 2941 - internal 2942 operationId: deleteRepositoryMetadata 2943 summary: delete repository metadata 2944 description: | 2945 Delete specified keys from the repository's metadata. 2946 requestBody: 2947 required: true 2948 content: 2949 application/json: 2950 schema: 2951 $ref: "#/components/schemas/RepositoryMetadataKeys" 2952 responses: 2953 204: 2954 description: repository metadata keys deleted successfully 2955 401: 2956 $ref: "#/components/responses/Unauthorized" 2957 420: 2958 description: too many requests 2959 default: 2960 $ref: "#/components/responses/ServerError" 2961 2962 /repositories/{repository}/settings/gc_rules: 2963 parameters: 2964 - in: path 2965 name: repository 2966 required: true 2967 schema: 2968 type: string 2969 get: 2970 tags: 2971 - repositories 2972 operationId: getGCRules 2973 summary: get repository GC rules 2974 responses: 2975 200: 2976 description: repository GC rules 2977 content: 2978 application/json: 2979 schema: 2980 $ref: "#/components/schemas/GarbageCollectionRules" 2981 401: 2982 $ref: "#/components/responses/Unauthorized" 2983 404: 2984 $ref: "#/components/responses/NotFound" 2985 420: 2986 description: too many requests 2987 default: 2988 $ref: "#/components/responses/ServerError" 2989 put: 2990 tags: 2991 - repositories 2992 operationId: setGCRules 2993 requestBody: 2994 required: true 2995 content: 2996 application/json: 2997 schema: 2998 $ref: "#/components/schemas/GarbageCollectionRules" 2999 responses: 3000 204: 3001 description: set garbage collection rules successfully 3002 401: 3003 $ref: "#/components/responses/Unauthorized" 3004 403: 3005 $ref: "#/components/responses/Forbidden" 3006 404: 3007 $ref: "#/components/responses/NotFound" 3008 420: 3009 description: too many requests 3010 default: 3011 $ref: "#/components/responses/ServerError" 3012 delete: 3013 tags: 3014 - repositories 3015 operationId: deleteGCRules 3016 responses: 3017 204: 3018 description: deleted garbage collection rules successfully 3019 401: 3020 $ref: "#/components/responses/Unauthorized" 3021 403: 3022 $ref: "#/components/responses/Forbidden" 3023 404: 3024 $ref: "#/components/responses/NotFound" 3025 420: 3026 description: too many requests 3027 default: 3028 $ref: "#/components/responses/ServerError" 3029 3030 /repositories/{repository}/settings/branch_protection: 3031 parameters: 3032 - in: path 3033 name: repository 3034 required: true 3035 schema: 3036 type: string 3037 get: 3038 tags: 3039 - repositories 3040 operationId: getBranchProtectionRules 3041 summary: get branch protection rules 3042 responses: 3043 200: 3044 description: branch protection rules 3045 content: 3046 application/json: 3047 schema: 3048 type: array 3049 items: 3050 $ref: "#/components/schemas/BranchProtectionRule" 3051 headers: 3052 ETag: 3053 schema: 3054 type: string 3055 description: ETag of the branch protection rules 3056 401: 3057 $ref: "#/components/responses/Unauthorized" 3058 404: 3059 $ref: "#/components/responses/NotFound" 3060 420: 3061 description: too many requests 3062 default: 3063 $ref: "#/components/responses/ServerError" 3064 3065 put: 3066 parameters: 3067 - in: header 3068 name: If-Match 3069 schema: 3070 type: string 3071 description: if provided, the branch protection rules will be updated only if the current ETag match the provided value 3072 allowEmptyValue: true 3073 tags: 3074 - repositories 3075 operationId: setBranchProtectionRules 3076 requestBody: 3077 required: true 3078 content: 3079 application/json: 3080 schema: 3081 type: array 3082 items: 3083 $ref: "#/components/schemas/BranchProtectionRule" 3084 responses: 3085 204: 3086 description: branch protection rule created successfully 3087 400: 3088 $ref: "#/components/responses/BadRequest" 3089 401: 3090 $ref: "#/components/responses/Unauthorized" 3091 403: 3092 $ref: "#/components/responses/Forbidden" 3093 404: 3094 $ref: "#/components/responses/NotFound" 3095 412: 3096 $ref: "#/components/responses/PreconditionFailed" 3097 420: 3098 description: too many requests 3099 default: 3100 $ref: "#/components/responses/ServerError" 3101 3102 /repositories/{repository}/refs/dump: 3103 parameters: 3104 - in: path 3105 name: repository 3106 required: true 3107 schema: 3108 type: string 3109 put: 3110 tags: 3111 - internal 3112 operationId: dumpRefs 3113 summary: | 3114 Dump repository refs (tags, commits, branches) to object store 3115 Deprecated: a new API will introduce long running operations 3116 responses: 3117 201: 3118 description: refs dump 3119 content: 3120 application/json: 3121 schema: 3122 $ref: "#/components/schemas/RefsDump" 3123 400: 3124 $ref: "#/components/responses/ValidationError" 3125 401: 3126 $ref: "#/components/responses/Unauthorized" 3127 404: 3128 $ref: "#/components/responses/NotFound" 3129 420: 3130 description: too many requests 3131 default: 3132 $ref: "#/components/responses/ServerError" 3133 3134 /repositories/{repository}/refs/restore: 3135 parameters: 3136 - in: path 3137 name: repository 3138 required: true 3139 schema: 3140 type: string 3141 put: 3142 tags: 3143 - internal 3144 operationId: restoreRefs 3145 summary: | 3146 Restore repository refs (tags, commits, branches) from object store. 3147 Deprecated: a new API will introduce long running operations 3148 requestBody: 3149 required: true 3150 content: 3151 application/json: 3152 schema: 3153 $ref: "#/components/schemas/RefsRestore" 3154 responses: 3155 200: 3156 description: refs successfully loaded 3157 400: 3158 $ref: "#/components/responses/ValidationError" 3159 401: 3160 $ref: "#/components/responses/Unauthorized" 3161 404: 3162 $ref: "#/components/responses/NotFound" 3163 420: 3164 description: too many requests 3165 default: 3166 $ref: "#/components/responses/ServerError" 3167 3168 /repositories/{repository}/dump: 3169 parameters: 3170 - in: path 3171 name: repository 3172 required: true 3173 schema: 3174 type: string 3175 post: 3176 tags: 3177 - repositories 3178 operationId: dumpSubmit 3179 summary: Backup the repository metadata (tags, commits, branches) and save the backup to the object store. 3180 responses: 3181 202: 3182 description: dump task information 3183 content: 3184 application/json: 3185 schema: 3186 $ref: "#/components/schemas/TaskInfo" 3187 400: 3188 $ref: "#/components/responses/ValidationError" 3189 401: 3190 $ref: "#/components/responses/Unauthorized" 3191 404: 3192 $ref: "#/components/responses/NotFound" 3193 default: 3194 $ref: "#/components/responses/ServerError" 3195 get: 3196 tags: 3197 - repositories 3198 operationId: dumpStatus 3199 summary: Status of a repository dump task 3200 parameters: 3201 - in: query 3202 name: task_id 3203 required: true 3204 schema: 3205 type: string 3206 responses: 3207 200: 3208 description: dump task status 3209 content: 3210 application/json: 3211 schema: 3212 $ref: "#/components/schemas/RepositoryDumpStatus" 3213 400: 3214 $ref: "#/components/responses/ValidationError" 3215 401: 3216 $ref: "#/components/responses/Unauthorized" 3217 404: 3218 $ref: "#/components/responses/NotFound" 3219 420: 3220 description: too many requests 3221 default: 3222 $ref: "#/components/responses/ServerError" 3223 3224 /repositories/{repository}/restore: 3225 parameters: 3226 - in: path 3227 name: repository 3228 required: true 3229 schema: 3230 type: string 3231 post: 3232 tags: 3233 - repositories 3234 operationId: restoreSubmit 3235 summary: Restore repository from a dump in the object store 3236 requestBody: 3237 required: true 3238 content: 3239 application/json: 3240 schema: 3241 $ref: "#/components/schemas/RefsRestore" 3242 responses: 3243 202: 3244 description: restore task created 3245 content: 3246 application/json: 3247 schema: 3248 $ref: "#/components/schemas/TaskInfo" 3249 400: 3250 $ref: "#/components/responses/ValidationError" 3251 403: 3252 $ref: "#/components/responses/Forbidden" 3253 401: 3254 $ref: "#/components/responses/Unauthorized" 3255 404: 3256 $ref: "#/components/responses/NotFound" 3257 default: 3258 $ref: "#/components/responses/ServerError" 3259 get: 3260 tags: 3261 - repositories 3262 operationId: restoreStatus 3263 summary: Status of a restore request 3264 parameters: 3265 - in: query 3266 name: task_id 3267 required: true 3268 schema: 3269 type: string 3270 responses: 3271 200: 3272 description: restore task status 3273 content: 3274 application/json: 3275 schema: 3276 $ref: "#/components/schemas/RepositoryRestoreStatus" 3277 400: 3278 $ref: "#/components/responses/ValidationError" 3279 401: 3280 $ref: "#/components/responses/Unauthorized" 3281 404: 3282 $ref: "#/components/responses/NotFound" 3283 420: 3284 description: too many requests 3285 default: 3286 $ref: "#/components/responses/ServerError" 3287 3288 /repositories/{repository}/tags: 3289 parameters: 3290 - in: path 3291 name: repository 3292 required: true 3293 schema: 3294 type: string 3295 get: 3296 tags: 3297 - tags 3298 operationId: listTags 3299 summary: list tags 3300 parameters: 3301 - $ref: "#/components/parameters/PaginationPrefix" 3302 - $ref: "#/components/parameters/PaginationAfter" 3303 - $ref: "#/components/parameters/PaginationAmount" 3304 responses: 3305 200: 3306 description: tag list 3307 content: 3308 application/json: 3309 schema: 3310 $ref: "#/components/schemas/RefList" 3311 401: 3312 $ref: "#/components/responses/Unauthorized" 3313 404: 3314 $ref: "#/components/responses/NotFound" 3315 420: 3316 description: too many requests 3317 default: 3318 $ref: "#/components/responses/ServerError" 3319 3320 post: 3321 tags: 3322 - tags 3323 operationId: createTag 3324 summary: create tag 3325 requestBody: 3326 required: true 3327 content: 3328 application/json: 3329 schema: 3330 $ref: "#/components/schemas/TagCreation" 3331 responses: 3332 201: 3333 description: tag 3334 content: 3335 application/json: 3336 schema: 3337 $ref: "#/components/schemas/Ref" 3338 400: 3339 $ref: "#/components/responses/ValidationError" 3340 401: 3341 $ref: "#/components/responses/Unauthorized" 3342 403: 3343 $ref: "#/components/responses/Forbidden" 3344 404: 3345 $ref: "#/components/responses/NotFound" 3346 409: 3347 $ref: "#/components/responses/Conflict" 3348 420: 3349 description: too many requests 3350 default: 3351 $ref: "#/components/responses/ServerError" 3352 3353 /repositories/{repository}/tags/{tag}: 3354 parameters: 3355 - in: path 3356 name: repository 3357 required: true 3358 schema: 3359 type: string 3360 - in: path 3361 name: tag 3362 required: true 3363 schema: 3364 type: string 3365 get: 3366 tags: 3367 - tags 3368 operationId: getTag 3369 summary: get tag 3370 responses: 3371 200: 3372 description: tag 3373 content: 3374 application/json: 3375 schema: 3376 $ref: "#/components/schemas/Ref" 3377 401: 3378 $ref: "#/components/responses/Unauthorized" 3379 404: 3380 $ref: "#/components/responses/NotFound" 3381 420: 3382 description: too many requests 3383 default: 3384 $ref: "#/components/responses/ServerError" 3385 delete: 3386 tags: 3387 - tags 3388 operationId: deleteTag 3389 summary: delete tag 3390 parameters: 3391 - in: query 3392 name: force 3393 required: false 3394 schema: 3395 type: boolean 3396 responses: 3397 204: 3398 description: tag deleted successfully 3399 401: 3400 $ref: "#/components/responses/Unauthorized" 3401 403: 3402 $ref: "#/components/responses/Forbidden" 3403 404: 3404 $ref: "#/components/responses/NotFound" 3405 420: 3406 description: too many requests 3407 default: 3408 $ref: "#/components/responses/ServerError" 3409 3410 /repositories/{repository}/branches: 3411 parameters: 3412 - in: path 3413 name: repository 3414 required: true 3415 schema: 3416 type: string 3417 get: 3418 tags: 3419 - branches 3420 operationId: listBranches 3421 summary: list branches 3422 parameters: 3423 - $ref: "#/components/parameters/PaginationPrefix" 3424 - $ref: "#/components/parameters/PaginationAfter" 3425 - $ref: "#/components/parameters/PaginationAmount" 3426 responses: 3427 200: 3428 description: branch list 3429 content: 3430 application/json: 3431 schema: 3432 $ref: "#/components/schemas/RefList" 3433 401: 3434 $ref: "#/components/responses/Unauthorized" 3435 404: 3436 $ref: "#/components/responses/NotFound" 3437 420: 3438 description: too many requests 3439 default: 3440 $ref: "#/components/responses/ServerError" 3441 post: 3442 tags: 3443 - branches 3444 operationId: createBranch 3445 summary: create branch 3446 requestBody: 3447 required: true 3448 content: 3449 application/json: 3450 schema: 3451 $ref: "#/components/schemas/BranchCreation" 3452 responses: 3453 201: 3454 description: reference 3455 content: 3456 text/html: 3457 schema: 3458 type: string 3459 400: 3460 $ref: "#/components/responses/ValidationError" 3461 401: 3462 $ref: "#/components/responses/Unauthorized" 3463 403: 3464 $ref: "#/components/responses/Forbidden" 3465 404: 3466 $ref: "#/components/responses/NotFound" 3467 409: 3468 $ref: "#/components/responses/Conflict" 3469 420: 3470 description: too many requests 3471 default: 3472 $ref: "#/components/responses/ServerError" 3473 3474 /repositories/{repository}/refs/{ref}/commits: 3475 parameters: 3476 - in: path 3477 name: repository 3478 required: true 3479 schema: 3480 type: string 3481 - in: path 3482 name: ref 3483 required: true 3484 schema: 3485 type: string 3486 get: 3487 tags: 3488 - refs 3489 operationId: logCommits 3490 summary: get commit log from ref. If both objects and prefixes are empty, return all commits. 3491 parameters: 3492 - $ref: "#/components/parameters/PaginationAfter" 3493 - $ref: "#/components/parameters/PaginationAmount" 3494 - in: query 3495 name: objects 3496 description: list of paths, each element is a path of a specific object 3497 schema: 3498 type: array 3499 items: 3500 type: string 3501 - in: query 3502 name: prefixes 3503 description: list of paths, each element is a path of a prefix 3504 schema: 3505 type: array 3506 items: 3507 type: string 3508 - in: query 3509 name: limit 3510 description: limit the number of items in return to 'amount'. Without further indication on actual number of items. 3511 schema: 3512 type: boolean 3513 - in: query 3514 name: first_parent 3515 description: if set to true, follow only the first parent upon reaching a merge commit 3516 schema: 3517 type: boolean 3518 - in: query 3519 name: since 3520 description: Show commits more recent than a specific date-time. In case used with stop_at parameter, will stop at the first commit that meets any of the conditions. 3521 schema: 3522 type: string 3523 format: date-time 3524 - in: query 3525 name: stop_at 3526 description: A reference to stop at. In case used with since parameter, will stop at the first commit that meets any of the conditions. 3527 schema: 3528 type: string 3529 responses: 3530 200: 3531 description: commit log 3532 content: 3533 application/json: 3534 schema: 3535 $ref: "#/components/schemas/CommitList" 3536 401: 3537 $ref: "#/components/responses/Unauthorized" 3538 404: 3539 $ref: "#/components/responses/NotFound" 3540 420: 3541 description: too many requests 3542 default: 3543 $ref: "#/components/responses/ServerError" 3544 3545 /repositories/{repository}/branches/{branch}/commits: 3546 parameters: 3547 - in: path 3548 name: repository 3549 required: true 3550 schema: 3551 type: string 3552 - in: path 3553 name: branch 3554 required: true 3555 schema: 3556 type: string 3557 post: 3558 parameters: 3559 - in: query 3560 name: source_metarange 3561 required: false 3562 description: The source metarange to commit. Branch must not have uncommitted changes. 3563 schema: 3564 type: string 3565 tags: 3566 - commits 3567 operationId: commit 3568 summary: create commit 3569 requestBody: 3570 required: true 3571 content: 3572 application/json: 3573 schema: 3574 $ref: "#/components/schemas/CommitCreation" 3575 responses: 3576 201: 3577 description: commit 3578 content: 3579 application/json: 3580 schema: 3581 $ref: "#/components/schemas/Commit" 3582 400: 3583 $ref: "#/components/responses/ValidationError" 3584 401: 3585 $ref: "#/components/responses/Unauthorized" 3586 403: 3587 $ref: "#/components/responses/Forbidden" 3588 404: 3589 $ref: "#/components/responses/NotFound" 3590 409: 3591 $ref: "#/components/responses/Conflict" 3592 412: 3593 description: Precondition Failed (e.g. a pre-commit hook returned a failure) 3594 content: 3595 application/json: 3596 schema: 3597 $ref: "#/components/schemas/Error" 3598 420: 3599 description: too many requests 3600 default: 3601 $ref: "#/components/responses/ServerError" 3602 3603 /repositories/{repository}/commits: 3604 parameters: 3605 - in: path 3606 name: repository 3607 required: true 3608 schema: 3609 type: string 3610 post: 3611 tags: 3612 - internal 3613 operationId: CreateCommitRecord 3614 summary: create commit record 3615 requestBody: 3616 required: true 3617 content: 3618 application/json: 3619 schema: 3620 $ref: "#/components/schemas/CommitRecordCreation" 3621 responses: 3622 204: 3623 description: commit record created 3624 400: 3625 $ref: "#/components/responses/ValidationError" 3626 401: 3627 $ref: "#/components/responses/Unauthorized" 3628 403: 3629 $ref: "#/components/responses/Forbidden" 3630 404: 3631 $ref: "#/components/responses/NotFound" 3632 420: 3633 description: too many requests 3634 default: 3635 $ref: "#/components/responses/ServerError" 3636 3637 /repositories/{repository}/branches/{branch}: 3638 parameters: 3639 - in: path 3640 name: repository 3641 required: true 3642 schema: 3643 type: string 3644 - in: path 3645 name: branch 3646 required: true 3647 schema: 3648 type: string 3649 get: 3650 tags: 3651 - branches 3652 operationId: getBranch 3653 summary: get branch 3654 responses: 3655 200: 3656 description: branch 3657 content: 3658 application/json: 3659 schema: 3660 $ref: "#/components/schemas/Ref" 3661 401: 3662 $ref: "#/components/responses/Unauthorized" 3663 404: 3664 $ref: "#/components/responses/NotFound" 3665 420: 3666 description: too many requests 3667 default: 3668 $ref: "#/components/responses/ServerError" 3669 delete: 3670 tags: 3671 - branches 3672 operationId: deleteBranch 3673 summary: delete branch 3674 parameters: 3675 - in: query 3676 name: force 3677 required: false 3678 schema: 3679 type: boolean 3680 default: false 3681 responses: 3682 204: 3683 description: branch deleted successfully 3684 401: 3685 $ref: "#/components/responses/Unauthorized" 3686 403: 3687 $ref: "#/components/responses/Forbidden" 3688 404: 3689 $ref: "#/components/responses/NotFound" 3690 420: 3691 description: too many requests 3692 default: 3693 $ref: "#/components/responses/ServerError" 3694 put: 3695 tags: 3696 - branches 3697 operationId: resetBranch 3698 summary: reset branch 3699 requestBody: 3700 required: true 3701 content: 3702 application/json: 3703 schema: 3704 $ref: "#/components/schemas/ResetCreation" 3705 responses: 3706 204: 3707 description: reset successful 3708 400: 3709 $ref: "#/components/responses/BadRequest" 3710 401: 3711 $ref: "#/components/responses/Unauthorized" 3712 403: 3713 $ref: "#/components/responses/Forbidden" 3714 404: 3715 $ref: "#/components/responses/NotFound" 3716 420: 3717 description: too many requests 3718 default: 3719 $ref: "#/components/responses/ServerError" 3720 3721 /repositories/{repository}/branches/{branch}/hard_reset: 3722 parameters: 3723 - in: path 3724 name: repository 3725 required: true 3726 schema: 3727 type: string 3728 - in: path 3729 name: branch 3730 required: true 3731 schema: 3732 type: string 3733 put: 3734 tags: 3735 - experimental 3736 operationId: hardResetBranch 3737 summary: hard reset branch 3738 description: 3739 Relocate branch to refer to ref. Branch must not contain 3740 uncommitted data. 3741 parameters: 3742 - in: query 3743 name: ref 3744 required: true 3745 schema: 3746 type: string 3747 description: After reset, branch will point at this reference. 3748 - in: query 3749 name: force 3750 required: false 3751 schema: 3752 type: boolean 3753 default: false 3754 responses: 3755 204: 3756 description: reset successful 3757 400: 3758 $ref: "#/components/responses/BadRequest" 3759 401: 3760 $ref: "#/components/responses/Unauthorized" 3761 403: 3762 $ref: "#/components/responses/Forbidden" 3763 404: 3764 $ref: "#/components/responses/NotFound" 3765 420: 3766 description: too many requests 3767 default: 3768 $ref: "#/components/responses/ServerError" 3769 3770 /repositories/{repository}/branches/{branch}/revert: 3771 parameters: 3772 - in: path 3773 name: repository 3774 required: true 3775 schema: 3776 type: string 3777 - in: path 3778 name: branch 3779 required: true 3780 schema: 3781 type: string 3782 post: 3783 tags: 3784 - branches 3785 operationId: revertBranch 3786 summary: revert 3787 requestBody: 3788 required: true 3789 content: 3790 application/json: 3791 schema: 3792 $ref: "#/components/schemas/RevertCreation" 3793 responses: 3794 204: 3795 description: revert successful 3796 400: 3797 $ref: "#/components/responses/ValidationError" 3798 401: 3799 $ref: "#/components/responses/Unauthorized" 3800 403: 3801 $ref: "#/components/responses/Forbidden" 3802 404: 3803 $ref: "#/components/responses/NotFound" 3804 409: 3805 description: Conflict Found 3806 content: 3807 application/json: 3808 schema: 3809 $ref: "#/components/schemas/Error" 3810 420: 3811 description: too many requests 3812 default: 3813 $ref: "#/components/responses/ServerError" 3814 3815 /repositories/{repository}/branches/{branch}/cherry-pick: 3816 parameters: 3817 - in: path 3818 name: repository 3819 required: true 3820 schema: 3821 type: string 3822 - in: path 3823 name: branch 3824 required: true 3825 schema: 3826 type: string 3827 post: 3828 tags: 3829 - branches 3830 operationId: cherryPick 3831 summary: Replay the changes from the given commit on the branch 3832 requestBody: 3833 required: true 3834 content: 3835 application/json: 3836 schema: 3837 $ref: "#/components/schemas/CherryPickCreation" 3838 responses: 3839 201: 3840 description: the cherry-pick commit 3841 content: 3842 application/json: 3843 schema: 3844 $ref: "#/components/schemas/Commit" 3845 400: 3846 $ref: "#/components/responses/ValidationError" 3847 401: 3848 $ref: "#/components/responses/Unauthorized" 3849 403: 3850 $ref: "#/components/responses/Forbidden" 3851 404: 3852 $ref: "#/components/responses/NotFound" 3853 409: 3854 description: Conflict Found 3855 content: 3856 application/json: 3857 schema: 3858 $ref: "#/components/schemas/Error" 3859 420: 3860 description: too many requests 3861 default: 3862 $ref: "#/components/responses/ServerError" 3863 3864 /repositories/{repository}/refs/{sourceRef}/merge/{destinationBranch}: 3865 parameters: 3866 - in: path 3867 name: repository 3868 required: true 3869 schema: 3870 type: string 3871 - in: path 3872 name: sourceRef 3873 required: true 3874 schema: 3875 type: string 3876 description: source ref 3877 - in: path 3878 name: destinationBranch 3879 required: true 3880 schema: 3881 type: string 3882 description: destination branch name 3883 post: 3884 tags: 3885 - refs 3886 operationId: mergeIntoBranch 3887 summary: merge references 3888 requestBody: 3889 content: 3890 application/json: 3891 schema: 3892 $ref: "#/components/schemas/Merge" 3893 responses: 3894 200: 3895 description: merge completed 3896 content: 3897 application/json: 3898 schema: 3899 $ref: "#/components/schemas/MergeResult" 3900 400: 3901 $ref: "#/components/responses/ValidationError" 3902 401: 3903 $ref: "#/components/responses/Unauthorized" 3904 403: 3905 $ref: "#/components/responses/Forbidden" 3906 404: 3907 $ref: "#/components/responses/NotFound" 3908 409: 3909 description: | 3910 Conflict 3911 Deprecated: content schema will return Error format and not an empty MergeResult 3912 content: 3913 application/json: 3914 schema: 3915 $ref: "#/components/schemas/MergeResult" 3916 412: 3917 description: precondition failed (e.g. a pre-merge hook returned a failure) 3918 content: 3919 application/json: 3920 schema: 3921 $ref: "#/components/schemas/Error" 3922 420: 3923 description: too many requests 3924 default: 3925 $ref: "#/components/responses/ServerError" 3926 get: 3927 tags: 3928 - refs 3929 operationId: findMergeBase 3930 summary: find the merge base for 2 references 3931 responses: 3932 200: 3933 description: Found the merge base 3934 content: 3935 application/json: 3936 schema: 3937 $ref: "#/components/schemas/FindMergeBaseResult" 3938 400: 3939 $ref: "#/components/responses/ValidationError" 3940 401: 3941 $ref: "#/components/responses/Unauthorized" 3942 404: 3943 $ref: "#/components/responses/NotFound" 3944 420: 3945 description: too many requests 3946 default: 3947 $ref: "#/components/responses/ServerError" 3948 3949 /repositories/{repository}/branches/{branch}/diff: 3950 parameters: 3951 - $ref: "#/components/parameters/PaginationAfter" 3952 - $ref: "#/components/parameters/PaginationAmount" 3953 - $ref: "#/components/parameters/PaginationPrefix" 3954 - $ref: "#/components/parameters/PaginationDelimiter" 3955 - in: path 3956 name: repository 3957 required: true 3958 schema: 3959 type: string 3960 - in: path 3961 name: branch 3962 required: true 3963 schema: 3964 type: string 3965 3966 get: 3967 tags: 3968 - branches 3969 operationId: diffBranch 3970 summary: diff branch 3971 responses: 3972 200: 3973 description: diff of branch uncommitted changes 3974 content: 3975 application/json: 3976 schema: 3977 $ref: "#/components/schemas/DiffList" 3978 401: 3979 $ref: "#/components/responses/Unauthorized" 3980 404: 3981 $ref: "#/components/responses/NotFound" 3982 420: 3983 description: too many requests 3984 default: 3985 $ref: "#/components/responses/ServerError" 3986 3987 /repositories/{repository}/refs/{leftRef}/diff/{rightRef}: 3988 parameters: 3989 - in: path 3990 name: repository 3991 required: true 3992 schema: 3993 type: string 3994 - in: path 3995 name: leftRef 3996 required: true 3997 schema: 3998 type: string 3999 description: a reference (could be either a branch or a commit ID) 4000 - in: path 4001 name: rightRef 4002 required: true 4003 schema: 4004 type: string 4005 description: a reference (could be either a branch or a commit ID) to compare against 4006 - $ref: "#/components/parameters/PaginationAfter" 4007 - $ref: "#/components/parameters/PaginationAmount" 4008 - $ref: "#/components/parameters/PaginationPrefix" 4009 - $ref: "#/components/parameters/PaginationDelimiter" 4010 - in: query 4011 name: type 4012 schema: 4013 type: string 4014 enum: [two_dot, three_dot] 4015 default: three_dot 4016 4017 get: 4018 tags: 4019 - refs 4020 operationId: diffRefs 4021 summary: diff references 4022 responses: 4023 200: 4024 description: diff between refs 4025 content: 4026 application/json: 4027 schema: 4028 $ref: "#/components/schemas/DiffList" 4029 401: 4030 $ref: "#/components/responses/Unauthorized" 4031 404: 4032 $ref: "#/components/responses/NotFound" 4033 420: 4034 description: too many requests 4035 default: 4036 $ref: "#/components/responses/ServerError" 4037 4038 /repositories/{repository}/commits/{commitId}: 4039 parameters: 4040 - in: path 4041 name: repository 4042 required: true 4043 schema: 4044 type: string 4045 - in: path 4046 name: commitId 4047 required: true 4048 schema: 4049 type: string 4050 get: 4051 tags: 4052 - commits 4053 operationId: getCommit 4054 summary: get commit 4055 responses: 4056 200: 4057 description: commit 4058 content: 4059 application/json: 4060 schema: 4061 $ref: "#/components/schemas/Commit" 4062 401: 4063 $ref: "#/components/responses/Unauthorized" 4064 404: 4065 $ref: "#/components/responses/NotFound" 4066 420: 4067 description: too many requests 4068 default: 4069 $ref: "#/components/responses/ServerError" 4070 4071 /repositories/{repository}/refs/{ref}/objects: 4072 parameters: 4073 - in: path 4074 name: repository 4075 required: true 4076 schema: 4077 type: string 4078 - in: path 4079 name: ref 4080 required: true 4081 schema: 4082 type: string 4083 description: a reference (could be either a branch or a commit ID) 4084 - in: query 4085 name: path 4086 description: relative to the ref 4087 required: true 4088 schema: 4089 type: string 4090 get: 4091 tags: 4092 - objects 4093 operationId: getObject 4094 summary: get object content 4095 parameters: 4096 - in: header 4097 name: Range 4098 description: Byte range to retrieve 4099 example: "bytes=0-1023" 4100 required: false 4101 schema: 4102 type: string 4103 pattern: '^bytes=((\d*-\d*,? ?)+)$' 4104 - in: header 4105 name: If-None-Match 4106 description: Returns response only if the object does not have a matching ETag 4107 example: "33a64df551425fcc55e4d42a148795d9f25f89d4" 4108 required: false 4109 schema: 4110 type: string 4111 - in: query 4112 name: presign 4113 required: false 4114 schema: 4115 type: boolean 4116 responses: 4117 200: 4118 description: object content 4119 content: 4120 application/octet-stream: 4121 schema: 4122 type: string 4123 format: binary 4124 headers: 4125 Content-Length: 4126 schema: 4127 type: integer 4128 format: int64 4129 Last-Modified: 4130 schema: 4131 type: string 4132 ETag: 4133 schema: 4134 type: string 4135 206: 4136 description: partial object content 4137 content: 4138 application/octet-stream: 4139 schema: 4140 type: string 4141 format: binary 4142 headers: 4143 Content-Length: 4144 schema: 4145 type: integer 4146 format: int64 4147 Content-Range: 4148 schema: 4149 type: string 4150 pattern: '^bytes=((\d*-\d*,? ?)+)$' 4151 Last-Modified: 4152 schema: 4153 type: string 4154 ETag: 4155 schema: 4156 type: string 4157 302: 4158 description: Redirect to a pre-signed URL for the object 4159 headers: 4160 Location: 4161 schema: 4162 type: string 4163 304: 4164 description: Content not modified 4165 401: 4166 $ref: "#/components/responses/Unauthorized" 4167 404: 4168 $ref: "#/components/responses/NotFound" 4169 410: 4170 description: object expired 4171 content: 4172 application/json: 4173 schema: 4174 $ref: "#/components/schemas/Error" 4175 416: 4176 description: Requested Range Not Satisfiable 4177 content: 4178 application/json: 4179 schema: 4180 $ref: "#/components/schemas/Error" 4181 420: 4182 description: too many requests 4183 default: 4184 $ref: "#/components/responses/ServerError" 4185 head: 4186 tags: 4187 - objects 4188 operationId: headObject 4189 summary: check if object exists 4190 parameters: 4191 - in: header 4192 name: Range 4193 description: Byte range to retrieve 4194 example: "bytes=0-1023" 4195 required: false 4196 schema: 4197 type: string 4198 pattern: '^bytes=((\d*-\d*,? ?)+)$' 4199 responses: 4200 200: 4201 description: object exists 4202 headers: 4203 Content-Length: 4204 schema: 4205 type: integer 4206 format: int64 4207 Last-Modified: 4208 schema: 4209 type: string 4210 ETag: 4211 schema: 4212 type: string 4213 206: 4214 description: partial object content info 4215 headers: 4216 Content-Length: 4217 schema: 4218 type: integer 4219 format: int64 4220 Content-Range: 4221 schema: 4222 type: string 4223 pattern: '^bytes=((\d*-\d*,? ?)+)$' 4224 Last-Modified: 4225 schema: 4226 type: string 4227 ETag: 4228 schema: 4229 type: string 4230 401: 4231 description: Unauthorized 4232 404: 4233 description: object not found 4234 410: 4235 description: object expired 4236 416: 4237 description: Requested Range Not Satisfiable 4238 420: 4239 description: too many requests 4240 default: 4241 description: internal server error 4242 4243 /repositories/{repository}/branches/{branch}/staging/pmpu: 4244 parameters: 4245 - in: path 4246 name: repository 4247 required: true 4248 schema: 4249 type: string 4250 - in: path 4251 name: branch 4252 required: true 4253 schema: 4254 type: string 4255 - in: query 4256 name: path 4257 description: relative to the branch 4258 required: true 4259 schema: 4260 type: string 4261 - in: query 4262 name: parts 4263 description: number of presigned URL parts required to upload 4264 schema: 4265 type: integer 4266 post: 4267 tags: 4268 - experimental 4269 operationId: createPresignMultipartUpload 4270 summary: Initiate a multipart upload 4271 description: | 4272 Initiates a multipart upload and returns an upload ID with presigned URLs for each part (optional). 4273 Part numbers starts with 1. Each part except the last one has minimum size depends on the underlying blockstore implementation. 4274 For example working with S3 blockstore, minimum size is 5MB (excluding the last part). 4275 responses: 4276 201: 4277 description: Presign multipart upload initiated 4278 content: 4279 application/json: 4280 schema: 4281 $ref: "#/components/schemas/PresignMultipartUpload" 4282 400: 4283 $ref: "#/components/responses/BadRequest" 4284 401: 4285 $ref: "#/components/responses/Unauthorized" 4286 404: 4287 $ref: "#/components/responses/NotFound" 4288 420: 4289 description: too many requests 4290 default: 4291 $ref: "#/components/responses/ServerError" 4292 4293 /repositories/{repository}/branches/{branch}/staging/pmpu/{uploadId}: 4294 parameters: 4295 - in: path 4296 name: repository 4297 required: true 4298 schema: 4299 type: string 4300 - in: path 4301 name: branch 4302 required: true 4303 schema: 4304 type: string 4305 - in: path 4306 name: uploadId 4307 required: true 4308 schema: 4309 type: string 4310 - in: query 4311 name: path 4312 description: relative to the branch 4313 required: true 4314 schema: 4315 type: string 4316 put: 4317 tags: 4318 - experimental 4319 operationId: completePresignMultipartUpload 4320 summary: Complete a presign multipart upload request 4321 description: Completes a presign multipart upload by assembling the uploaded parts. 4322 requestBody: 4323 content: 4324 application/json: 4325 schema: 4326 $ref: "#/components/schemas/CompletePresignMultipartUpload" 4327 responses: 4328 200: 4329 description: Presign multipart upload completed 4330 content: 4331 application/json: 4332 schema: 4333 $ref: "#/components/schemas/ObjectStats" 4334 400: 4335 $ref: "#/components/responses/BadRequest" 4336 401: 4337 $ref: "#/components/responses/Unauthorized" 4338 404: 4339 $ref: "#/components/responses/NotFound" 4340 409: 4341 description: conflict with a commit, try here 4342 content: 4343 application/json: 4344 schema: 4345 $ref: "#/components/schemas/StagingLocation" 4346 420: 4347 description: too many requests 4348 default: 4349 $ref: "#/components/responses/ServerError" 4350 4351 delete: 4352 tags: 4353 - experimental 4354 operationId: abortPresignMultipartUpload 4355 summary: Abort a presign multipart upload 4356 description: Aborts a presign multipart upload. 4357 requestBody: 4358 content: 4359 application/json: 4360 schema: 4361 $ref: "#/components/schemas/AbortPresignMultipartUpload" 4362 responses: 4363 204: 4364 description: Presign multipart upload aborted 4365 400: 4366 $ref: "#/components/responses/BadRequest" 4367 401: 4368 $ref: "#/components/responses/Unauthorized" 4369 404: 4370 $ref: "#/components/responses/NotFound" 4371 420: 4372 description: too many requests 4373 default: 4374 $ref: "#/components/responses/ServerError" 4375 4376 4377 /repositories/{repository}/branches/{branch}/staging/backing: 4378 parameters: 4379 - in: path 4380 name: repository 4381 required: true 4382 schema: 4383 type: string 4384 - in: path 4385 name: branch 4386 required: true 4387 schema: 4388 type: string 4389 - in: query 4390 name: path 4391 description: relative to the branch 4392 required: true 4393 schema: 4394 type: string 4395 get: 4396 tags: 4397 - staging 4398 operationId: getPhysicalAddress 4399 summary: generate an address to which the client can upload an object 4400 parameters: 4401 - in: query 4402 name: presign 4403 required: false 4404 schema: 4405 type: boolean 4406 responses: 4407 200: 4408 description: physical address for staging area 4409 content: 4410 application/json: 4411 schema: 4412 $ref: "#/components/schemas/StagingLocation" 4413 401: 4414 $ref: "#/components/responses/Unauthorized" 4415 404: 4416 $ref: "#/components/responses/NotFound" 4417 420: 4418 description: too many requests 4419 default: 4420 $ref: "#/components/responses/ServerError" 4421 4422 put: 4423 tags: 4424 - staging 4425 operationId: linkPhysicalAddress 4426 summary: associate staging on this physical address with a path 4427 description: | 4428 Link the physical address with the path in lakeFS, creating an uncommitted change. 4429 The given address can be one generated by getPhysicalAddress, or an address outside the repository's storage namespace. 4430 requestBody: 4431 required: true 4432 content: 4433 application/json: 4434 schema: 4435 $ref: "#/components/schemas/StagingMetadata" 4436 4437 parameters: 4438 - $ref: "#/components/parameters/IfNoneMatch" 4439 4440 responses: 4441 200: 4442 # This actually violates HTTP, which requires returning 201 if a new object was 4443 # created or 200 if an existing object was modified, 4444 # https://tools.ietf.org/html/rfc7231#section-4.3.4 4445 description: object metadata 4446 content: 4447 application/json: 4448 schema: 4449 $ref: "#/components/schemas/ObjectStats" 4450 400: 4451 $ref: "#/components/responses/ValidationError" 4452 401: 4453 $ref: "#/components/responses/Unauthorized" 4454 403: 4455 $ref: "#/components/responses/Forbidden" 4456 404: 4457 $ref: "#/components/responses/ServerError" 4458 409: 4459 description: conflict with a commit, try here 4460 content: 4461 application/json: 4462 schema: 4463 $ref: "#/components/schemas/StagingLocation" 4464 412: 4465 $ref: "#/components/responses/PreconditionFailed" 4466 420: 4467 description: too many requests 4468 default: 4469 $ref: "#/components/responses/ServerError" 4470 4471 /repositories/{repository}/branches/{branch}/import: 4472 parameters: 4473 - in: path 4474 name: repository 4475 required: true 4476 schema: 4477 type: string 4478 - in: path 4479 name: branch 4480 required: true 4481 schema: 4482 type: string 4483 get: 4484 tags: 4485 - import 4486 operationId: importStatus 4487 summary: get import status 4488 parameters: 4489 - in: query 4490 name: id 4491 description: Unique identifier of the import process 4492 schema: 4493 type: string 4494 required: true 4495 responses: 4496 200: 4497 description: import status 4498 content: 4499 application/json: 4500 schema: 4501 $ref: "#/components/schemas/ImportStatus" 4502 401: 4503 $ref: "#/components/responses/Unauthorized" 4504 404: 4505 $ref: "#/components/responses/NotFound" 4506 420: 4507 description: too many requests 4508 default: 4509 $ref: "#/components/responses/ServerError" 4510 post: 4511 tags: 4512 - import 4513 operationId: importStart 4514 summary: import data from object store 4515 requestBody: 4516 required: true 4517 content: 4518 application/json: 4519 schema: 4520 $ref: "#/components/schemas/ImportCreation" 4521 responses: 4522 202: 4523 description: Import started 4524 content: 4525 application/json: 4526 schema: 4527 $ref: "#/components/schemas/ImportCreationResponse" 4528 400: 4529 $ref: "#/components/responses/ValidationError" 4530 401: 4531 $ref: "#/components/responses/Unauthorized" 4532 403: 4533 $ref: "#/components/responses/Forbidden" 4534 404: 4535 $ref: "#/components/responses/NotFound" 4536 420: 4537 description: too many requests 4538 default: 4539 $ref: "#/components/responses/ServerError" 4540 delete: 4541 tags: 4542 - import 4543 operationId: importCancel 4544 summary: cancel ongoing import 4545 parameters: 4546 - in: query 4547 name: id 4548 description: Unique identifier of the import process 4549 schema: 4550 type: string 4551 required: true 4552 responses: 4553 204: 4554 description: import canceled successfully 4555 401: 4556 $ref: "#/components/responses/Unauthorized" 4557 403: 4558 $ref: "#/components/responses/Forbidden" 4559 404: 4560 $ref: "#/components/responses/NotFound" 4561 409: 4562 $ref: "#/components/responses/Conflict" 4563 420: 4564 description: too many requests 4565 default: 4566 $ref: "#/components/responses/ServerError" 4567 4568 /repositories/{repository}/branches/{branch}/objects/stage_allowed: 4569 parameters: 4570 - in: path 4571 name: repository 4572 required: true 4573 schema: 4574 type: string 4575 - in: path 4576 name: branch 4577 required: true 4578 schema: 4579 type: string 4580 - in: query 4581 name: path 4582 description: relative to the branch 4583 required: true 4584 schema: 4585 type: string 4586 get: 4587 tags: 4588 - internal 4589 operationId: uploadObjectPreflight 4590 responses: 4591 204: 4592 description: User has permissions to upload this object. This does not guarantee that the upload will be successful or even possible. It indicates only the permission at the time of calling this endpoint 4593 401: 4594 $ref: "#/components/responses/Unauthorized" 4595 403: 4596 $ref: "#/components/responses/Forbidden" 4597 404: 4598 $ref: "#/components/responses/NotFound" 4599 420: 4600 description: too many requests 4601 default: 4602 $ref: "#/components/responses/ServerError" 4603 4604 /repositories/{repository}/branches/{branch}/objects: 4605 parameters: 4606 - in: path 4607 name: repository 4608 required: true 4609 schema: 4610 type: string 4611 - in: path 4612 name: branch 4613 required: true 4614 schema: 4615 type: string 4616 - in: query 4617 name: path 4618 description: relative to the branch 4619 required: true 4620 schema: 4621 type: string 4622 put: 4623 deprecated: true 4624 tags: 4625 - internal 4626 operationId: stageObject 4627 summary: stage an object's metadata for the given branch 4628 requestBody: 4629 required: true 4630 content: 4631 application/json: 4632 schema: 4633 $ref: "#/components/schemas/ObjectStageCreation" 4634 responses: 4635 201: 4636 description: object metadata 4637 content: 4638 application/json: 4639 schema: 4640 $ref: "#/components/schemas/ObjectStats" 4641 400: 4642 $ref: "#/components/responses/ValidationError" 4643 401: 4644 $ref: "#/components/responses/Unauthorized" 4645 403: 4646 $ref: "#/components/responses/Forbidden" 4647 404: 4648 $ref: "#/components/responses/NotFound" 4649 420: 4650 description: too many requests 4651 default: 4652 $ref: "#/components/responses/ServerError" 4653 4654 post: 4655 tags: 4656 - objects 4657 operationId: uploadObject 4658 x-validation-exclude-body: true 4659 requestBody: 4660 content: 4661 multipart/form-data: 4662 schema: 4663 type: object 4664 properties: 4665 content: 4666 description: Only a single file per upload which must be named "content". 4667 type: string 4668 format: binary 4669 application/octet-stream: 4670 schema: 4671 type: string 4672 format: binary 4673 4674 parameters: 4675 - $ref: "#/components/parameters/IfNoneMatch" 4676 - in: query 4677 name: storageClass 4678 description: Deprecated, this capability will not be supported in future releases. 4679 required: false 4680 deprecated: true 4681 schema: 4682 type: string 4683 - in: query 4684 name: force 4685 required: false 4686 schema: 4687 type: boolean 4688 default: false 4689 responses: 4690 201: 4691 description: object metadata 4692 content: 4693 application/json: 4694 schema: 4695 $ref: "#/components/schemas/ObjectStats" 4696 400: 4697 $ref: "#/components/responses/ValidationError" 4698 401: 4699 $ref: "#/components/responses/Unauthorized" 4700 403: 4701 $ref: "#/components/responses/Forbidden" 4702 404: 4703 $ref: "#/components/responses/NotFound" 4704 412: 4705 $ref: "#/components/responses/PreconditionFailed" 4706 420: 4707 description: too many requests 4708 default: 4709 $ref: "#/components/responses/ServerError" 4710 delete: 4711 tags: 4712 - objects 4713 operationId: deleteObject 4714 summary: delete object. Missing objects will not return a NotFound error. 4715 parameters: 4716 - in: query 4717 name: force 4718 required: false 4719 schema: 4720 type: boolean 4721 default: false 4722 responses: 4723 204: 4724 description: object deleted successfully 4725 401: 4726 $ref: "#/components/responses/Unauthorized" 4727 403: 4728 $ref: "#/components/responses/Forbidden" 4729 404: 4730 $ref: "#/components/responses/NotFound" 4731 420: 4732 description: too many requests 4733 default: 4734 $ref: "#/components/responses/ServerError" 4735 4736 /repositories/{repository}/branches/{branch}/objects/delete: 4737 parameters: 4738 - in: path 4739 name: repository 4740 required: true 4741 schema: 4742 type: string 4743 - in: path 4744 name: branch 4745 required: true 4746 schema: 4747 type: string 4748 - in: query 4749 name: force 4750 required: false 4751 schema: 4752 type: boolean 4753 default: false 4754 post: 4755 tags: 4756 - objects 4757 operationId: deleteObjects 4758 summary: delete objects. Missing objects will not return a NotFound error. 4759 requestBody: 4760 required: true 4761 content: 4762 application/json: 4763 schema: 4764 $ref: "#/components/schemas/PathList" 4765 responses: 4766 200: 4767 description: Delete objects response 4768 content: 4769 application/json: 4770 schema: 4771 $ref: "#/components/schemas/ObjectErrorList" 4772 401: 4773 $ref: "#/components/responses/Unauthorized" 4774 403: 4775 $ref: "#/components/responses/Forbidden" 4776 404: 4777 $ref: "#/components/responses/NotFound" 4778 420: 4779 description: too many requests 4780 default: 4781 $ref: "#/components/responses/ServerError" 4782 4783 /repositories/{repository}/branches/{branch}/objects/copy: 4784 parameters: 4785 - in: path 4786 name: repository 4787 required: true 4788 schema: 4789 type: string 4790 - in: path 4791 name: branch 4792 required: true 4793 schema: 4794 type: string 4795 description: destination branch for the copy 4796 - in: query 4797 name: dest_path 4798 description: destination path relative to the branch 4799 required: true 4800 schema: 4801 type: string 4802 post: 4803 tags: 4804 - objects 4805 operationId: copyObject 4806 summary: create a copy of an object 4807 requestBody: 4808 required: true 4809 content: 4810 application/json: 4811 schema: 4812 $ref: "#/components/schemas/ObjectCopyCreation" 4813 responses: 4814 201: 4815 description: Copy object response 4816 content: 4817 application/json: 4818 schema: 4819 $ref: "#/components/schemas/ObjectStats" 4820 400: 4821 $ref: "#/components/responses/ValidationError" 4822 401: 4823 $ref: "#/components/responses/Unauthorized" 4824 403: 4825 $ref: "#/components/responses/Forbidden" 4826 404: 4827 $ref: "#/components/responses/NotFound" 4828 420: 4829 description: too many requests 4830 default: 4831 $ref: "#/components/responses/ServerError" 4832 4833 /repositories/{repository}/refs/{ref}/objects/stat: 4834 parameters: 4835 - in: path 4836 name: repository 4837 required: true 4838 schema: 4839 type: string 4840 - in: path 4841 name: ref 4842 required: true 4843 schema: 4844 type: string 4845 description: a reference (could be either a branch or a commit ID) 4846 - in: query 4847 name: path 4848 description: relative to the branch 4849 required: true 4850 schema: 4851 type: string 4852 - in: query 4853 name: user_metadata 4854 required: false 4855 schema: 4856 type: boolean 4857 default: true 4858 - in: query 4859 name: presign 4860 required: false 4861 schema: 4862 type: boolean 4863 get: 4864 tags: 4865 - objects 4866 operationId: statObject 4867 summary: get object metadata 4868 responses: 4869 200: 4870 description: object metadata 4871 content: 4872 application/json: 4873 schema: 4874 $ref: "#/components/schemas/ObjectStats" 4875 401: 4876 $ref: "#/components/responses/Unauthorized" 4877 404: 4878 $ref: "#/components/responses/NotFound" 4879 400: 4880 $ref: "#/components/responses/BadRequest" 4881 410: 4882 description: object gone (but partial metadata may be available) 4883 420: 4884 description: too many requests 4885 default: 4886 $ref: "#/components/responses/ServerError" 4887 4888 /repositories/{repository}/refs/{ref}/objects/underlyingProperties: 4889 parameters: 4890 - in: path 4891 name: repository 4892 required: true 4893 schema: 4894 type: string 4895 - in: path 4896 name: ref 4897 required: true 4898 schema: 4899 type: string 4900 description: a reference (could be either a branch or a commit ID) 4901 - in: query 4902 name: path 4903 description: relative to the branch 4904 required: true 4905 schema: 4906 type: string 4907 get: 4908 tags: 4909 - objects 4910 operationId: getUnderlyingProperties 4911 summary: get object properties on underlying storage 4912 responses: 4913 200: 4914 description: object metadata on underlying storage 4915 content: 4916 application/json: 4917 schema: 4918 $ref: "#/components/schemas/UnderlyingObjectProperties" 4919 401: 4920 $ref: "#/components/responses/Unauthorized" 4921 404: 4922 $ref: "#/components/responses/NotFound" 4923 420: 4924 description: too many requests 4925 default: 4926 $ref: "#/components/responses/ServerError" 4927 4928 /repositories/{repository}/refs/{ref}/objects/ls: 4929 parameters: 4930 - in: path 4931 name: repository 4932 required: true 4933 schema: 4934 type: string 4935 - in: path 4936 name: ref 4937 required: true 4938 schema: 4939 type: string 4940 description: a reference (could be either a branch or a commit ID) 4941 - in: query 4942 name: user_metadata 4943 required: false 4944 schema: 4945 type: boolean 4946 default: true 4947 - in: query 4948 name: presign 4949 required: false 4950 schema: 4951 type: boolean 4952 - $ref: "#/components/parameters/PaginationAfter" 4953 - $ref: "#/components/parameters/PaginationAmount" 4954 - $ref: "#/components/parameters/PaginationDelimiter" 4955 - $ref: "#/components/parameters/PaginationPrefix" 4956 4957 get: 4958 tags: 4959 - objects 4960 operationId: listObjects 4961 summary: list objects under a given prefix 4962 responses: 4963 200: 4964 description: object listing 4965 content: 4966 application/json: 4967 schema: 4968 $ref: "#/components/schemas/ObjectStatsList" 4969 401: 4970 $ref: "#/components/responses/Unauthorized" 4971 404: 4972 $ref: "#/components/responses/NotFound" 4973 420: 4974 description: too many requests 4975 default: 4976 $ref: "#/components/responses/ServerError" 4977 4978 /repositories/{repository}/refs/{branch}/symlink: 4979 parameters: 4980 - in: path 4981 name: repository 4982 required: true 4983 schema: 4984 type: string 4985 - in: path 4986 name: branch 4987 required: true 4988 schema: 4989 type: string 4990 - in: query 4991 name: location 4992 schema: 4993 type: string 4994 description: path to the table data 4995 post: 4996 tags: 4997 - internal 4998 operationId: createSymlinkFile 4999 summary: creates symlink files corresponding to the given directory 5000 5001 responses: 5002 201: 5003 description: location created 5004 content: 5005 application/json: 5006 schema: 5007 $ref: "#/components/schemas/StorageURI" 5008 401: 5009 $ref: "#/components/responses/Unauthorized" 5010 404: 5011 $ref: "#/components/responses/NotFound" 5012 420: 5013 description: too many requests 5014 default: 5015 $ref: "#/components/responses/ServerError" 5016 5017 /repositories/{repository}/actions/runs: 5018 get: 5019 tags: 5020 - actions 5021 operationId: listRepositoryRuns 5022 summary: list runs 5023 parameters: 5024 - in: path 5025 name: repository 5026 required: true 5027 schema: 5028 type: string 5029 - $ref: "#/components/parameters/PaginationAfter" 5030 - $ref: "#/components/parameters/PaginationAmount" 5031 - in: query 5032 name: branch 5033 schema: 5034 type: string 5035 - in: query 5036 name: commit 5037 schema: 5038 type: string 5039 responses: 5040 200: 5041 description: list action runs 5042 content: 5043 application/json: 5044 schema: 5045 $ref: "#/components/schemas/ActionRunList" 5046 401: 5047 $ref: "#/components/responses/Unauthorized" 5048 404: 5049 $ref: "#/components/responses/NotFound" 5050 420: 5051 description: too many requests 5052 default: 5053 $ref: "#/components/responses/ServerError" 5054 5055 /repositories/{repository}/actions/runs/{run_id}: 5056 get: 5057 tags: 5058 - actions 5059 operationId: getRun 5060 summary: get a run 5061 parameters: 5062 - in: path 5063 name: repository 5064 required: true 5065 schema: 5066 type: string 5067 - in: path 5068 name: run_id 5069 required: true 5070 schema: 5071 type: string 5072 responses: 5073 200: 5074 description: action run result 5075 content: 5076 application/json: 5077 schema: 5078 $ref: "#/components/schemas/ActionRun" 5079 401: 5080 $ref: "#/components/responses/Unauthorized" 5081 404: 5082 $ref: "#/components/responses/NotFound" 5083 420: 5084 description: too many requests 5085 default: 5086 $ref: "#/components/responses/ServerError" 5087 5088 /repositories/{repository}/actions/runs/{run_id}/hooks: 5089 get: 5090 tags: 5091 - actions 5092 operationId: listRunHooks 5093 summary: list run hooks 5094 parameters: 5095 - in: path 5096 name: repository 5097 required: true 5098 schema: 5099 type: string 5100 - in: path 5101 name: run_id 5102 required: true 5103 schema: 5104 type: string 5105 - $ref: "#/components/parameters/PaginationAfter" 5106 - $ref: "#/components/parameters/PaginationAmount" 5107 responses: 5108 200: 5109 description: list specific run hooks 5110 content: 5111 application/json: 5112 schema: 5113 $ref: "#/components/schemas/HookRunList" 5114 401: 5115 $ref: "#/components/responses/Unauthorized" 5116 404: 5117 $ref: "#/components/responses/NotFound" 5118 420: 5119 description: too many requests 5120 default: 5121 $ref: "#/components/responses/ServerError" 5122 5123 /repositories/{repository}/actions/runs/{run_id}/hooks/{hook_run_id}/output: 5124 get: 5125 tags: 5126 - actions 5127 operationId: getRunHookOutput 5128 summary: get run hook output 5129 parameters: 5130 - in: path 5131 name: repository 5132 required: true 5133 schema: 5134 type: string 5135 - in: path 5136 name: run_id 5137 required: true 5138 schema: 5139 type: string 5140 - in: path 5141 name: hook_run_id 5142 required: true 5143 schema: 5144 type: string 5145 responses: 5146 200: 5147 description: run hook output 5148 content: 5149 application/octet-stream: 5150 schema: 5151 type: string 5152 format: binary 5153 401: 5154 $ref: "#/components/responses/Unauthorized" 5155 404: 5156 $ref: "#/components/responses/NotFound" 5157 420: 5158 description: too many requests 5159 default: 5160 $ref: "#/components/responses/ServerError" 5161 5162 /repositories/{repository}/metadata/meta_range/{meta_range}: 5163 parameters: 5164 - in: path 5165 name: repository 5166 required: true 5167 schema: 5168 type: string 5169 - in: path 5170 name: meta_range 5171 required: true 5172 schema: 5173 type: string 5174 get: 5175 tags: 5176 - metadata 5177 operationId: getMetaRange 5178 summary: return URI to a meta-range file 5179 responses: 5180 200: 5181 description: meta-range URI 5182 content: 5183 application/json: 5184 schema: 5185 $ref: "#/components/schemas/StorageURI" 5186 headers: 5187 Location: 5188 schema: 5189 type: string 5190 description: redirect to S3 5191 401: 5192 $ref: "#/components/responses/Unauthorized" 5193 404: 5194 $ref: "#/components/responses/NotFound" 5195 420: 5196 description: too many requests 5197 default: 5198 $ref: "#/components/responses/ServerError" 5199 5200 /repositories/{repository}/metadata/range/{range}: 5201 parameters: 5202 - in: path 5203 name: repository 5204 required: true 5205 schema: 5206 type: string 5207 - in: path 5208 name: range 5209 required: true 5210 schema: 5211 type: string 5212 get: 5213 tags: 5214 - metadata 5215 operationId: getRange 5216 summary: return URI to a range file 5217 responses: 5218 200: 5219 description: range URI 5220 headers: 5221 Location: 5222 schema: 5223 type: string 5224 description: redirect to S3 5225 content: 5226 application/json: 5227 schema: 5228 $ref: "#/components/schemas/StorageURI" 5229 401: 5230 $ref: "#/components/responses/Unauthorized" 5231 404: 5232 $ref: "#/components/responses/NotFound" 5233 420: 5234 description: too many requests 5235 default: 5236 $ref: "#/components/responses/ServerError" 5237 5238 /repositories/{repository}/gc/rules/set_allowed: 5239 parameters: 5240 - in: path 5241 name: repository 5242 required: true 5243 schema: 5244 type: string 5245 get: 5246 tags: 5247 - internal 5248 operationId: setGarbageCollectionRulesPreflight 5249 responses: 5250 204: 5251 description: User has permissions to set garbage collection rules on this repository 5252 401: 5253 $ref: "#/components/responses/Unauthorized" 5254 404: 5255 $ref: "#/components/responses/NotFound" 5256 420: 5257 description: too many requests 5258 default: 5259 $ref: "#/components/responses/ServerError" 5260 5261 /repositories/{repository}/gc/rules: 5262 parameters: 5263 - in: path 5264 name: repository 5265 required: true 5266 schema: 5267 type: string 5268 get: 5269 deprecated: true 5270 tags: 5271 - internal 5272 operationId: internalGetGarbageCollectionRules 5273 responses: 5274 200: 5275 description: gc rule list 5276 content: 5277 application/json: 5278 schema: 5279 $ref: "#/components/schemas/GarbageCollectionRules" 5280 401: 5281 $ref: "#/components/responses/Unauthorized" 5282 404: 5283 $ref: "#/components/responses/NotFound" 5284 420: 5285 description: too many requests 5286 default: 5287 $ref: "#/components/responses/ServerError" 5288 5289 post: 5290 deprecated: true 5291 tags: 5292 - internal 5293 operationId: internalSetGarbageCollectionRules 5294 requestBody: 5295 required: true 5296 content: 5297 application/json: 5298 schema: 5299 $ref: "#/components/schemas/GarbageCollectionRules" 5300 responses: 5301 204: 5302 description: set garbage collection rules successfully 5303 401: 5304 $ref: "#/components/responses/Unauthorized" 5305 404: 5306 $ref: "#/components/responses/NotFound" 5307 420: 5308 description: too many requests 5309 default: 5310 $ref: "#/components/responses/ServerError" 5311 delete: 5312 deprecated: true 5313 tags: 5314 - internal 5315 operationId: internalDeleteGarbageCollectionRules 5316 responses: 5317 204: 5318 description: deleted garbage collection rules successfully 5319 401: 5320 $ref: "#/components/responses/Unauthorized" 5321 404: 5322 $ref: "#/components/responses/NotFound" 5323 420: 5324 description: too many requests 5325 default: 5326 $ref: "#/components/responses/ServerError" 5327 5328 /repositories/{repository}/gc/prepare_commits: 5329 parameters: 5330 - in: path 5331 name: repository 5332 required: true 5333 schema: 5334 type: string 5335 post: 5336 tags: 5337 - internal 5338 operationId: prepareGarbageCollectionCommits 5339 summary: save lists of active commits for garbage collection 5340 responses: 5341 201: 5342 description: paths to commit dataset 5343 content: 5344 application/json: 5345 schema: 5346 $ref: "#/components/schemas/GarbageCollectionPrepareResponse" 5347 401: 5348 $ref: "#/components/responses/Unauthorized" 5349 403: 5350 $ref: "#/components/responses/Forbidden" 5351 404: 5352 $ref: "#/components/responses/NotFound" 5353 420: 5354 description: too many requests 5355 default: 5356 $ref: "#/components/responses/ServerError" 5357 5358 /repositories/{repository}/gc/prepare_uncommited: 5359 parameters: 5360 - in: path 5361 name: repository 5362 required: true 5363 schema: 5364 type: string 5365 post: 5366 requestBody: 5367 content: 5368 application/json: 5369 schema: 5370 $ref: "#/components/schemas/PrepareGCUncommittedRequest" 5371 tags: 5372 - internal 5373 operationId: prepareGarbageCollectionUncommitted 5374 summary: save repository uncommitted metadata for garbage collection 5375 responses: 5376 201: 5377 description: paths to commit dataset 5378 content: 5379 application/json: 5380 schema: 5381 $ref: "#/components/schemas/PrepareGCUncommittedResponse" 5382 400: 5383 $ref: "#/components/responses/ValidationError" 5384 401: 5385 $ref: "#/components/responses/Unauthorized" 5386 403: 5387 $ref: "#/components/responses/Forbidden" 5388 404: 5389 $ref: "#/components/responses/NotFound" 5390 420: 5391 description: too many requests 5392 default: 5393 $ref: "#/components/responses/ServerError" 5394 5395 /repositories/{repository}/branch_protection/set_allowed: 5396 parameters: 5397 - in: path 5398 name: repository 5399 required: true 5400 schema: 5401 type: string 5402 get: 5403 tags: 5404 - internal 5405 operationId: createBranchProtectionRulePreflight 5406 responses: 5407 204: 5408 description: User has permissions to create a branch protection rule in this repository 5409 401: 5410 $ref: "#/components/responses/Unauthorized" 5411 404: 5412 $ref: "#/components/responses/NotFound" 5413 409: 5414 $ref: "#/components/responses/Conflict" 5415 420: 5416 description: too many requests 5417 default: 5418 $ref: "#/components/responses/ServerError" 5419 5420 /repositories/{repository}/branch_protection: 5421 parameters: 5422 - in: path 5423 name: repository 5424 required: true 5425 schema: 5426 type: string 5427 get: 5428 deprecated: true 5429 tags: 5430 - internal 5431 operationId: internalGetBranchProtectionRules 5432 summary: get branch protection rules 5433 responses: 5434 200: 5435 description: branch protection rules 5436 content: 5437 application/json: 5438 schema: 5439 type: array 5440 items: 5441 $ref: "#/components/schemas/BranchProtectionRule" 5442 401: 5443 $ref: "#/components/responses/Unauthorized" 5444 404: 5445 $ref: "#/components/responses/NotFound" 5446 420: 5447 description: too many requests 5448 default: 5449 $ref: "#/components/responses/ServerError" 5450 5451 post: 5452 deprecated: true 5453 tags: 5454 - internal 5455 operationId: internalCreateBranchProtectionRule 5456 requestBody: 5457 required: true 5458 content: 5459 application/json: 5460 schema: 5461 $ref: "#/components/schemas/BranchProtectionRule" 5462 responses: 5463 204: 5464 description: branch protection rule created successfully 5465 401: 5466 $ref: "#/components/responses/Unauthorized" 5467 404: 5468 $ref: "#/components/responses/NotFound" 5469 420: 5470 description: too many requests 5471 default: 5472 $ref: "#/components/responses/ServerError" 5473 delete: 5474 deprecated: true 5475 tags: 5476 - internal 5477 operationId: internalDeleteBranchProtectionRule 5478 requestBody: 5479 required: true 5480 content: 5481 application/json: 5482 schema: 5483 type: object 5484 properties: 5485 pattern: 5486 type: string 5487 required: 5488 - pattern 5489 responses: 5490 204: 5491 description: branch protection rule deleted successfully 5492 401: 5493 $ref: "#/components/responses/Unauthorized" 5494 404: 5495 $ref: "#/components/responses/NotFound" 5496 420: 5497 description: too many requests 5498 default: 5499 $ref: "#/components/responses/ServerError" 5500 /healthcheck: 5501 get: 5502 operationId: healthCheck 5503 security: [] 5504 tags: 5505 - healthCheck 5506 description: check that the API server is up and running 5507 responses: 5508 204: 5509 description: NoContent 5510 /config: 5511 get: 5512 tags: 5513 - config 5514 operationId: getConfig 5515 description: retrieve lakeFS configuration 5516 responses: 5517 200: 5518 description: lakeFS configuration 5519 content: 5520 application/json: 5521 schema: 5522 $ref: "#/components/schemas/Config" 5523 401: 5524 $ref: "#/components/responses/Unauthorized" 5525 /config/version: 5526 get: 5527 tags: 5528 - internal 5529 operationId: getLakeFSVersion 5530 description: get version of lakeFS server 5531 deprecated: true 5532 responses: 5533 200: 5534 description: lakeFS version 5535 content: 5536 application/json: 5537 schema: 5538 $ref: "#/components/schemas/VersionConfig" 5539 401: 5540 $ref: "#/components/responses/Unauthorized" 5541 /config/storage: 5542 get: 5543 tags: 5544 - internal 5545 operationId: getStorageConfig 5546 description: retrieve lakeFS storage configuration 5547 deprecated: true 5548 responses: 5549 200: 5550 description: lakeFS storage configuration 5551 content: 5552 application/json: 5553 schema: 5554 $ref: "#/components/schemas/StorageConfig" 5555 401: 5556 $ref: "#/components/responses/Unauthorized" 5557 /config/garbage-collection: 5558 get: 5559 tags: 5560 - internal 5561 operationId: getGarbageCollectionConfig 5562 description: get information of gc settings 5563 responses: 5564 200: 5565 description: lakeFS garbage collection config 5566 content: 5567 application/json: 5568 schema: 5569 $ref: "#/components/schemas/GarbageCollectionConfig" 5570 401: 5571 $ref: "#/components/responses/Unauthorized" 5572 5573 /statistics: 5574 post: 5575 tags: 5576 - internal 5577 operationId: postStatsEvents 5578 summary: post stats events, this endpoint is meant for internal use only 5579 requestBody: 5580 required: true 5581 content: 5582 application/json: 5583 schema: 5584 $ref: "#/components/schemas/StatsEventsList" 5585 responses: 5586 204: 5587 description: reported successfully 5588 400: 5589 $ref: "#/components/responses/BadRequest" 5590 401: 5591 $ref: "#/components/responses/Unauthorized" 5592 420: 5593 description: too many requests 5594 default: 5595 $ref: "#/components/responses/ServerError" 5596 5597 /usage-report/summary: 5598 get: 5599 tags: 5600 - internal 5601 operationId: getUsageReportSummary 5602 summary: get usage report summary 5603 responses: 5604 200: 5605 description: Usage report 5606 content: 5607 application/json: 5608 schema: 5609 $ref: "#/components/schemas/InstallationUsageReport" 5610 application/text: 5611 schema: 5612 type: string 5613 400: 5614 $ref: "#/components/responses/BadRequest" 5615 401: 5616 $ref: "#/components/responses/Unauthorized" 5617 404: 5618 $ref: "#/components/responses/NotFound" 5619 420: 5620 description: too many requests 5621 default: 5622 $ref: "#/components/responses/ServerError"