Class SystemSecurityPlan

java.lang.Object
dev.metaschema.oscal.lib.model.AbstractOscalInstance
dev.metaschema.oscal.lib.model.SystemSecurityPlan
All Implemented Interfaces:
dev.metaschema.core.model.IBoundObject, IOscalInstance

@MetaschemaAssembly(formalName="System Security Plan (SSP)", description="A system security plan, such as those described in NIST SP 800-18.", name="system-security-plan", moduleClass=OscalSspModule.class, rootName="system-security-plan", valueConstraints=@ValueConstraints(lets=@Let(name="all-imports",target="resolve-profile(doc(resolve-uri(Q{http://csrc.nist.gov/ns/oscal/1.0}resolve-reference(import-profile/@href))))/catalog")), modelConstraints=@AssemblyConstraints(index={@Index(id="oscal-ssp-by-component-uuid-index",level=ERROR,target="control-implementation/implemented-requirement//by-component|doc(system-implementation/leveraged-authorization/link[@rel=\'system-security-plan\']/@href)/system-security-plan/control-implementation/implemented-requirement//by-component",name="by-component-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-ssp-index-metadata-scoped-role-id",formalName="In-Scope Role Identifiers",description="An index of role identifiers that are in-scope for the system-securtity-plan model. Roles are collected from imported profiles and catalogs. For a given role @id, a locally declared role takes precedence over a role that is imported, the role that was last imported.",level=ERROR,target="map:merge($all-imports/metadata/role ! map:entry(@id,.))?*",name="index-imports-metadata-role-id",keyFields=@KeyField(target="@id")),@Index(id="oscal-ssp-index-metadata-scoped-location-uuid",level=ERROR,target="map:merge($all-imports/metadata/location ! map:entry(@uuid,.))?*",name="index-imports-metadata-location-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-ssp-index-metadata-scoped-party-uuid",level=ERROR,target="map:merge($all-imports/metadata/party ! map:entry(@uuid,.))?*",name="index-imports-metadata-party-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-ssp-index-metadata-scoped-party-organization-uuid",level=ERROR,target="map:merge($all-imports/metadata/party[@type=\'organization\'] ! map:entry(@uuid,.))?*",name="index-imports-metadata-party-organization-uuid",keyFields=@KeyField(target="@uuid")),@Index(id="oscal-ssp-index-metadata-scoped-property-uuid",level=ERROR,target="map:merge($all-imports//prop[@uuid] ! map:entry(@uuid,.))?*",name="index-imports-metadata-property-uuid",keyFields=@KeyField(target="@uuid"))},unique={@IsUnique(id="oscal-unique-document-id",formalName="Unique Document Identifier",description="Ensure all document identifiers have a unique combination of @scheme and value.",level=ERROR,target="document-id",keyFields={@KeyField(target="@scheme"),@KeyField}),@IsUnique(id="oscal-unique-property-in-context-location",formalName="Unique Properties",description="Ensure all properties are unique for a given location using a unique combination of @ns, @name, @class. @group. and @value.",level=ERROR,target=".//prop",keyFields={@KeyField(target="path(..)"),@KeyField(target="@name"),@KeyField(target="@ns"),@KeyField(target="@class"),@KeyField(target="@group"),@KeyField(target="@value")}),@IsUnique(id="oscal-unique-link-in-context-location",formalName="Unique Links",description="Ensure all links are unique for a given location using a unique combination of @href, @rel, and @media-type.",level=ERROR,target=".//link",keyFields={@KeyField(target="path(..)"),@KeyField(target="@href"),@KeyField(target="@rel"),@KeyField(target="@media-type"),@KeyField(target="@resource-fragment")}),@IsUnique(id="oscal-unique-responsibility-in-context-location",formalName="Unique Responsibilities",description="Ensure all responsible-roles and responsible-parties are unique for a given location using a unique combination of @role-id and the combination of @party-uuid values.",level=ERROR,target=".//(responsible-party|responsible-role)",keyFields={@KeyField(target="path(..)"),@KeyField(target="@role-id"),@KeyField(target="@party-uuid")},remarks="Since `responsible-party` and `responsible-role` associate multiple `party-uuid` entries with a single `role-id`, each role-id must be referenced only once.")})) public class SystemSecurityPlan extends AbstractOscalInstance implements dev.metaschema.core.model.IBoundObject
A system security plan, such as those described in NIST SP 800-18.
  • Constructor Details

    • SystemSecurityPlan

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

      public SystemSecurityPlan(dev.metaschema.core.model.IMetaschemaData data)
      Constructs a new dev.metaschema.oscal.lib.model.SystemSecurityPlan 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 "System Security Plan Universally Unique Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this system security plan (SSP) elsewhere in this or other OSCAL instances. The locally defined UUID of the SSP 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.

      Specified by:
      getUuid in interface IOscalInstance
      Returns:
      the uuid value
    • setUuid

      public void setUuid(@NonNull UUID value)
      Set the "System Security Plan Universally Unique Identifier".

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this system security plan (SSP) elsewhere in this or other OSCAL instances. The locally defined UUID of the SSP 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
    • getMetadata

      @NonNull public Metadata getMetadata()
      Get the "Document Metadata".

      Provides information about the containing document, and defines concepts that are shared across the document.

      Specified by:
      getMetadata in interface IOscalInstance
      Returns:
      the metadata value
    • setMetadata

      public void setMetadata(@NonNull Metadata value)
      Set the "Document Metadata".

      Provides information about the containing document, and defines concepts that are shared across the document.

      Parameters:
      value - the metadata value to set
    • getImportProfile

      @NonNull public ImportProfile getImportProfile()
      Get the "Import Profile".

      Used to import the OSCAL profile representing the system's control baseline.

      Returns:
      the import-profile value
    • setImportProfile

      public void setImportProfile(@NonNull ImportProfile value)
      Set the "Import Profile".

      Used to import the OSCAL profile representing the system's control baseline.

      Parameters:
      value - the import-profile value to set
    • getSystemCharacteristics

      Get the "System Characteristics".

      Contains the characteristics of the system, such as its name, purpose, and security impact level.

      Returns:
      the system-characteristics value
    • setSystemCharacteristics

      public void setSystemCharacteristics(@NonNull SystemCharacteristics value)
      Set the "System Characteristics".

      Contains the characteristics of the system, such as its name, purpose, and security impact level.

      Parameters:
      value - the system-characteristics value to set
    • getSystemImplementation

      Get the "System Implementation".

      Provides information as to how the system is implemented.

      Returns:
      the system-implementation value
    • setSystemImplementation

      public void setSystemImplementation(@NonNull SystemImplementation value)
      Set the "System Implementation".

      Provides information as to how the system is implemented.

      Parameters:
      value - the system-implementation value to set
    • getControlImplementation

      Get the "Control Implementation".

      Describes how the system satisfies a set of controls.

      Returns:
      the control-implementation value
    • setControlImplementation

      public void setControlImplementation(@NonNull ControlImplementation value)
      Set the "Control Implementation".

      Describes how the system satisfies a set of controls.

      Parameters:
      value - the control-implementation value to set
    • getBackMatter

      @Nullable public BackMatter getBackMatter()
      Get the "Back matter".

      A collection of resources that may be referenced from within the OSCAL document instance.

      Specified by:
      getBackMatter in interface IOscalInstance
      Returns:
      the back-matter value, or null if not set
    • setBackMatter

      public void setBackMatter(@Nullable BackMatter value)
      Set the "Back matter".

      A collection of resources that may be referenced from within the OSCAL document instance.

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

      public String toString()
      Overrides:
      toString in class Object