diff --git a/etc/scripts/purl_type_definition.py b/etc/scripts/purl_type_definition.py index 09fe5123..bd70e95b 100644 --- a/etc/scripts/purl_type_definition.py +++ b/etc/scripts/purl_type_definition.py @@ -254,3 +254,11 @@ class NamespaceDefinition(PurlComponentDefinition): ), title="Namespace requirement", ) + known_values: Optional[list[str]] = Field( + None, + description=( + "Optional set of known values for this namespace. If provided, the namespace value" + " SHOULD be one of these." + ), + title="Known values", + ) diff --git a/schemas/purl-type-definition.schema.json b/schemas/purl-type-definition.schema.json index cd48883d..9b6687c8 100644 --- a/schemas/purl-type-definition.schema.json +++ b/schemas/purl-type-definition.schema.json @@ -162,6 +162,15 @@ "$ref": "#/definitions/prohibited_requirement" } ] + }, + "registered_values": { + "title": "Registered values", + "description": "Optional set of known namespace values for this package type. If provided, the namespace value should be one of these.", + "type": "array", + "items": { + "type": "string" + }, + "uniqueItems": true } }, "allOf": [ diff --git a/types/deb-definition.json b/types/deb-definition.json index 7d767b6f..e0b0856d 100644 --- a/types/deb-definition.json +++ b/types/deb-definition.json @@ -12,7 +12,11 @@ "native_name": "vendor", "case_sensitive": false, "note": "The namespace is the \"vendor\" name such as \"debian\" or \"ubuntu\". It is not case sensitive and must be lowercased.", - "requirement": "required" + "requirement": "required", + "registered_values": [ + "debian", + "ubuntu" + ] }, "name_definition": { "requirement": "required", diff --git a/types/rpm-definition.json b/types/rpm-definition.json index 653cfde8..07e41ec0 100644 --- a/types/rpm-definition.json +++ b/types/rpm-definition.json @@ -12,7 +12,18 @@ "case_sensitive": false, "native_name": "vendor", "note": "The namespace is the vendor such as Fedora or OpenSUSE. It is not case sensitive and must be lowercased.", - "requirement": "required" + "requirement": "required", + "registered_values": [ + "redhat", + "centos", + "fedora", + "almalinux", + "rockylinux", + "opensuse", + "oraclelinux", + "amazonlinux", + "azurelinux" + ] }, "name_definition": { "requirement": "required",