UNPKG

92.2 kBJSONView Raw
1{"openapi":"3.0.0","info":{"contact":{"email":"nurmi@anchore.com","x-twitter":"anchore"},"description":"This is the Anchore Engine API. Provides the primary external API for users of the service.","license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"title":"Anchore Engine API Server","version":"0.1.9","x-apisguru-categories":["developer_tools"],"x-logo":{"url":"https://twitter.com/anchore/profile_image?size=original"},"x-origin":[{"format":"swagger","url":"https://raw.githubusercontent.com/anchore/anchore-engine/master/anchore_engine/services/apiext/swagger/swagger.yaml","version":"2.0"}],"x-providerName":"anchore.io"},"security":[{"basicAuth":[]}],"tags":[{"description":"Subscription Management","name":"Subscriptions"},{"description":"Policy Management","name":"Policies"},{"description":"Image Management","name":"Images"},{"description":"View Image Content","name":"Image Content"},{"description":"Vulnerability checks and reports","name":"Vulnerabilities"},{"description":"Evaluate images against policies","name":"Policy Evaluation"},{"description":"Registry Management","name":"Registries"},{"description":"Repository Credential Management","name":"Repository Credentials"},{"description":"System Management","name":"System"},{"description":"Service Management","name":"Services"},{"description":"Resource Summaries","name":"Summaries"},{"description":"View and delete events","name":"Events"},{"description":"Resource Queries","name":"Queries"},{"description":"Manage Accounts, Users, and Credentials","name":"User Management"},{"description":"Get and operate on the authenticated user's identity","name":"Identity"}],"paths":{"/":{"get":{"description":"Simple status check","operationId":"ping","responses":{"200":{"description":"Version check response, returns the api version prefix (e.g. 'v1')","content":{"application/json":{"schema":{"type":"string"}}}}},"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/account":{"get":{"operationId":"get_users_account","responses":{"200":{"description":"User details for caller's user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List the account for the authenticated user","tags":["Identity"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/accounts":{"get":{"operationId":"list_accounts","parameters":[{"description":"Filter accounts by state","in":"query","name":"state","required":false,"schema":{"type":"string","enum":["active","disabled","deleting"]}}],"responses":{"200":{"description":"Accound summary listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List user summaries. Only available to the system admin user.","tags":["User Management"],"x-anchore-authz-action":"listAccounts","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"},"post":{"operationId":"create_account","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountCreationRequest"}}},"required":true},"responses":{"200":{"description":"Account Record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"409":{"description":"Conflicting user information. User already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Create a new user. Only avaialble to admin user.","tags":["User Management"],"x-anchore-authz-action":"createAccount","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/accounts/{accountname}":{"delete":{"operationId":"delete_account","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Successful deletion"},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete the specified account, only allowed if the account is in the disabled state. All users will be deleted along with the account and all resources will be garbage collected","tags":["User Management"],"x-anchore-authz-action":"deleteAccount","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"},"get":{"operationId":"get_account","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Get user information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get info about an user. Only available to admin user. Uses the main user Id, not a username.","tags":["User Management"],"x-anchore-authz-action":"getAccount","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/accounts/{accountname}/state":{"put":{"operationId":"update_account_state","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountStatus"}}},"required":true},"responses":{"200":{"description":"Updated state of the account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountStatus"}}}},"400":{"description":"State requested is invalid based on current state of the account","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Update the state of an account to either enabled or disabled. For deletion use the DELETE route","tags":["User Management"],"x-anchore-authz-action":"updateAccount","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/accounts/{accountname}/users":{"get":{"operationId":"list_users","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"User listing","content":{"application/json":{"schema":{"description":"List of user credential records","items":{"$ref":"#/components/schemas/User"},"type":"array"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List accounts for the user","tags":["User Management"],"x-anchore-authz-action":"listUsers","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"},"post":{"operationId":"create_user","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreationRequest"}}},"required":true},"responses":{"200":{"description":"Credential summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}}},"summary":"Create a new user","tags":["User Management"],"x-anchore-authz-action":"createUser","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/accounts/{accountname}/users/{username}":{"delete":{"operationId":"delete_user","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}},{"in":"path","name":"username","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted credential"},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete a specific user credential by username of the credential. Cannot be the credential used to authenticate the request.","tags":["User Management"],"x-anchore-authz-action":"deleteUser","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"},"get":{"operationId":"get_account_user","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}},{"in":"path","name":"username","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"User record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get a specific user in the specified account","tags":["User Management"],"x-anchore-authz-action":"getUser","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/accounts/{accountname}/users/{username}/credentials":{"delete":{"operationId":"delete_user_credential","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}},{"in":"path","name":"username","required":true,"schema":{"type":"string"}},{"in":"query","name":"credential_type","required":true,"schema":{"type":"string","enum":["password"]}}],"responses":{"204":{"description":"Successful deletion"},"400":{"description":"Conflict, cannot delete the credential used to authenticate this request"},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete a credential by type","tags":["User Management"],"x-anchore-authz-action":"updateUser","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"},"get":{"operationId":"list_user_credentials","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}},{"in":"path","name":"username","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"User credential listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get current credential summary","tags":["User Management"],"x-anchore-authz-action":"getUser","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"},"post":{"operationId":"create_user_credential","parameters":[{"in":"path","name":"accountname","required":true,"schema":{"type":"string"}},{"in":"path","name":"username","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/AccessCredential"},"responses":{"200":{"description":"Add a credential, overwritting if already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"add/replace credential","tags":["User Management"],"x-anchore-authz-action":"updateUser","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.accounts"}},"/events":{"delete":{"description":"Delete all or a subset of events filtered using the optional query parameters","operationId":"delete_events","parameters":[{"description":"Delete events that occurred before the timestamp","in":"query","name":"before","required":false,"schema":{"type":"string"}},{"description":"Delete events that occurred after the timestamp","in":"query","name":"since","required":false,"schema":{"type":"string"}},{"description":"Delete events that match the level - INFO or ERROR","in":"query","name":"level","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"List of deleted event IDs","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete Events","tags":["Events"],"x-anchore-authz-action":"deleteEvents","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.events"},"get":{"description":"Returns a paginated list of events in the descending order of their occurrence. Optional query parameters may be used for filtering results","operationId":"list_events","parameters":[{"description":"Filter events by the originating service","in":"query","name":"source_servicename","required":false,"schema":{"type":"string"}},{"description":"Filter events by the originating host ID","in":"query","name":"source_hostid","required":false,"schema":{"type":"string"}},{"description":"Filter events by the type of resource - tag, imageDigest, repository etc","in":"query","name":"resource_type","required":false,"schema":{"type":"string"}},{"description":"Filter events by the id of the resource","in":"query","name":"resource_id","required":false,"schema":{"type":"string"}},{"description":"Filter events by the level - INFO or ERROR","in":"query","name":"level","required":false,"schema":{"type":"string"}},{"description":"Return events that occurred after the timestamp","in":"query","name":"since","required":false,"schema":{"type":"string"}},{"description":"Return events that occurred before the timestamp","in":"query","name":"before","required":false,"schema":{"type":"string"}},{"description":"Pagination controls - return the nth page of results. Defaults to first page if left empty","in":"query","name":"page","required":false,"schema":{"type":"integer","default":1}},{"description":"Number of events in the result set. Defaults to 100 if left empty","in":"query","name":"limit","required":false,"schema":{"type":"integer","default":100}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Paginated list of event records and the next token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventsList"}}}}},"summary":"List Events","tags":["Events"],"x-anchore-authz-action":"listEvents","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.events"}},"/events/{eventId}":{"delete":{"description":"Delete an event by its event ID","operationId":"delete_event","parameters":[{"description":"Event ID of the event to be deleted","in":"path","name":"eventId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Delete success"}},"summary":"Delete Event","tags":["Events"],"x-anchore-authz-action":"getEvent","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.events"},"get":{"description":"Lookup an event by its event ID","operationId":"get_event","parameters":[{"description":"Event ID of the event for lookup","in":"path","name":"eventId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Single event record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventResponse"}}}}},"summary":"Get Event","tags":["Events"],"x-anchore-authz-action":"getEvent","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.events"}},"/health":{"get":{"description":"Health check, returns 200 and no body if service is running","operationId":"health_noop","responses":{"200":{"description":"Empty body on success"}},"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/imageimport":{"post":{"operationId":"import_image","parameters":[{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageAnalysisReport"}}},"required":true},"responses":{"200":{"description":"Import task accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchoreImageList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Import and image analysis directly","tags":["Images"],"x-anchore-authz-action":"importImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images":{"get":{"description":"List all images visible to the user","operationId":"list_images","parameters":[{"description":"Include image history in the response","in":"query","name":"history","required":false,"schema":{"type":"boolean"}},{"description":"Full docker-pull string to filter results by (e.g. docker.io/library/nginx:latest, or myhost.com:5000/testimages:v1.1.1)","in":"query","name":"fulltag","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageFilter"}}},"x-nullable":true},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchoreImageList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List all visible images","tags":["Images"],"x-anchore-authz-action":"listImages","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"},"post":{"description":"Creates a new analysis task that is executed asynchronously","operationId":"add_image","parameters":[{"description":"Override any existing entry in the system","in":"query","name":"force","required":false,"schema":{"type":"boolean"}},{"description":"Instruct engine to automatically begin watching the added tag for updates from registry","in":"query","name":"autosubscribe","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageAnalysisRequest"}}},"required":true},"responses":{"200":{"description":"Successfully added image to analysis queue","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchoreImageList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Submit a new image for analysis by the engine","tags":["Images"],"x-anchore-authz-action":"createImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}":{"delete":{"operationId":"delete_image_by_imageId","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Image deletion success"},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete image by docker imageId","tags":["Images"],"x-anchore-authz-action":"deleteImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"},"get":{"operationId":"get_image_by_imageId","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Image lookup success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchoreImageList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Lookup image by docker imageId","tags":["Images"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/check":{"get":{"description":"Get the policy evaluation for the given image","operationId":"get_image_policy_check_by_imageId","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"in":"query","name":"policyId","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":true,"schema":{"type":"string"}},{"in":"query","name":"detail","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"history","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Policy evaluation success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyEvaluationList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Check policy evaluation status for image","tags":["Images","Policy Evaluation"],"x-anchore-authz-action":"getImageEvaluation","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/content":{"get":{"operationId":"list_image_content_by_imageid","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List image content types","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/content/files":{"get":{"operationId":"get_image_content_by_type_imageId_files","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentFilesResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the content of an image by type files","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/content/java":{"get":{"operationId":"get_image_content_by_type_imageId_javapackage","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentJAVAPackageResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the content of an image by type java","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/content/{ctype}":{"get":{"operationId":"get_image_content_by_type_imageId","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"in":"path","name":"ctype","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentPackageResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the content of an image by type","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/vuln":{"get":{"operationId":"get_image_vulnerability_types_by_imageId","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Vulnerability listing for the image","content":{"application/json":{"schema":{"items":{"enum":["all","os","non-os"],"type":"string"},"type":"array"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get vulnerability types","tags":["Images","Vulnerabilities","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/by_id/{imageId}/vuln/{vtype}":{"get":{"operationId":"get_image_vulnerabilities_by_type_imageId","parameters":[{"in":"path","name":"imageId","required":true,"schema":{"type":"string"}},{"in":"path","name":"vtype","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Vulnerability listing for the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VulnerabilityResponse"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get vulnerabilities by type","tags":["Images","Vulnerabilities","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}":{"delete":{"operationId":"delete_image","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Image deletion success"}},"summary":"Delete an image analysis","tags":["Images"],"x-anchore-authz-action":"deleteImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"},"get":{"operationId":"get_image","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Image lookup success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchoreImageList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get image metadata","tags":["Images"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/check":{"get":{"description":"Get the policy evaluation for the given image","operationId":"get_image_policy_check","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"in":"query","name":"policyId","required":false,"schema":{"type":"string"}},{"in":"query","name":"tag","required":true,"schema":{"type":"string"}},{"in":"query","name":"detail","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"history","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"interactive","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Policy evaluation success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyEvaluationList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Check policy evaluation status for image","tags":["Images","Policy Evaluation"],"x-anchore-authz-action":"getImageEvaluation","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/content":{"get":{"operationId":"list_image_content","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content listing for the image","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List image content types","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/content/files":{"get":{"operationId":"get_image_content_by_type_files","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentFilesResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the content of an image by type files","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/content/java":{"get":{"operationId":"get_image_content_by_type_javapackage","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentJAVAPackageResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the content of an image by type java","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/content/{ctype}":{"get":{"operationId":"get_image_content_by_type","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"in":"path","name":"ctype","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Content of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentPackageResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the content of an image by type","tags":["Images","Image Content","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/metadata":{"get":{"operationId":"list_image_metadata","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Metadata listing for the image","content":{"application/json":{"schema":{"items":{"type":"string"},"type":"array"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List image metadata types","tags":["Images","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/metadata/{mtype}":{"get":{"operationId":"get_image_metadata_by_type","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"in":"path","name":"mtype","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Metadata of specified type from the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get the metadata of an image by type","tags":["Images","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/vuln":{"get":{"operationId":"get_image_vulnerability_types","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Vulnerability listing for the image","content":{"application/json":{"schema":{"items":{"enum":["all","os","non-os"],"type":"string"},"type":"array"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get vulnerability types","tags":["Images","Vulnerabilities","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/images/{imageDigest}/vuln/{vtype}":{"get":{"operationId":"get_image_vulnerabilities_by_type","parameters":[{"in":"path","name":"imageDigest","required":true,"schema":{"type":"string"}},{"in":"path","name":"vtype","required":true,"schema":{"type":"string"}},{"in":"query","name":"force_refresh","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"vendor_only","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Vulnerability listing for the image","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VulnerabilityResponse"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get vulnerabilities by type","tags":["Images","Vulnerabilities","Queries"],"x-anchore-authz-action":"getImage","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/policies":{"get":{"description":"List all saved policy bundles","operationId":"list_policies","parameters":[{"description":"Include policy bundle detail in the form of the full bundle content for each entry","in":"query","name":"detail","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Policy listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyBundleList"}}}}},"summary":"List policies","tags":["Policies"],"x-anchore-authz-action":"listPolicies","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.policies"},"post":{"description":"Adds a new policy bundle to the system","operationId":"add_policy","parameters":[{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyBundle"}}},"required":true},"responses":{"200":{"description":"Saved bundle","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyBundleRecord"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Add a new policy","tags":["Policies"],"x-anchore-authz-action":"createPolicy","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.policies"}},"/policies/{policyId}":{"delete":{"description":"Delete the specified policy","operationId":"delete_policy","parameters":[{"in":"path","name":"policyId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Delete success"},"404":{"description":"Policy not found to delete","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete policy","tags":["Policies"],"x-anchore-authz-action":"deletePolicy","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.policies"},"get":{"description":"Get the policy bundle content","operationId":"get_policy","parameters":[{"in":"path","name":"policyId","required":true,"schema":{"type":"string"}},{"description":"Include policy bundle detail in the form of the full bundle content for each entry","in":"query","name":"detail","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"A list with a single fetched policy bundle record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyBundleList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get specific policy","tags":["Policies"],"x-anchore-authz-action":"getPolicy","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.policies"},"put":{"description":"Update/replace and existing policy","operationId":"update_policy","parameters":[{"in":"path","name":"policyId","required":true,"schema":{"type":"string"}},{"description":"Mark policy as active","in":"query","name":"active","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyBundleRecord"}}},"required":true},"responses":{"200":{"description":"A list with a single updated policy bundle record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyBundleList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Update policy","tags":["Policies"],"x-anchore-authz-action":"updatePolicy","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.policies"}},"/query/images/by_package":{"get":{"description":"Filterable query interface to search for images containing specified package","operationId":"query_images_by_package","parameters":[{"description":"Name of package to search for (e.g. sed)","in":"query","name":"name","required":true,"schema":{"type":"string"}},{"description":"Type of package to filter on (e.g. dpkg)","in":"query","name":"package_type","required":false,"schema":{"type":"string"}},{"description":"Version of named package to filter on (e.g. 4.4-1)","in":"query","name":"version","required":false,"schema":{"type":"string"}},{"description":"The page of results to fetch. Pages start at 1","in":"query","name":"page","required":false,"schema":{"type":"string"}},{"description":"Limit the number of records for the requested page. If omitted or set to 0, return all results in a single page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Image listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedImageList"}}}},"400":{"description":"Bad filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List of images containing given package","tags":["Queries"],"x-anchore-authz-action":"listImages","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.query"}},"/query/images/by_vulnerability":{"get":{"description":"Returns a listing of images and their respective packages vulnerable to the given vulnerability ID","operationId":"query_images_by_vulnerability","parameters":[{"description":"The ID of the vulnerability to search for within all images stored in anchore-engine (e.g. CVE-1999-0001)","in":"query","name":"vulnerability_id","required":true,"schema":{"type":"string"}},{"description":"Filter results to images within the given vulnerability namespace (e.g. debian:8, ubuntu:14.04)","in":"query","name":"namespace","required":false,"schema":{"type":"string"}},{"description":"Filter results to images with vulnable packages with the given package name (e.g. libssl)","in":"query","name":"affected_package","required":false,"schema":{"type":"string"}},{"description":"Filter results to vulnerable package/vulnerability with the given severity","in":"query","name":"severity","required":false,"schema":{"type":"string","enum":["Unknown","Negligible","Low","Medium","High","Critical"]}},{"description":"Filter results to include only vulnerabilities that are not marked as invalid by upstream OS vendor data","in":"query","name":"vendor_only","required":false,"schema":{"type":"boolean","default":true}},{"description":"The page of results to fetch. Pages start at 1","in":"query","name":"page","required":false,"schema":{"type":"integer"}},{"description":"Limit the number of records for the requested page. If omitted or set to 0, return all results in a single page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Image lookup success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedVulnerableImageList"}}}},"400":{"description":"Invalid filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List images vulnerable to the specific vulnerability ID.","tags":["Vulnerabilities","Queries"],"x-anchore-authz-action":"listImages","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.query"}},"/query/vulnerabilities":{"get":{"description":"List (w/filters) vulnerability records known by the system, with affected packages information if present","operationId":"query_vulnerabilities","parameters":[{"description":"The ID of the vulnerability (e.g. CVE-1999-0001)","in":"query","name":"id","required":true,"schema":{"type":"string"}},{"description":"Filter results by specified package name (e.g. sed)","in":"query","name":"affected_package","required":false,"schema":{"type":"string"}},{"description":"Filter results by specified package version (e.g. 4.4-1)","in":"query","name":"affected_package_version","required":false,"schema":{"type":"string"}},{"description":"The page of results to fetch. Pages start at 1","in":"query","name":"page","required":false,"schema":{"type":"string","default":"1"}},{"description":"Limit the number of records for the requested page. If omitted or set to 0, return all results in a single page","in":"query","name":"limit","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Vulnerability listing paginated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedVulnerabilityList"}}}},"400":{"description":"Invalid filter parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Listing information about given vulnerability","tags":["Vulnerabilities","Queries"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.query"}},"/registries":{"get":{"description":"List all configured registries the system can/will watch","operationId":"list_registries","parameters":[{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Registry listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryConfigurationList"}}}}},"summary":"List configured registries","tags":["Registries"],"x-anchore-authz-action":"listRegistries","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.registries"},"post":{"description":"Adds a new registry to the system","operationId":"create_registry","parameters":[{"description":"flag to determine whether or not to validate registry/credential at registry add time","in":"query","name":"validate","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"$ref":"#/components/requestBodies/RegistryConfigurationRequest"},"responses":{"200":{"description":"Saved registry configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryConfigurationList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Add a new registry","tags":["Registries"],"x-anchore-authz-action":"createRegistry","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.registries"}},"/registries/{registry}":{"delete":{"description":"Delete a registry configuration record from the system. Does not remove any images.","operationId":"delete_registry","parameters":[{"in":"path","name":"registry","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Delete success"},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete a registry configuration","tags":["Registries"],"x-anchore-authz-action":"deleteRegistry","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.registries"},"get":{"description":"Get information on a specific registry","operationId":"get_registry","parameters":[{"in":"path","name":"registry","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Registry configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryConfiguration"}}}}},"summary":"Get a specific registry configuration","tags":["Registries"],"x-anchore-authz-action":"getRegistry","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.registries"},"put":{"description":"Replaces an existing registry record with the given record","operationId":"update_registry","parameters":[{"in":"path","name":"registry","required":true,"schema":{"type":"string"}},{"description":"flag to determine whether or not to validate registry/credential at registry update time","in":"query","name":"validate","required":false,"schema":{"type":"boolean"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"$ref":"#/components/requestBodies/RegistryConfigurationRequest"},"responses":{"200":{"description":"Updated registry configuration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryConfigurationList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Update/replace a registry configuration","tags":["Registries"],"x-anchore-authz-action":"updateRegistry","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.registries"}},"/repositories":{"post":{"description":"","operationId":"add_repository","parameters":[{"description":"full repository to add e.g. docker.io/library/alpine","in":"query","name":"repository","required":true,"schema":{"type":"string"}},{"description":"flag to enable/disable auto tag_update activation when new images from a repo are added","in":"query","name":"autosubscribe","required":false,"schema":{"type":"boolean"}},{"description":"use specified existing tag to perform repo scan (default is 'latest')","in":"query","name":"lookuptag","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Repository and discovered tags added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionList"}}}}},"summary":"Add repository to watch","tags":["Repository Credentials"],"x-anchore-authz-action":"createRepository","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/status":{"get":{"description":"Get the API service status","operationId":"get_status","responses":{"200":{"description":"Status listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Service status","tags":["System"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/subscriptions":{"get":{"operationId":"list_subscriptions","parameters":[{"description":"filter only subscriptions matching key","in":"query","name":"subscription_key","required":false,"schema":{"type":"string"}},{"description":"filter only subscriptions matching type","in":"query","name":"subscription_type","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Subscription listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List all subscriptions","tags":["Subscriptions"],"x-anchore-authz-action":"listSubscriptions","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.subscriptions"},"post":{"description":"Create a new subscription to watch a tag and get notifications of changes","operationId":"add_subscription","parameters":[{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionRequest"}}},"required":true},"responses":{"200":{"description":"Subscription add success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionList"}}}}},"summary":"Add a subscription of a specific type","tags":["Subscriptions"],"x-anchore-authz-action":"createSubscription","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.subscriptions"}},"/subscriptions/{subscriptionId}":{"delete":{"operationId":"delete_subscription","parameters":[{"in":"path","name":"subscriptionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Delete success"},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete subscriptions of a specific type","tags":["Subscriptions"],"x-anchore-authz-action":"deleteSubscription","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.subscriptions"},"get":{"operationId":"get_subscription","parameters":[{"in":"path","name":"subscriptionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"Filtered subscription list by type","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get a specific subscription set","tags":["Subscriptions"],"x-anchore-authz-action":"getSubscription","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.subscriptions"},"put":{"operationId":"update_subscription","parameters":[{"in":"path","name":"subscriptionId","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/AsAccountParameter"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionUpdate"}}},"required":true},"responses":{"200":{"description":"Subscription add success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionList"}}}}},"summary":"Update an existing and specific subscription","tags":["Subscriptions"],"x-anchore-authz-action":"updateSubscription","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.subscriptions"}},"/summaries/imagetags":{"get":{"description":"List all image tags visible to the user","operationId":"list_imagetags","parameters":[{"$ref":"#/components/parameters/AsAccountParameter"}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchoreImageTagSummaryList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List all visible image digests and tags","tags":["Summaries"],"x-anchore-authz-action":"listImages","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.images"}},"/system":{"get":{"description":"Get the system status including queue lengths","operationId":"get_service_detail","responses":{"200":{"description":"Status listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemStatusResponse"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"System status","tags":["System"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/system/feeds":{"get":{"description":"","operationId":"get_system_feeds","responses":{"200":{"description":"success","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/FeedMetadata"},"type":"array"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"list feeds operations and information","tags":["System"],"x-anchore-authz-action":"listFeeds","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"},"post":{"description":"","operationId":"post_system_feeds","parameters":[{"description":"instruct system to flush existing data feeds records from anchore-engine","in":"query","name":"flush","required":false,"schema":{"type":"boolean"}},{"description":"instruct system to re-sync data feeds","in":"query","name":"sync","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Feeds operation success"},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"trigger feeds operations","tags":["System"],"x-anchore-authz-action":"updateFeeds","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/system/policy_spec":{"get":{"description":"Get the policy language spec for this service","operationId":"describe_policy","responses":{"200":{"description":"Policy Language Description","content":{"application/json":{"schema":{"description":"List of Gate specifications","items":{"$ref":"#/components/schemas/GateSpec"},"type":"array"}}}}},"summary":"Describe the policy language spec implemented by this service.","tags":["System","Policy"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/system/services":{"get":{"operationId":"list_services","responses":{"200":{"description":"Service listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List system services","tags":["System","Services"],"x-anchore-authz-action":"listServices","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/system/services/{servicename}":{"get":{"operationId":"get_services_by_name","parameters":[{"in":"path","name":"servicename","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service Info","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceList"}}}},"500":{"description":"Internal Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get a service configuration and state","tags":["System","Services"],"x-anchore-authz-action":"getService","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/system/services/{servicename}/{hostid}":{"delete":{"operationId":"delete_service","parameters":[{"in":"path","name":"servicename","required":true,"schema":{"type":"string"}},{"in":"path","name":"hostid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Delete success"},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Delete the service config","tags":["System","Services"],"x-anchore-authz-action":"deleteService","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"},"get":{"operationId":"get_services_by_name_and_host","parameters":[{"in":"path","name":"servicename","required":true,"schema":{"type":"string"}},{"in":"path","name":"hostid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Listing of registered services","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get service config for a specific host","tags":["System","Services"],"x-anchore-authz-action":"getService","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}},"/user":{"get":{"operationId":"get_user","responses":{"200":{"description":"User details for caller's user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"List authenticated user info","tags":["Identity"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.user"}},"/user/credentials":{"get":{"operationId":"get_credentials","responses":{"200":{"description":"User credential listing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CredentialList"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"Get current credential summary","tags":["Identity"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.user"},"post":{"operationId":"add_credential","requestBody":{"$ref":"#/components/requestBodies/AccessCredential"},"responses":{"200":{"description":"Add a credential, overwritting if already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"500":{"description":"Internal error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorResponse"}}}}},"summary":"add/replace credential","tags":["Identity"],"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.user"}},"/version":{"get":{"description":"Returns the version object for the service, including db schema version info","operationId":"version_noop","responses":{"200":{"description":"Version object describing version state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceVersion"}}}}},"x-anchore-authz-action":"None","x-swagger-router-controller":"anchore_engine.services.apiext.api.controllers.system"}}},"servers":[{"url":"http://anchore.local/"},{"url":"https://anchore.local/"}],"components":{"parameters":{"AsAccountParameter":{"description":"An account name to change the resource scope of the request to that account, if permissions allow (admin only)","in":"header","name":"x-anchore-account","required":false,"schema":{"type":"string"}}},"requestBodies":{"AccessCredential":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessCredential"}}},"required":true},"RegistryConfigurationRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryConfigurationRequest"}}},"required":true}},"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic"}},"schemas":{"AccessCredential":{"description":"A login credential mapped to a user identity. For password credentials, the username to present for Basic auth is the user's username from the user record","properties":{"created_at":{"description":"The timestamp of creation of the credential","type":"string"},"type":{"description":"The type of credential","enum":["password"],"type":"string"},"value":{"description":"The credential value (e.g. the password)","type":"string"}},"required":["type","value"],"type":"object"},"Account":{"description":"Account information","properties":{"created_at":{"description":"The timestamp when the account was created","format":"date-time","type":"string"},"email":{"description":"Optional email address associated with the account","type":"string"},"last_updated":{"description":"The timestamp of the last update to the account metadata itself (not users or creds)","format":"date-time","type":"string"},"name":{"description":"The account identifier, not updatable after creation","type":"string"},"state":{"description":"State of the account. Disabled accounts prevent member users from logging in, deleting accounts are disabled and pending deletion and will be removed once all owned resources are garbage collected by the system","enum":["enabled","disabled","deleting"],"type":"string"},"type":{"description":"The user type (admin vs user). If not specified in a POST request, 'user' is default","enum":["user","admin","service"],"type":"string"}},"required":["name"],"type":"object"},"AccountCreationRequest":{"description":"An account to create/add to the system. If already exists will return 400.","properties":{"email":{"description":"An optional email to associate with the account for contact purposes","pattern":"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?","type":"string"},"name":{"description":"The account name to use. This will identify the account and must be globally unique in the system.","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]{1,126}[a-zA-Z0-9]$","type":"string"}},"required":["name"],"type":"object"},"AccountList":{"items":{"$ref":"#/components/schemas/Account"},"type":"array"},"AccountStatus":{"description":"A summary of account status","properties":{"state":{"description":"The status of the account","enum":["enabled","disabled"],"type":"string"}},"type":"object"},"AnchoreImage":{"description":"A unique image in the engine. May have multiple tags or references. Unique to an image content across registries or repositories.","properties":{"analysis_status":{"description":"A state value for the current status of the analysis progress of the image","enum":["not_analyzed","analyzing","analyzed","analysis_failed"],"type":"string"},"created_at":{"format":"date-time","type":"string"},"imageDigest":{"type":"string"},"image_content":{"$ref":"#/components/schemas/ImageContent"},"image_detail":{"description":"Details specific to an image reference and type such as tag and image source","items":{"$ref":"#/components/schemas/ImageDetail"},"type":"array"},"image_status":{"description":"State of the image","enum":["active","inactive","disabled"],"type":"string"},"last_updated":{"format":"date-time","type":"string"},"userId":{"type":"string"}},"type":"object"},"AnchoreImageList":{"description":"A list of Anchore Images","items":{"$ref":"#/components/schemas/AnchoreImage"},"type":"array"},"AnchoreImageTagSummary":{"description":"A unique image in the engine.","properties":{"analysis_status":{"type":"string"},"analyzed_at":{"type":"integer"},"created_at":{"type":"integer"},"fulltag":{"type":"string"},"imageDigest":{"type":"string"},"imageId":{"type":"string"},"parentDigest":{"type":"string"},"tag_detected_at":{"type":"integer"}},"type":"object"},"AnchoreImageTagSummaryList":{"description":"a list of AnchoreImageTagSummary objects","items":{"$ref":"#/components/schemas/AnchoreImageTagSummary"},"type":"array"},"ApiErrorResponse":{"description":"Generic HTTP API error response","properties":{"code":{"format":"int32","type":"integer"},"detail":{"description":"Details structure for additional information about the error if available. Content and structure will be error specific.","type":"object"},"error_type":{"type":"string"},"message":{"type":"string"}},"type":"object"},"ContentFilesResponse":{"description":"File content listings from images","properties":{"content":{"items":{"properties":{"filename":{"type":"string"},"gid":{"type":"integer"},"linkdest":{"type":"string","nullable":true},"mode":{"type":"string"},"sha256":{"type":"string","nullable":true},"size":{"type":"integer"},"type":{"type":"string"},"uid":{"type":"integer"}},"type":"object"},"type":"array"},"content_type":{"type":"string"},"imageDigest":{"type":"string"}},"type":"object"},"ContentJAVAPackageResponse":{"description":"Java package content listings from images","properties":{"content":{"items":{"properties":{"implementation-version":{"type":"string"},"location":{"type":"string"},"maven-version":{"type":"string"},"origin":{"type":"string"},"package":{"type":"string"},"specification-version":{"type":"string"},"type":{"type":"string"}},"type":"object"},"type":"array"},"content_type":{"type":"string"},"imageDigest":{"type":"string"}},"type":"object"},"ContentPackageResponse":{"description":"Package content listings from images","properties":{"content":{"items":{"properties":{"license":{"type":"string"},"location":{"type":"string"},"origin":{"type":"string"},"package":{"type":"string"},"size":{"type":"string"},"type":{"type":"string"},"version":{"type":"string"}},"type":"object"},"type":"array"},"content_type":{"type":"string"},"imageDigest":{"type":"string"}},"type":"object"},"ContentResponse":{"description":"Generic wrapper for content listings from images","properties":{"content":{"items":{"type":"object"},"type":"array"},"content_type":{"type":"string"},"imageDigest":{"type":"string"}},"type":"object"},"CredentialList":{"items":{"$ref":"#/components/schemas/AccessCredential"},"type":"array"},"EventResponse":{"description":"A record of occurance of an asynchronous event triggered either by system or by user activity","properties":{"created_at":{"format":"date-time","type":"string"},"event":{"properties":{"details":{"type":"object"},"level":{"type":"string"},"message":{"type":"string"},"resource":{"properties":{"id":{"type":"string"},"type":{"type":"string"},"user_id":{"type":"string"}},"type":"object"},"source":{"properties":{"base_url":{"type":"string"},"hostid":{"type":"string"},"request_id":{"type":"string"},"servicename":{"type":"string"}},"type":"object"},"timestamp":{"format":"date-time","type":"string"},"type":{"type":"string"}},"type":"object"},"generated_uuid":{"type":"string"}},"type":"object"},"EventsList":{"description":"Response envelope for paginated listing of events","properties":{"item_count":{"description":"Number of events in this page","type":"integer"},"next_page":{"description":"Boolean flag, True indicates there are more events and False otherwise","type":"boolean"},"page":{"description":"Page number of this result set","type":"integer"},"results":{"description":"List of events","items":{"$ref":"#/components/schemas/EventResponse"},"type":"array"}},"type":"object"},"FeedGroupMetadata":{"properties":{"created_at":{"format":"date-time","type":"string"},"last_sync":{"format":"date-time","type":"string"},"name":{"type":"string"},"record_count":{"type":"integer"}},"type":"object"},"FeedMetadata":{"description":"Metadata on a single feed based on what the engine finds from querying the endpoints","properties":{"created_at":{"description":"Date the metadata record was created in engine (first seen on source)","format":"date-time","type":"string"},"groups":{"items":{"$ref":"#/components/schemas/FeedGroupMetadata"},"type":"array"},"last_full_sync":{"format":"date-time","type":"string"},"name":{"description":"name of the feed","type":"string"},"updated_at":{"description":"Date the metadata was last updated","format":"date-time","type":"string"}},"type":"object"},"GateSpec":{"description":"A description of the set of gates available in this engine and the triggers and parameters supported","properties":{"description":{"description":"Description of the gate","type":"string"},"name":{"description":"Gate name, as it would appear in a policy document","type":"string"},"state":{"description":"State of the gate and transitively all triggers it contains if not 'active'","enum":["active","deprecated","eol"],"type":"string"},"superceded_by":{"description":"The name of another trigger that supercedes this on functionally if this is deprecated","type":"string","nullable":true},"triggers":{"description":"List of the triggers that can fire for this Gate","items":{"$ref":"#/components/schemas/TriggerSpec"},"type":"array"}},"type":"object"},"ImageAnalysisReport":{"description":"Analysis report json to be imported","type":"object"},"ImageAnalysisRequest":{"description":"A request to add an image to be watched and analyzed by the engine. Optionally include the dockerfile content. Either digest or tag must be present","properties":{"annotations":{"description":"Annotations to be associated with the added image in key/value form","type":"object"},"created_at":{"description":"Optional override of the image creation time, only honored when both tag and digest are also supplied e.g. 2018-10-17T18:14:00Z","format":"date-time","type":"string"},"digest":{"description":"A full pullable digest reference for an image. e.g. docker.io/nginx@sha256:abc123","type":"string"},"dockerfile":{"description":"Content of the dockerfile for the image, if available","type":"string"},"image_type":{"description":"The type of image this is adding, defaults to \"docker\"","type":"string"},"tag":{"description":"Full pullable tag reference for image. e.g. docker.io/nginx:latest","type":"string"}},"required":["tag"],"type":"object"},"ImageContent":{"description":"A metadata content record for a specific image, containing different content type entries","type":"object"},"ImageDetail":{"description":"A metadata detail record for a specific image. Multiple detail records may map a single catalog image.","properties":{"created_at":{"format":"date-time","type":"string"},"dockerfile":{"type":"string","nullable":true},"fulldigest":{"description":"Full docker-pullable digest string including the registry url and repository necessary get the image","type":"string"},"fulltag":{"description":"Full docker-pullalbe tag string referencing the image","type":"string"},"imageDigest":{"description":"The parent Anchore Image record to which this detail maps","type":"string"},"imageId":{"type":"string"},"last_updated":{"format":"date-time","type":"string"},"registry":{"type":"string"},"repo":{"type":"string"},"userId":{"type":"string"}},"type":"object"},"ImageFilter":{"description":"Filter for an image list by id, tag, or digest, but not both","properties":{"digest":{"type":"string"},"tag":{"type":"string"}},"type":"object"},"ImageRef":{"description":"A reference to an image","properties":{"type":{"enum":["tag","digest","id"]},"value":{"type":"string"}},"required":["type","value"],"type":"object"},"ImageReference":{"description":"A summary of an image identity, including digest, id (if available), and any tags known to have ever been mapped to the digest","properties":{"analyzed_at":{"description":"Timestamp, in rfc3339 format, indicating when the image state became 'analyzed' in Anchore Engine.","type":"string"},"digest":{"description":"The image digest","type":"string"},"id":{"description":"The image id if available","type":"string"},"tag_history":{"items":{"$ref":"#/components/schemas/TagEntry"},"type":"array"}},"type":"object"},"ImageSelectionRule":{"properties":{"id":{"type":"string"},"image":{"$ref":"#/components/schemas/ImageRef"},"name":{"type":"string"},"registry":{"type":"string"},"repository":{"type":"string"}},"required":["name","registry","repository","image"],"type":"object"},"ImageWithPackages":{"description":"An image record that contains packages","properties":{"image":{"$ref":"#/components/schemas/ImageReference"},"packages":{"items":{"$ref":"#/components/schemas/PackageReference"},"type":"array"}},"type":"object"},"MappingRule":{"properties":{"id":{"type":"string"},"image":{"$ref":"#/components/schemas/ImageRef"},"name":{"type":"string"},"policy_id":{"description":"Optional single policy to evalute, if set will override any value in policy_ids, for backwards compatibility. Generally, policy_ids should be used even with a array of length 1.","type":"string"},"policy_ids":{"description":"List of policyIds to evaluate in order, to completion","items":{"description":"PolicyId to evaluate","type":"string"},"type":"array"},"registry":{"type":"string"},"repository":{"type":"string"},"whitelist_ids":{"items":{"type":"string"},"type":"array"}},"required":["name","registry","repository","image"],"type":"object"},"MetadataResponse":{"description":"Generic wrapper for metadata listings from images","properties":{"imageDigest":{"type":"string"},"metadata":{},"metadata_type":{"type":"string"}},"type":"object"},"PackageReference":{"description":"A record of a software item which is vulnerable or carries a fix for a vulnerability","properties":{"name":{"description":"Package name","type":"string"},"type":{"description":"Package type (e.g. package, rpm, deb, apk, jar, npm, gem, ...)","type":"string"},"version":{"description":"A version for the package. If null, then references all versions","type":"string","nullable":true}},"type":"object"},"PaginatedImageList":{"allOf":[{"$ref":"#/components/schemas/PaginationProperties"},{"properties":{"images":{"items":{"$ref":"#/components/schemas/ImageWithPackages"},"type":"array"}},"type":"object"}],"description":"Pagination wrapped list of images that match some filter"},"PaginatedVulnerabilityList":{"allOf":[{"$ref":"#/components/schemas/PaginationProperties"},{"properties":{"vulnerabilities":{"description":"The listing of matching vulnerabilities for the query subject to pagination","items":{"$ref":"#/components/schemas/StandaloneVulnerability"},"type":"array"}},"type":"object"}],"description":"A paginated listing of vulnerability records sorted by ID in descending order"},"PaginatedVulnerableImageList":{"allOf":[{"$ref":"#/components/schemas/PaginationProperties"},{"properties":{"images":{"items":{"$ref":"#/components/schemas/VulnerableImage"},"type":"array"}},"type":"object"}],"description":"Pagination wrapped list of images with vulnerabilties that match some filter"},"PaginationProperties":{"description":"Properties for common pagination handling to be included in any wrapping object that needs pagination elements","properties":{"next_page":{"description":"True if additional pages exist (page + 1) or False if this is the last page","type":"string"},"page":{"description":"The page number returned (should match the requested page query string param)","type":"string"},"returned_count":{"description":"The number of items sent in this response","type":"integer"}},"type":"object"},"Policy":{"properties":{"comment":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"rules":{"items":{"$ref":"#/components/schemas/PolicyRule"},"type":"array"},"version":{"type":"string"}},"required":["id","version"],"type":"object"},"PolicyBundle":{"description":"A bundle containing a set of policies, whitelists, and rules for mapping them to specific images","properties":{"blacklisted_images":{"description":"List of mapping rules that define which images should always result in a STOP/FAIL policy result regardless of policy content or presence in whitelisted_images","items":{"$ref":"#/components/schemas/ImageSelectionRule"},"type":"array"},"comment":{"description":"Description of the bundle, human readable","type":"string"},"id":{"description":"Id of the bundle","type":"string"},"mappings":{"description":"Mapping rules for defining which policy and whitelist(s) to apply to an image based on a match of the image tag or id. Evaluated in order.","items":{"$ref":"#/components/schemas/MappingRule"},"type":"array"},"name":{"description":"Human readable name for the bundle","type":"string"},"policies":{"description":"Policies which define the go/stop/warn status of an image using rule matches on image properties","items":{"$ref":"#/components/schemas/Policy"},"type":"array"},"version":{"description":"Version id for this bundle format","type":"string"},"whitelisted_images":{"description":"List of mapping rules that define which images should always be passed (unless also on the blacklist), regardless of policy result.","items":{"$ref":"#/components/schemas/ImageSelectionRule"},"type":"array"},"whitelists":{"description":"Whitelists which define which policy matches to disregard explicitly in the final policy decision","items":{"$ref":"#/components/schemas/Whitelist"},"type":"array"}},"required":["id","version","policies","mappings"],"type":"object"},"PolicyBundleList":{"description":"List of PolicyBundleRecord objects","items":{"$ref":"#/components/schemas/PolicyBundleRecord"},"type":"array"},"PolicyBundleRecord":{"description":"A policy bundle plus some metadata","properties":{"active":{"description":"True if the bundle is currently defined to be used automatically","type":"boolean"},"created_at":{"format":"date-time","type":"string"},"last_updated":{"format":"date-time","type":"string"},"policyId":{"description":"The bundle's identifier","type":"string"},"policy_source":{"description":"Source location of where the policy bundle originated","type":"string"},"policybundle":{"$ref":"#/components/schemas/PolicyBundle"},"userId":{"description":"UserId of the user that owns the bundle","type":"string"}},"type":"object"},"PolicyEvaluation":{"description":"Evaluation response object","type":"object"},"PolicyEvaluationList":{"description":"Evaluation response object","items":{"$ref":"#/components/schemas/PolicyEvaluation"},"type":"array"},"PolicyRule":{"description":"A rule that defines and decision value if the match is found true for a given image.","properties":{"action":{"enum":["GO","STOP","WARN"]},"gate":{"type":"string"},"id":{"type":"string"},"params":{"items":{"properties":{"name":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"type":"object"},"type":"array"},"trigger":{"type":"string"}},"required":["gate","trigger","action"],"type":"object"},"RegistryConfiguration":{"description":"A registry entry describing the endpoint and credentials for a registry to pull images from","properties":{"created_at":{"format":"date-time","type":"string"},"last_upated":{"format":"date-time","type":"string"},"registry":{"description":"hostname:port string for accessing the registry, as would be used in a docker pull operation","type":"string"},"registry_type":{"description":"Type of registry","type":"string"},"registry_user":{"description":"Username portion of credential to use for this registry","type":"string"},"registry_verify":{"description":"Use TLS/SSL verification for the registry URL","type":"boolean"},"userId":{"description":"Engine user that owns this registry entry","type":"string"}},"type":"object"},"RegistryConfigurationList":{"description":"List of registry configurations","items":{"$ref":"#/components/schemas/RegistryConfiguration"},"type":"array"},"RegistryConfigurationRequest":{"description":"A registry record describing the endpoint and credentials for a registry","properties":{"registry":{"description":"hostname:port string for accessing the registry, as would be used in a docker pull operation","type":"string"},"registry_pass":{"description":"Password portion of credential to use for this registry","type":"string"},"registry_type":{"description":"Type of registry","type":"string"},"registry_user":{"description":"Username portion of credential to use for this registry","type":"string"},"registry_verify":{"description":"Use TLS/SSL verification for the registry URL","type":"boolean"}},"type":"object"},"RepositoryTagList":{"description":"List of discovered tags in a repository","items":{"type":"string"},"type":"array"},"Service":{"description":"A service status record","properties":{"base_url":{"description":"The url to reach the service, including port as needed","type":"string"},"hostid":{"description":"The unique id of the host on which the service is executing","type":"string"},"service_detail":{"$ref":"#/components/schemas/StatusResponse"},"servicename":{"description":"Registered service name","type":"string"},"status":{"type":"boolean"},"status_message":{"description":"A state indicating the condition of the service. Normal operation is 'registered'","type":"string"},"version":{"description":"The version of the service as reported by the service implementation on registration","type":"string"}},"type":"object"},"ServiceList":{"description":"A list of service objects","items":{"$ref":"#/components/schemas/Service"},"type":"array"},"ServiceVersion":{"description":"Version information for a service","properties":{"api":{"description":"Api Version string","properties":{"version":{"description":"Semantic version of the api","type":"string"}},"type":"object"},"db":{"properties":{"schema_version":{"description":"Semantic version of the db schema","type":"string"}},"type":"object"},"service":{"properties":{"version":{"description":"Semantic Version string of the service implementation","type":"string"}},"type":"object"}},"type":"object"},"StandaloneVulnerability":{"description":"A single vulnerability record in a single namespace, the unique key is the combinatino of the id and namespace","properties":{"affected_packages":{"description":"The array of packages (typically packages) that are vulnerable-to or provide fixes-for this vulnerability","items":{"$ref":"#/components/schemas/PackageReference"},"type":"array"},"id":{"description":"Vulnerability identifier. May be CVE-X, RHSA-X, etc. Not necessarily unique across namespaces","type":"string"},"link":{"description":"URL for the upstream CVE record in the reporting source (e.g. ubuntu security tracker)","type":"string"},"namespace":{"description":"The namespace for the vulnerability record to avoid conflicts for the same id in different distros or sources (e.g. deb vs ubuntu for same CVE)","type":"string"},"severity":{"description":"Severity label specific to the namepsace","enum":["Unknown","Negligible","Low","Medium","High","Critical"],"type":"string"}},"type":"object"},"StatusResponse":{"description":"System status response","properties":{"available":{"type":"boolean"},"busy":{"type":"boolean"},"db_version":{"type":"string"},"detail":{"type":"object"},"message":{"type":"string"},"up":{"type":"boolean"},"version":{"type":"string"}},"type":"object"},"Subscription":{"description":"Subscription entry","properties":{"active":{"description":"Is the subscription currently active","type":"boolean"},"subscription_id":{"description":"the unique id for this subscription record","type":"string"},"subscription_key":{"description":"The key value that the subscription references. E.g. a tag value or a repo name.","type":"string"},"subscription_type":{"description":"The type of the subscription","enum":["policy_eval","tag_update","vuln_update","repo_update","analysis_update"],"type":"string"},"subscription_value":{"description":"The value of the subscription target","type":"string","nullable":true},"userId":{"description":"The userId of the subscribed user","type":"string"}},"type":"object"},"SubscriptionList":{"description":"List of subscriptions","items":{"$ref":"#/components/schemas/Subscription"},"type":"array"},"SubscriptionRequest":{"description":"A subscription entry to add to the system","properties":{"subscription_key":{"type":"string"},"subscription_type":{"enum":["policy_eval","tag_update","vuln_update","repo_update","analysis_update"],"type":"string"},"subscription_value":{"type":"string","nullable":true}},"type":"object"},"SubscriptionUpdate":{"description":"A modification to a subscription entry to change its status or value","properties":{"active":{"description":"Toggle the subscription processing on or off","type":"boolean"},"subscription_value":{"description":"The new subscription value, e.g. the new tag to be subscribed to","type":"string","nullable":true}},"type":"object"},"SystemStatusResponse":{"description":"System status response","properties":{"service_states":{"$ref":"#/components/schemas/ServiceList"}},"type":"object"},"TagEntry":{"description":"A docker-pullable tag value as well as deconstructed components","properties":{"detected_at":{"description":"The timestamp at which the Anchore Engine detected this tag was mapped to the image digest. Does not necessarily indicate when the tag was actually pushed to the registry.","format":"date-time","type":"string"},"pullstring":{"description":"The pullable string for the tag. E.g. \"docker.io/library/node:latest\"","type":"string"},"registry":{"description":"The registry hostname:port section of the pull string","type":"string"},"repository":{"description":"The repository section of the pull string","type":"string"},"tag":{"description":"The tag-only section of the pull string","type":"string"}},"type":"object"},"TriggerParamSpec":{"properties":{"description":{"type":"string"},"example":{"description":"An example value for the parameter (encoded as a string if the parameter is an object or list type)","type":"string","nullable":true},"name":{"description":"Parameter name as it appears in policy document","type":"string"},"required":{"description":"Is this a required parameter or optional","type":"boolean"},"state":{"description":"State of the trigger parameter","enum":["active","deprecated","eol"],"type":"string"},"superceded_by":{"description":"The name of another trigger that supercedes this on functionally if this is deprecated","type":"string","nullable":true},"validator":{"description":"If present, a definition for validation of input. Typically a jsonschema object that can be used to validate an input against.","type":"object"}},"type":"object"},"TriggerSpec":{"description":"Definition of a trigger and its parameters","properties":{"description":{"description":"Trigger description for what it tests and when it will fire during evaluation","type":"string"},"name":{"description":"Name of the trigger as it would appear in a policy document","type":"string"},"parameters":{"description":"The list of parameters that are valid for this trigger","items":{"$ref":"#/components/schemas/TriggerParamSpec"},"type":"array"},"state":{"description":"State of the trigger","enum":["active","deprecated","eol"],"type":"string"},"superceded_by":{"description":"The name of another trigger that supercedes this on functionally if this is deprecated","type":"string","nullable":true}},"type":"object"},"User":{"description":"A username, password pair that can be used to authenticate with the service as a specific user","properties":{"created_at":{"description":"The timestampt the user record was created","format":"date-time","type":"string"},"last_updated":{"description":"The timestamp of the last update to this record","format":"date-time","type":"string"},"username":{"description":"The username to authenticate with","type":"string"}},"required":["username"],"type":"object"},"UserCreationRequest":{"description":"A payload for creating a new user, includes the username and password in a single request","properties":{"password":{"description":"The initial password for the user, must be at least 6 characters, up to 128","pattern":".{6,128}$","type":"string"},"username":{"description":"The username to create","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_-]{1,126}[a-zA-Z0-9]$","type":"string"}},"required":["username","password"],"type":"object"},"UserList":{"items":{"$ref":"#/components/schemas/User"},"type":"array"},"Vulnerability":{"properties":{"feed":{"description":"The name of the feed where vulnerability match was made","type":"string"},"feed_group":{"description":"The name of the feed group where vulnerability match was made","type":"string"},"fix":{"description":"The package containing a fix, if available","type":"string"},"package":{"description":"The package name and version that are vulnerable in the image","type":"string"},"package_cpe":{"description":"The CPE string (if applicable) describing the package to vulnerability match","type":"string"},"package_name":{"description":"The name of the vulnerable package artifact","type":"string"},"package_path":{"description":"The location (if applicable) of the vulnerable package in the container filesystem","type":"string"},"package_type":{"description":"The type of vulnerable package","type":"string"},"package_version":{"description":"The version of the vulnerable package artifact","type":"string"},"severity":{"description":"The severity of the vulnerability","type":"string"},"url":{"description":"The url for more information about the vulnerability","type":"string"},"vuln":{"description":"The vulnerability identifier, such as CVE-2017-100, or RHSA-2017123","type":"string"}},"type":"object"},"VulnerabilityList":{"description":"List of Vulnerability objects","items":{"$ref":"#/components/schemas/Vulnerability"},"type":"array"},"VulnerabilityResponse":{"description":"envelope containing list of vulnerabilities","properties":{"imageDigest":{"type":"string"},"vulnerabilities":{"$ref":"#/components/schemas/VulnerabilityList"},"vulnerability_type":{"type":"string"}},"type":"object"},"VulnerableImage":{"description":"A record of an image vulnerable to some known vulnerability. Includes vulnerable package information","properties":{"affected_packages":{"items":{"$ref":"#/components/schemas/VulnerablePackageReference"},"type":"array"},"image":{"$ref":"#/components/schemas/ImageReference"}},"type":"object"},"VulnerablePackageReference":{"description":"A record of a software item which is vulnerable or carries a fix for a vulnerability","properties":{"name":{"description":"Package name","type":"string"},"namespace":{"description":"Vulnerability namespace of affected package","type":"string"},"severity":{"description":"Severity of vulnerability affecting package","type":"string"},"type":{"description":"Package type (e.g. package, rpm, deb, apk, jar, npm, gem, ...)","type":"string"},"version":{"description":"A version for the package. If null, then references all versions","type":"string","nullable":true}},"type":"object"},"Whitelist":{"description":"A collection of whitelist items to match a policy evaluation against.","properties":{"comment":{"type":"string"},"id":{"type":"string"},"items":{"items":{"$ref":"#/components/schemas/WhitelistItem"},"type":"array"},"name":{"type":"string"},"version":{"type":"string"}},"required":["id","version"],"type":"object"},"WhitelistItem":{"description":"Identifies a specific gate and trigger match from a policy against an image and indicates it should be ignored in final policy decisions","properties":{"gate":{"type":"string"},"id":{"type":"string"},"trigger_id":{"type":"string"}},"required":["gate","trigger_id"],"type":"object"}}}}
\No newline at end of file