diff --git a/schema/2.0/model/cyclonedx-requirement-2.0.schema.json b/schema/2.0/model/cyclonedx-requirement-2.0.schema.json new file mode 100644 index 00000000..cb029ad5 --- /dev/null +++ b/schema/2.0/model/cyclonedx-requirement-2.0.schema.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "http://localhost:8080/schema/2.0/cyclonedx-requirement-2.0.schema.json", + "type": "null", + "title": "CycloneDX Transparency Expression Language: Requirement", + "$comment" : "CycloneDX JSON schema is published under the terms of the Apache License 2.0.", + "$defs": { + "reqId":{ + "description": "A unique ID that usually a follows a specific naming convention.", + "title": "Requirement Identifier", + "type": "string", + }, + "reqText":{ + "description": "A statement describing the actual need.", + "title": "Requirement Text", + "type": "string", + }, + "reqNotes":{ + "description": "Additional information to provide context, rationale or justification for the requirement.", + "title": "Requirement Notes", + "type": "string", + }, + "reqType":{ + "description": "The type of requirement (functional or non-functional). Will often drive the type of verification process to be followed." + "title": "Requirement Type", + "type": "string", + "enum" :[ + "feature", + "security". + "safety", + "quality", + "maintainability", + "reliability", + "usability" + ] + }, + "reqPriority": { + "description": "The importance of the requirement." + "title": "Requirement Priority" + "type": "string", + "enum": [ + "Key", + "Mandatory", + "Priority 1", + "Priority 2", + "Priority 3", + "Priority 4", + "Priority 5", + "Priority 6", + "Priority 7", + "Priority 8", + "Priority 9" + ] + }, + "reqProperties": { + "type": "array", + "title": "Properties", + "description": "Provides the ability to include additional attributes not officially supported in the standard.", + "items": { + "$ref": "#/$defs/reqProperty" + } + }, + "reqProperty": { + "type": "object", + "title": "Lightweight name-value pair", + "description": "Provides the ability to document properties in a name-value store.", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string", + "title": "Name", + "description": "The name of the property." + }, + "value": { + "type": "string", + "title": "Value", + "description": "The value of the property." + } + } + } +} \ No newline at end of file