Skip to main content

Component Definition Model v1.0.4 JSON Format Outline

The following outline is a representation of the JSON format for this model. For each property, the name links to the corresponding entry in the JSON Format Reference. The cardinality and data type are also provided for each property where appropriate.

component-definition [1]: { … }

uuid [1]: uuid,

metadata [1]: { … },

title [1]: markup-line,

published [0 or 1]: dateTime-with-timezone,

last-modified [1]: dateTime-with-timezone,

version [1]: string,

oscal-version [1]: string,

revisions [0 or 1]: [ … ],

An array of revision objects [1 to ∞] {

title [0 or 1]: markup-line,

published [0 or 1]: dateTime-with-timezone,

last-modified [0 or 1]: dateTime-with-timezone,

version [1]: string,

oscal-version [0 or 1]: string,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

remarks [0 or 1]: markup-multiline,

}

],

document-ids [0 or 1]: [ … ],

An array of document-id objects [0 to ∞] {

scheme [0 or 1]: uri,

identifier [0 or 1]: string,

}

],

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

roles [0 or 1]: [ … ],

An array of role objects [1 to ∞] {

id [1]: token,

title [1]: markup-line,

short-name [0 or 1]: string,

description [0 or 1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

remarks [0 or 1]: markup-multiline,

}

],

locations [0 or 1]: [ … ],

An array of location objects [1 to ∞] {

uuid [1]: uuid,

title [0 or 1]: markup-line,

address [1]: { … },

type [0 or 1]: token,

addr-lines [0 or 1]: [ … ],

An array of addr-line strings [0 to ∞]: string

],

city [0 or 1]: string,

state [0 or 1]: string,

postal-code [0 or 1]: string,

country [0 or 1]: string,

},

email-addresses [0 or 1]: [ … ],

An array of email-address strings [0 to ∞]: email

],

telephone-numbers [0 or 1]: [ … ],

An array of telephone-number objects [0 to ∞] {

type [0 or 1]: string,

number [0 or 1]: string,

}

],

urls [0 or 1]: [ … ],

An array of url strings [0 to ∞]: uri

],

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

remarks [0 or 1]: markup-multiline,

}

],

parties [0 or 1]: [ … ],

An array of party objects [1 to ∞] {

uuid [1]: uuid,

type [1]: string,

name [0 or 1]: string,

short-name [0 or 1]: string,

external-ids [0 or 1]: [ … ],

An array of external-id objects [0 to ∞] {

scheme [1]: uri,

id [0 or 1]: string

}

],

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

email-addresses [0 or 1]: [ … ],

An array of email-address strings [0 to ∞]: email

],

telephone-numbers [0 or 1]: [ … ],

An array of telephone-number objects [0 to ∞] {

type [0 or 1]: string,

number [0 or 1]: string,

}

],

A choice of:

addresses [0 or 1]: [ … ],

An array of address objects [1 to ∞] {

type [0 or 1]: token,

addr-lines [0 or 1]: [ … ],

An array of addr-line strings [0 to ∞]: string

],

city [0 or 1]: string,

state [0 or 1]: string,

postal-code [0 or 1]: string,

country [0 or 1]: string

}

],

location-uuids [0 or 1]: [ … ]

An array of location-uuid strings [0 to ∞]: uuid

]

member-of-organizations [0 or 1]: [ … ],

An array of member-of-organization strings [0 to ∞]: uuid

],

remarks [0 or 1]: markup-multiline,

}

],

responsible-parties [0 or 1]: [ … ],

An array of responsible-party objects [1 to ∞] {

role-id [1]: token,

party-uuids [1]: [ … ],

An array of party-uuid strings [1 to ∞]: uuid

],

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

remarks [0 or 1]: markup-multiline,

}

],

remarks [0 or 1]: markup-multiline,

},

import-component-definitions [0 or 1]: [ … ],

An array of import-component-definition objects [1 to ∞] {

}

],

components [0 or 1]: [ … ],

An array of component objects [1 to ∞] {

uuid [1]: uuid,

type [1]: string,

title [1]: markup-line,

description [1]: markup-multiline,

purpose [0 or 1]: markup-line,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

responsible-roles [0 or 1]: [ … ],

An array of responsible-role objects [1 to ∞] {

role-id [1]: token,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

party-uuids [0 or 1]: [ … ],

An array of party-uuid strings [0 to ∞]: uuid

],

remarks [0 or 1]: markup-multiline

}

],

protocols [0 or 1]: [ … ],

An array of protocol objects [1 to ∞] {

uuid [0 or 1]: uuid,

name [1]: string,

title [0 or 1]: markup-line,

port-ranges [0 or 1]: [ … ],

An array of port-range objects [1 to ∞] {

}

],

}

],

control-implementations [0 or 1]: [ … ],

An array of control-implementation objects [1 to ∞] {

uuid [1]: uuid,

source [1]: uri-reference,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

set-parameters [0 or 1]: [ … ],

An array of set-parameter objects [1 to ∞] {

param-id [1]: token,

values [1]: [ … ],

An array of value strings [1 to ∞]: string

],

remarks [0 or 1]: markup-multiline

}

],

