Class SystemCharacteristics

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

@MetaschemaAssembly(formalName="System Characteristics", description="Contains the characteristics of the system, such as its name, purpose, and security impact level.", name="system-characteristics", moduleClass=OscalSspModule.class, valueConstraints=@AllowedValues(id="oscal-system-characteristics-prop-name-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values={@AllowedValue(value="identity-assurance-level",description="A value of 1, 2, or 3 as defined by [SP 800-63-3](https://doi.org/10.6028/NIST.SP.800-63-3)."),@AllowedValue(value="authenticator-assurance-level",description="A value of 1, 2, or 3 as defined by [SP 800-63-3](https://doi.org/10.6028/NIST.SP.800-63-3)."),@AllowedValue(value="federation-assurance-level",description="A value of 1, 2, or 3 as defined by [SP 800-63-3](https://doi.org/10.6028/NIST.SP.800-63-3).")}) @AllowedValues(id="oscal-system-characteristics-prop-sp-800-63-assurance-level-values",level=ERROR,target="prop[@name=(\'identity-assurance-level\',\'authenticator-assurance-level\',\'federation-assurance-level\')]/@value",values={@AllowedValue(value="1",description="As defined by [SP 800-63-3](https://doi.org/10.6028/NIST.SP.800-63-3)."),@AllowedValue(value="2",description="As defined by [SP 800-63-3](https://doi.org/10.6028/NIST.SP.800-63-3)."),@AllowedValue(value="3",description="As defined by [SP 800-63-3](https://doi.org/10.6028/NIST.SP.800-63-3).")}) @AllowedValues(id="oscal-system-characteristics-prop-name-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values={@AllowedValue(value="cloud-deployment-model",description="The associated value is one of: public-cloud, private-cloud, community-cloud, government-only-cloud, hybrid-cloud, or other."),@AllowedValue(value="cloud-service-model",description="The associated value is one of: saas, paas, iaas, or other.")}) @AllowedValues(id="oscal-system-characteristics-prop-cloud-deployment-model-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'cloud-deployment-model\']/@value",values={@AllowedValue(value="public-cloud",description="The public cloud deployment model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="private-cloud",description="The private cloud deployment model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="community-cloud",description="The community cloud deployment model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="hybrid-cloud",description="The hybrid cloud deployment model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="government-only-cloud",description="A specific type of community-cloud for use only by government services."),@AllowedValue(value="other",description="Any other type of cloud deployment model that is exclusive to the other choices.")},remarks="The hybrid cloud deployment model, as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145), can be supported by selecting two or more of the existing deployment models.") @AllowedValues(id="oscal-system-characteristics-prop-cloud-service-model-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'cloud-service-model\']/@value",values={@AllowedValue(value="saas",description="Software as a service (SaaS) cloud service model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="paas",description="Platform as a service (PaaS) cloud service model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="iaas",description="Infrastructure as a service (IaaS) cloud service model as defined by [The NIST Definition of Cloud Computing](https://doi.org/10.6028/NIST.SP.800-145)."),@AllowedValue(value="other",description="Any other type of cloud service model that is exclusive to the other choices.")}) @AllowedValues(id="oscal-system-characteristics-responsible-party-role-id-values",level=ERROR,target="responsible-party/@role-id",allowOthers=true,values={@AllowedValue(value="authorizing-official",description="The authorizing official for this system."),@AllowedValue(value="authorizing-official-poc",description="The authorizing official\'s designated point of contact (POC) for this system."),@AllowedValue(value="system-owner",description="The executive ultimately accountable for the system."),@AllowedValue(value="system-poc-management",description="The primary management-level point of contact (POC) for the system."),@AllowedValue(value="system-poc-technical",description="The primary technical point of contact (POC) for the system."),@AllowedValue(value="system-poc-other",description="Other point of contact (POC) for the system that is not the management or technical POC."),@AllowedValue(value="information-system-security-officer",description="The primary role responsible for ensuring the organization operates the system securely."),@AllowedValue(value="privacy-poc",description="The point of contact (POC) responsible for identifying privacy information within the system, and ensuring its protection if present.")}), modelConstraints=@AssemblyConstraints(unique=@IsUnique(id="oscal-unique-ssp-system-characteristics-responsible-party",level=ERROR,target="responsible-party",keyFields=@KeyField(target="@role-id"),remarks="Since `responsible-party` associates multiple `party-uuid` entries with a single `role-id`, each role-id must be referenced only once."))) public class SystemCharacteristics extends Object implements dev.metaschema.core.model.IBoundObject
Contains the characteristics of the system, such as its name, purpose, and security impact level.
  • Constructor Details

    • SystemCharacteristics

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

      public SystemCharacteristics(dev.metaschema.core.model.IMetaschemaData data)
      Constructs a new dev.metaschema.oscal.lib.model.SystemCharacteristics 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
    • getSystemIds

      @NonNull public List<SystemId> getSystemIds()
      Get the "System Identification".

      A human-oriented, globally unique identifier with cross-instance scope that can be used to reference this system identification property elsewhere in this or other OSCAL instances. When referencing an externally defined system identification, the system identification must be used in the context of the external / imported OSCAL instance (e.g., uri-reference). This string should be assigned per-subject, which means it should be consistently used to identify the same system across revisions of the document.

      Returns:
      the system-id value
    • setSystemIds

      public void setSystemIds(@NonNull List<SystemId> value)
      Set the "System Identification".

      A human-oriented, globally unique identifier with cross-instance scope that can be used to reference this system identification property elsewhere in this or other OSCAL instances. When referencing an externally defined system identification, the system identification must be used in the context of the external / imported OSCAL instance (e.g., uri-reference). This string should be assigned per-subject, which means it should be consistently used to identify the same system across revisions of the document.

      Parameters:
      value - the system-id value to set
    • addSystemId

      public boolean addSystemId(SystemId item)
      Add a new SystemId item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeSystemId

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

      @NonNull public String getSystemName()
      Get the "System Name - Full".

      The full name of the system.

      Returns:
      the system-name value
    • setSystemName

      public void setSystemName(@NonNull String value)
      Set the "System Name - Full".

      The full name of the system.

      Parameters:
      value - the system-name value to set
    • getSystemNameShort

      @Nullable public String getSystemNameShort()
      Get the "System Name - Short".

      A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.

      Returns:
      the system-name-short value, or null if not set
    • setSystemNameShort

      public void setSystemNameShort(@Nullable String value)
      Set the "System Name - Short".

      A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.

      Parameters:
      value - the system-name-short value to set, or null to clear
    • getDescription

      @NonNull public dev.metaschema.core.datatype.markup.MarkupMultiline getDescription()
      Get the "System Description".

      A summary of the system.

      Returns:
      the description value
    • setDescription

      public void setDescription(@NonNull dev.metaschema.core.datatype.markup.MarkupMultiline value)
      Set the "System Description".

      A summary of the system.

      Parameters:
      value - the description 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
    • getDateAuthorized

      @Nullable public dev.metaschema.core.datatype.object.AmbiguousDate getDateAuthorized()
      Get the "System Authorization Date".

      The date the system received its authorization.

      Returns:
      the date-authorized value, or null if not set
    • setDateAuthorized

      public void setDateAuthorized(@Nullable dev.metaschema.core.datatype.object.AmbiguousDate value)
      Set the "System Authorization Date".

      The date the system received its authorization.

      Parameters:
      value - the date-authorized value to set, or null to clear
    • getSecuritySensitivityLevel

      @Nullable public String getSecuritySensitivityLevel()
      Get the "Security Sensitivity Level".

      The overall information system sensitivity categorization, such as defined by FIPS-199.

      Returns:
      the security-sensitivity-level value, or null if not set
    • setSecuritySensitivityLevel

      public void setSecuritySensitivityLevel(@Nullable String value)
      Set the "Security Sensitivity Level".

      The overall information system sensitivity categorization, such as defined by FIPS-199.

      Parameters:
      value - the security-sensitivity-level value to set, or null to clear
    • getSystemInformation

      Get the "System Information".

      Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.

      Returns:
      the system-information value
    • setSystemInformation

      public void setSystemInformation(@NonNull SystemInformation value)
      Set the "System Information".

      Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.

      Parameters:
      value - the system-information value to set
    • getSecurityImpactLevel

      Get the "Security Impact Level".

      The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.

      Returns:
      the security-impact-level value, or null if not set
    • setSecurityImpactLevel

      public void setSecurityImpactLevel(@Nullable SecurityImpactLevel value)
      Set the "Security Impact Level".

      The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.

      Parameters:
      value - the security-impact-level value to set, or null to clear
    • getStatus

      @NonNull public Status getStatus()
      Get the "Status".

      Describes the operational status of the system.

      Returns:
      the status value
    • setStatus

      public void setStatus(@NonNull Status value)
      Set the "Status".

      Describes the operational status of the system.

      Parameters:
      value - the status value to set
    • getAuthorizationBoundary

      Get the "Authorization Boundary".

      A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.

      Returns:
      the authorization-boundary value
    • setAuthorizationBoundary

      public void setAuthorizationBoundary(@NonNull AuthorizationBoundary value)
      Set the "Authorization Boundary".

      A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.

      Parameters:
      value - the authorization-boundary value to set
    • getNetworkArchitecture

      Get the "Network Architecture".

      A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.

      Returns:
      the network-architecture value, or null if not set
    • setNetworkArchitecture

      public void setNetworkArchitecture(@Nullable NetworkArchitecture value)
      Set the "Network Architecture".

      A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.

      Parameters:
      value - the network-architecture value to set, or null to clear
    • getDataFlow

      @Nullable public DataFlow getDataFlow()
      Get the "Data Flow".

      A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.

      Returns:
      the data-flow value, or null if not set
    • setDataFlow

      public void setDataFlow(@Nullable DataFlow value)
      Set the "Data Flow".

      A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.

      Parameters:
      value - the data-flow value to set, or null to clear
    • getResponsibleParties

      Get the "Responsible Party".

      A reference to a set of persons and/or organizations that have responsibility for performing the referenced role in the context of the containing object.

      Returns:
      the responsible-party value
    • setResponsibleParties

      public void setResponsibleParties(@NonNull List<ResponsibleParty> value)
      Set the "Responsible Party".

      A reference to a set of persons and/or organizations that have responsibility for performing the referenced role in the context of the containing object.

      Parameters:
      value - the responsible-party value to set
    • addResponsibleParty

      public boolean addResponsibleParty(ResponsibleParty item)
      Add a new ResponsibleParty item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeResponsibleParty

      Remove the first matching ResponsibleParty 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