Class ImplementedRequirement

java.lang.Object
dev.metaschema.oscal.lib.model.ImplementedRequirement
All Implemented Interfaces:
dev.metaschema.core.model.IBoundObject

@MetaschemaAssembly(formalName="Control-based Requirement", description="Describes how the system satisfies the requirements of an individual control.", name="implemented-requirement", moduleClass=OscalSspModule.class, remarks="Use of `set-parameter` in this context, sets the parameter for the referenced control. Any `set-parameter` defined in a child context will override this value. If not overridden by a child, this value applies in the child context.", valueConstraints=@ValueConstraints(allowedValues={@AllowedValues(id="oscal-implemented-requirement-statement-by-component-prop-name-values",level=ERROR,target="(.|statement|.//by-component)/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values=@AllowedValue(value="control-origination",description="Identifies the source of the implemented control. Any `control-origination` prop defined in a child context will override the parent value.")),@AllowedValues(id="oscal-implemented-requirement-statement-by-component-prop-control-origination-values",level=ERROR,target="(.|statement|.//by-component)/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'control-origination\']/@value",values={@AllowedValue(value="organization",description="The control is implemented by the organization owning the system, but is not specific to the system itself."),@AllowedValue(value="system-specific",description="The control is implemented specifically to this system."),@AllowedValue(value="customer-configured",description="The control is provided by the system, but must be configured by the customer."),@AllowedValue(value="customer-provided",description="The control must be implemented by the customer."),@AllowedValue(value="inherited",description="This control is inherited from an underlying system.")}),@AllowedValues(id="oscal-implemented-requirement-responsible-role-id-values",level=ERROR,target="responsible-role/@role-id",allowOthers=true,values={@AllowedValue(value="asset-owner",description="Accountable for ensuring the asset is managed in accordance with organizational policies and procedures."),@AllowedValue(value="asset-administrator",description="Responsible for administering a set of assets."),@AllowedValue(value="security-operations",description="Members of the security operations center (SOC)."),@AllowedValue(value="network-operations",description="Members of the network operations center (NOC)."),@AllowedValue(value="incident-response",description="Responsible for responding to an event that could lead to loss of, or disruption to, an organization\'s operations, services or functions."),@AllowedValue(value="help-desk",description="Responsible for providing information and support to users."),@AllowedValue(value="configuration-management",description="Responsible for the configuration management processes governing changes to the asset.")})},indexHasKey={@IndexHasKey(id="oscal-implemented-requirement-index-metadata-role-id",level=ERROR,target="responsible-role|statement/responsible-role|.//by-component//responsible-role",indexName="index-metadata-role-id",keyFields=@KeyField(target="@role-id")),@IndexHasKey(id="oscal-implemented-requirement-index-metadata-party-uuid",level=ERROR,target="responsible-role|statement/responsible-role|.//by-component//responsible-role",indexName="index-metadata-party-uuid",keyFields=@KeyField(target="party-uuid"))}), modelConstraints=@AssemblyConstraints(unique={@IsUnique(id="oscal-unique-ssp-implemented-requirement-set-parameter",level=ERROR,target="set-parameter",keyFields=@KeyField(target="@param-id"),remarks="Since multiple `set-parameter` entries can be provided, each parameter must be set only once."),@IsUnique(id="oscal-unique-ssp-implemented-requirement-responsible-role",level=ERROR,target="responsible-role",keyFields=@KeyField(target="@role-id"),remarks="Since `responsible-role` associates multiple `party-uuid` entries with a single `role-id`, each role-id must be referenced only once."),@IsUnique(id="oscal-unique-ssp-implemented-requirement-statement",level=ERROR,target="statement",keyFields=@KeyField(target="@statement-id"),remarks="Since `statement` entries can be referenced using the statement\'s statement-id, each statement must be referenced only once."),@IsUnique(id="oscal-unique-ssp-implemented-requirement-by-component",level=ERROR,target="by-component",keyFields=@KeyField(target="@component-uuid"),remarks="Since `by-component` can reference `component` entries using the component\'s uuid, each component must be referenced only once. This ensures that all implementation statements are contained in the same `by-component` entry.")},cardinality=@HasCardinality(id="oscal-implemented-requirement-by-component-cardinality",level=ERROR,target=".//by-component",minOccurs=1))) public class ImplementedRequirement extends Object implements dev.metaschema.core.model.IBoundObject
Describes how the system satisfies the requirements of an individual control.
  • Constructor Details

    • ImplementedRequirement

      Constructs a new dev.metaschema.oscal.lib.model.ImplementedRequirement instance with no metadata.
    • ImplementedRequirement

      public ImplementedRequirement(dev.metaschema.core.model.IMetaschemaData data)
      Constructs a new dev.metaschema.oscal.lib.model.ImplementedRequirement instance with the specified metadata.
      Parameters:
      data - the metaschema data, or null if none
  • Method Details

    • getMetaschemaData

      public dev.metaschema.core.model.IMetaschemaData getMetaschemaData()
      Specified by:
      getMetaschemaData in interface dev.metaschema.core.model.IBoundObject
    • getUuid

      @NonNull public UUID getUuid()
      Get the "Control Requirement Universally Unique Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control requirement elsewhere in this or other OSCAL instances. The locally defined UUID of the control requirement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.

      Returns:
      the uuid value
    • setUuid

      public void setUuid(@NonNull UUID value)
      Set the "Control Requirement Universally Unique Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control requirement elsewhere in this or other OSCAL instances. The locally defined UUID of the control requirement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.

      Parameters:
      value - the uuid value to set
    • getControlId

      @NonNull public String getControlId()
      Get the "Control Identifier Reference".

      A reference to a control with a corresponding id value. When referencing an externally defined control, the Control Identifier Reference must be used in the context of the external / imported OSCAL instance (e.g., uri-reference).

      Returns:
      the control-id value
    • setControlId

      public void setControlId(@NonNull String value)
      Set the "Control Identifier Reference".

      A reference to a control with a corresponding id value. When referencing an externally defined control, the Control Identifier Reference must be used in the context of the external / imported OSCAL instance (e.g., uri-reference).

      Parameters:
      value - the control-id value to set
    • getProps

      @NonNull public List<Property> getProps()
      Get the "Property".

      An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.

      Returns:
      the prop value
    • setProps

      public void setProps(@NonNull List<Property> value)
      Set the "Property".

      An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.

      Parameters:
      value - the prop value to set
    • addProp

      public boolean addProp(Property item)
      Add a new Property item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeProp

      public boolean removeProp(Property item)
      Remove the first matching Property item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getLinks

      @NonNull public List<Link> getLinks()
      Get the "Link".

      A reference to a local or remote resource, that has a specific relation to the containing object.

      Returns:
      the link value
    • setLinks

      public void setLinks(@NonNull List<Link> value)
      Set the "Link".

      A reference to a local or remote resource, that has a specific relation to the containing object.

      Parameters:
      value - the link value to set
    • addLink

      public boolean addLink(Link item)
      Add a new Link item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeLink

      public boolean removeLink(Link item)
      Remove the first matching Link item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getSetParameters

      @NonNull public List<SetParameter> getSetParameters()
      Get the "Set Parameter Value".

      Identifies the parameter that will be set by the enclosed value.

      Returns:
      the set-parameter value
    • setSetParameters

      public void setSetParameters(@NonNull List<SetParameter> value)
      Set the "Set Parameter Value".

      Identifies the parameter that will be set by the enclosed value.

      Parameters:
      value - the set-parameter value to set
    • addSetParameter

      public boolean addSetParameter(SetParameter item)
      Add a new SetParameter item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeSetParameter

      public boolean removeSetParameter(SetParameter item)
      Remove the first matching SetParameter item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getResponsibleRoles

      Get the "Responsible Role".

      A reference to a role with responsibility for performing a function relative to the containing object, optionally associated with a set of persons and/or organizations that perform that role.

      Returns:
      the responsible-role value
    • setResponsibleRoles

      public void setResponsibleRoles(@NonNull List<ResponsibleRole> value)
      Set the "Responsible Role".

      A reference to a role with responsibility for performing a function relative to the containing object, optionally associated with a set of persons and/or organizations that perform that role.

      Parameters:
      value - the responsible-role value to set
    • addResponsibleRole

      public boolean addResponsibleRole(ResponsibleRole item)
      Add a new ResponsibleRole item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeResponsibleRole

      public boolean removeResponsibleRole(ResponsibleRole item)
      Remove the first matching ResponsibleRole item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getStatements

      @NonNull public List<Statement> getStatements()
      Get the "Specific Control Statement".

      Identifies which statements within a control are addressed.

      Returns:
      the statement value
    • setStatements

      public void setStatements(@NonNull List<Statement> value)
      Set the "Specific Control Statement".

      Identifies which statements within a control are addressed.

      Parameters:
      value - the statement value to set
    • addStatement

      public boolean addStatement(Statement item)
      Add a new Statement item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeStatement

      public boolean removeStatement(Statement item)
      Remove the first matching Statement item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getByComponents

      @NonNull public List<ByComponent> getByComponents()
      Get the "Component Control Implementation".

      Defines how the referenced component implements a set of controls.

      Returns:
      the by-component value
    • setByComponents

      public void setByComponents(@NonNull List<ByComponent> value)
      Set the "Component Control Implementation".

      Defines how the referenced component implements a set of controls.

      Parameters:
      value - the by-component value to set
    • addByComponent

      public boolean addByComponent(ByComponent item)
      Add a new ByComponent item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeByComponent

      public boolean removeByComponent(ByComponent item)
      Remove the first matching ByComponent item from the underlying collection.
      Parameters:
      item - the item to remove
      Returns:
      true if the item was removed or false otherwise
    • getRemarks

      @Nullable public dev.metaschema.core.datatype.markup.MarkupMultiline getRemarks()
      Get the "Remarks".

      Additional commentary about the containing object.

      Returns:
      the remarks value, or null if not set
    • setRemarks

      public void setRemarks(@Nullable dev.metaschema.core.datatype.markup.MarkupMultiline value)
      Set the "Remarks".

      Additional commentary about the containing object.

      Parameters:
      value - the remarks value to set, or null to clear
    • toString

      public String toString()
      Overrides:
      toString in class Object