forked from docker/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
63 lines (55 loc) · 70.5 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "../docs.json";
}
// Pre load translate...
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
window.swaggerUi = new SwaggerUi({
spec:
{"swagger":"2.0","info":{"title":"DTR 1.4.0 API Documentation","version":"1.0.0","description":"## Introduction\n\nYou can read how the various API's function before accessing and using them\nfurther in this section. They are grouped by account management, search, and\nreindex.\n\nUse the Accounts and Repositories API to integrate Docker Trusted Registry with\nyour enterprise's organizational structure by providing fine-grained,\nrole-based access control for your Docker container images. Specifically, this\nsection describes:\n\nAn API for account management\n\n- creating user and organization accounts\n- viewing existing accounts\n- creating a team within an organization\n- viewing teams in an organization\n- managing team membership\n- editing user and team LDAP syncing configurations\n\nAn API for Docker container image repository management and access control\n\n- creating a repository\n- viewing repositories owned by an account\n- managing user access to a user-owned repository\n- managing team access to an organization-owned repository\n- managing team access to an organization-owned repository namespace\n\n## Overview\n\nThis API defines two types of accounts: Users and Organizations. Each account\nconsists of a namespace of repositories with two component names:\n`account-name/repository-name`.\n\nRepositories are either public or private.\n\nPublic:\n- visible to all accounts in the system\n- can only be written to by accounts granted explicit write access\n\nPrivate:\n- cannot be discovered by any account unless having explicit read access to it\n- can be created by both types of accounts\n\n### User Accounts\n\nDocker Trusted Registry users can create repositories under their own namespace\nas well as share access to their repositories with other users. They can grant read-only, read-write, or admin access to individual users on a per-repository basis.\n\nThe following permissions are granted to the individual users with the\ncorresponding access level on the user-owned repository:\n\n| Repository Access | **`read-only`** | **`read-write`** | **`admin`** |\n| ------------------- | :-------------: | :--------------: | :---------: |\n| view and browse | ✓ | ✓ | ✓ |\n| pull | ✓ | ✓ | ✓ |\n| push | | ✓ | ✓ |\n| modify/delete tags | | ✓ | ✓ |\n| edit description | | | ✓ |\n| make public/private | | | ✓ |\n| manage user access | | | ✓ |\n\n**Note**: Only the owning user account can create and delete repositories from\ntheir namespace.\n\nUser owned repositories can only be accessed by the owner and other individual\nuser accounts. For example, access to a user-owned repository cannot be granted\nto a team of users in an organization. If a repository requires this level of\naccess control, consider moving it within an organization namespace.\n\n### Organization accounts\n\nSystem administrators can also create an organization account, with its own\nnamespace of repositories. Organization accounts are comprised of one or more\nteams which can be managed by anyone in an initial \"owners\" team. That is\ncreated by default. Organization owners have the highest level of permission\nwithin the organization, with the ability to manage all teams and repositories.\n\nTo be an organization member, a user must be a member of one or more teams\nwithin the organization. Only an organization owner can create, modify, or\ndelete teams. However, teams and team membership are visible to all members of\nthe organization. Organization members and teams are not visible to users\noutside the organization.\n\n#### Teams\n\nTeams are configured in two ways:\n\n- As a list of users managed by an organization owner, or\n- Through LDAP system integration which can then be periodically synced\n\nTeams within an organization may be granted read-only, read-write, or admin\nlevel access to the organization's namespace of repositories. This grants\ncertain permissions to members of a team for all repositories belonging to the\norganization. It allows a team to create, pull, push, or manage repository\naccess for all repositories within an organization but *not* manage the teams\nthemselves.\n\nThe following table depicts what type of access is granted to team members with the corresponding permissions:\n\n| Repository Namespace Access | **`read-only`** | **`read-write`** | **`admin`** |\n| --------------------------------------------- | :-------------: | :--------------: | :---------: |\n| view and browse all repositories | ✓ | ✓ | ✓ |\n| pull from all repositories | ✓ | ✓ | ✓ |\n| push to all repositories | | ✓ | ✓ |\n| modify/delete tags in all repositories | | ✓ | ✓ |\n| edit description of all repositories | | | ✓ |\n| make all repositories public/private | | | ✓ |\n| manage team access repository namespace | | | ✓ |\n| manage team access to individual repositories | | | ✓ |\n| create new repositories in namespace | | | ✓ |\n| delete repositories in namespace | | | ✓ |\n\nIn addition to these namespace-wide repository access controls, teams within\nan organization may also be granted read-only, read-write, or admin level\naccess to individual repositories owned by the organization. The following\npermissions are granted to the members of teams with the corresponding access\nlevel on the organization-owned repository:\n\n| Repository Access | **`read-only`** | **`read-write`** | **`admin`** |\n| ------------------- | :-------------: | :--------------: | :---------: |\n| view and browse | ✓ | ✓ | ✓ |\n| pull | ✓ | ✓ | ✓ |\n| push | | ✓ | ✓ |\n| modify/delete tags | | ✓ | ✓ |\n| edit description | | | ✓ |\n| make public/private | | | ✓ |\n| manage team access | | | ✓ |\n\nEach team can be given a combination of entire-namespace access and more\ngranular per-repository access. However, these permissions are strictly\nadditive, meaning you cannot override a team level permission to prevent access\nto a specific repository. For example, if a team has read-write access to the entire\nnamespace of repositories, granting that team 'read-only' access to a specific\nrepository will not reduce their access to that repository as the team will\nstill have read-write access to that repository through its namespace access.\n\nOrganization-owned repositories can only be given access to the teams within\nthat organization. For example, you cannot grant access to an organization-owned\nrepository to an individual user account or team in another organization.\nIf this level of control is needed on a repository, you can add those\nindividual users to a team within the owning organization. Or you can add users in the\nother organization's team to a team within the owning organization.\n\n**Note**: When using the Docker Trusted Registry user interface to assign\nusers global read-only, read-write, or admin roles, they will have that\naccess level to all repositories in the system. You can access and modify\nthese roles with the API, using the `_global` organization. However, you must\nhave admin access in order to view and edit the `_global` organization.\n\n### Notable differences from Docker Hub\n\n- Repositories must be explicitly created using the API. A `docker push` will\n not create a repository if it does not exist. This prevents a typo from\n creating an unwanted repository in Docker Trusted Registry. This policy will\n be globally enforced in the Docker Trusted Registry 1.4.\n\n- Only system admins can create organizations. This should prevent the\n proliferation of unwanted organization accounts.\n\n- Collaborators on user-owned repositories can be given more granular\n access than on Docker Hub. Docker Hub Registry offers only read-write access.\n Docker Trusted Registry offers read-only, read-write, and admin access for\n each user-owned repository.\n\n- Teams can be granted access to all repositories in an organization's\n namespace. Docker Hub Registry offers team access control on a\n per-repository level only, and only an organization's \"owners\" team can\n manage access and create new repositories.\n\n- Teams and membership within an organization are visible to all members of the\n organization. In Docker Hub Registry, teams are hidden from users which they\n are not a member of. In Docker Trusted Registry, teams are visible to all\n members of the organization.\n\n### Authentication\n\nClients authenticate API requests by providing Basic Authentication credentials\n(username and password) via an \"Authorization\" header for each request.\n\n```bash\n$ curl --user readuser:password https://dtr.example.com/api/v0/accounts\n{\n \"accounts\": [\n {\n \"id\": 1,\n \"type\": \"user\",\n \"name\": \"admin\",\n },\n {\n \"id\": 2,\n \"type\": \"user\",\n \"name\": \"readuser\",\n }\n ]\n}\n```\n\n**Note**: If you are using Docker Trusted Registry's automatically generated,\nself-signed SSL certificate then you'll need to add `--insecure` to the curl\nexamples.\n\n\n# Errors\n\nErrors are always returned as a list and have the following structure:\n\n```json\n{\n \"errors\": [\n {\n \"code\": \"NO_SUCH_TEAM\",\n \"detail\": \"Team name: \\\"team1\\\".\",\n \"message\": \"A team with the given name does not exist in the organization.\"\n }\n ]\n}\n```\n"},"tags":[{"name":"accounts","description":"Accounts"},{"name":"index","description":"Index"},{"name":"repositories","description":"Repositories"},{"name":"repositoryNamespaces","description":"Repository Namespaces"}],"paths":{"/api/v0/accounts":{"get":{"tags":["accounts"],"operationId":"ListAccounts","summary":"List all accounts","description":"\n*Authorization:* any user\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10},{"in":"query","description":"Account type to list (either 'user' or 'organization')","name":"type","required":false,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Accounts"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"post":{"tags":["accounts"],"operationId":"CreateAccount","summary":"Create account","description":"\n##### Managed mode:\n\n*Authorization:* none for users, admin for organizations\n\n*Managed mode notes:* There is no user restriction on creating a managed user account,\n\thowever managed user accounts start out inactive and the user cannot authenticate until an admin\n\texplicitly activates the account using the activate user API endpoint. This allows the creation of\n\tDTR managed namespace reservations by an external service, which can then activate the account when\n\tit has been verified by the external service.\n\n##### LDAP mode:\n\n*Authorization:* LDAP user accounts cannot be explicitly created. Instead, LDAP user accounts are synced\n\tperiodically using a user object filter configured by a system administrator.\n\n##### Organization accounts:\n\n*Authorization:* admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Account"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.User"}},"400":{"description":"ACCOUNT_EXISTS: An account with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{accountname}":{"get":{"tags":["accounts"],"operationId":"GetAccount","summary":"Account details","description":"\n*Authorization:* any user\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user or organization account name","name":"accountname","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.User"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["accounts"],"operationId":"DeleteAccount","summary":"Remove an account","description":"\n*Authorization:* admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user or organization account name","name":"accountname","required":true,"type":"string"}],"responses":{"204":{"description":"success or account does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/changePassword":{"post":{"tags":["accounts"],"operationId":"ChangeUserPassword","summary":"Change password","description":"\n*Authorization:* same user or admin\n\nA system admin may change the password of any user but must provide their (admin) password in the 'oldPassword' field.\n\n*Auth mode required:* managed\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.ChangePassword"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.User"}},"400":{"description":"PASSWORD_INCORRECT: The given password does not match the current password."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/activate":{"put":{"tags":["accounts"],"operationId":"ActivateUser","summary":"Activate a user","description":"\n*Authorization:* admin\n\n*Auth mode required:* managed\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.User"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/deactivate":{"put":{"tags":["accounts"],"operationId":"DeactivateUser","summary":"Deactivate a user","description":"\n*Authorization:* admin\n\n*Auth mode required:* managed\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.User"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/organizations":{"get":{"tags":["accounts"],"operationId":"ListUserOrganizations","summary":"List organizations for a user","description":"\n*Authorization:* same user or admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Organizations"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/members":{"get":{"tags":["accounts"],"operationId":"ListOrganizationMembers","summary":"List members of an organization","description":"\n*Authorization:* Client must be authenticated as a user which is an organization member or is a system admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Members"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/members/{member}":{"get":{"tags":["accounts"],"operationId":"CheckOrganizationMembership","summary":"Check if a user is a member of an organization","description":"\n*Authorization:* Client must be authenticated as a user which is an organization member or is a system admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"username of team member","name":"member","required":true,"type":"string"}],"responses":{"204":{"description":"user is a member"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"user is not a member"},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["accounts"],"operationId":"DeleteOrganizationMember","summary":"Remove a user from an organization and any of its teams","description":"\n*Authorization:* Client must be authenticated as a system admin or a member of the \"owners\" team in the organization.\n\n*Auth mode required:* managed\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"username of team member","name":"member","required":true,"type":"string"}],"responses":{"200":{"description":""},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/members/{member}/teams":{"get":{"tags":["accounts"],"operationId":"ListOrganizationMemberTeams","summary":"List the teams which an organization member belongs to","description":"\n*Authorization:* Client must be authenticated as a user which is an organization member or is a system admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"username of team member","name":"member","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Teams"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/teams":{"post":{"tags":["accounts"],"operationId":"CreateTeam","summary":"Create a team in an organization","description":"\n*Authorization:* Client must be authenticated as a system admin or a member of the \"owners\" team in the organization.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Team"}}],"responses":{"201":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"INVALID_TEAM_NAME: The given team name is either too long or contains illegal characters."}}},"get":{"tags":["accounts"],"operationId":"ListTeams","summary":"List teams in an organization","description":"\n*Authorization:* Client must be authenticated as a member of the organization containing the team(s) or be an admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Teams"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/teams/{teamname}":{"get":{"tags":["accounts"],"operationId":"GetTeam","summary":"View details of a team","description":"\n*Authorization:* Client must be authenticated as a member of the organization containing the team(s) or be an admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Team"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"patch":{"tags":["accounts"],"operationId":"UpdateTeam","summary":"Update a team's details","description":"\n*Authorization:* Client must be authenticated as a system admin or a member of the \"owners\" team in the organization.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.TeamUpdate"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Team"}},"400":{"description":"invalid input"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["accounts"],"operationId":"DeleteTeam","summary":"Remove a team","description":"\n*Authorization:* Client must be authenticated as a system admin or a member of the \"owners\" team in the organization.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"204":{"description":"success or team does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/members":{"get":{"tags":["accounts"],"operationId":"ListTeamMembers","summary":"List a team's members","description":"\n*Authorization:* Client must be authenticated as a system admin, a member of the \"owners\" team in the organization, or a member of the team in question.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Members"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/members/{member}":{"get":{"tags":["accounts"],"operationId":"CheckTeamMembership","summary":"Check if a user is a member of a team","description":"\n*Authorization:* Client must be authenticated as a user who has visibility into the team (i.e., a member of the team or an owner of the organization).\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"path","description":"username of team member","name":"member","required":true,"type":"string"}],"responses":{"204":{"description":"user is a member"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"user is not a member"},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"put":{"tags":["accounts"],"operationId":"AddTeamMember","summary":"Add a user to a team","description":"\n*Authorization:* Client must be authenticated as a system admin or a member of the \"owners\" team in the organization.\n\n*Auth mode required:* managed\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"path","description":"username of team member","name":"member","required":true,"type":"string"}],"responses":{"200":{"description":""},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["accounts"],"operationId":"DeleteTeamMember","summary":"Remove a user from a team","description":"\n*Authorization:* Client must be authenticated as a system admin or a member of the \"owners\" team in the organization.\n\n*Auth mode required:* managed\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"path","description":"username of team member","name":"member","required":true,"type":"string"}],"responses":{"200":{"description":""},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"tags":["accounts"],"operationId":"ListTeamRepoAccess","summary":"List repository access grants for a team","description":"\n*Authorization:* Client must be authenticated as a user who owns the organization the team is in or be a member of that team.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"organization account name","name":"orgname","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":""},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"tags":["accounts"],"operationId":"GetUserRepoAccess","summary":"Check a user's access to a repository","description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"},{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/repositoryNamespaceAccess/{namespace}":{"get":{"tags":["accounts"],"operationId":"GetUserRepoNamespaceAccess","summary":"Check a user's access to a repository namespace","description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"},{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.RepoNamespaceUserAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/accounts/{username}/sharedRepositories":{"get":{"tags":["accounts"],"operationId":"GetUserSharedRepositories","summary":"List repositories that are explicitly shared with a user","description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"user account name","name":"username","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/index/search":{"get":{"tags":["index"],"operationId":"Search","summary":"Search repositories and/or accounts","description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10},{"in":"query","description":"Search query","name":"query","required":true,"type":"string"},{"in":"query","description":"Whether to include repositories in the response","name":"includeRepositories","required":false,"type":"boolean","default":true},{"in":"query","description":"Whether to include accounts in the response","name":"includeAccounts","required":false,"type":"boolean","default":true},{"in":"query","description":"Exact repository namespace to limit results to.","name":"namespace","required":false,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Search"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/index/autocomplete":{"get":{"tags":["index"],"operationId":"Autocomplete","summary":"Autocompletion for repositories and/or accounts","description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Autocomplete query","name":"query","required":true,"type":"string"},{"in":"query","description":"Whether to include repositories in the response","name":"includeRepositories","required":false,"type":"boolean","default":true},{"in":"query","description":"Whether to include accounts in the response","name":"includeAccounts","required":false,"type":"boolean","default":true},{"in":"query","description":"Exact repository namespace to limit results to.","name":"namespace","required":false,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/index/reindex":{"post":{"tags":["index"],"operationId":"Reindex","summary":"Reindex registry index","description":"\n*Authorization:* admin\n\t\t","produces":["application/json"],"consumes":["application/json"],"responses":{"202":{"description":"reindex request accepted"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories":{"get":{"tags":["repositories"],"operationId":"ListRepositories","summary":"List all repositories","description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}":{"get":{"tags":["repositories"],"operationId":"ListNamespaceRepositories","summary":"List repositories in a namespace","description":"\n*Authorization:* Client must be authenticated as any active user in the system. Results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"post":{"tags":["repositories"],"operationId":"CreateRepository","summary":"Create repository","description":"\n*Authorization:* Client must be authenticated as a user who has admin access to the\nrepository namespace (i.e., user owns the repo or is a member of a team with\n\"admin\" level access to the organization's namespace of repositories).\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRepo"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"REPOSITORY_EXISTS: A repository with the same name already exists."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"tags":["repositories"],"operationId":"GetRepository","summary":"View details of a repository","description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repository"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"patch":{"tags":["repositories"],"operationId":"PatchRepository","summary":"Update details of a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\nNote that a repository cannot be renamed this way.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.Repository"}},"400":{"description":"INVALID_REPOSITORY_VISIBILITY: The visibility value of the repository is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["repositories"],"operationId":"DeleteRepository","summary":"Remove a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" access to the repository\n(i.e., user owns the repo or is a member of a team with \"admin\" level access to the organization\"s repository).\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"204":{"description":"success or repository does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/userAccess":{"get":{"tags":["repositories"],"operationId":"ListRepoUserAccess","summary":"List users granted access to a user-owned repository","description":"\n*Authorization:* Client must be authenticated as a user which has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListRepoUserAccess"}},"400":{"description":"the repository is not owned by a user"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/userAccess/{grantee}":{"put":{"tags":["repositories"],"operationId":"GrantRepoUserAccess","summary":"Set a user's access to a user-owned repository","description":"\n*Authorization:* Client must be authenticated as a user which has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"username","name":"grantee","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}},"400":{"description":"the repository is not owned by a user"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["repositories"],"operationId":"RevokeRepoUserAccess","summary":"Revoke a user's access to a user-owned repository","description":"\n*Authorization:* Client must be authenticated as a user which has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"username","name":"grantee","required":true,"type":"string"}],"responses":{"204":{"description":"succes or the user is not in the access list"},"400":{"description":"the repository is not owned by a user"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"tags":["repositories"],"operationId":"ListRepoTeamAccess","summary":"List teams granted access to an organization-owned repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"tags":["repositories"],"operationId":"GrantRepoTeamAccess","summary":"Set a team's access to an orgnization-owned repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.RepoTeamAccess"}},"400":{"description":"the team does not belong to the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["repositories"],"operationId":"RevokeRepoTeamAccess","summary":"Revoke a team's acccess to an organization-owned repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"204":{"description":"success or the team is not in the access list or there is no such team in the organization"},"400":{"description":"the repository is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"tags":["repositories"],"operationId":"ListRepoTags","summary":"List the available tags for a repository","description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListRepositoryTags"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/trust":{"get":{"tags":["repositories"],"operationId":"GetTrustForTag","summary":"Get Notary trust info about a specific tag","description":"\nRepository results will be filtered to only those repositories visible to the client.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"tag name","name":"tag","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.TagWithSignature"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"tags":["repositories"],"operationId":"DeleteRepoManifest","summary":"Delete a manifest for a repository","description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"name of repository","name":"reponame","required":true,"type":"string"},{"in":"path","description":"digest or tag for an image manifest","name":"reference","required":true,"type":"string"}],"responses":{"202":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_MANIFEST: A manifest with the given reference does not exist for the given repository."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"tags":["repositoryNamespaces"],"operationId":"ListRepoNamespaceTeamAccess","summary":"List teams granted access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has ‘admin’ level access to the namespace.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"query","description":"Start of page index (This can have slightly different meanings for different endpoints)","name":"start","required":false,"type":"integer","format":"int32","default":0},{"in":"query","description":"Maximum number of results to return","name":"limit","required":false,"type":"integer","format":"int32","default":10}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_ACCOUNT: An account with the given name does not exist."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"tags":["repositoryNamespaces"],"operationId":"GetRepoNamespaceTeamAccess","summary":"Get a team's granted access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to\nthe namespace, is a system admin, member of the organization's \"owners\" team, or is a\nmember of the team in question.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the namespace is not owned by an organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"put":{"tags":["repositoryNamespaces"],"operationId":"GrantRepoNamespaceTeamAccess","summary":"Set a team's access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has ‘admin’ level access to the namespace.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"},{"in":"body","name":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"400":{"description":"the team does not belong to the owning organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}},"delete":{"tags":["repositoryNamespaces"],"operationId":"RevokeRepoNamespaceTeamAccess","summary":"Revoke a team's access to an organization-owned namespace of repositories","description":"\n*Authorization:* Client must be authenticated as a user who has ‘admin’ level access to the namespace.\n\t\t","produces":["application/json"],"consumes":["application/json"],"parameters":[{"in":"path","description":"namespace of repository","name":"namespace","required":true,"type":"string"},{"in":"path","description":"team name","name":"teamname","required":true,"type":"string"}],"responses":{"204":{"description":"success or the team does not exist in the access list or there is no such team in the organization"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"409":{"description":"AUTH_NOT_CONFIGURED: Auth not yet configured. A system administrator has not yet set up an auth method."}}}}},"definitions":{"responses.Accounts":{"required":["accounts"],"properties":{"accounts":{"type":"array","items":{"$ref":"#/definitions/responses.User"}}}},"responses.User":{"required":["id","type","name"],"properties":{"id":{"type":"integer","format":"integer"},"type":{"type":"string","enum":["user","organization"]},"name":{"type":"string"},"ldapLogin":{"type":"string"},"isActive":{"type":"boolean"}}},"forms.Account":{"description":"A user or organization account","required":["type","name"],"properties":{"type":{"type":"string","enum":["user","organization"],"description":"user or organization"},"name":{"type":"string","description":"The user or org's namespace. It can contain lowercase letters, numbers, - and _. It must start with a letter or number."},"ldapLogin":{"type":"string"},"password":{"type":"string"}}},"forms.ChangePassword":{"required":["newPassword"],"properties":{"oldPassword":{"type":"string"},"newPassword":{"type":"string"}}},"responses.Organizations":{"required":["organizations"],"properties":{"organizations":{"type":"array","items":{"$ref":"#/definitions/responses.User"}}}},"responses.Members":{"required":["members"],"properties":{"members":{"type":"array","items":{"$ref":"#/definitions/responses.User"}}}},"responses.Teams":{"required":["teams"],"properties":{"teams":{"type":"array","items":{"$ref":"#/definitions/responses.Team"}}}},"responses.Team":{"required":["id","orgID","type","name","description","clientUserIsMember"],"properties":{"id":{"type":"integer","format":"integer"},"orgID":{"type":"integer","format":"integer"},"type":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"ldapDN":{"type":"string"},"ldapGroupMemberAttribute":{"type":"string"},"clientUserIsMember":{"type":"boolean"}}},"forms.Team":{"required":["name","description","type"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string","enum":["managed","ldap"]},"ldapDN":{"type":"string"},"ldapGroupMemberAttribute":{"type":"string"}}},"||responses.Teams":{},"forms.TeamUpdate":{"properties":{"name":{"type":"string"},"description":{"type":"string"},"type":{"type":"string"},"ldapDN":{"type":"string"},"ldapGroupMemberAttribute":{"type":"string"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"user":{"$ref":"#/definitions/responses.User"},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","status"],"properties":{"id":{"type":"integer","format":"integer"},"namespace":{"type":"string"},"namespaceType":{"type":"string"},"name":{"type":"string"},"shortDescription":{"type":"string"},"longDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]},"status":{"type":"string"}}},"responses.RepoNamespaceUserAccess":{"required":["accessLevel","user","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"user":{"$ref":"#/definitions/responses.User"},"namespace":{"$ref":"#/definitions/responses.Namespace"}}},"responses.Namespace":{"required":["id","type","name"],"properties":{"id":{"type":"integer","format":"integer"},"type":{"type":"string"},"name":{"type":"string"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Search":{"properties":{"searchResults":{"type":"array","items":{"$ref":"#/definitions/responses.RepositoryOrUser"}}}},"responses.RepositoryOrUser":{"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"account":{"$ref":"#/definitions/responses.User"}}},"responses.Autocomplete":{"properties":{"autocompleteResults":{"type":"array","items":{"$ref":"#/definitions/responses.RepositoryOrUser"}}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription"],"properties":{"name":{"type":"string"},"shortDescription":{"type":"string"},"longDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UpdateRepo":{"properties":{"shortDescription":{"type":"string"},"longDescription":{"type":"string"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.ListRepoUserAccess":{"required":["repository","userAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"userAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.UserAccess"}}}},"responses.UserAccess":{"required":["accessLevel","user"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"user":{"$ref":"#/definitions/responses.User"}}},"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.RepoTeamAccess":{"required":["accessLevel","team","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.ListRepositoryTags":{"required":["name","tags"],"properties":{"name":{"type":"string"},"tags":{"type":"array","items":{"$ref":"#/definitions/responses.TagWithSignature"}}}},"responses.TagWithSignature":{"required":["name","inRegistry","hashMismatch","inNotary"],"properties":{"name":{"type":"string"},"inRegistry":{"type":"boolean","description":"true if the tag exists in Registry"},"hashMismatch":{"type":"boolean","description":"true if the hashes from notary and registry don't match"},"inNotary":{"type":"boolean","description":"true if the tax exists in Notary"}}},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"$ref":"#/definitions/responses.Namespace"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"},"namespace":{"$ref":"#/definitions/responses.Namespace"}}}}}
,
dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
validatorUrl: null,
docExpansion: 'list',
supportedSubmitMethods: [],
onComplete: function(swaggerApi, swaggerUi){
if(typeof initOAuth == "function") {
initOAuth({
clientId: "your-client-id",
clientSecret: "your-client-secret",
realm: "your-realms",
appName: "your-app-name",
scopeSeparator: ","
});
}
if(window.SwaggerTranslator) {
window.SwaggerTranslator.translate();
}
$('pre code').each(function(i, e) {
hljs.highlightBlock(e)
});
},
onFailure: function(data) {
log("Unable to Load SwaggerUI");
},
apisSorter: "alpha",
showRequestHeaders: false
});
// if you have an apiKey you would like to pre-populate on the page for demonstration purposes...
/*
var apiKey = "myApiKeyXXXX123456789";
$('#input_apiKey').val(apiKey);
*/
window.swaggerUi.load();
function log() {
if ('console' in window) {
console.log.apply(console, arguments);
}
}
});