@cyclonedx/cdxgen
Version:
Creates CycloneDX Software Bill of Materials (SBOM) from source or container image
1,334 lines (1,331 loc) • 255 kB
JSON
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$comment": "This file was automatically generated by shacl2code. DO NOT MANUALLY MODIFY IT",
"type": "object",
"properties": {
"@context": {
"const": "https://spdx.org/rdf/3.0.1/spdx-context.jsonld"
}
},
"required": ["@context"],
"if": {
"type": "object",
"required": ["@graph"]
},
"then": {
"type": "object",
"properties": {
"@graph": {
"description": "Top level container for JSON-LD objects",
"type": "array",
"items": {
"type": "object",
"$ref": "#/$defs/AnyClass",
"unevaluatedProperties": false
}
}
},
"required": ["@graph"]
},
"else": {
"$ref": "#/$defs/AnyClass"
},
"unevaluatedProperties": false,
"$defs": {
"ai_EnergyConsumption": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ai_EnergyConsumption"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ai_EnergyConsumption_props" }
]
},
"else": {
"const": "Not a ai_EnergyConsumption"
}
},
"ai_EnergyConsumption_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ai_EnergyConsumption" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ai_EnergyConsumption_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"ai_finetuningEnergyConsumption": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ai_EnergyConsumption_ai_finetuningEnergyConsumption"
}
}
]
},
"ai_inferenceEnergyConsumption": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ai_EnergyConsumption_ai_inferenceEnergyConsumption"
}
}
]
},
"ai_trainingEnergyConsumption": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ai_EnergyConsumption_ai_trainingEnergyConsumption"
}
}
]
}
}
}
]
},
"prop_ai_EnergyConsumption_ai_finetuningEnergyConsumption": {
"$ref": "#/$defs/ai_EnergyConsumptionDescription_derived"
},
"prop_ai_EnergyConsumption_ai_inferenceEnergyConsumption": {
"$ref": "#/$defs/ai_EnergyConsumptionDescription_derived"
},
"prop_ai_EnergyConsumption_ai_trainingEnergyConsumption": {
"$ref": "#/$defs/ai_EnergyConsumptionDescription_derived"
},
"ai_EnergyConsumptionDescription": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ai_EnergyConsumptionDescription"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ai_EnergyConsumptionDescription_props" }
]
},
"else": {
"const": "Not a ai_EnergyConsumptionDescription"
}
},
"ai_EnergyConsumptionDescription_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ai_EnergyConsumptionDescription" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ai_EnergyConsumptionDescription_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"ai_energyQuantity": {
"$ref": "#/$defs/prop_ai_EnergyConsumptionDescription_ai_energyQuantity"
},
"ai_energyUnit": {
"$ref": "#/$defs/prop_ai_EnergyConsumptionDescription_ai_energyUnit"
}
},
"required": [
"ai_energyQuantity",
"ai_energyUnit"
]
}
]
},
"prop_ai_EnergyConsumptionDescription_ai_energyQuantity": {
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"pattern": "^-?[0-9]+(\\.[0-9]*)?$"
}
]
},
"prop_ai_EnergyConsumptionDescription_ai_energyUnit": {
"enum": [
"kilowattHour",
"megajoule",
"other"
]
},
"ai_EnergyUnitType": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ai_EnergyUnitType"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ai_EnergyUnitType_props" }
]
},
"else": {
"const": "Not a ai_EnergyUnitType"
}
},
"ai_EnergyUnitType_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ai_EnergyUnitType" }
]
},
{ "const": "spdx:AI/EnergyUnitType/kilowattHour" },
{ "const": "spdx:AI/EnergyUnitType/megajoule" },
{ "const": "spdx:AI/EnergyUnitType/other" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ai_EnergyUnitType_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
}
}
]
},
"ai_SafetyRiskAssessmentType": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ai_SafetyRiskAssessmentType"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ai_SafetyRiskAssessmentType_props" }
]
},
"else": {
"const": "Not a ai_SafetyRiskAssessmentType"
}
},
"ai_SafetyRiskAssessmentType_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ai_SafetyRiskAssessmentType" }
]
},
{ "const": "spdx:AI/SafetyRiskAssessmentType/high" },
{ "const": "spdx:AI/SafetyRiskAssessmentType/low" },
{ "const": "spdx:AI/SafetyRiskAssessmentType/medium" },
{ "const": "spdx:AI/SafetyRiskAssessmentType/serious" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ai_SafetyRiskAssessmentType_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
}
}
]
},
"AnnotationType": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "AnnotationType"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/AnnotationType_props" }
]
},
"else": {
"const": "Not a AnnotationType"
}
},
"AnnotationType_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/AnnotationType" }
]
},
{ "const": "spdx:Core/AnnotationType/other" },
{ "const": "spdx:Core/AnnotationType/review" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"AnnotationType_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
}
}
]
},
"CreationInfo": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "CreationInfo"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/CreationInfo_props" }
]
},
"else": {
"const": "Not a CreationInfo"
}
},
"CreationInfo_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/CreationInfo" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"CreationInfo_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"comment": {
"$ref": "#/$defs/prop_CreationInfo_comment"
},
"created": {
"$ref": "#/$defs/prop_CreationInfo_created"
},
"createdBy": {
"anyOf": [
{
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/prop_CreationInfo_createdBy"
}
}
]
},
"createdUsing": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_CreationInfo_createdUsing"
}
}
]
},
"specVersion": {
"$ref": "#/$defs/prop_CreationInfo_specVersion"
}
},
"required": [
"created",
"createdBy",
"specVersion"
]
}
]
},
"prop_CreationInfo_comment": {
"type": "string"
},
"prop_CreationInfo_created": {
"type": "string",
"allOf": [
{
"pattern": "^[0-9]{4}-[0-1][0-9]-[0-3][0-9]T[0-2][0-9]:[0-6][0-9]:[0-6][0-9](Z|[+-][0-9]{2}:[0-9]{2})$"
},
{
"pattern": "^\\d\\d\\d\\d-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\dZ$"
}
]
},
"prop_CreationInfo_createdBy": {
"$ref": "#/$defs/Agent_derived"
},
"prop_CreationInfo_createdUsing": {
"$ref": "#/$defs/Tool_derived"
},
"prop_CreationInfo_specVersion": {
"pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
"type": "string"
},
"DictionaryEntry": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "DictionaryEntry"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/DictionaryEntry_props" }
]
},
"else": {
"const": "Not a DictionaryEntry"
}
},
"DictionaryEntry_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/DictionaryEntry" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"DictionaryEntry_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"key": {
"$ref": "#/$defs/prop_DictionaryEntry_key"
},
"value": {
"$ref": "#/$defs/prop_DictionaryEntry_value"
}
},
"required": [
"key"
]
}
]
},
"prop_DictionaryEntry_key": {
"type": "string"
},
"prop_DictionaryEntry_value": {
"type": "string"
},
"Element_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ai_AIPackage" },
{ "$ref": "#/$defs/build_Build" },
{ "$ref": "#/$defs/Agent" },
{ "$ref": "#/$defs/Annotation" },
{ "$ref": "#/$defs/Bom" },
{ "$ref": "#/$defs/Bundle" },
{ "$ref": "#/$defs/IndividualElement" },
{ "$ref": "#/$defs/LifecycleScopedRelationship" },
{ "$ref": "#/$defs/Organization" },
{ "$ref": "#/$defs/Person" },
{ "$ref": "#/$defs/Relationship" },
{ "$ref": "#/$defs/SoftwareAgent" },
{ "$ref": "#/$defs/SpdxDocument" },
{ "$ref": "#/$defs/Tool" },
{ "$ref": "#/$defs/dataset_DatasetPackage" },
{ "$ref": "#/$defs/expandedlicensing_ConjunctiveLicenseSet" },
{ "$ref": "#/$defs/expandedlicensing_CustomLicense" },
{ "$ref": "#/$defs/expandedlicensing_CustomLicenseAddition" },
{ "$ref": "#/$defs/expandedlicensing_DisjunctiveLicenseSet" },
{ "$ref": "#/$defs/expandedlicensing_IndividualLicensingInfo" },
{ "$ref": "#/$defs/expandedlicensing_ListedLicense" },
{ "$ref": "#/$defs/expandedlicensing_ListedLicenseException" },
{ "$ref": "#/$defs/expandedlicensing_OrLaterOperator" },
{ "$ref": "#/$defs/expandedlicensing_WithAdditionOperator" },
{ "$ref": "#/$defs/security_CvssV2VulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_CvssV3VulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_CvssV4VulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_EpssVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_ExploitCatalogVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_SsvcVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_VexAffectedVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_VexFixedVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_VexNotAffectedVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_VexUnderInvestigationVulnAssessmentRelationship" },
{ "$ref": "#/$defs/security_Vulnerability" },
{ "$ref": "#/$defs/simplelicensing_LicenseExpression" },
{ "$ref": "#/$defs/simplelicensing_SimpleLicensingText" },
{ "$ref": "#/$defs/software_File" },
{ "$ref": "#/$defs/software_Package" },
{ "$ref": "#/$defs/software_Sbom" },
{ "$ref": "#/$defs/software_Snippet" }
]
},
{ "const": "NoAssertionElement" },
{ "const": "NoneElement" },
{ "const": "SpdxOrganization" },
{ "const": "expandedlicensing_NoAssertionLicense" },
{ "const": "expandedlicensing_NoneLicense" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"Element_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"comment": {
"$ref": "#/$defs/prop_Element_comment"
},
"creationInfo": {
"$ref": "#/$defs/prop_Element_creationInfo"
},
"description": {
"$ref": "#/$defs/prop_Element_description"
},
"extension": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_Element_extension"
}
}
]
},
"extension": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_Element_extension"
}
}
]
},
"externalIdentifier": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_Element_externalIdentifier"
}
}
]
},
"externalRef": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_Element_externalRef"
}
}
]
},
"name": {
"$ref": "#/$defs/prop_Element_name"
},
"summary": {
"$ref": "#/$defs/prop_Element_summary"
},
"verifiedUsing": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_Element_verifiedUsing"
}
}
]
}
},
"required": [
"creationInfo"
]
}
]
},
"prop_Element_comment": {
"type": "string"
},
"prop_Element_creationInfo": {
"$ref": "#/$defs/CreationInfo_derived"
},
"prop_Element_description": {
"type": "string"
},
"prop_Element_extension": {
"$ref": "#/$defs/extension_Extension_derived"
},
"prop_Element_extension": {
"$ref": "#/$defs/extension_Extension_derived"
},
"prop_Element_externalIdentifier": {
"$ref": "#/$defs/ExternalIdentifier_derived"
},
"prop_Element_externalRef": {
"$ref": "#/$defs/ExternalRef_derived"
},
"prop_Element_name": {
"type": "string"
},
"prop_Element_summary": {
"type": "string"
},
"prop_Element_verifiedUsing": {
"$ref": "#/$defs/IntegrityMethod_derived"
},
"ElementCollection_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/Bom" },
{ "$ref": "#/$defs/Bundle" },
{ "$ref": "#/$defs/SpdxDocument" },
{ "$ref": "#/$defs/software_Sbom" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ElementCollection_props": {
"allOf": [
{ "$ref": "#/$defs/Element_props" },
{
"type": "object",
"properties": {
"element": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ElementCollection_element"
}
}
]
},
"profileConformance": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ElementCollection_profileConformance"
}
}
]
},
"rootElement": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ElementCollection_rootElement"
}
}
]
}
}
}
]
},
"prop_ElementCollection_element": {
"$ref": "#/$defs/Element_derived"
},
"prop_ElementCollection_profileConformance": {
"enum": [
"ai",
"build",
"core",
"dataset",
"expandedLicensing",
"extension",
"lite",
"security",
"simpleLicensing",
"software"
]
},
"prop_ElementCollection_rootElement": {
"$ref": "#/$defs/Element_derived"
},
"ExternalIdentifier": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ExternalIdentifier"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ExternalIdentifier_props" }
]
},
"else": {
"const": "Not a ExternalIdentifier"
}
},
"ExternalIdentifier_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ExternalIdentifier" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ExternalIdentifier_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"comment": {
"$ref": "#/$defs/prop_ExternalIdentifier_comment"
},
"externalIdentifierType": {
"$ref": "#/$defs/prop_ExternalIdentifier_externalIdentifierType"
},
"identifier": {
"$ref": "#/$defs/prop_ExternalIdentifier_identifier"
},
"identifierLocator": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ExternalIdentifier_identifierLocator"
}
}
]
},
"issuingAuthority": {
"$ref": "#/$defs/prop_ExternalIdentifier_issuingAuthority"
}
},
"required": [
"externalIdentifierType",
"identifier"
]
}
]
},
"prop_ExternalIdentifier_comment": {
"type": "string"
},
"prop_ExternalIdentifier_externalIdentifierType": {
"enum": [
"cpe22",
"cpe23",
"cve",
"email",
"gitoid",
"other",
"packageUrl",
"securityOther",
"swhid",
"swid",
"urlScheme"
]
},
"prop_ExternalIdentifier_identifier": {
"type": "string"
},
"prop_ExternalIdentifier_identifierLocator": {
"$ref": "#/$defs/anyURI"
},
"prop_ExternalIdentifier_issuingAuthority": {
"type": "string"
},
"ExternalIdentifierType": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ExternalIdentifierType"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ExternalIdentifierType_props" }
]
},
"else": {
"const": "Not a ExternalIdentifierType"
}
},
"ExternalIdentifierType_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ExternalIdentifierType" }
]
},
{ "const": "spdx:Core/ExternalIdentifierType/cpe22" },
{ "const": "spdx:Core/ExternalIdentifierType/cpe23" },
{ "const": "spdx:Core/ExternalIdentifierType/cve" },
{ "const": "spdx:Core/ExternalIdentifierType/email" },
{ "const": "spdx:Core/ExternalIdentifierType/gitoid" },
{ "const": "spdx:Core/ExternalIdentifierType/other" },
{ "const": "spdx:Core/ExternalIdentifierType/packageUrl" },
{ "const": "spdx:Core/ExternalIdentifierType/securityOther" },
{ "const": "spdx:Core/ExternalIdentifierType/swhid" },
{ "const": "spdx:Core/ExternalIdentifierType/swid" },
{ "const": "spdx:Core/ExternalIdentifierType/urlScheme" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ExternalIdentifierType_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
}
}
]
},
"ExternalMap": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ExternalMap"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ExternalMap_props" }
]
},
"else": {
"const": "Not a ExternalMap"
}
},
"ExternalMap_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ExternalMap" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ExternalMap_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"definingArtifact": {
"$ref": "#/$defs/prop_ExternalMap_definingArtifact"
},
"externalSpdxId": {
"$ref": "#/$defs/prop_ExternalMap_externalSpdxId"
},
"locationHint": {
"$ref": "#/$defs/prop_ExternalMap_locationHint"
},
"verifiedUsing": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ExternalMap_verifiedUsing"
}
}
]
}
},
"required": [
"externalSpdxId"
]
}
]
},
"prop_ExternalMap_definingArtifact": {
"$ref": "#/$defs/Artifact_derived"
},
"prop_ExternalMap_externalSpdxId": {
"$ref": "#/$defs/anyURI"
},
"prop_ExternalMap_locationHint": {
"$ref": "#/$defs/anyURI"
},
"prop_ExternalMap_verifiedUsing": {
"$ref": "#/$defs/IntegrityMethod_derived"
},
"ExternalRef": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ExternalRef"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ExternalRef_props" }
]
},
"else": {
"const": "Not a ExternalRef"
}
},
"ExternalRef_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ExternalRef" }
]
},
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ExternalRef_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
"comment": {
"$ref": "#/$defs/prop_ExternalRef_comment"
},
"contentType": {
"$ref": "#/$defs/prop_ExternalRef_contentType"
},
"externalRefType": {
"$ref": "#/$defs/prop_ExternalRef_externalRefType"
},
"locator": {
"anyOf": [
{
"type": "array",
"items": {
"$ref": "#/$defs/prop_ExternalRef_locator"
}
}
]
}
}
}
]
},
"prop_ExternalRef_comment": {
"type": "string"
},
"prop_ExternalRef_contentType": {
"pattern": "^[^\\/]+\\/[^\\/]+$",
"type": "string"
},
"prop_ExternalRef_externalRefType": {
"enum": [
"altDownloadLocation",
"altWebPage",
"binaryArtifact",
"bower",
"buildMeta",
"buildSystem",
"certificationReport",
"chat",
"componentAnalysisReport",
"cwe",
"documentation",
"dynamicAnalysisReport",
"eolNotice",
"exportControlAssessment",
"funding",
"issueTracker",
"license",
"mailingList",
"mavenCentral",
"metrics",
"npm",
"nuget",
"other",
"privacyAssessment",
"productMetadata",
"purchaseOrder",
"qualityAssessmentReport",
"releaseHistory",
"releaseNotes",
"riskAssessment",
"runtimeAnalysisReport",
"secureSoftwareAttestation",
"securityAdversaryModel",
"securityAdvisory",
"securityFix",
"securityOther",
"securityPenTestReport",
"securityPolicy",
"securityThreatModel",
"socialMedia",
"sourceArtifact",
"staticAnalysisReport",
"support",
"vcs",
"vulnerabilityDisclosureReport",
"vulnerabilityExploitabilityAssessment"
]
},
"prop_ExternalRef_locator": {
"type": "string"
},
"ExternalRefType": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "ExternalRefType"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/ExternalRefType_props" }
]
},
"else": {
"const": "Not a ExternalRefType"
}
},
"ExternalRefType_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/ExternalRefType" }
]
},
{ "const": "spdx:Core/ExternalRefType/altDownloadLocation" },
{ "const": "spdx:Core/ExternalRefType/altWebPage" },
{ "const": "spdx:Core/ExternalRefType/binaryArtifact" },
{ "const": "spdx:Core/ExternalRefType/bower" },
{ "const": "spdx:Core/ExternalRefType/buildMeta" },
{ "const": "spdx:Core/ExternalRefType/buildSystem" },
{ "const": "spdx:Core/ExternalRefType/certificationReport" },
{ "const": "spdx:Core/ExternalRefType/chat" },
{ "const": "spdx:Core/ExternalRefType/componentAnalysisReport" },
{ "const": "spdx:Core/ExternalRefType/cwe" },
{ "const": "spdx:Core/ExternalRefType/documentation" },
{ "const": "spdx:Core/ExternalRefType/dynamicAnalysisReport" },
{ "const": "spdx:Core/ExternalRefType/eolNotice" },
{ "const": "spdx:Core/ExternalRefType/exportControlAssessment" },
{ "const": "spdx:Core/ExternalRefType/funding" },
{ "const": "spdx:Core/ExternalRefType/issueTracker" },
{ "const": "spdx:Core/ExternalRefType/license" },
{ "const": "spdx:Core/ExternalRefType/mailingList" },
{ "const": "spdx:Core/ExternalRefType/mavenCentral" },
{ "const": "spdx:Core/ExternalRefType/metrics" },
{ "const": "spdx:Core/ExternalRefType/npm" },
{ "const": "spdx:Core/ExternalRefType/nuget" },
{ "const": "spdx:Core/ExternalRefType/other" },
{ "const": "spdx:Core/ExternalRefType/privacyAssessment" },
{ "const": "spdx:Core/ExternalRefType/productMetadata" },
{ "const": "spdx:Core/ExternalRefType/purchaseOrder" },
{ "const": "spdx:Core/ExternalRefType/qualityAssessmentReport" },
{ "const": "spdx:Core/ExternalRefType/releaseHistory" },
{ "const": "spdx:Core/ExternalRefType/releaseNotes" },
{ "const": "spdx:Core/ExternalRefType/riskAssessment" },
{ "const": "spdx:Core/ExternalRefType/runtimeAnalysisReport" },
{ "const": "spdx:Core/ExternalRefType/secureSoftwareAttestation" },
{ "const": "spdx:Core/ExternalRefType/securityAdversaryModel" },
{ "const": "spdx:Core/ExternalRefType/securityAdvisory" },
{ "const": "spdx:Core/ExternalRefType/securityFix" },
{ "const": "spdx:Core/ExternalRefType/securityOther" },
{ "const": "spdx:Core/ExternalRefType/securityPenTestReport" },
{ "const": "spdx:Core/ExternalRefType/securityPolicy" },
{ "const": "spdx:Core/ExternalRefType/securityThreatModel" },
{ "const": "spdx:Core/ExternalRefType/socialMedia" },
{ "const": "spdx:Core/ExternalRefType/sourceArtifact" },
{ "const": "spdx:Core/ExternalRefType/staticAnalysisReport" },
{ "const": "spdx:Core/ExternalRefType/support" },
{ "const": "spdx:Core/ExternalRefType/vcs" },
{ "const": "spdx:Core/ExternalRefType/vulnerabilityDisclosureReport" },
{ "const": "spdx:Core/ExternalRefType/vulnerabilityExploitabilityAssessment" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"ExternalRefType_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
}
}
]
},
"HashAlgorithm": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "HashAlgorithm"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"@id": { "$ref": "#/$defs/BlankNodeOrIRI" },
"type": { "type": "string" }
}
},
{ "$ref": "#/$defs/HashAlgorithm_props" }
]
},
"else": {
"const": "Not a HashAlgorithm"
}
},
"HashAlgorithm_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/HashAlgorithm" }
]
},
{ "const": "spdx:Core/HashAlgorithm/adler32" },
{ "const": "spdx:Core/HashAlgorithm/blake2b256" },
{ "const": "spdx:Core/HashAlgorithm/blake2b384" },
{ "const": "spdx:Core/HashAlgorithm/blake2b512" },
{ "const": "spdx:Core/HashAlgorithm/blake3" },
{ "const": "spdx:Core/HashAlgorithm/crystalsDilithium" },
{ "const": "spdx:Core/HashAlgorithm/crystalsKyber" },
{ "const": "spdx:Core/HashAlgorithm/falcon" },
{ "const": "spdx:Core/HashAlgorithm/md2" },
{ "const": "spdx:Core/HashAlgorithm/md4" },
{ "const": "spdx:Core/HashAlgorithm/md5" },
{ "const": "spdx:Core/HashAlgorithm/md6" },
{ "const": "spdx:Core/HashAlgorithm/other" },
{ "const": "spdx:Core/HashAlgorithm/sha1" },
{ "const": "spdx:Core/HashAlgorithm/sha224" },
{ "const": "spdx:Core/HashAlgorithm/sha256" },
{ "const": "spdx:Core/HashAlgorithm/sha384" },
{ "const": "spdx:Core/HashAlgorithm/sha3_224" },
{ "const": "spdx:Core/HashAlgorithm/sha3_256" },
{ "const": "spdx:Core/HashAlgorithm/sha3_384" },
{ "const": "spdx:Core/HashAlgorithm/sha3_512" },
{ "const": "spdx:Core/HashAlgorithm/sha512" },
{ "$ref": "#/$defs/BlankNodeOrIRI" }
]
},
"HashAlgorithm_props": {
"allOf": [
{ "$ref": "#/$defs/SHACLClass" },
{
"type": "object",
"properties": {
}
}
]
},
"IndividualElement": {
"if": {
"type": "object",
"properties": {
"type": {
"const": "IndividualElement"
}
},
"required": ["type"]
},
"then": {
"allOf": [
{
"type": "object",
"properties": {
"spdxId": { "$ref": "#/$defs/IRI" },
"type": { "type": "string" }
},
"required": ["spdxId"]
},
{ "$ref": "#/$defs/IndividualElement_props" }
]
},
"else": {
"const": "Not a IndividualElement"
}
},
"IndividualElement_derived": {
"anyOf": [
{
"type": "object",
"unevaluatedProperties": false,
"anyOf": [
{ "$ref": "#/$defs/IndividualElement" }
]
},
{ "const": "NoAssertionElement" },
{ "co