Class Profile

All Implemented Interfaces:
dev.metaschema.core.model.IBoundObject, IOscalInstance

@MetaschemaAssembly(formalName="Profile", description="Each OSCAL profile is defined by a `profile` element.", name="profile", moduleClass=OscalProfileModule.class, rootName="profile", remarks="An OSCAL document that describes a tailoring of controls from one or more catalogs, with possible modification of multiple controls. It provides mechanisms by which controls may be selected (`import`), merged or (re)structured (`merge`), and amended (`modify`). OSCAL profiles may select subsets of controls, set parameter values for them in application, and even adjust the representation of controls as given in and by a catalog. They may also serve as sources for further modification in and by other profiles, that import them.", modelConstraints=@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 Profile extends AbstractOscalInstance implements dev.metaschema.core.model.IBoundObject
Each OSCAL profile is defined by a profile element.
  • Constructor Details

    • Profile

      public Profile()
      Constructs a new dev.metaschema.oscal.lib.model.Profile instance with no metadata.
    • Profile

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

      Provides a globally unique means to identify a given profile instance.

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

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

      Provides a globally unique means to identify a given profile instance.

      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
    • getImports

      @NonNull public List<ProfileImport> getImports()
      Get the "Import Resource".

      Designates a referenced source catalog or profile that provides a source of control information for use in creating a new overlay or baseline.

      Returns:
      the import value
    • setImports

      public void setImports(@NonNull List<ProfileImport> value)
      Set the "Import Resource".

      Designates a referenced source catalog or profile that provides a source of control information for use in creating a new overlay or baseline.

      Parameters:
      value - the import value to set
    • addImport

      public boolean addImport(ProfileImport item)
      Add a new ProfileImport item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeImport

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

      @Nullable public Merge getMerge()
      Get the "Merge Controls".

      Provides structuring directives that instruct how controls are organized after profile resolution.

      Returns:
      the merge value, or null if not set
    • setMerge

      public void setMerge(@Nullable Merge value)
      Set the "Merge Controls".

      Provides structuring directives that instruct how controls are organized after profile resolution.

      Parameters:
      value - the merge value to set, or null to clear
    • getModify

      @Nullable public Modify getModify()
      Get the "Modify Controls".

      Set parameters or amend controls in resolution.

      Returns:
      the modify value, or null if not set
    • setModify

      public void setModify(@Nullable Modify value)
      Set the "Modify Controls".

      Set parameters or amend controls in resolution.

      Parameters:
      value - the modify value to set, or null to clear
    • 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