Skip to content

Commit

Permalink
Create actions assembly in OSCAL metadata model.
Browse files Browse the repository at this point in the history
  • Loading branch information
xee5ch committed Aug 24, 2022
1 parent 1f3af5b commit 9d33bf3
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions src/metaschema/oscal_metadata_metaschema.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@
<assembly ref="responsible-party" max-occurs="unbounded">
<group-as name="responsible-parties" in-json="ARRAY"/>
</assembly>
<assembly ref="action" max-occurs="unbounded">
<group-as name="actions" in-json="ARRAY"/>
</assembly>
<field ref="remarks" in-xml="WITH_WRAPPER"/>
</model>
<constraint>
Expand Down Expand Up @@ -759,6 +762,62 @@
</index-has-key>
</constraint>
</define-assembly>

<define-assembly name="action">
<formal-name>Action</formal-name>
<description>An action applied by a role within a given party to the content.</description>
<define-flag name="uuid" as-type="uuid" required="yes">
<formal-name>Action Universally Unique Identifier</formal-name>
<description>A unique identifier that can be used to reference this defined action elsewhere in an OSCAL document. A UUID should be consistently used for a given location across revisions of the document.</description>
</define-flag>
<define-flag name="role-id" as-type="token" required="yes">
<formal-name>Action Responsible Role Identifier</formal-name>
<description>Identifier of the approving role in the responsible party.</description>
</define-flag>
<define-flag name="party-uuid" as-type="token" required="yes">
<formal-name>Action Party Universally Unique Identifier</formal-name>
<description>The universally unique identifier of the party responsible for the action.</description>
</define-flag>
<define-flag name="date" as-type="dateTime-with-timezone">
<formal-name>Action Occurrence Date</formal-name>
<description>The date and time when the action occurred.</description>
</define-flag>
<define-flag name="type" as-type="token" required="yes">
<formal-name>Action Type</formal-name>
<description>The type of action documented by the assembly, such as an approval.</description>
</define-flag>
<define-flag name="system" as-type="uri" required="yes">
<formal-name>Action Type System</formal-name>
<description>Specifies the action type system used.</description>
<remarks>
<p>Provides a means to segment the value space for the <code>type</code>, so that different organizations and individuals can assert control over the allowed <code>action</code>'s <code>type</code>. This allows the semantics associated with a given <code>type</code> to be defined on an organization-by-organization basis.</p>
<p>An organization MUST use a URI that they have control over. e.g., a domain registered to the organization in a URI, a registered uniform resource names (URN) namespace.</p>
</remarks>
<constraint>
<allowed-values allow-other="yes">
<enum value="http://csrc.nist.gov/ns/oscal">This value identifies action types defined in the NIST OSCAL namespace.</enum>
</allowed-values>
</constraint>
</define-flag>
<model>
<assembly ref="property" max-occurs="unbounded">
<group-as name="props" in-json="ARRAY"/>
</assembly>
<assembly ref="link" max-occurs="unbounded">
<group-as name="links" in-json="ARRAY"/>
</assembly>
<field ref="remarks" in-xml="WITH_WRAPPER"/>
</model>
<constraint>
<index-has-key name="index-metadata-role-id" target=".">
<key-field target="@role-id"/>
</index-has-key>
<index-has-key name="index-metadata-party-uuid" target=".">
<key-field target="@party-uuid"/>
</index-has-key>
</constraint>
</define-assembly>

<define-assembly name="responsible-role">
<formal-name>Responsible Role</formal-name>
<description>A reference to one or more roles with responsibility for performing a function relative to the containing object.</description>
Expand Down

0 comments on commit 9d33bf3

Please sign in to comment.