From 9ec07b82b9c48864b60b14a112eb5b37c8a56943 Mon Sep 17 00:00:00 2001 From: paigehargrave Date: Thu, 23 May 2019 12:44:01 -0400 Subject: [PATCH] DTR API info --- reference/dtr/2.7/api/main.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reference/dtr/2.7/api/main.js b/reference/dtr/2.7/api/main.js index 9e2c43c84f..4a0bb99e0c 100644 --- a/reference/dtr/2.7/api/main.js +++ b/reference/dtr/2.7/api/main.js @@ -3,7 +3,7 @@ window.onload = function() { // Build a system const ui = SwaggerUIBundle({ spec: -{"swagger":"2.0","info":{"description":"Docker Trusted Registry has an experimental API that you can use to manage\nDTR repositories, permissions, and settings.\n\n**This API is experimental and subject to change, which could affect future\nbackwards compatibility.**\n\nYou can authenticate your requests by using an authentication token. In the\nDTR web UI, navigate to your user profile and choose **Access tokens** to\ncreate a new token. The authentication token issued will have the same\npermissions your user has.\n\nTo authenticate your requests, use HTTP basic authentication to pass the\nauthentication token to the DTR API. Here's an example:\n\n```\ncurl -sL -u {user}:{token} /api/v0/repositories\n```\n","title":"Docker Trusted Registry","version":"2.6.0"}, "paths":{"/api/v0/accounts/language":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Get the chosen language","operationId":"GetLanguage","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}}}}},"/api/v0/accounts/{namespace}":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes a user or organization along with all repositories","operationId":"DeleteNamespace","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/repositories":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin, organization admin or user in question\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes all of a user or organization's repositories","operationId":"DeleteNamespaceRepositories","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List the webhook subscriptions for a namespace","operationId":"ListNamespaceWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List repository access grants for a team","operationId":"ListTeamRepoAccess","parameters":[{"type":"string","description":"organization account name","name":"orgname","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"description":"\n\t*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's access to a repository","operationId":"GetUserRepoAccess","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}}}}},"/api/v0/accounts/{username}/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's settings","operationId":"GetUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}}}},"patch":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Update a user's settings","operationId":"UpdateUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UserSettings"}}],"responses":{"200":{"description":"Successfully updated user settings."},"400":{"description":"INVALID_USER_SETTINGS: The submitted user settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated user settings."}}}},"/api/v0/action_configs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"List all action configs","operationId":"ListActionConfigs","responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}},"default":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Configure actions","operationId":"UpdateActionConfig","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}}},"/api/v0/action_configs/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Get info about the actionConfig with the given action","operationId":"GetActionConfig","parameters":[{"type":"string","description":"name of action to fetch the config for","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}},"default":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Delete the action config. The defaults will be used.","operationId":"DeleteActionConfig","parameters":[{"type":"string","description":"the name of the action to delete the config for","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/api_tokens":{"get":{"description":"listUserAPITokensHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get all API tokens associated with user. Get all tokens if no user is not specified","operationId":"GetAllAPITokensByUser","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}}}},"post":{"description":"createAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Create a new API token","operationId":"CreateAnAPIToken","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAPIToken"}},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}}}},"delete":{"description":"cleanupAPITokenHleanupHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Mass deletion of API tokens from database based on user, time created, and/or generation method","operationId":"APITokenCleanup","parameters":[{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"},{"type":"string","description":"The date on which the token was last used","name":"usedbefore","in":"query"},{"type":"string","default":"auto","description":"The method by which the token was created","name":"generatedby","in":"query"}],"responses":{"200":{"description":"Successfully cleaned up API tokens"},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully cleaned up API tokens"}}}},"/api/v0/api_tokens/{hashedtoken}":{"get":{"description":"getAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Get an API token's information based on it's token id","operationId":"GetAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}}}},"delete":{"description":"deleteAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Delete a specific API token","operationId":"DeleteAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully deleted API token"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully deleted API token"}}},"patch":{"description":"updateAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["API_tokens"],"summary":"Update information about a specific API token","operationId":"UpdateAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAPIToken"}}],"responses":{"200":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}}}}},"/api/v0/content_caches":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"List all content caches","operationId":"ListContentCaches","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Create content cache","operationId":"CreateContentCache","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateContentCache"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.ContentCache"}},"400":{"description":"invalid content cache details"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/content_caches/{contentcacheuuid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"View details of a content cache","operationId":"GetContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Remove a content cache","operationId":"DeleteContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"204":{"description":"success or content cache does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/crons":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"List all crons","operationId":"ListCrons","responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}},"default":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Create / update a periodic task","operationId":"UpdateCron","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}}},"/api/v0/crons/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Get info about the cron with the given action","operationId":"GetCron","parameters":[{"type":"string","description":"action of the cron to fetch","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}},"default":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Delete the cron. Jobs created from it will not be canceled.","operationId":"DeleteCron","parameters":[{"type":"string","description":"action of cron to delete","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["events"],"summary":"Get Events","operationId":"GetEvents","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of events to filter by","name":"eventType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/imagescan/layeroverride":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Gets a list of all the available overrides","operationId":"GetLayerVulnOverrides","responses":{"200":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}}}}},"/api/v0/imagescan/layeroverride/{layerid}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Sets a vulnerability override for the given layer","operationId":"SetLayerVulnOverride","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.VulnOverrideOption"}}],"responses":{"200":{"description":"Successfully set vulnerability override"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override"}}}},"/api/v0/imagescan/layeroverride/{vulnerabilityid}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deletes a layer vulnerability override","operationId":"DeleteLayerVulnOverride","parameters":[{"type":"string","description":"vulnerability id","name":"vulnerabilityid","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deprecated use /scansummary/repositories/{namespace}/{reponame}/{tag}","operationId":"GetSummaryByManifestDigest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include detailed summary results","name":"detailed","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}}}}},"/api/v0/imagescan/scan":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of all layers","operationId":"ScanAllLayers","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ScanOptions"}}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted all layers to jobrunner for scan/check."}}}},"/api/v0/imagescan/scan/update":{"put":{"consumes":["multipart/form-data","application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Update the vulnerability database for security scanning","operationId":"UpdateVulnDB","parameters":[{"type":"file","description":"Upload file to init database","name":"file","in":"formData"},{"type":"boolean","default":false,"description":"Init or update vuln db in online mode.","name":"online","in":"query"}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"400":{"description":"SCANNING_DB_NOT_READY: Scanning DB is not ready"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully started to updated vulnerability DB."}}}},"/api/v0/imagescan/scan/{namespace}/{reponame}/{tag}/{os}/{arch}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of given image","operationId":"ScanImage","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"operating system of the tag","name":"os","in":"path","required":true},{"type":"string","description":"architecture of the tag","name":"arch","in":"path","required":true}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted image to jobrunner for scan/check."}}}},"/api/v0/imagescan/scansummary/component/{component}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by component","operationId":"GetScannedImageByComponent","parameters":[{"type":"string","description":"component","name":"component","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/cve/{cve}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by CVE","operationId":"GetScannedImageByCVE","parameters":[{"type":"string","description":"cve","name":"cve","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/layer/{layerid}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by layer sha","operationId":"GetScannedImageByLayer","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/license/{license}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by license","operationId":"GetScannedImageByLicense","parameters":[{"type":"string","description":"license","name":"license","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{reference}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag or namespace/repo@digest","operationId":"GetScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REF: A ref with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}/export":{"get":{"consumes":["application/json"],"produces":["text/csv","application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag as a file","operationId":"ExportScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"},{"type":"string","description":"Scan summary exported filetype","name":"Accept","in":"header"}],"responses":{"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/imagescan/scansummary/tags":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get a list of scan summaries","operationId":"GetScanSummaries","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ImagesForm"}}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"$ref":"#/definitions/responses.ThinScanSummaries"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"$ref":"#/definitions/responses.ThinScanSummaries"}}}}},"/api/v0/imagescan/status":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the status and version of scanning service","operationId":"GetNautilusDBStatus","responses":{"200":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}}}}},"/api/v0/index/autocomplete":{"get":{"description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Autocompletion for repositories and/or accounts","operationId":"Autocomplete","parameters":[{"type":"string","description":"Autocomplete query","name":"query","in":"query","required":true},{"type":"boolean","default":true,"description":"Whether to include repositories in the response","name":"includeRepositories","in":"query"},{"type":"boolean","default":true,"description":"Whether to include accounts in the response","name":"includeAccounts","in":"query"},{"type":"string","description":"Exact repository namespace to limit results to.","name":"namespace","in":"query"},{"type":"number","default":25,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}}}}},"/api/v0/index/dockersearch":{"get":{"description":"\nThis is used for the Docker CLI's docker search command. Repository results will be filtered to only those repositories visible to the client.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Search Docker repositories","operationId":"Docker Search","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}}}}},"/api/v0/jobs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"List all jobs ordered by most recently scheduled","operationId":"ListJobs","parameters":[{"type":"string","default":"any","description":"Filter jobs by action.","name":"action","in":"query"},{"type":"string","default":"any","description":"Filter jobs by worker ID.","name":"worker","in":"query"},{"type":"string","default":"any","description":"Show only jobs that are running.","name":"running","in":"query"},{"type":"integer","default":0,"description":"Return most recently scheduled jobs starting from this offset index.","name":"start","in":"query"},{"type":"integer","default":10,"description":"Maximum number of jobs per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}},"default":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Schedule a job to be run immediately","operationId":"CreateJob","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}}},"/api/v0/jobs/{jobID}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Get info about the job with the given ID","operationId":"GetJob","parameters":[{"type":"string","description":"ID of job to fetch","name":"jobID","in":"path","required":true}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"default":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel and delete the job","operationId":"DeleteJobs","parameters":[{"type":"string","description":"ID of job to delete","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been deleted."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel the job","operationId":"CancelJob","parameters":[{"type":"string","description":"ID of job to cancel","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been canceled."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Retrieve logs for this job from its worker","operationId":"GetJobLogs","parameters":[{"type":"string","description":"ID of job whose logs to retrieve","name":"jobID","in":"path","required":true},{"type":"boolean","default":false,"description":"t/f: stream new logs","name":"stream","in":"query"},{"type":"integer","default":0,"description":"Line number to start from","name":"offset","in":"query"},{"type":"integer","default":0,"description":"Number of lines to return if not streaming","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}},"default":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}}}},"/api/v0/meta/alerts":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get alerts","operationId":"GetAlerts","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Alert"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Alert"}}}}}},"/api/v0/meta/cluster_status":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get cluster status","operationId":"GetClusterStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}}}}},"/api/v0/meta/features":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get features","operationId":"GetFeatures","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}}}}},"/api/v0/meta/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get settings","operationId":"GetSettings","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Update settings","operationId":"UpdateSettings","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/remote/registry":{"post":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Credentials provided in the request body must be for an active user in the remote system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["remote"],"summary":"Create a check for connection status of remote registry","operationId":"CreateRemoteRegistryCheck","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRemoteRegistryCheck"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.RemoteRegistryCheck"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories":{"get":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List all repositories","operationId":"ListRepositories","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}}},"/api/v0/repositories/scan/toggle":{"post":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Toggles scan on push for all repositories","operationId":"ToggleAllRepositoriesScanOnPush","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully toggled scan on push for all repositories."}}}},"/api/v0/repositories/{namespace}":{"get":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List repositories in a namespace","operationId":"ListNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}},"post":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create repository","operationId":"CreateRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"name":"body","in":"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"View details of a repository","operationId":"GetRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}},"delete":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Remove a repository","operationId":"DeleteRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"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."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"REPOSITORY_CONTAINS_TAGS_IN_NOTARY: This repository contains tags in notary and can't be deleted until all tags in notary are removed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Update details of a repository","operationId":"PatchRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}}},"/api/v0/repositories/{namespace}/{reponame}/events":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the events for a repository","operationId":"ListRepoEvents","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of events to filter by","name":"eventType","in":"query"},{"type":"boolean","default":false,"description":"Exclude image pull events","name":"excludePull","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available manifests for a repository","operationId":"ListRepoManifests","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a manifest for a repository","operationId":"DeleteRepoManifest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REF: A ref with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/mirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the mirroring policies for a repository","operationId":"ListRepoMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.MirroringPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.MirroringPolicy"}}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a set of mirroring policies for a repository","operationId":"DeleteRepoMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"type":"array","items":{"$ref":"#/definitions/forms.DeleteMirroringPolicyIDs"}}}],"responses":{"204":{"description":"success"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the poll mirroring policies for a repository","operationId":"ListRepoPollMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a poll mirroring policy for a repository","operationId":"CreateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePollMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies/{pollmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific poll mirroring policy for a repository","operationId":"GetRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific poll mirroring policy for a repository","operationId":"UpdateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePollMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific poll mirroring policy for a repository","operationId":"DeleteRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or poll mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the promotion policies for a repository","operationId":"ListRepoPromotionPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to list promotion policies for a repository as a source or destination.","name":"source","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"component.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"updated_at\"\n\t- \"bf\": before\n\t- \"af\": after\n- \"updated_at_duration\"\n\t- \"bf\": before\n\t- \"af\": after\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a promotion policy for a repository","operationId":"CreateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotionPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy 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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies/{promotionpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific promotion policy for a repository","operationId":"GetRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific promotion policy for a repository","operationId":"UpdateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePromotionPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source or target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific promotion policy for a repository","operationId":"DeleteRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or promotion policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pruningPolicies":{"get":{"description":"*Authorization:* Client must be authenticated as a user who has visibility to the repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the pruning policies for a repository","operationId":"ListRepoPruningPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PruningPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PruningPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"component.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"updated_at\"\n\t- \"bf\": before\n\t- \"af\": after\n- \"updated_at_duration\"\n\t- \"bf\": before\n\t- \"af\": after\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a pruning policy for a repository","operationId":"CreateRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePruningPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PruningPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PRUNING_POLICY: The given pruning policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pruningPolicies/test":{"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Test a pruning policy for a repository","operationId":"TestRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePruningPolicy"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ThinTag"}}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PRUNING_POLICY: The given pruning policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ThinTag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/pruningPolicies/{pruningpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific pruning policy for a repository","operationId":"GetRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"pruning policy id","name":"pruningpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PRUNING_POLICY: A pruning policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific pruning policy for a repository","operationId":"UpdateRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"pruning policy id","name":"pruningpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePruningPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PRUNING_POLICY: The given pruning policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific pruning policy for a repository","operationId":"DeleteRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"pruning policy id","name":"pruningpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or pruning policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PRUNING_POLICY: A pruning policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the push mirroring policies for a repository","operationId":"ListRepoPushMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"component.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"updated_at\"\n\t- \"bf\": before\n\t- \"af\": after\n- \"updated_at_duration\"\n\t- \"bf\": before\n\t- \"af\": after\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a push mirroring policy for a repository","operationId":"CreateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePushMirroringPolicy"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies/{pushmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific push mirroring policy for a repository","operationId":"GetRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific push mirroring policy for a repository","operationId":"UpdateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePushMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific push mirroring policy for a repository","operationId":"DeleteRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or push mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available tags for a repository","operationId":"ListRepoTags","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the manifest for each tag","name":"includeManifests","in":"query"},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ListTag"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ListTag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{reference}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\nIf the ref given is to a manifest list, multiple Tag objects will be returned, one for each manifest in the list.\nSimilarly if the ref is a digest the API will return all tags referencing that digest.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific tag for a repository","operationId":"ListRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REF: A ref with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a tag for a repository","operationId":"DeleteRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/promotion":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the source repository and \"write\" level access to the target repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Promotes a specific tag for a repository","operationId":"CreateRepoTagPromotion","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotion"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Promotion"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/pushMirroring":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the local repository and \"write\" level access to the remote repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Mirrors a local tag by pushing to a remote repository","operationId":"CreateRepoTagPushMirroring","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateMirroring"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Mirroring"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List teams granted access to an organization-owned repository","operationId":"ListRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Set a team's access to an orgnization-owned repository","operationId":"GrantRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Revoke a team's acccess to an organization-owned repository","operationId":"RevokeRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"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_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the webhook subscriptions for a repository","operationId":"ListRepoWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as an admin or a member of the organization.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"List teams granted access to an organization-owned namespace of repositories","operationId":"ListRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level\naccess to the namespace or is a member of the team.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Get a team's granted access to an organization-owned namespace of repositories","operationId":"GetRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_NAMESPACE_TEAM_ACCESS: An access grant for the given team in the given namespace does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Set a team's access to an organization-owned namespace of repositories","operationId":"GrantRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","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."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Revoke a team's access to an organization-owned namespace of repositories","operationId":"RevokeRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"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."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"List Webhooks","operationId":"ListWebhooks","parameters":[{"type":"string","default":"any","description":"The type of webhook to list","name":"webhookType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Create Webhook","operationId":"CreateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Webhook"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/test":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Test Webhook","operationId":"TestWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookTestPayload"}}],"responses":{"200":{"description":"OK"},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/webhooks/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Update Webhook","operationId":"UpdateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookUpdate"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/{webhook}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Delete Webhook","operationId":"DeleteWebhook","parameters":[{"type":"string","description":"webhook subscription ID","name":"webhook","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_WEBHOOK: A webhook subscription with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/workers":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"List all workers","operationId":"ListWorkers","responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}},"default":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}}}}},"/api/v0/workers/{id}/capacity":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"Update the capacity for a worker","operationId":"UpdateWorkerCapacity","parameters":[{"type":"string","description":"ID of worker to update","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.UpdateWorkerCapacity"}}],"responses":{"202":{"description":"Success."}}}}},"definitions":{"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"forms.CreateAPIToken":{"properties":{"tokenLabel":{"type":"string"}}},"forms.CreateContentCache":{"required":["name","host"],"properties":{"host":{"type":"string"},"name":{"type":"string"}}},"forms.CreateMirroring":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","remoteTag","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePollMirroringPolicy":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePromotion":{"required":["targetRepository","targetTag"],"properties":{"targetRepository":{"type":"string"},"targetTag":{"type":"string"}}},"forms.CreatePromotionPolicy":{"required":["rules","targetRepository","tagTemplate","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.CreatePruningPolicy":{"required":["rules","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}}}},"forms.CreatePushMirroringPolicy":{"required":["rules","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.CreateRemoteRegistryCheck":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription","scanOnPush","immutableTags","enableManifestLists","tagLimit"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"tagLimit":{"type":"integer","format":"integer"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.DeleteMirroringPolicyIDs":{"required":["id"],"properties":{"id":{"type":"string"}}},"forms.EmptyForm":{},"forms.Image":{"required":["name","digest"],"properties":{"digest":{"type":"string"},"name":{"type":"string"}}},"forms.ImagesForm":{"required":["images"],"properties":{"images":{"type":"array","items":{"$ref":"#/definitions/forms.Image"}}}},"forms.ScanOptions":{"required":["scan","check"],"properties":{"check":{"type":"boolean"},"scan":{"type":"boolean"}}},"forms.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","disableUpgrades","reportAnalytics","anonymizeAnalytics","disableBackupWarning","webTLSCert","webTLSKey","webTLSCA","scanningEnabled","scanningSyncOnline","scanningDeadline","scanningEnableAutoRecheck","jobHistoryCompactionEnabled","jobHistoryToKeep","jobHistoryMaxAge","repoEventHistoryCompactionEnabled","repoEventHistoryToKeep","repoEventHistoryMaxAge","readOnlyRegistry"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"disableUpgrades":{"type":"boolean"},"dtrHost":{"type":"string"},"jobHistoryCompactionEnabled":{"type":"boolean"},"jobHistoryMaxAge":{"type":"string"},"jobHistoryToKeep":{"type":"integer","format":"int64"},"readOnlyRegistry":{"type":"boolean"},"repoEventHistoryCompactionEnabled":{"type":"boolean"},"repoEventHistoryMaxAge":{"type":"string"},"repoEventHistoryToKeep":{"type":"integer","format":"int64"},"reportAnalytics":{"type":"boolean"},"scanningDeadline":{"type":"integer"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSKey":{"type":"string"}}},"forms.ToggleScanOnPush":{"required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"forms.UpdateAPIToken":{"properties":{"isActive":{"type":"boolean"},"tokenLabel":{"type":"string"}}},"forms.UpdatePollMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.UpdatePromotionPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.UpdatePruningPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}}}},"forms.UpdatePushMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.UpdateRepo":{"required":["immutableTags"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"tagLimit":{"type":"integer","format":"integer"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UserSettings":{"properties":{"contentCacheUUID":{"type":"string"}}},"forms.VulnOverrideOption":{"required":["component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"notes":{"type":"string"}}},"forms.Webhook":{"required":["endpoint","tlsCert","skipTLSVerification"],"properties":{"endpoint":{"type":"string"},"key":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"},"type":{"type":"string","enum":["TAG_PUSH","TAG_PULL","TAG_DELETE","PROMOTION","PUSH_MIRRORING","POLL_MIRRORING","MANIFEST_PUSH","MANIFEST_PULL","MANIFEST_DELETE","REPO_EVENT","SCAN_COMPLETED","SCAN_FAILED","SCANNER_UPDATE_COMPLETED"]}}},"forms.WebhookTestPayload":{"required":["type","endpoint","tlsCert","skipTLSVerification"],"properties":{"endpoint":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"},"type":{"type":"string"}}},"forms.WebhookUpdate":{"required":["id","inactive","tlsCert","skipTLSVerification"],"properties":{"id":{"type":"string"},"inactive":{"type":"boolean"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"}}},"responses.APIToken":{"required":["hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"tokenLabel":{"type":"string"}}},"responses.Account":{"required":["name","id","fullName","isOrg"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"description":"Whether the user was imported from an upstream identity provider","type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"},"teamsCount":{"description":"The number of teams in the organization","type":"integer","format":"int32"}}},"responses.Alert":{"required":["message"],"properties":{"class":{"type":"string"},"id":{"type":"string"},"img":{"type":"string"},"message":{"type":"string"},"url":{"type":"string"}}},"responses.Autocomplete":{"properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.ClusterStatus":{"required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"gc_lock_holder":{"type":"string"},"replica_health":{"type":"object","additionalProperties":{"type":"string"}},"replica_readonly":{"type":"object","additionalProperties":{"type":"boolean"}},"replica_timestamp":{"type":"object","additionalProperties":{"type":"string"}},"rethink_system_tables":{"type":"object"}}},"responses.Component":{"required":["component","version","vulns","fullpath"],"properties":{"component":{"type":"string"},"fullpath":{"type":"array","items":{"type":"string"}},"license":{"$ref":"#/definitions/responses.License"},"version":{"type":"string"},"vulns":{"type":"array","items":{"$ref":"#/definitions/responses.VulnerabilityDetails"}}}},"responses.ContentCache":{"required":["id","name","host"],"properties":{"host":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"responses.DetailedSummary":{"required":["sha256sum"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/responses.Component"}},"sha256sum":{"type":"string"}}},"responses.DockerRepository":{"required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer","format":"int32"}}},"responses.DockerSearch":{"required":["num_results","query","results"],"properties":{"num_results":{"type":"integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerfileLine":{"required":["line","layerDigest","size","isEmpty"],"properties":{"isEmpty":{"type":"boolean"},"layerDigest":{"type":"string"},"line":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"},"urls":{"type":"array","items":{"type":"string"}}}},"responses.Events":{"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"responses.Features":{"required":["scanningEnabled","scanningLicensed","promotionLicensed","mirroringLicensed","metadataStoreOptedIn","onlineGCEnabled","db_version","ucpHost"],"properties":{"db_version":{"type":"integer","format":"int32"},"metadataStoreOptedIn":{"type":"boolean"},"mirroringLicensed":{"type":"boolean"},"onlineGCEnabled":{"type":"boolean"},"promotionLicensed":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningLicensed":{"type":"boolean"},"ucpHost":{"type":"string"}}},"responses.Language":{"required":["language"],"properties":{"language":{"type":"string"}}},"responses.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"responses.License":{"required":["name","type","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListTag":{"required":["name","digest","author","updatedAt","createdAt","hashMismatch","inNotary","manifest"],"properties":{"author":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"}}},"responses.ListTeamRepoAccess":{"required":["team","repositoryAccessList"],"properties":{"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Manifest":{"required":["digest"],"properties":{"architecture":{"type":"string"},"author":{"type":"string"},"configDigest":{"type":"string"},"configMediaType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}},"mediaType":{"type":"string"},"os":{"type":"string"},"osVersion":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"responses.Mirroring":{"required":["mirroringPolicyID","digest","remoteRepository","remoteTag"],"properties":{"digest":{"type":"string"},"mirroringPolicyID":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"}}},"responses.MirroringPolicy":{"required":["id","mirroringType","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"mirroringType":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"namespace":{"type":"string"},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.NautilusStatus":{"required":["state","scanner_version","scannerUpdatedAt","db_version","db_updated_at","lastDBUpdateFailed","lastVulnOverridesDBUpdateFailed"],"properties":{"db_updated_at":{"type":"string","format":"date-time"},"db_version":{"type":"integer","format":"int32"},"lastDBUpdateFailed":{"type":"boolean"},"lastVulnOverridesDBUpdateFailed":{"type":"boolean"},"replicas":{"type":"object","additionalProperties":{"$ref":"#/definitions/schema.ScannerFingerprint"}},"scannerUpdatedAt":{"type":"string","format":"date-time"},"scanner_version":{"type":"integer","format":"int32"},"state":{"type":"integer","format":"int32"}}},"responses.NewAPIToken":{"required":["token","hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"token":{"type":"string"},"tokenLabel":{"type":"string"}}},"responses.Note":{"required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string"}}},"responses.OldScanSummary":{"required":["namespace","reponame","tag","critical","major","minor","last_scan_status","check_completed_at","should_rescan","has_foreign_layers"],"properties":{"check_completed_at":{"type":"string","format":"date-time"},"critical":{"type":"integer","format":"int32"},"has_foreign_layers":{"type":"boolean"},"last_scan_status":{"type":"integer","format":"int32"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/responses.DetailedSummary"}},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"namespace":{"type":"string"},"reponame":{"type":"string"},"should_rescan":{"type":"boolean"},"tag":{"type":"string"}}},"responses.PollMirroringPolicy":{"required":["id","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"responses.Promotion":{"required":["promotionPolicyID","string","sourceRepository","sourceTag"],"properties":{"promotionPolicyID":{"type":"string"},"sourceRepository":{"type":"string"},"sourceTag":{"type":"string"},"string":{"type":"string"}}},"responses.PromotionPolicy":{"required":["id","rules","sourceRepository","targetRepository","tagTemplate","enabled","lastPromotedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPromotedAt":{"type":"string","format":"date-time"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"sourceRepository":{"type":"string"},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"responses.PruningPolicy":{"required":["id","rules","repository","enabled","lastPrunedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPrunedAt":{"type":"string"},"repository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}}}},"responses.PushMirroringPolicy":{"required":["id","rules","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.RemoteRegistryCheck":{"required":["registryType","permissions"],"properties":{"permissions":{"$ref":"#/definitions/responses.RemoteRepositoryPermissions"},"registryType":{"type":"string"}}},"responses.RemoteRepositoryPermissions":{"required":["read","write"],"properties":{"read":{"type":"boolean"},"write":{"type":"boolean"}}},"responses.ReplicaSettings":{"required":["HTTPPort","HTTPSPort","node"],"properties":{"HTTPPort":{"type":"integer"},"HTTPSPort":{"type":"integer"},"node":{"type":"string"}}},"responses.RepoAccess":{"required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"},"user":{"$ref":"#/definitions/responses.Account"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush","immutableTags","enableManifestLists","pulls","pushes","tagLimit"],"properties":{"enableManifestLists":{"type":"boolean"},"id":{"type":"string"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"pulls":{"type":"integer","format":"integer"},"pushes":{"type":"integer","format":"integer"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"tagLimit":{"type":"integer","format":"integer"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.ScanSummary":{"required":["scannedImage","shouldRescan"],"properties":{"scanStatus":{"type":"integer","format":"int32"},"scannedImage":{"$ref":"#/definitions/schema.ScannedImage"},"shouldRescan":{"type":"boolean"}}},"responses.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","replicaSettings","httpProxy","httpsProxy","noProxy","disableUpgrades","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","replicaID","scanningEnabled","scanningSyncOnline","scanningDeadline","scanningEnableAutoRecheck","jobHistoryCompactionEnabled","jobHistoryToKeep","jobHistoryMaxAge","repoEventHistoryCompactionEnabled","repoEventHistoryToKeep","repoEventHistoryMaxAge","storageVolume","nfsHost","nfsPath","readOnlyRegistry"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"disableUpgrades":{"type":"boolean"},"dtrHost":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"jobHistoryCompactionEnabled":{"type":"boolean"},"jobHistoryMaxAge":{"type":"string"},"jobHistoryToKeep":{"type":"integer","format":"int64"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"logProtocol":{"type":"string"},"nfsHost":{"type":"string"},"nfsPath":{"type":"string"},"noProxy":{"type":"string"},"readOnlyRegistry":{"type":"boolean"},"replicaID":{"type":"string"},"replicaSettings":{"type":"object","additionalProperties":{"$ref":"#/definitions/responses.ReplicaSettings"}},"repoEventHistoryCompactionEnabled":{"type":"boolean"},"repoEventHistoryMaxAge":{"type":"string"},"repoEventHistoryToKeep":{"type":"integer","format":"int64"},"reportAnalytics":{"type":"boolean"},"scanningDeadline":{"type":"integer"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"storageVolume":{"type":"string"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"}}},"responses.Tag":{"required":["digest","createdAt","inNotary","manifest","name","author","updatedAt","hashMismatch"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"},"vuln_summary":{"$ref":"#/definitions/responses.OldScanSummary"}}},"responses.Team":{"required":["id","clientUserIsMember"],"properties":{"clientUserIsMember":{"type":"boolean"},"id":{"type":"string"}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.ThinScanSummaries":{"required":["images"],"properties":{"images":{"type":"object","additionalProperties":{"$ref":"#/definitions/schema.ScannerVulnCount"}}}},"responses.ThinTag":{"required":["name","digest"],"properties":{"digest":{"type":"string"},"name":{"type":"string"}}},"responses.UserSettings":{"required":["ContentCacheUUID"],"properties":{"ContentCacheUUID":{"type":"string"}}},"responses.Vulnerability":{"required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"responses.VulnerabilityDetails":{"required":["vuln","exact","notes"],"properties":{"exact":{"type":"boolean"},"notes":{"type":"array","items":{"$ref":"#/definitions/responses.Note"}},"vuln":{"$ref":"#/definitions/responses.Vulnerability"}}},"responses.Webhook":{"required":["id","type","key","endpoint","authorID","createdAt","inactive","tlsCert","skipTLSVerification"],"properties":{"authorID":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"endpoint":{"type":"string"},"id":{"type":"string"},"inactive":{"type":"boolean"},"key":{"type":"string"},"lastSuccessfulAt":{"type":"string","format":"date-time"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"},"type":{"type":"string"}}},"ruleengine.Rule":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}},"schema.Event":{"required":["id","publishedAt","actor","actorType","type","object","repository"],"properties":{"actor":{"type":"string"},"actorType":{"type":"string"},"id":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"},"publishedAt":{"type":"string","format":"date-time"},"repository":{"type":"string"},"target":{"$ref":"#/definitions/schema.Object"},"type":{"type":"string"}}},"schema.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"schema.MirroringStatus":{"required":["code","detail","timestamp"],"properties":{"code":{"type":"string"},"detail":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"schema.Object":{"required":["id","type"],"properties":{"content":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}}},"schema.ScannedImage":{"required":["pk","namespace","repository","tag","manifestDigest","totalVulnCount","licenses","layers","components","cves","maxCVSSValue","scannerFingerprint","vulnOverrides"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"cves":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerCVE"}},"layers":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLayer"}},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifestDigest":{"type":"string"},"maxCVSSValue":{"type":"number","format":"float"},"namespace":{"type":"string"},"pk":{"type":"string"},"repository":{"type":"string"},"scannerFingerprint":{"$ref":"#/definitions/schema.ScannerFingerprint"},"tag":{"type":"string"},"totalVulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"},"vulnOverrides":{"type":"array","items":{"$ref":"#/definitions/schema.LayerVulnOverride"}}}},"schema.ScannerCVE":{"required":["cvePK","summary","cvss","notes"],"properties":{"cvePK":{"type":"string"},"cvss":{"type":"number","format":"float"},"notes":{"type":"string"},"summary":{"type":"string"}}},"schema.ScannerComponent":{"required":["componentPK","vulnCount","name","version","filepaths","cves","licenses","source"],"properties":{"componentPK":{"type":"string"},"cves":{"type":"array","items":{"type":"string"}},"filepaths":{"type":"array","items":{"type":"string"}},"licenses":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"source":{"type":"string"},"version":{"type":"string"},"vulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"}}},"schema.ScannerFingerprint":{"required":["scannerType","version"],"properties":{"scannerType":{"type":"integer","format":"int32"},"version":{"type":"array","items":{"type":"string"}}}},"schema.ScannerLayer":{"required":["digest","mediaType","author","size","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"type":"string"}},"digest":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"schema.ScannerLicense":{"required":["name","url","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"schema.ScannerVulnCount":{"required":["critical","major","minor"],"properties":{"critical":{"type":"integer","format":"int32"},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"}}},"tmpforms.ActionConfigCreate":{"required":["action","parameters"],"properties":{"action":{"description":"The action to modify the config for","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job. These are overwritten by any corresponding parameters set in the job itself.","type":"object","additionalProperties":{"type":"string"}}}},"tmpforms.CronCreate":{"required":["action","schedule","retries","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action which the cron will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.EmptyForm":{},"tmpforms.JobSubmission":{"required":["action","parameters","retries","capacityMap","deadline","stopTimeout","scheduledAt"],"properties":{"action":{"description":"The action which the job will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Parameters to start the job with","type":"object","additionalProperties":{"type":"string"}},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"scheduledAt":{"description":"The time at which to run the job. Empty string or no value means now. Format: RFC3339","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpforms.UpdateWorkerCapacity":{"required":["capacityMap"],"properties":{"capacityMap":{"description":"The new capacity for the worker, representing roughly the amount of RAM to use","type":"object","additionalProperties":{"type":"integer"}}}},"tmpresponses.ActionConfig":{"required":["id","action","parameters"],"properties":{"action":{"description":"The action this config refers to.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}}}},"tmpresponses.ActionConfigs":{"required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"required":["id","action","schedule","retries","capacityMap","parameters","deadline","stopTimeout","nextRun"],"properties":{"action":{"description":"The action to be performed by jobs spawned from this cron.","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"nextRun":{"description":"The next time the job will run.","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}},"retries":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The schedule for this cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"}}},"tmpresponses.Crons":{"required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"tmpresponses.Job":{"required":["id","retryFromID","workerID","status","scheduledAt","lastUpdated","action","retriesLeft","retriesTotal","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action this job performs","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"type":"string"},"id":{"description":"The ID of the job","type":"string"},"lastUpdated":{"description":"The last time at which the status of this job was updated","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}},"retriesLeft":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"retriesTotal":{"description":"The total number of times to retry the original job if it fails","type":"integer","format":"int32"},"retryFromID":{"description":"The ID of the job this job retried from","type":"string"},"scheduledAt":{"description":"The time at which this job was scheduled","type":"string","format":"date-time"},"status":{"description":"The current status of the job","type":"string","enum":["waiting","running","done","canceled","errored"]},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the proccess is still alive","type":"string"},"workerID":{"description":"The ID of the worker which performed the job, unclaimed by a worker if empty","type":"string"}}},"tmpresponses.JobLog":{"required":["data","lineNum"],"properties":{"data":{"type":"string"},"lineNum":{"type":"integer","format":"int32"}}},"tmpresponses.Jobs":{"required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Job"}}}},"tmpresponses.Worker":{"required":["id","status","capacityMap","heartbeatExpiration"],"properties":{"capacityMap":{"description":"A map used to represent now much load the worker should be allocated. Only security scanning jobs use this and the value is roughly equivalent to expected memory usage in bytes.","type":"object","additionalProperties":{"type":"integer"}},"heartbeatExpiration":{"description":"Time after which the worker should be considered dead.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"status":{"description":"Status of the worker","type":"string"}}},"tmpresponses.Workers":{"required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Worker"}}}}},"tags":[{"description":"Accounts","name":"accounts"},{"description":"Admin","name":"meta"},{"description":"Content Caches","name":"content_caches"},{"description":"Repositories","name":"repositories"},{"description":"Repository Namespaces","name":"repositoryNamespaces"},{"description":"Events","name":"events"},{"description":"Docker Security Scanner","name":"imagescan"},{"description":"Webhooks","name":"webhooks"},{"description":"Jobs","name":"jobs"},{"description":"Crons","name":"crons"},{"description":"Workers","name":"workers"},{"description":"Action Configs","name":"action_configs"}]} +{"swagger":"2.0","info":{"title":"Docker Trusted Registry","version":"2.7.0-29094adc"},"paths":{"/api/v0/accounts/language":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Get the chosen language","operationId":"GetLanguage","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Language"}}}}},"/api/v0/accounts/{namespace}":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin.\n\t\t \t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes a user or organization along with all repositories","operationId":"DeleteNamespace","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"204":{"description":"success or namespace does not exist"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/repositories":{"delete":{"description":"\n\t*Authorization:* Client must be authenticated as a system admin, organization admin or user in question\n\t\t \t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Removes all of a user or organization's repositories","operationId":"DeleteNamespaceRepositories","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/accounts/{namespace}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n\t\t \t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List the webhook subscriptions for a namespace","operationId":"ListNamespaceWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/accounts/{orgname}/teams/{teamname}/repositoryAccess":{"get":{"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\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"List repository access grants for a team","operationId":"ListTeamRepoAccess","parameters":[{"type":"string","description":"organization account name","name":"orgname","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListTeamRepoAccess"}}}}},"/api/v0/accounts/{username}/repositoryAccess/{namespace}/{reponame}":{"get":{"description":"\n\t*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t \t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's access to a repository","operationId":"GetUserRepoAccess","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.RepoUserAccess"}}}}},"/api/v0/accounts/{username}/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t \t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Check a user's settings","operationId":"GetUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.UserSettings"}}}},"patch":{"description":"\n*Authorization:* Client must be authenticated either as the user in question or be a system admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["accounts"],"summary":"Update a user's settings","operationId":"UpdateUserSettings","parameters":[{"type":"string","description":"user account name","name":"username","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UserSettings"}}],"responses":{"200":{"description":"Successfully updated user settings."},"400":{"description":"INVALID_USER_SETTINGS: The submitted user settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated user settings."}}}},"/api/v0/action_configs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"List all action configs","operationId":"ListActionConfigs","responses":{"200":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}},"default":{"description":"Success, list of action configs returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfigs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Configure actions","operationId":"UpdateActionConfig","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.ActionConfigCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}}},"/api/v0/action_configs/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Get info about the actionConfig with the given action","operationId":"GetActionConfig","parameters":[{"type":"string","description":"name of action to fetch the config for","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}},"default":{"description":"Success, action config info returned.","schema":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["action_configs"],"summary":"Delete the action config. The defaults will be used.","operationId":"DeleteActionConfig","parameters":[{"type":"string","description":"the name of the action to delete the config for","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, action config has been deleted."}}}},"/api/v0/api_tokens":{"get":{"description":"listUserAPITokensHandler","consumes":["application/json"],"produces":["application/json"],"tags":["api_tokens"],"summary":"Get all API tokens associated with user. Get all tokens if no user is not specified","operationId":"GetAllAPITokensByUser","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API tokens","schema":{"type":"array","items":{"$ref":"#/definitions/responses.APIToken"}}}}},"post":{"description":"createAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["api_tokens"],"summary":"Create a new API token","operationId":"CreateAnAPIToken","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateAPIToken"}},{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"}],"responses":{"200":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully created API token","schema":{"$ref":"#/definitions/responses.NewAPIToken"}}}},"delete":{"description":"cleanupAPITokenHleanupHandler","consumes":["application/json"],"produces":["application/json"],"tags":["api_tokens"],"summary":"Mass deletion of API tokens from database based on user, time created, and/or generation method","operationId":"APITokenCleanup","parameters":[{"type":"string","description":"Limit the API token results to a specific user","name":"username","in":"query"},{"type":"string","description":"The date on which the token was last used","name":"usedbefore","in":"query"},{"type":"string","default":"auto","description":"The method by which the token was created","name":"generatedby","in":"query"}],"responses":{"200":{"description":"Successfully cleaned up API tokens"},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_USER: A user with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully cleaned up API tokens"}}}},"/api/v0/api_tokens/{hashedtoken}":{"get":{"description":"getAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["api_tokens"],"summary":"Get an API token's information based on it's token id","operationId":"GetAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved API token","schema":{"$ref":"#/definitions/responses.APIToken"}}}},"delete":{"description":"deleteAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["api_tokens"],"summary":"Delete a specific API token","operationId":"DeleteAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true}],"responses":{"200":{"description":"Successfully deleted API token"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully deleted API token"}}},"patch":{"description":"updateAPITokenHandler","consumes":["application/json"],"produces":["application/json"],"tags":["api_tokens"],"summary":"Update information about a specific API token","operationId":"UpdateAnAPIToken","parameters":[{"type":"string","description":"API token id","name":"hashedtoken","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateAPIToken"}}],"responses":{"200":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_API_TOKEN: An API token with the id name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully updated API tokens","schema":{"$ref":"#/definitions/responses.APIToken"}}}}},"/api/v0/content_caches":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"List all content caches","operationId":"ListContentCaches","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ContentCache"}}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Create content cache","operationId":"CreateContentCache","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateContentCache"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.ContentCache"}},"400":{"description":"invalid content cache details"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/content_caches/{contentcacheuuid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"View details of a content cache","operationId":"GetContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ContentCache"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["content_caches"],"summary":"Remove a content cache","operationId":"DeleteContentCache","parameters":[{"type":"string","description":"uuid of content cache","name":"contentcacheuuid","in":"path","required":true}],"responses":{"204":{"description":"success or content cache does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_CONTENT_CACHE: A content cache with the given uuid does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/crons":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"List all crons","operationId":"ListCrons","responses":{"200":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}},"default":{"description":"Success, list of crons returned.","schema":{"$ref":"#/definitions/tmpresponses.Crons"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Create / update a periodic task","operationId":"UpdateCron","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.CronCreate"}}],"responses":{"202":{"description":"Success.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}}},"/api/v0/crons/{action}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Get info about the cron with the given action","operationId":"GetCron","parameters":[{"type":"string","description":"action of the cron to fetch","name":"action","in":"path","required":true}],"responses":{"200":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}},"default":{"description":"Success, cron info returned.","schema":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["crons"],"summary":"Delete the cron. Jobs created from it will not be canceled.","operationId":"DeleteCron","parameters":[{"type":"string","description":"action of cron to delete","name":"action","in":"path","required":true}],"responses":{"204":{"description":"Success, cron has been deleted."}}}},"/api/v0/events":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["events"],"summary":"Get Events","operationId":"GetEvents","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of event action to filter by","name":"eventType","in":"query"},{"type":"string","description":"Type of event object to filter by","name":"objectType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/imagescan/layeroverride":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Gets a list of all the available overrides","operationId":"GetLayerVulnOverrides","responses":{"200":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override","schema":{"type":"array","items":{"$ref":"#/definitions/responses.LayerVulnOverride"}}}}}},"/api/v0/imagescan/layeroverride/{layerid}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Sets a vulnerability override for the given layer","operationId":"SetLayerVulnOverride","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.VulnOverrideOption"}}],"responses":{"200":{"description":"Successfully set vulnerability override"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"500":{"description":"INTERNAL_ERROR: An internal server error occurred. Contact a system administrator for more information."},"default":{"description":"Successfully set vulnerability override"}}}},"/api/v0/imagescan/layeroverride/{vulnerabilityid}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deletes a layer vulnerability override","operationId":"DeleteLayerVulnOverride","parameters":[{"type":"string","description":"vulnerability id","name":"vulnerabilityid","in":"path","required":true}],"responses":{"200":{"description":"OK"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/imagescan/repositories/{namespace}/{reponame}/{tag}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Deprecated use /scansummary/repositories/{namespace}/{reponame}/{tag}","operationId":"GetSummaryByManifestDigest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include detailed summary results","name":"detailed","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.OldScanSummary"}}}}}},"/api/v0/imagescan/scan":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of all layers","operationId":"ScanAllLayers","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ScanOptions"}}],"responses":{"200":{"description":"Successfully submitted all layers to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted all layers to jobrunner for scan/check."}}}},"/api/v0/imagescan/scan/update":{"put":{"consumes":["multipart/form-data","application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Update the vulnerability database for security scanning","operationId":"UpdateVulnDB","parameters":[{"type":"boolean","default":false,"description":"Init or update vuln db in online mode.","name":"online","in":"query"},{"type":"file","description":"Upload file to init database","name":"file","in":"formData"}],"responses":{"200":{"description":"Successfully started to updated vulnerability DB."},"400":{"description":"SCANNING_DB_NOT_READY: Scanning DB is not ready"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully started to updated vulnerability DB."}}}},"/api/v0/imagescan/scan/{namespace}/{reponame}/{tag}/{os}/{arch}":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Do a scan or a scan/check of given image","operationId":"ScanImage","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"operating system of the tag","name":"os","in":"path","required":true},{"type":"string","description":"architecture of the tag","name":"arch","in":"path","required":true}],"responses":{"200":{"description":"Successfully submitted image to jobrunner for scan/check."},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully submitted image to jobrunner for scan/check."}}}},"/api/v0/imagescan/scansummary/component/{component}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by component","operationId":"GetScannedImageByComponent","parameters":[{"type":"string","description":"component","name":"component","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/cve/{cve}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by CVE","operationId":"GetScannedImageByCVE","parameters":[{"type":"string","description":"cve","name":"cve","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/layer/{layerid}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by layer sha","operationId":"GetScannedImageByLayer","parameters":[{"type":"string","description":"layer id","name":"layerid","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_LAYER: A layer with the given sha does not exist in the repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/license/{license}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the image by license","operationId":"GetScannedImageByLicense","parameters":[{"type":"string","description":"license","name":"license","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"}],"responses":{"200":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved images","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{reference}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag or namespace/repo@digest","operationId":"GetScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REF: A ref with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ScanSummary"}}}}}},"/api/v0/imagescan/scansummary/repositories/{namespace}/{reponame}/{tag}/export":{"get":{"consumes":["application/json"],"produces":["text/csv","application/json"],"tags":["imagescan"],"summary":"Get the scan summary info on a namespace/repo:tag as a file","operationId":"ExportScanSummary","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to include scan status summary results","name":"scanstatus","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"},{"type":"string","description":"Scan summary exported filetype","name":"Accept","in":"header"}],"responses":{"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/imagescan/scansummary/tags":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get a list of scan summaries","operationId":"GetScanSummaries","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ImagesForm"}}],"responses":{"200":{"description":"Successfully retrieved summary.","schema":{"$ref":"#/definitions/responses.ThinScanSummaries"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved summary.","schema":{"$ref":"#/definitions/responses.ThinScanSummaries"}}}}},"/api/v0/imagescan/status":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["imagescan"],"summary":"Get the status and version of scanning service","operationId":"GetNautilusDBStatus","responses":{"200":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}},"400":{"description":"SCANNING_NOT_ENABLED: Scanning is not enabled"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully retrieved DB status","schema":{"$ref":"#/definitions/responses.NautilusStatus"}}}}},"/api/v0/index/autocomplete":{"get":{"description":"\nRepository results will be filtered to only those repositories visible to the client. Account results will not be filtered.\n","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Autocompletion for repositories and/or accounts","operationId":"Autocomplete","parameters":[{"type":"string","description":"Autocomplete query","name":"query","in":"query","required":true},{"type":"boolean","default":true,"description":"Whether to include repositories in the response","name":"includeRepositories","in":"query"},{"type":"boolean","default":true,"description":"Whether to include accounts in the response","name":"includeAccounts","in":"query"},{"type":"string","description":"Exact repository namespace to limit results to.","name":"namespace","in":"query"},{"type":"number","default":25,"name":"limit","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Autocomplete"}}}}},"/api/v0/index/dockersearch":{"get":{"description":"\nThis is used for the Docker CLI's docker search command. Repository results will be filtered to only those repositories visible to the client.\n","consumes":["application/json"],"produces":["application/json"],"tags":["index"],"summary":"Search Docker repositories","operationId":"Docker Search","parameters":[{"type":"string","description":"Search query","name":"q","in":"query","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.DockerSearch"}}}}},"/api/v0/jobs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"List all jobs ordered by most recently scheduled","operationId":"ListJobs","parameters":[{"type":"string","default":"any","description":"Filter jobs by action.","name":"action","in":"query"},{"type":"string","default":"any","description":"Filter jobs by worker ID.","name":"worker","in":"query"},{"type":"string","default":"any","description":"Show only jobs that are running.","name":"running","in":"query"},{"type":"integer","default":0,"description":"Return most recently scheduled jobs starting from this offset index.","name":"start","in":"query"},{"type":"integer","default":10,"description":"Maximum number of jobs per page of results.","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"default":{"description":"Success, list of jobs returned.","schema":{"$ref":"#/definitions/tmpresponses.Jobs"}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Schedule a job to be run immediately","operationId":"CreateJob","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.JobSubmission"}}],"responses":{"202":{"description":"Success, job waiting to be claimed.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."}}}},"/api/v0/jobs/{jobID}":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Get info about the job with the given ID","operationId":"GetJob","parameters":[{"type":"string","description":"ID of job to fetch","name":"jobID","in":"path","required":true}],"responses":{"200":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"default":{"description":"Success, job info returned.","schema":{"$ref":"#/definitions/tmpresponses.Job"}}}},"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel and delete the job","operationId":"DeleteJobs","parameters":[{"type":"string","description":"ID of job to delete","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been deleted."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."}}}},"/api/v0/jobs/{jobID}/cancel":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Signal this job's worker to cancel the job","operationId":"CancelJob","parameters":[{"type":"string","description":"ID of job to cancel","name":"jobID","in":"path","required":true}],"responses":{"204":{"description":"Success, job has been canceled."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."}}}},"/api/v0/jobs/{jobID}/logs":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["jobs"],"summary":"Retrieve logs for this job from its worker","operationId":"GetJobLogs","parameters":[{"type":"string","description":"ID of job whose logs to retrieve","name":"jobID","in":"path","required":true},{"type":"boolean","default":false,"description":"t/f: stream new logs","name":"stream","in":"query"},{"type":"integer","default":0,"description":"Line number to start from","name":"offset","in":"query"},{"type":"integer","default":0,"description":"Number of lines to return if not streaming","name":"limit","in":"query"}],"responses":{"200":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"default":{"description":"Success, job's logs returned.","schema":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.JobLog"}}}}}},"/api/v0/meta/alerts":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get alerts","operationId":"GetAlerts","responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Alert"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Alert"}}}}}},"/api/v0/meta/cluster_status":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get cluster status","operationId":"GetClusterStatus","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ClusterStatus"}}}}},"/api/v0/meta/features":{"get":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get features","operationId":"GetFeatures","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Features"}}}}},"/api/v0/meta/settings":{"get":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Get settings","operationId":"GetSettings","responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Settings"}}}},"post":{"description":"\n*Authorization:* Client must be authenticated an admin.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["meta"],"summary":"Update settings","operationId":"UpdateSettings","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Settings"}}],"responses":{"202":{"description":"success"},"400":{"description":"INVALID_SETTINGS: The submitted settings change request contains invalid values."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/remote/registry":{"post":{"description":"\n*Authorization:* Client must be authenticated as any active user in the system. Credentials provided in the request body must be for an active user in the remote system.\n\t\t","consumes":["application/json"],"produces":["application/json"],"tags":["remote"],"summary":"Create a check for connection status of remote registry","operationId":"CreateRemoteRegistryCheck","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateRemoteRegistryCheck"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.RemoteRegistryCheck"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories":{"get":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List all repositories","operationId":"ListRepositories","parameters":[{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}}},"/api/v0/repositories/scan/toggle":{"post":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Toggles scan on push for all repositories","operationId":"ToggleAllRepositoriesScanOnPush","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.ToggleScanOnPush"}}],"responses":{"200":{"description":"Successfully toggled scan on push for all repositories."},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"Successfully toggled scan on push for all repositories."}}}},"/api/v0/repositories/{namespace}":{"get":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List repositories in a namespace","operationId":"ListNamespaceRepositories","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repositories"}}}},"post":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create repository","operationId":"CreateRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"name":"body","in":"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"View details of a repository","operationId":"GetRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}},"delete":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Remove a repository","operationId":"DeleteRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"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."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"REPOSITORY_CONTAINS_TAGS_IN_NOTARY: This repository contains tags in notary and can't be deleted until all tags in notary are removed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}},"patch":{"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","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Update details of a repository","operationId":"PatchRepository","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdateRepo"}}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Repository"}}}}},"/api/v0/repositories/{namespace}/{reponame}/events":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the events for a repository","operationId":"ListRepoEvents","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"string","name":"publishedBefore","in":"query"},{"type":"string","name":"publishedAfter","in":"query"},{"type":"string","description":"UUID of the user or organization that performed the event","name":"actorId","in":"query"},{"type":"string","description":"Type of event action to filter by","name":"eventType","in":"query"},{"type":"string","description":"Type of event object to filter by","name":"objectType","in":"query"},{"type":"boolean","default":false,"description":"Exclude image pull events","name":"excludePull","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}},"400":{"description":"INVALID_PARAMETERS: Unable to parse query parameters"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.Events"}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available manifests for a repository","operationId":"ListRepoManifests","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"404":{"description":"NO_SUCH_REPOSITORY: A repository with the given name does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Manifest"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/manifests/{reference}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a manifest for a repository","operationId":"DeleteRepoManifest","deprecated":true,"parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true}],"responses":{"204":{"description":"success"},"400":{"description":"INVALID_DIGEST: The given digest is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REF: A ref with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/mirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the mirroring policies for a repository","operationId":"ListRepoMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.MirroringPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.MirroringPolicy"}}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a set of mirroring policies for a repository","operationId":"DeleteRepoMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"type":"array","items":{"$ref":"#/definitions/forms.DeleteMirroringPolicyIDs"}}}],"responses":{"204":{"description":"success"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the poll mirroring policies for a repository","operationId":"ListRepoPollMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a poll mirroring policy for a repository","operationId":"CreateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePollMirroringPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pollMirroringPolicies/{pollmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific poll mirroring policy for a repository","operationId":"GetRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific poll mirroring policy for a repository","operationId":"UpdateRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePollMirroringPolicy"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_POLL_MIRRORING_POLICY: The given poll mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PollMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific poll mirroring policy for a repository","operationId":"DeleteRepoPollMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"poll mirroring policy id","name":"pollmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or poll mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_POLL_MIRRORING_POLICY: A poll mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the promotion policies for a repository","operationId":"ListRepoPromotionPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"boolean","default":true,"description":"Whether to list promotion policies for a repository as a source or destination.","name":"source","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PromotionPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"component.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"updated_at\"\n\t- \"bf\": before\n\t- \"af\": after\n- \"updated_at_duration\"\n\t- \"bf\": before\n\t- \"af\": after\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a promotion policy for a repository","operationId":"CreateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotionPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy 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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/promotionPolicies/{promotionpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the source or target repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific promotion policy for a repository","operationId":"GetRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source and target repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific promotion policy for a repository","operationId":"UpdateRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePromotionPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}},"400":{"description":"INVALID_PROMOTION_POLICY: The given promotion policy is invalid."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PromotionPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the source or target repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific promotion policy for a repository","operationId":"DeleteRepoPromotionPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"promotion policy id","name":"promotionpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or promotion policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PROMOTION_POLICY: A promotion policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pruningPolicies":{"get":{"description":"*Authorization:* Client must be authenticated as a user who has visibility to the repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the pruning policies for a repository","operationId":"ListRepoPruningPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PruningPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PruningPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"component.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"updated_at\"\n\t- \"bf\": before\n\t- \"af\": after\n- \"updated_at_duration\"\n\t- \"bf\": before\n\t- \"af\": after\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a pruning policy for a repository","operationId":"CreateRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePruningPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PruningPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PRUNING_POLICY: The given pruning policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pruningPolicies/test":{"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Test a pruning policy for a repository","operationId":"TestRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePruningPolicy"}},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ThinTag"}}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PRUNING_POLICY: The given pruning policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ThinTag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/pruningPolicies/{pruningpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific pruning policy for a repository","operationId":"GetRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"pruning policy id","name":"pruningpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PRUNING_POLICY: A pruning policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific pruning policy for a repository","operationId":"UpdateRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"pruning policy id","name":"pruningpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePruningPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PRUNING_POLICY: The given pruning policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PruningPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific pruning policy for a repository","operationId":"DeleteRepoPruningPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"pruning policy id","name":"pruningpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or pruning policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PRUNING_POLICY: A pruning policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the push mirroring policies for a repository","operationId":"ListRepoPushMirroringPolicies","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}}},"post":{"description":"*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\nRules for the policy can be on the following fields and their respective operators:\n- \"tag\"\n\t- \"eq\": equals\n\t- \"sw\": starts with\n\t- \"ew\": ends with\n\t- \"c\": contains\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"license.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"component.name\"\n\t- \"oo\": one of\n\t- \"noo\": not one of\n- \"vulnerability_all\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_critical\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_major\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"vulnerability_minor\"\n\t- \"gte\": greater than or equals\n\t- \"gt\": greater than\n\t- \"eq\": equals\n\t- \"neq\": not equals\n\t- \"lte\": less than or equals\n\t- \"lt\": less than\n- \"updated_at\"\n\t- \"bf\": before\n\t- \"af\": after\n- \"updated_at_duration\"\n\t- \"bf\": before\n\t- \"af\": after\n\nThe tag template is used to rename the tag in the target repository. The\nfollowing symbols are allowed:\n- \"%n\": The tag to promote (e.g. 1, 4.5, latest)\n- \"%A\": Day of the week (e.g. Sunday, Monday)\n- \"%a\": Day of the week, abbreviated (e.g. Sun, Mon , Tue)\n- \"%w\": Day of the week, as a number (e.g. 0, 1, 6)\n- \"%d\": Number for the day of the month (e.g. 01, 15, 31)\n- \"%B\": Month (e.g. January, December)\n- \"%b\": Month, abbreviated (e.g. Jan, Jun, Dec)\n- \"%m\": Month, as a number (e.g. 01, 06, 12)\n- \"%Y\": Year (e.g. 1999, 2015, 2048)\n- \"%y\": Year, two digits (e.g. 99, 15, 48)\n- \"%H\": Hour, in 24 hour format (e.g. 00, 12, 23)\n- \"%I\": Hour, in 12 hour format (e.g. 01, 10, 10)\n- \"%p\": Period of the day (e.g. AM, PM)\n- \"%M\": Minute (e.g. 00, 10, 59)\n- \"%S\": Second (e.g. 00, 10, 59)\n- \"%f\": Microsecond (e.g. 000000, 999999)\n- \"%Z\": Name for the timezone (e.g. UTC, PST, EST)\n- \"%j\": Day of the year (e.g. 001, 200, 366)\n- \"%W\": Week of the year (e.g. 00, 10 , 53)\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Create a push mirroring policy for a repository","operationId":"CreateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePushMirroringPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/pushMirroringPolicies/{pushmirroringpolicyid}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific push mirroring policy for a repository","operationId":"GetRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository and credentials to the remote repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Updates a specific push mirroring policy for a repository","operationId":"UpdateRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.UpdatePushMirroringPolicy"}},{"type":"boolean","default":true,"description":"Whether to evaluate the policy on creation","name":"initialEvaluation","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}},"400":{"description":"REMOTE_REGISTRY_INVALID_PERMISSIONS: Remote user not authorized to access the requested resource."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"INVALID_PUSH_MIRRORING_POLICY: The given push mirroring policy is invalid."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.PushMirroringPolicy"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the local repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Deletes a specific push mirroring policy for a repository","operationId":"DeleteRepoPushMirroringPolicy","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"push mirroring policy id","name":"pushmirroringpolicyid","in":"path","required":true}],"responses":{"204":{"description":"success or push mirroring policy does not exist"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_PUSH_MIRRORING_POLICY: A push mirroring policy with the given id does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the available tags for a repository","operationId":"ListRepoTags","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the manifest for each tag","name":"includeManifests","in":"query"},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ListTag"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.ListTag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{reference}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has visibility to the repository.\nIf the ref given is to a manifest list, multiple Tag objects will be returned, one for each manifest in the list.\nSimilarly if the ref is a digest the API will return all tags referencing that digest.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Retrieve a specific tag for a repository","operationId":"ListRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"digest or tag for an image manifest","name":"reference","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"},{"type":"string","description":"Operating system of the tag","name":"os","in":"query"},{"type":"string","description":"Architecture of the tag","name":"arch","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_REF: A ref with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Tag"}}}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}":{"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"write\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Delete a tag for a repository","operationId":"DeleteRepoTag","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"type":"string","description":"The domain used to push tags to DTR. Must be set to obtain/manipulate Notary related information","name":"domain","in":"query"}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"409":{"description":"TAG_IN_NOTARY: This tag is in notary and can't be deleted until it is removed from notary"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/promotion":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the source repository and \"write\" level access to the target repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Promotes a specific tag for a repository","operationId":"CreateRepoTagPromotion","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreatePromotion"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Promotion"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/tags/{tag}/pushMirroring":{"post":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"read\" level access to the local repository and \"write\" level access to the remote repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Mirrors a local tag by pushing to a remote repository","operationId":"CreateRepoTagPushMirroring","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"tag name","name":"tag","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.CreateMirroring"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Mirroring"}},"400":{"description":"INVALID_TAG_NAME: The given tag name is either too long or contains illegal characters."},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_TAG: A tag with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List teams granted access to an organization-owned repository","operationId":"ListRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}}},"/api/v0/repositories/{namespace}/{reponame}/teamAccess/{teamname}":{"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Set a team's access to an orgnization-owned repository","operationId":"GrantRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"Revoke a team's acccess to an organization-owned repository","operationId":"RevokeRepoTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"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_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/repositories/{namespace}/{reponame}/webhooks":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the repository.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositories"],"summary":"List the webhook subscriptions for a repository","operationId":"ListRepoWebhooks","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"name of repository","name":"reponame","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess":{"get":{"description":"\n*Authorization:* Client must be authenticated as an admin or a member of the organization.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"List teams granted access to an organization-owned namespace of repositories","operationId":"ListRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"The ID of the first record on the page","name":"pageStart","in":"query"},{"type":"integer","default":10,"description":"Maximum number of results to return","name":"pageSize","in":"query"},{"type":"boolean","default":false,"description":"Whether to include the resource count in the response header","name":"count","in":"query"}],"responses":{"200":{"description":"OK","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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.ListRepoNamespaceTeamAccess"}}}}},"/api/v0/repositoryNamespaces/{namespace}/teamAccess/{teamname}":{"get":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level\naccess to the namespace or is a member of the team.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Get a team's granted access to an organization-owned namespace of repositories","operationId":"GetRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"responses":{"200":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_NAMESPACE_TEAM_ACCESS: An access grant for the given team in the given namespace does not exist."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"put":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Set a team's access to an organization-owned namespace of repositories","operationId":"GrantRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Access"}}],"responses":{"200":{"description":"OK","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."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"$ref":"#/definitions/responses.NamespaceTeamAccess"}}}},"delete":{"description":"\n*Authorization:* Client must be authenticated as a user who has \"admin\" level access to the namespace.\n","consumes":["application/json"],"produces":["application/json"],"tags":["repositoryNamespaces"],"summary":"Revoke a team's access to an organization-owned namespace of repositories","operationId":"RevokeRepoNamespaceTeamAccess","parameters":[{"type":"string","description":"namespace/owner of repository","name":"namespace","in":"path","required":true},{"type":"string","description":"team name","name":"teamname","in":"path","required":true}],"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."},"404":{"description":"NO_SUCH_TEAM: A team with the given name does not exist in the organization."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"List Webhooks","operationId":"ListWebhooks","parameters":[{"type":"string","default":"any","description":"The type of webhook to list","name":"webhookType","in":"query"}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}},"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Create Webhook","operationId":"CreateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.Webhook"}}],"responses":{"201":{"description":"success","schema":{"$ref":"#/definitions/responses.Webhook"}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"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."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/webhooks/test":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Test Webhook","operationId":"TestWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookTestPayload"}}],"responses":{"200":{"description":"OK"},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK"}}}},"/api/v0/webhooks/update":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Update Webhook","operationId":"UpdateWebhook","parameters":[{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/forms.WebhookUpdate"}}],"responses":{"200":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}},"400":{"description":"INVALID_JSON: Unable to parse JSON"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"},"default":{"description":"OK","schema":{"type":"array","items":{"$ref":"#/definitions/responses.Webhook"}}}}}},"/api/v0/webhooks/{webhook}":{"delete":{"consumes":["application/json"],"produces":["application/json"],"tags":["webhooks"],"summary":"Delete Webhook","operationId":"DeleteWebhook","parameters":[{"type":"string","description":"webhook subscription ID","name":"webhook","in":"path","required":true}],"responses":{"204":{"description":"success"},"401":{"description":"NOT_AUTHENTICATED: The client is not authenticated."},"403":{"description":"NOT_AUTHORIZED: The client is not authorized."},"404":{"description":"NO_SUCH_WEBHOOK: A webhook subscription with the given name does not exist for the given repository."},"405":{"description":"NOT_ALLOWED: Method Not Allowed"},"406":{"description":"NOT_ACCEPTABLE: Not Acceptable"},"415":{"description":"UNSUPPORTED_MEDIA_TYPE: Unsupported Media Type"}}}},"/api/v0/workers":{"get":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"List all workers","operationId":"ListWorkers","responses":{"200":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}},"default":{"description":"Success, list of workers returned.","schema":{"$ref":"#/definitions/tmpresponses.Workers"}}}}},"/api/v0/workers/{id}/capacity":{"post":{"consumes":["application/json"],"produces":["application/json"],"tags":["workers"],"summary":"Update the capacity for a worker","operationId":"UpdateWorkerCapacity","parameters":[{"type":"string","description":"ID of worker to update","name":"id","in":"path","required":true},{"name":"body","in":"body","required":true,"schema":{"$ref":"#/definitions/tmpforms.UpdateWorkerCapacity"}}],"responses":{"202":{"description":"Success."}}}}},"definitions":{"forms.Access":{"required":["accessLevel"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]}}},"forms.CreateAPIToken":{"properties":{"tokenLabel":{"type":"string"}}},"forms.CreateContentCache":{"required":["name","host"],"properties":{"host":{"type":"string"},"name":{"type":"string"}}},"forms.CreateMirroring":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","remoteTag","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePollMirroringPolicy":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreatePromotion":{"required":["targetRepository","targetTag"],"properties":{"targetRepository":{"type":"string"},"targetTag":{"type":"string"}}},"forms.CreatePromotionPolicy":{"required":["rules","targetRepository","tagTemplate","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.CreatePruningPolicy":{"required":["rules","enabled"],"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}}}},"forms.CreatePushMirroringPolicy":{"required":["rules","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","username","password","authToken"],"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.CreateRemoteRegistryCheck":{"required":["remoteHost","remoteRepository","remoteCA","skipTLSVerification","username","password","authToken"],"properties":{"authToken":{"type":"string"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.CreateRepo":{"required":["name","shortDescription","longDescription","scanOnPush","immutableTags","enableManifestLists","tagLimit"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"tagLimit":{"type":"integer","format":"integer"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.DeleteMirroringPolicyIDs":{"required":["id"],"properties":{"id":{"type":"string"}}},"forms.EmptyForm":{},"forms.Image":{"required":["name","digest"],"properties":{"digest":{"type":"string"},"name":{"type":"string"}}},"forms.ImagesForm":{"required":["images"],"properties":{"images":{"type":"array","items":{"$ref":"#/definitions/forms.Image"}}}},"forms.ScanOptions":{"required":["scan","check"],"properties":{"check":{"type":"boolean"},"scan":{"type":"boolean"}}},"forms.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","disableUpgrades","reportAnalytics","anonymizeAnalytics","disableBackupWarning","webTLSCert","webTLSKey","webTLSCA","webTLSClientCA","clientCertAuthEnabled","scanningEnabled","scanningSyncOnline","scanningDeadline","scanningEnableAutoRecheck","jobHistoryCompactionEnabled","jobHistoryToKeep","jobHistoryMaxAge","repoEventHistoryCompactionEnabled","repoEventHistoryToKeep","repoEventHistoryMaxAge","readOnlyRegistry","disablePersistentCookies"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"clientCertAuthEnabled":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"disablePersistentCookies":{"type":"boolean"},"disableUpgrades":{"type":"boolean"},"dtrHost":{"type":"string"},"jobHistoryCompactionEnabled":{"type":"boolean"},"jobHistoryMaxAge":{"type":"string"},"jobHistoryToKeep":{"type":"integer","format":"int64"},"readOnlyRegistry":{"type":"boolean"},"repoEventHistoryCompactionEnabled":{"type":"boolean"},"repoEventHistoryMaxAge":{"type":"string"},"repoEventHistoryToKeep":{"type":"integer","format":"int64"},"reportAnalytics":{"type":"boolean"},"scanningDeadline":{"type":"integer"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSClientCA":{"type":"string"},"webTLSKey":{"type":"string"}}},"forms.ToggleScanOnPush":{"required":["scanOnPush"],"properties":{"scanOnPush":{"type":"boolean"}}},"forms.UpdateAPIToken":{"properties":{"isActive":{"type":"boolean"},"tokenLabel":{"type":"string"}}},"forms.UpdatePollMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"forms.UpdatePromotionPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"forms.UpdatePruningPolicy":{"properties":{"enabled":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}}}},"forms.UpdatePushMirroringPolicy":{"properties":{"authToken":{"type":"string"},"enabled":{"type":"boolean"},"password":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"forms.UpdateRepo":{"required":["immutableTags"],"properties":{"enableManifestLists":{"type":"boolean"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"tagLimit":{"type":"integer","format":"integer"},"visibility":{"type":"string","enum":["public","private"]}}},"forms.UserSettings":{"properties":{"contentCacheUUID":{"type":"string"}}},"forms.VulnOverrideOption":{"required":["component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"notes":{"type":"string"}}},"forms.Webhook":{"required":["endpoint","tlsCert","skipTLSVerification"],"properties":{"endpoint":{"type":"string"},"key":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"},"type":{"type":"string","enum":["TAG_PUSH","TAG_PULL","TAG_DELETE","PROMOTION","PUSH_MIRRORING","POLL_MIRRORING","MANIFEST_PUSH","MANIFEST_PULL","MANIFEST_DELETE","REPO_EVENT","SCAN_COMPLETED","SCAN_FAILED","SCANNER_UPDATE_COMPLETED"]}}},"forms.WebhookTestPayload":{"required":["type","endpoint","tlsCert","skipTLSVerification"],"properties":{"endpoint":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"},"type":{"type":"string"}}},"forms.WebhookUpdate":{"required":["id","inactive","tlsCert","skipTLSVerification"],"properties":{"id":{"type":"string"},"inactive":{"type":"boolean"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"}}},"responses.APIToken":{"required":["hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"tokenLabel":{"type":"string"}}},"responses.Account":{"required":["name","id","fullName","isOrg"],"properties":{"fullName":{"description":"Full Name of the account","type":"string"},"id":{"description":"ID of the account","type":"string"},"isActive":{"description":"Whether the user is active and can login (users only)","type":"boolean"},"isAdmin":{"description":"Whether the user is a system admin (users only)","type":"boolean"},"isImported":{"description":"Whether the user was imported from an upstream identity provider","type":"boolean"},"isOrg":{"description":"Whether the account is an organization (or user)","type":"boolean"},"membersCount":{"description":"The number of members of the organization","type":"integer","format":"int32"},"name":{"description":"Name of the account","type":"string"},"teamsCount":{"description":"The number of teams in the organization","type":"integer","format":"int32"}}},"responses.Alert":{"required":["message"],"properties":{"class":{"type":"string"},"id":{"type":"string"},"img":{"type":"string"},"message":{"type":"string"},"url":{"type":"string"}}},"responses.Autocomplete":{"properties":{"accountResults":{"type":"array","items":{"$ref":"#/definitions/responses.Account"}},"repositoryResults":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.ClusterStatus":{"required":["rethink_system_tables","replica_health","replica_timestamp","replica_readonly","gc_lock_holder"],"properties":{"gc_lock_holder":{"type":"string"},"replica_health":{"type":"object","additionalProperties":{"type":"string"}},"replica_readonly":{"type":"object","additionalProperties":{"type":"boolean"}},"replica_timestamp":{"type":"object","additionalProperties":{"type":"string"}},"rethink_system_tables":{"type":"object"}}},"responses.Component":{"required":["component","version","vulns","fullpath"],"properties":{"component":{"type":"string"},"fullpath":{"type":"array","items":{"type":"string"}},"license":{"$ref":"#/definitions/responses.License"},"version":{"type":"string"},"vulns":{"type":"array","items":{"$ref":"#/definitions/responses.VulnerabilityDetails"}}}},"responses.ContentCache":{"required":["id","name","host"],"properties":{"host":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"}}},"responses.DetailedSummary":{"required":["sha256sum"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/responses.Component"}},"sha256sum":{"type":"string"}}},"responses.DockerRepository":{"required":["description","is_official","is_trusted","name","star_count"],"properties":{"description":{"type":"string"},"is_official":{"type":"boolean"},"is_trusted":{"type":"boolean"},"name":{"type":"string"},"star_count":{"type":"integer","format":"int32"}}},"responses.DockerSearch":{"required":["num_results","query","results"],"properties":{"num_results":{"type":"integer","format":"int32"},"query":{"type":"string"},"results":{"type":"array","items":{"$ref":"#/definitions/responses.DockerRepository"}}}},"responses.DockerfileLine":{"required":["line","layerDigest","size","isEmpty"],"properties":{"isEmpty":{"type":"boolean"},"layerDigest":{"type":"string"},"line":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"},"urls":{"type":"array","items":{"type":"string"}}}},"responses.Events":{"required":["events"],"properties":{"events":{"type":"array","items":{"$ref":"#/definitions/schema.Event"}}}},"responses.Features":{"required":["scanningEnabled","scanningLicensed","promotionLicensed","mirroringLicensed","metadataStoreOptedIn","onlineGCEnabled","db_version","ucpHost"],"properties":{"db_version":{"type":"integer","format":"int32"},"metadataStoreOptedIn":{"type":"boolean"},"mirroringLicensed":{"type":"boolean"},"onlineGCEnabled":{"type":"boolean"},"promotionLicensed":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningLicensed":{"type":"boolean"},"ucpHost":{"type":"string"}}},"responses.Language":{"required":["language"],"properties":{"language":{"type":"string"}}},"responses.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"responses.License":{"required":["name","type","url"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"responses.ListRepoNamespaceTeamAccess":{"required":["namespace","teamAccessList"],"properties":{"namespace":{"type":"string"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListRepoTeamAccess":{"required":["repository","teamAccessList"],"properties":{"repository":{"$ref":"#/definitions/responses.Repository"},"teamAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.TeamAccess"}}}},"responses.ListTag":{"required":["name","digest","author","updatedAt","createdAt","hashMismatch","inNotary","manifest"],"properties":{"author":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"}}},"responses.ListTeamRepoAccess":{"required":["team","repositoryAccessList"],"properties":{"repositoryAccessList":{"type":"array","items":{"$ref":"#/definitions/responses.RepoAccess"}},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.Manifest":{"required":["digest"],"properties":{"architecture":{"type":"string"},"author":{"type":"string"},"configDigest":{"type":"string"},"configMediaType":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"dockerfile":{"type":"array","items":{"$ref":"#/definitions/responses.DockerfileLine"}},"mediaType":{"type":"string"},"os":{"type":"string"},"osVersion":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"responses.Mirroring":{"required":["mirroringPolicyID","digest","remoteRepository","remoteTag"],"properties":{"digest":{"type":"string"},"mirroringPolicyID":{"type":"string"},"remoteRepository":{"type":"string"},"remoteTag":{"type":"string"}}},"responses.MirroringPolicy":{"required":["id","mirroringType","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"mirroringType":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.NamespaceTeamAccess":{"required":["accessLevel","team","namespace"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"namespace":{"type":"string"},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.NautilusStatus":{"required":["state","scanner_version","scannerUpdatedAt","db_version","db_updated_at","lastDBUpdateFailed","lastVulnOverridesDBUpdateFailed"],"properties":{"db_updated_at":{"type":"string","format":"date-time"},"db_version":{"type":"integer","format":"int32"},"lastDBUpdateFailed":{"type":"boolean"},"lastVulnOverridesDBUpdateFailed":{"type":"boolean"},"replicas":{"type":"object","additionalProperties":{"$ref":"#/definitions/schema.ScannerFingerprint"}},"scannerUpdatedAt":{"type":"string","format":"date-time"},"scanner_version":{"type":"integer","format":"int32"},"state":{"type":"integer","format":"int32"}}},"responses.NewAPIToken":{"required":["token","hashedToken","tokenLabel","isActive","lastUsed","createdAt","generatedBy","creatorUa"],"properties":{"createdAt":{"type":"string","format":"date-time"},"creatorUa":{"type":"string"},"generatedBy":{"type":"string"},"hashedToken":{"type":"string"},"isActive":{"type":"boolean"},"lastUsed":{"type":"string","format":"date-time"},"token":{"type":"string"},"tokenLabel":{"type":"string"}}},"responses.Note":{"required":["reason","type"],"properties":{"reason":{"type":"string"},"type":{"type":"string"}}},"responses.OldScanSummary":{"required":["namespace","reponame","tag","critical","major","minor","last_scan_status","check_completed_at","should_rescan","has_foreign_layers"],"properties":{"check_completed_at":{"type":"string","format":"date-time"},"critical":{"type":"integer","format":"int32"},"has_foreign_layers":{"type":"boolean"},"last_scan_status":{"type":"integer","format":"int32"},"layer_details":{"type":"array","items":{"$ref":"#/definitions/responses.DetailedSummary"}},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"},"namespace":{"type":"string"},"reponame":{"type":"string"},"should_rescan":{"type":"boolean"},"tag":{"type":"string"}}},"responses.PollMirroringPolicy":{"required":["id","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"skipTLSVerification":{"type":"boolean"},"username":{"type":"string"}}},"responses.Promotion":{"required":["promotionPolicyID","string","sourceRepository","sourceTag"],"properties":{"promotionPolicyID":{"type":"string"},"sourceRepository":{"type":"string"},"sourceTag":{"type":"string"},"string":{"type":"string"}}},"responses.PromotionPolicy":{"required":["id","rules","sourceRepository","targetRepository","tagTemplate","enabled","lastPromotedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPromotedAt":{"type":"string","format":"date-time"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"sourceRepository":{"type":"string"},"tagTemplate":{"type":"string"},"targetRepository":{"type":"string"}}},"responses.PruningPolicy":{"required":["id","rules","repository","enabled","lastPrunedAt"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastPrunedAt":{"type":"string"},"repository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}}}},"responses.PushMirroringPolicy":{"required":["id","rules","username","localRepository","remoteHost","remoteRepository","remoteCA","skipTLSVerification","tagTemplate","enabled","lastMirroredAt","lastStatus"],"properties":{"enabled":{"type":"boolean"},"id":{"type":"string"},"lastMirroredAt":{"type":"string"},"lastStatus":{"$ref":"#/definitions/schema.MirroringStatus"},"localRepository":{"type":"string"},"remoteCA":{"type":"string"},"remoteHost":{"type":"string"},"remoteRepository":{"type":"string"},"rules":{"type":"array","items":{"$ref":"#/definitions/ruleengine.Rule"}},"skipTLSVerification":{"type":"boolean"},"tagTemplate":{"type":"string"},"username":{"type":"string"}}},"responses.RemoteRegistryCheck":{"required":["registryType","permissions"],"properties":{"permissions":{"$ref":"#/definitions/responses.RemoteRepositoryPermissions"},"registryType":{"type":"string"}}},"responses.RemoteRepositoryPermissions":{"required":["read","write"],"properties":{"read":{"type":"boolean"},"write":{"type":"boolean"}}},"responses.ReplicaSettings":{"required":["HTTPPort","HTTPSPort","node"],"properties":{"HTTPPort":{"type":"integer"},"HTTPSPort":{"type":"integer"},"node":{"type":"string"}}},"responses.RepoAccess":{"required":["accessLevel","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"}}},"responses.RepoUserAccess":{"required":["accessLevel","user","repository"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"repository":{"$ref":"#/definitions/responses.Repository"},"user":{"$ref":"#/definitions/responses.Account"}}},"responses.Repositories":{"required":["repositories"],"properties":{"repositories":{"type":"array","items":{"$ref":"#/definitions/responses.Repository"}}}},"responses.Repository":{"required":["id","namespace","namespaceType","name","shortDescription","visibility","scanOnPush","immutableTags","enableManifestLists","pulls","pushes","tagLimit"],"properties":{"enableManifestLists":{"type":"boolean"},"id":{"type":"string"},"immutableTags":{"type":"boolean"},"longDescription":{"type":"string"},"name":{"type":"string"},"namespace":{"type":"string"},"namespaceType":{"type":"string","enum":["user","organization"]},"pulls":{"type":"integer","format":"integer"},"pushes":{"type":"integer","format":"integer"},"scanOnPush":{"type":"boolean"},"shortDescription":{"type":"string"},"tagLimit":{"type":"integer","format":"integer"},"visibility":{"type":"string","enum":["public","private"]}}},"responses.ScanSummary":{"required":["scannedImage","shouldRescan"],"properties":{"scanStatus":{"type":"integer","format":"int32"},"scannedImage":{"$ref":"#/definitions/schema.ScannedImage"},"shouldRescan":{"type":"boolean"}}},"responses.Settings":{"required":["dtrHost","sso","createRepositoryOnPush","replicaSettings","httpProxy","httpsProxy","noProxy","disableUpgrades","reportAnalytics","anonymizeAnalytics","disableBackupWarning","logProtocol","logHost","logLevel","webTLSCert","webTLSCA","webTLSClientCA","clientCertAuthEnabled","replicaID","scanningEnabled","scanningSyncOnline","scanningDeadline","scanningEnableAutoRecheck","jobHistoryCompactionEnabled","jobHistoryToKeep","jobHistoryMaxAge","repoEventHistoryCompactionEnabled","repoEventHistoryToKeep","repoEventHistoryMaxAge","storageVolume","nfsHost","nfsPath","readOnlyRegistry","disablePersistentCookies"],"properties":{"anonymizeAnalytics":{"type":"boolean"},"clientCertAuthEnabled":{"type":"boolean"},"createRepositoryOnPush":{"type":"boolean"},"disableBackupWarning":{"type":"boolean"},"disablePersistentCookies":{"type":"boolean"},"disableUpgrades":{"type":"boolean"},"dtrHost":{"type":"string"},"httpProxy":{"type":"string"},"httpsProxy":{"type":"string"},"jobHistoryCompactionEnabled":{"type":"boolean"},"jobHistoryMaxAge":{"type":"string"},"jobHistoryToKeep":{"type":"integer","format":"int64"},"logHost":{"type":"string"},"logLevel":{"type":"string"},"logProtocol":{"type":"string"},"nfsHost":{"type":"string"},"nfsPath":{"type":"string"},"noProxy":{"type":"string"},"readOnlyRegistry":{"type":"boolean"},"replicaID":{"type":"string"},"replicaSettings":{"type":"object","additionalProperties":{"$ref":"#/definitions/responses.ReplicaSettings"}},"repoEventHistoryCompactionEnabled":{"type":"boolean"},"repoEventHistoryMaxAge":{"type":"string"},"repoEventHistoryToKeep":{"type":"integer","format":"int64"},"reportAnalytics":{"type":"boolean"},"scanningDeadline":{"type":"integer"},"scanningEnableAutoRecheck":{"type":"boolean"},"scanningEnabled":{"type":"boolean"},"scanningSyncOnline":{"type":"boolean"},"sso":{"type":"boolean"},"storageVolume":{"type":"string"},"webTLSCA":{"type":"string"},"webTLSCert":{"type":"string"},"webTLSClientCA":{"type":"string"}}},"responses.Tag":{"required":["createdAt","hashMismatch","inNotary","name","digest","author","updatedAt","manifest"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"createdAt":{"type":"string","format":"date-time"},"digest":{"type":"string"},"hashMismatch":{"description":"true if the hashes from notary and registry don't match","type":"boolean"},"inNotary":{"description":"true if the tag exists in Notary","type":"boolean"},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifest":{"$ref":"#/definitions/responses.Manifest"},"mirroring":{"$ref":"#/definitions/responses.Mirroring"},"name":{"type":"string"},"promotion":{"$ref":"#/definitions/responses.Promotion"},"updatedAt":{"type":"string","format":"date-time"},"vuln_summary":{"$ref":"#/definitions/responses.OldScanSummary"}}},"responses.Team":{"required":["id","clientUserIsMember"],"properties":{"clientUserIsMember":{"type":"boolean"},"id":{"type":"string"}}},"responses.TeamAccess":{"required":["accessLevel","team"],"properties":{"accessLevel":{"type":"string","enum":["read-only","read-write","admin"]},"team":{"$ref":"#/definitions/responses.Team"}}},"responses.ThinScanSummaries":{"required":["images"],"properties":{"images":{"type":"object","additionalProperties":{"$ref":"#/definitions/schema.ScannerVulnCount"}}}},"responses.ThinTag":{"required":["name","digest"],"properties":{"digest":{"type":"string"},"name":{"type":"string"}}},"responses.UserSettings":{"required":["ContentCacheUUID"],"properties":{"ContentCacheUUID":{"type":"string"}}},"responses.Vulnerability":{"required":["cve","cvss","summary"],"properties":{"cve":{"type":"string"},"cvss":{"type":"number","format":"float"},"summary":{"type":"string"}}},"responses.VulnerabilityDetails":{"required":["vuln","exact","notes"],"properties":{"exact":{"type":"boolean"},"notes":{"type":"array","items":{"$ref":"#/definitions/responses.Note"}},"vuln":{"$ref":"#/definitions/responses.Vulnerability"}}},"responses.Webhook":{"required":["id","type","key","endpoint","authorID","createdAt","inactive","tlsCert","skipTLSVerification"],"properties":{"authorID":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"endpoint":{"type":"string"},"id":{"type":"string"},"inactive":{"type":"boolean"},"key":{"type":"string"},"lastSuccessfulAt":{"type":"string","format":"date-time"},"skipTLSVerification":{"type":"boolean"},"tlsCert":{"type":"string"},"type":{"type":"string"}}},"ruleengine.Rule":{"properties":{"field":{"type":"string"},"operator":{"type":"string"},"values":{"type":"array","items":{"type":"string"}}}},"schema.Event":{"required":["id","publishedAt","actor","actorType","type","object","repository"],"properties":{"actor":{"type":"string"},"actorType":{"type":"string"},"id":{"type":"string"},"object":{"$ref":"#/definitions/schema.Object"},"publishedAt":{"type":"string","format":"date-time"},"repository":{"type":"string"},"target":{"$ref":"#/definitions/schema.Object"},"type":{"type":"string"}}},"schema.LayerVulnOverride":{"required":["pk","digest","component","componentVersion","cve","notes"],"properties":{"component":{"type":"string"},"componentVersion":{"type":"string"},"cve":{"type":"string"},"digest":{"type":"string"},"notes":{"type":"string"},"pk":{"type":"string"}}},"schema.MirroringStatus":{"required":["code","detail","timestamp"],"properties":{"code":{"type":"string"},"detail":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"schema.Object":{"required":["id","type"],"properties":{"content":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}}},"schema.ScannedImage":{"required":["pk","namespace","repository","tag","manifestDigest","totalVulnCount","licenses","layers","components","cves","maxCVSSValue","scannerFingerprint","vulnOverrides"],"properties":{"components":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerComponent"}},"cves":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerCVE"}},"layers":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLayer"}},"licenses":{"type":"array","items":{"$ref":"#/definitions/schema.ScannerLicense"}},"manifestDigest":{"type":"string"},"maxCVSSValue":{"type":"number","format":"float"},"namespace":{"type":"string"},"pk":{"type":"string"},"repository":{"type":"string"},"scannerFingerprint":{"$ref":"#/definitions/schema.ScannerFingerprint"},"tag":{"type":"string"},"totalVulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"},"vulnOverrides":{"type":"array","items":{"$ref":"#/definitions/schema.LayerVulnOverride"}}}},"schema.ScannerCVE":{"required":["cvePK","summary","cvss","notes"],"properties":{"cvePK":{"type":"string"},"cvss":{"type":"number","format":"float"},"notes":{"type":"string"},"summary":{"type":"string"}}},"schema.ScannerComponent":{"required":["componentPK","vulnCount","name","version","filepaths","cves","licenses","source"],"properties":{"componentPK":{"type":"string"},"cves":{"type":"array","items":{"type":"string"}},"filepaths":{"type":"array","items":{"type":"string"}},"licenses":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"source":{"type":"string"},"version":{"type":"string"},"vulnCount":{"$ref":"#/definitions/schema.ScannerVulnCount"}}},"schema.ScannerFingerprint":{"required":["scannerType","version"],"properties":{"scannerType":{"type":"integer","format":"int32"},"version":{"type":"array","items":{"type":"string"}}}},"schema.ScannerLayer":{"required":["digest","mediaType","author","size","components"],"properties":{"author":{"type":"string"},"components":{"type":"array","items":{"type":"string"}},"digest":{"type":"string"},"mediaType":{"type":"string"},"size":{"type":"integer","format":"int64"}}},"schema.ScannerLicense":{"required":["name","url","type"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}}},"schema.ScannerVulnCount":{"required":["critical","major","minor"],"properties":{"critical":{"type":"integer","format":"int32"},"major":{"type":"integer","format":"int32"},"minor":{"type":"integer","format":"int32"}}},"tmpforms.ActionConfigCreate":{"required":["action","parameters"],"properties":{"action":{"description":"The action to modify the config for","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job. These are overwritten by any corresponding parameters set in the job itself.","type":"object","additionalProperties":{"type":"string"}}}},"tmpforms.CronCreate":{"required":["action","schedule","retries","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action which the cron will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The for the cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the process is still alive","type":"string"}}},"tmpforms.EmptyForm":{},"tmpforms.JobSubmission":{"required":["action","parameters","retries","capacityMap","deadline","stopTimeout","scheduledAt"],"properties":{"action":{"description":"The action which the job will perform","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"description":"After this amount of time has passed, a SIGTERM will be sent","type":"string"},"parameters":{"description":"Parameters to start the job with","type":"object","additionalProperties":{"type":"string"}},"retries":{"description":"The number of times to retry a job if it fails","type":"integer","format":"int32"},"scheduledAt":{"description":"The time at which to run the job. Empty string or no value means now. Format: RFC3339","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the process is still alive","type":"string"}}},"tmpforms.UpdateWorkerCapacity":{"required":["capacityMap"],"properties":{"capacityMap":{"description":"The new capacity for the worker, representing roughly the amount of RAM to use","type":"object","additionalProperties":{"type":"integer"}}}},"tmpresponses.ActionConfig":{"required":["id","action","parameters"],"properties":{"action":{"description":"The action this config refers to.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}}}},"tmpresponses.ActionConfigs":{"required":["actionConfigs"],"properties":{"actionConfigs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.ActionConfig"}}}},"tmpresponses.Cron":{"required":["id","action","schedule","retries","capacityMap","parameters","deadline","stopTimeout","nextRun"],"properties":{"action":{"description":"The action to be performed by jobs spawned from this cron.","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"nextRun":{"description":"The next time the job will run.","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}},"retries":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"schedule":{"description":"The schedule for this cron as a cronspec string: (seconds) (minutes) (hours) (day of month) (month) (day of week) or @hourly, @weekly, etc.","type":"string"},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the process is still alive","type":"string"}}},"tmpresponses.Crons":{"required":["crons"],"properties":{"crons":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Cron"}}}},"tmpresponses.Job":{"required":["id","retryFromID","workerID","status","scheduledAt","lastUpdated","action","retriesLeft","retriesTotal","capacityMap","parameters","deadline","stopTimeout"],"properties":{"action":{"description":"The action this job performs","type":"string"},"capacityMap":{"description":"The map of required capacity","type":"object","additionalProperties":{"type":"integer"}},"deadline":{"type":"string"},"id":{"description":"The ID of the job","type":"string"},"lastUpdated":{"description":"The last time at which the status of this job was updated","type":"string","format":"date-time"},"parameters":{"description":"Extra parameters to pass to the job. The available parameters depend on the job.","type":"object","additionalProperties":{"type":"string"}},"retriesLeft":{"description":"The number of times to retry the job if it fails","type":"integer","format":"int32"},"retriesTotal":{"description":"The total number of times to retry the original job if it fails","type":"integer","format":"int32"},"retryFromID":{"description":"The ID of the job this job retried from","type":"string"},"scheduledAt":{"description":"The time at which this job was scheduled","type":"string","format":"date-time"},"status":{"description":"The current status of the job","type":"string","enum":["waiting","running","done","canceled","errored"]},"stopTimeout":{"description":"This long after SIGTERM is sent, SIGKILL will be sent if the process is still alive","type":"string"},"workerID":{"description":"The ID of the worker which performed the job, unclaimed by a worker if empty","type":"string"}}},"tmpresponses.JobLog":{"required":["data","lineNum"],"properties":{"data":{"type":"string"},"lineNum":{"type":"integer","format":"int32"}}},"tmpresponses.Jobs":{"required":["jobs"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Job"}}}},"tmpresponses.Worker":{"required":["id","status","capacityMap","heartbeatExpiration"],"properties":{"capacityMap":{"description":"A map used to represent now much load the worker should be allocated. Only security scanning jobs use this and the value is roughly equivalent to expected memory usage in bytes.","type":"object","additionalProperties":{"type":"integer"}},"heartbeatExpiration":{"description":"Time after which the worker should be considered dead.","type":"string"},"id":{"description":"Randomly generated UUID for foreign references.","type":"string"},"status":{"description":"Status of the worker","type":"string"}}},"tmpresponses.Workers":{"required":["workers"],"properties":{"workers":{"type":"array","items":{"$ref":"#/definitions/tmpresponses.Worker"}}}}},"tags":[{"description":"Accounts","name":"accounts"},{"description":"Admin","name":"meta"},{"description":"Content Caches","name":"content_caches"},{"description":"Repositories","name":"repositories"},{"description":"Repository Namespaces","name":"repositoryNamespaces"},{"description":"Events","name":"events"},{"description":"Docker Security Scanner","name":"imagescan"},{"description":"Webhooks","name":"webhooks"},{"description":"Jobs","name":"jobs"},{"description":"Crons","name":"crons"},{"description":"Workers","name":"workers"},{"description":"Action Configs","name":"action_configs"}]} , dom_id: '#swagger-ui', validatorUrl: null,