Skip to content

Commit 22f423e

Browse files
aj-stein-nistxee5ch
andcommitted
Add actions assembly to encode an action (i.e. approval) and its role, party, and approval date. (#1052) (#1429)
* Create actions assembly in OSCAL metadata model. * Address PR feedback to wrap up. #1052 (review) #1052 (comment) Co-authored-by: Al S <xee5ch.gh.al@il5.in>
1 parent 46e21da commit 22f423e

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

src/metaschema/oscal_metadata_metaschema.xml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
<assembly ref="responsible-party" max-occurs="unbounded">
5353
<group-as name="responsible-parties" in-json="ARRAY"/>
5454
</assembly>
55+
<assembly ref="action" max-occurs="unbounded">
56+
<group-as name="actions" in-json="ARRAY"/>
57+
</assembly>
5558
<field ref="remarks" in-xml="WITH_WRAPPER"/>
5659
</model>
5760
<constraint>
@@ -759,6 +762,59 @@
759762
</index-has-key>
760763
</constraint>
761764
</define-assembly>
765+
766+
<define-assembly name="action">
767+
<formal-name>Action</formal-name>
768+
<description>An action applied by a role within a given party to the content.</description>
769+
<define-flag name="uuid" as-type="uuid" required="yes">
770+
<formal-name>Action Universally Unique Identifier</formal-name>
771+
<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>
772+
</define-flag>
773+
<define-flag name="date" as-type="dateTime-with-timezone">
774+
<formal-name>Action Occurrence Date</formal-name>
775+
<description>The date and time when the action occurred.</description>
776+
</define-flag>
777+
<define-flag name="type" as-type="token" required="yes">
778+
<formal-name>Action Type</formal-name>
779+
<description>The type of action documented by the assembly, such as an approval.</description>
780+
</define-flag>
781+
<define-flag name="system" as-type="uri" required="yes">
782+
<formal-name>Action Type System</formal-name>
783+
<description>Specifies the action type system used.</description>
784+
<remarks>
785+
<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>
786+
<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>
787+
</remarks>
788+
</define-flag>
789+
<model>
790+
<assembly ref="property" max-occurs="unbounded">
791+
<group-as name="props" in-json="ARRAY"/>
792+
</assembly>
793+
<assembly ref="link" max-occurs="unbounded">
794+
<group-as name="links" in-json="ARRAY"/>
795+
</assembly>
796+
<assembly ref="responsible-party" max-occurs="unbounded">
797+
<group-as name="responsible-parties" in-json="ARRAY"/>
798+
</assembly>
799+
<field ref="remarks" in-xml="WITH_WRAPPER"/>
800+
</model>
801+
<constraint>
802+
<index-has-key name="index-metadata-role-id" target="responsible-party">
803+
<key-field target="@role-id"/>
804+
</index-has-key>
805+
<index-has-key name="index-metadata-party-uuid" target="responsible-party">
806+
<key-field target="party-uuid"/>
807+
</index-has-key>
808+
<allowed-values target="./system/@value" allow-other="yes">
809+
<enum value="http://csrc.nist.gov/ns/oscal">This value identifies action types defined in the NIST OSCAL namespace.</enum>
810+
</allowed-values>
811+
<allowed-values target="./type[has-oscal-namespace('http://csrc.nist.gov/ns/oscal')]/@value">
812+
<enum value="approval">An approval of a document instance's content.</enum>
813+
<enum value="request-changes">A request from the responisble party or parties to change the content.</enum>
814+
</allowed-values>
815+
</constraint>
816+
</define-assembly>
817+
762818
<define-assembly name="responsible-role">
763819
<formal-name>Responsible Role</formal-name>
764820
<description>A reference to one or more roles with responsibility for performing a function relative to the containing object.</description>

0 commit comments

Comments
 (0)