"summary":"The RPC used to create a new scan of an ancestry.",
"operationId":"PostAncestry",
"responses":{
"200":{
@ -43,6 +44,7 @@
},
"/ancestry/{ancestry_name}":{
"get":{
"summary":"The RPC used to read the results of scanning for a particular ancestry.",
"operationId":"GetAncestry",
"responses":{
"200":{
@ -61,6 +63,7 @@
},
{
"name":"with_vulnerabilities",
"description":"Whether to include vulnerabilities or not in the response.",
"in":"query",
"required":false,
"type":"boolean",
@ -68,6 +71,7 @@
},
{
"name":"with_features",
"description":"Whether to include features or not in the response.",
"in":"query",
"required":false,
"type":"boolean",
@ -81,6 +85,7 @@
},
"/notifications/{name}":{
"get":{
"summary":"The RPC used to get a particularly Notification.",
"operationId":"GetNotification",
"responses":{
"200":{
@ -99,19 +104,21 @@
},
{
"name":"old_vulnerability_page",
"description":"if the vulnerability_page is empty, it implies the first page.",
"description":"The current page of previous vulnerabilities for the ancestry.\nThis will be empty when it is the first page.",
"in":"query",
"required":false,
"type":"string"
},
{
"name":"new_vulnerability_page",
"description":"The current page of vulnerabilities for the ancestry.\nThis will be empty when it is the first page.",
"in":"query",
"required":false,
"type":"string"
},
{
"name":"limit",
"description":"The requested maximum number of results per page.",
"in":"query",
"required":false,
"type":"integer",
@ -123,6 +130,7 @@
]
},
"delete":{
"summary":"The RPC used to mark a Notification as read after it has been processed.",
"operationId":"MarkNotificationAsRead",
"responses":{
"200":{
@ -147,53 +155,103 @@
}
},
"definitions":{
"PostAncestryRequestPostLayer":{
"type":"object",
"properties":{
"hash":{
"type":"string"
},
"path":{
"type":"string"
},
"headers":{
"type":"object",
"additionalProperties":{
"type":"string"
}
}
}
},
"clairpbAncestry":{
"GetAncestryResponseAncestry":{
"type":"object",
"properties":{
"name":{
"type":"string"
"type":"string",
"description":"The name of the desired ancestry."
},
"features":{
"type":"array",
"items":{
"$ref":"#/definitions/clairpbFeature"
}
},
"description":"The list of features present in the ancestry.\nThis will only be provided if requested."
},
"layers":{
"type":"array",
"items":{
"$ref":"#/definitions/clairpbLayer"
}
},
"description":"The layers present in the ancestry."
},
"scanned_listers":{
"type":"array",
"items":{
"type":"string"
},
"description":"scanned_listers and scanned_detectors are used to scan this ancestry, it\nmay be different from listers and detectors in ClairStatus since the\nancestry could be scanned by previous version of Clair."
"description":"The configured list of feature listers used to scan this ancestry."
},
"scanned_detectors":{
"type":"array",
"items":{
"type":"string"
}
},
"description":"The configured list of namespace detectors used to scan an ancestry."
}
}
},
"GetNotificationResponseNotification":{
"type":"object",
"properties":{
"name":{
"type":"string",
"description":"The name of the requested notification."
},
"created":{
"type":"string",
"description":"The time at which the notification was created."
},
"notified":{
"type":"string",
"description":"The time at which the notification was last sent out."
},
"deleted":{
"type":"string",
"description":"The time at which a notification has been deleted."
"description":"The newly updated vulnerability and a paginated view of the ancestries it affects."
}
}
},
"PagedVulnerableAncestriesIndexedAncestryName":{
"type":"object",
"properties":{
"index":{
"type":"integer",
"format":"int32",
"description":"The index is an ever increasing number associated with the particular ancestry.\nThis is useful if you're processing notifications, and need to keep track of the progress of paginating the results."
},
"name":{
"type":"string",
"description":"The name of the ancestry."
}
}
},
"PostAncestryRequestPostLayer":{
"type":"object",
"properties":{
"hash":{
"type":"string",
"description":"The hash of the layer."
},
"path":{
"type":"string",
"description":"The location of the layer (URL or filepath)."
},
"headers":{
"type":"object",
"additionalProperties":{
"type":"string"
},
"description":"Any HTTP Headers that need to be used if requesting a layer over HTTP(S)."
}
}
},
@ -205,17 +263,19 @@
"items":{
"type":"string"
},
"title":"listers and detectors are processors implemented in this Clair and used to\nscan ancestries"
"description":"The configured list of feature listers used to scan an ancestry."
},
"detectors":{
"type":"array",
"items":{
"type":"string"
}
},
"description":"The configured list of namespace detectors used to scan an ancestry."
},
"last_update_time":{
"type":"string",
"format":"date-time"
"format":"date-time",
"description":"The time at which the updater last ran."
}
}
},
@ -223,23 +283,27 @@
"type":"object",
"properties":{
"name":{
"type":"string"
"type":"string",
"description":"The name of the feature."
},
"namespace_name":{
"type":"string"
"type":"string",
"description":"The name of the namespace in which the feature is detected."
},
"version":{
"type":"string"
"type":"string",
"description":"The specific version of this feature."
},
"version_format":{
"type":"string",
"description":"version_format is the format used by installer package manager to store\npackage versions."
"description":"The format used to parse version numbers for the feature."
},
"vulnerabilities":{
"type":"array",
"items":{
"$ref":"#/definitions/clairpbVulnerability"
}
},
"description":"The list of vulnerabilities that affect the feature."
"description":"The status of Clair at the time of the request."
}
}
},
@ -258,20 +324,8 @@
"type":"object",
"properties":{
"notification":{
"$ref":"#/definitions/clairpbNotification"
}
}
},
"clairpbIndexedAncestryName":{
"type":"object",
"properties":{
"index":{
"type":"integer",
"format":"int32",
"description":"index is unique to name in all streams simultaneously streamed, increasing\nand larger than all indexes in previous page in same stream."