{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/snyk/main/json-schema/snyk-custom-base-image-response-schema.json", "title": "CustomBaseImageResponse", "x-generated": "2026-10-04", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/snyk-custom-base-images-api-openapi.yml#/components/schemas/CustomBaseImageResponse", "additionalProperties": false, "properties": { "data": { "$ref": "#/$defs/CustomBaseImageResource" }, "jsonapi": { "$ref": "#/$defs/JsonApi" }, "links": { "$ref": "#/$defs/SelfLink" } }, "required": [ "data", "jsonapi" ], "type": "object", "$defs": { "CustomBaseImageAttributes": { "additionalProperties": false, "properties": { "include_in_recommendations": { "description": "Whether this image should be recommended as a base image upgrade. \nIf set to true, this image could be shown as a base image upgrade to other projects.\nIf set to false this image will never be recommended as an upgrade.\n", "type": "boolean" }, "project_id": { "description": "The ID of the container project that the custom base image is based off of.\nThe attributes of this custom base image are taken from the latest snapshot at the time of creation.\nThis means that no changes should be made to the original project after the creation of the custom base image,\nas new snapshots created from any changes will NOT be picked up.\n", "format": "uuid", "type": "string" }, "versioning_schema": { "$ref": "#/$defs/VersioningSchema" } }, "required": [ "project_id", "include_in_recommendations" ], "type": "object" }, "CustomBaseImageResource": { "additionalProperties": false, "properties": { "attributes": { "$ref": "#/$defs/CustomBaseImageAttributes" }, "id": { "format": "uuid", "type": "string" }, "type": { "type": "string" } }, "required": [ "id", "type", "attributes" ], "type": "object" }, "JsonApi": { "additionalProperties": false, "properties": { "version": { "description": "Version of the JSON API specification this server supports.", "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$", "type": "string" } }, "required": [ "version" ], "type": "object" }, "LinkProperty": { "oneOf": [ { "description": "A string containing the link’s URL.", "type": "string" }, { "additionalProperties": false, "properties": { "href": { "description": "A string containing the link’s URL.", "type": "string" }, "meta": { "additionalProperties": true, "description": "Free-form object that may contain non-standard information.", "type": "object" } }, "required": [ "href" ], "type": "object" } ] }, "SelfLink": { "additionalProperties": false, "properties": { "self": { "$ref": "#/$defs/LinkProperty" } }, "type": "object" }, "VersioningSchema": { "allOf": [ { "oneOf": [ { "$ref": "#/$defs/VersioningSchemaSemverType" }, { "$ref": "#/$defs/VersioningSchemaCustomType" }, { "$ref": "#/$defs/VersioningSchemaSingleSelectionType" } ] } ], "description": "The versioning scheme used by images in the repository.\n\nA versioning schema is a system for identifying and organizing different versions of a project. \nIt is used to track changes and updates to the project over time, and to help users identify which version they are using. \nA versioning schema typically consists of a series of numbers or labels that are incremented to reflect the progression of versions. \nFor example, a versioning schema might use a series of numbers, such as \"1.0\", \"1.1\", \"2.0\", and so on, to indicate major and minor releases of a product. \nA consistent and well-defined versioning schema helps users and tools understand and track the development of a project.\n" }, "VersioningSchemaCustomType": { "additionalProperties": false, "description": "The Custom Schema type is a way for Snyk to understand your company’s container image tag versioning scheme,\nenabling Snyk to give more accurate base image upgrade recommendations.\n\nThis schema type is essentially a regular expression that groups the different parts of an image’s tag into comparable sections.\n\nIf your container image's tags follow a versioning scheme other than Semantic Versioning (SemVer), \nit is highly recommended that you select the \"Custom Versioning\" schema for your image repositories.\n", "properties": { "expression": { "description": "The regular expression used to describe the format of tags.\nKeep in mind that backslashes in the expression need to be escaped due to being encompassed in a JSON string.\n", "type": "string" }, "label": { "description": "A customizable string that can be set for a custom versioning schema to describe its meaning.\nThis label has no function.\n", "type": "string" }, "type": { "enum": [ "custom" ], "type": "string" } }, "required": [ "type", "expression" ], "type": "object" }, "VersioningSchemaSemverType": { "additionalProperties": false, "properties": { "type": { "enum": [ "semver" ], "type": "string" } }, "required": [ "type" ], "type": "object" }, "VersioningSchemaSingleSelectionType": { "additionalProperties": false, "description": "The Single Selection Versioning Schema allows manual setting of which image should be given as a recommendation.\n\nOnly one image can be set as the current recommendation. If no images are set as the current selection, \nno recommendation will be given.\n\nIt is recommended to use this versioning schema if your repository's tags aren't supported by the other schemas.\n", "properties": { "is_selected": { "description": "Whether this image should be the recommendation. Only one image can be selected at a given time. Setting this\nas true will remove previous selection.\n", "type": "boolean" }, "type": { "enum": [ "single-selection" ], "type": "string" } }, "required": [ "type", "is_selected" ], "type": "object" } } }