implemented-requirements [1]: [ … ],

An array of implemented-requirement objects [1 to ∞] {

uuid [1]: uuid,

control-id [1]: token,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

set-parameters [0 or 1]: [ … ],

An array of set-parameter objects [1 to ∞] {

param-id [1]: token,

values [1]: [ … ],

An array of value strings [1 to ∞]: string

],

remarks [0 or 1]: markup-multiline

}

],

responsible-roles [0 or 1]: [ … ],

An array of responsible-role objects [1 to ∞] {

role-id [1]: token,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

party-uuids [0 or 1]: [ … ],

An array of party-uuid strings [0 to ∞]: uuid

],

remarks [0 or 1]: markup-multiline

}

],

statements [0 or 1]: [ … ],

An array of statement objects [1 to ∞] {

statement-id [1]: token,

uuid [1]: uuid,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

responsible-roles [0 or 1]: [ … ],

An array of responsible-role objects [1 to ∞] {

role-id [1]: token,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

party-uuids [0 or 1]: [ … ],

An array of party-uuid strings [0 to ∞]: uuid

],

remarks [0 or 1]: markup-multiline

}

],

remarks [0 or 1]: markup-multiline,

}

],

remarks [0 or 1]: markup-multiline,

}

],

}

],

remarks [0 or 1]: markup-multiline,

}

],

capabilities [0 or 1]: [ … ],

An array of capability objects [1 to ∞] {

uuid [1]: uuid,

name [1]: string,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

incorporates-components [0 or 1]: [ … ],

An array of incorporates-component objects [1 to ∞] {

}

],

control-implementations [0 or 1]: [ … ],

An array of control-implementation objects [1 to ∞] {

uuid [1]: uuid,

source [1]: uri-reference,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

set-parameters [0 or 1]: [ … ],

An array of set-parameter objects [1 to ∞] {

param-id [1]: token,

values [1]: [ … ],

An array of value strings [1 to ∞]: string

],

remarks [0 or 1]: markup-multiline

}

],

implemented-requirements [1]: [ … ],

An array of implemented-requirement objects [1 to ∞] {

uuid [1]: uuid,

control-id [1]: token,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

set-parameters [0 or 1]: [ … ],

An array of set-parameter objects [1 to ∞] {

param-id [1]: token,

values [1]: [ … ],

An array of value strings [1 to ∞]: string

],

remarks [0 or 1]: markup-multiline

}

],

responsible-roles [0 or 1]: [ … ],

An array of responsible-role objects [1 to ∞] {

role-id [1]: token,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

party-uuids [0 or 1]: [ … ],

An array of party-uuid strings [0 to ∞]: uuid

],

remarks [0 or 1]: markup-multiline

}

],

statements [0 or 1]: [ … ],

An array of statement objects [1 to ∞] {

statement-id [1]: token,

uuid [1]: uuid,

description [1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

responsible-roles [0 or 1]: [ … ],

An array of responsible-role objects [1 to ∞] {

role-id [1]: token,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

party-uuids [0 or 1]: [ … ],

An array of party-uuid strings [0 to ∞]: uuid

],

remarks [0 or 1]: markup-multiline

}

],

remarks [0 or 1]: markup-multiline,

}

],

remarks [0 or 1]: markup-multiline,

}

],

}

],

remarks [0 or 1]: markup-multiline,

}

],

back-matter [0 or 1]: { … },
resources [0 or 1]: [ … ],

An array of resource objects [1 to ∞] {

uuid [1]: uuid,

title [0 or 1]: markup-line,

description [0 or 1]: markup-multiline,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

document-ids [0 or 1]: [ … ],

An array of document-id objects [0 to ∞] {

scheme [0 or 1]: uri,

identifier [0 or 1]: string,

}

],

citation [0 or 1]: { … },

text [1]: markup-line,

props [0 or 1]: [ … ],

An array of prop objects [1 to ∞] {

name [1]: token,

uuid [0 or 1]: uuid,

ns [0 or 1]: uri,

value [1]: string,

class [0 or 1]: token,

remarks [0 or 1]: markup-multiline,

}

],

links [0 or 1]: [ … ],

An array of link objects [1 to ∞] {

href [1]: uri-reference,

rel [0 or 1]: token,

media-type [0 or 1]: string,

text [0 or 1]: markup-line,

}

],

},

rlinks [0 or 1]: [ … ],

An array of rlink objects [1 to ∞] {

href [1]: uri-reference,

media-type [0 or 1]: string,

hashes [0 or 1]: [ … ],

An array of hash objects [0 to ∞] {

algorithm [1]: string,

value [0 or 1]: string,

}

],

}

],

base64 [0 or 1]: { … },

},

remarks [0 or 1]: markup-multiline,

}

],

},

}

This page was last updated on May 20, 2022.