Class InventoryItem

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

@MetaschemaAssembly(formalName="Inventory Item", description="A single managed inventory item within the system.", name="inventory-item", moduleClass=OscalImplementationCommonModule.class, valueConstraints=@ValueConstraints(allowedValues={@AllowedValues(id="oscal-inventory-item-prop-name-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values={@AllowedValue(value="ipv4-address",description="The Internet Protocol v4 Address of the asset."),@AllowedValue(value="ipv6-address",description="The Internet Protocol v6 Address of the asset."),@AllowedValue(value="fqdn",description="The full-qualified domain name (FQDN) of the asset."),@AllowedValue(value="uri",description="A Uniform Resource Identifier (URI) for the asset."),@AllowedValue(value="serial-number",description="A serial number for the asset."),@AllowedValue(value="netbios-name",description="The NetBIOS name for the asset."),@AllowedValue(value="mac-address",description="The media access control (MAC) address for the asset."),@AllowedValue(value="physical-location",description="The physical location of the asset\'s hardware (e.g., Data Center ID, Cage#, Rack#, or other meaningful location identifiers)."),@AllowedValue(value="is-scanned",description="is the asset subjected to network scans? (yes/no)"),@AllowedValue(value="asset-type",description="Simple indication of the asset\'s function, such as Router, Storage Array, DNS Server."),@AllowedValue(value="asset-id",description="An organizationally specific identifier that is used to uniquely identify a logical or tangible item by the organization that owns the item."),@AllowedValue(value="asset-tag",description="An asset tag assigned by the organization responsible for maintaining the logical or tangible item."),@AllowedValue(value="public",description="Identifies whether the asset is publicly accessible (yes/no)"),@AllowedValue(value="virtual",description="Identifies whether the asset is virtualized (yes/no)"),@AllowedValue(value="vlan-id",description="Virtual LAN identifier of the asset."),@AllowedValue(value="network-id",description="The network identifier of the asset."),@AllowedValue(value="label",description="A human-readable label for the parent context."),@AllowedValue(value="sort-id",description="An alternative identifier, whose value is easily sortable among other such values in the document."),@AllowedValue(value="baseline-configuration-name",description="The name of the baseline configuration for the asset."),@AllowedValue(value="allows-authenticated-scan",description="Can the asset be check with an authenticated scan? (yes/no)"),@AllowedValue(value="function",description="The function provided by the asset for the system."),@AllowedValue(value="hardware-model",description="\\*\\*(deprecated)\\*\\* Use \'model\' instead.",deprecatedVersion="1.2.0"),@AllowedValue(value="model",description="The model of system used by the asset."),@AllowedValue(value="os-name",description="The name of the operating system used by the asset."),@AllowedValue(value="os-version",description="The version of the operating system used by the asset."),@AllowedValue(value="software-name",description="The software product name used by the asset."),@AllowedValue(value="software-version",description="The software product version used by the asset."),@AllowedValue(value="software-patch-level",description="The software product patch level used by the asset.")}),@AllowedValues(id="oscal-inventory-item-prop-asset-type-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'asset-type\']/@value",allowOthers=true,values={@AllowedValue(value="operating-system",description="System software that manages computer hardware, software resources, and provides common services for computer programs."),@AllowedValue(value="database",description="An electronic collection of data, or information, that is specially organized for rapid search and retrieval."),@AllowedValue(value="web-server",description="A system that delivers content or services to end users over the Internet or an intranet."),@AllowedValue(value="dns-server",description="A system that resolves domain names to internet protocol (IP) addresses."),@AllowedValue(value="email-server",description="A computer system that sends and receives electronic mail messages."),@AllowedValue(value="directory-server",description="A system that stores, organizes and provides access to directory information in order to unify network resources."),@AllowedValue(value="pbx",description="A private branch exchange (PBX) provides a a private telephone switchboard."),@AllowedValue(value="firewall",description="A network security system that monitors and controls incoming and outgoing network traffic based on predetermined security rules."),@AllowedValue(value="router",description="A physical or virtual networking device that forwards data packets between computer networks."),@AllowedValue(value="switch",description="A physical or virtual networking device that connects devices within a computer network by using packet switching to receive and forward data to the destination device."),@AllowedValue(value="storage-array",description="A consolidated, block-level data storage capability."),@AllowedValue(value="appliance",description="A physical or virtual machine that centralizes hardware, software, or services for a specific purpose.")}),@AllowedValues(id="oscal-inventory-item-hardware-service-software-prop-name-values",level=ERROR,target="(.)[@type=(\'software\', \'hardware\', \'service\')]/prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\')]/@name",values=@AllowedValue(value="vendor-name",description="The name of the company or organization")),@AllowedValues(id="oscal-inventory-item-prop-is-scanned-values",level=ERROR,target="prop[has-oscal-namespace(\'http://csrc.nist.gov/ns/oscal\') and @name=\'is-scanned\']/@value",values={@AllowedValue(value="yes",description="The asset is included in periodic vulnerability scanning."),@AllowedValue(value="no",description="The asset is not included in periodic vulnerability scanning.")}),@AllowedValues(id="oscal-inventory-item-link-rel-values",level=ERROR,target="link/@rel",allowOthers=true,values=@AllowedValue(value="baseline-template",description="A reference to the baseline template used to configure the asset.")),@AllowedValues(id="oscal-inventory-item-responsible-party-role-id-values",level=ERROR,target="responsible-party/@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."),@AllowedValue(value="maintainer",description="Responsible for the creation and maintenance of a component."),@AllowedValue(value="provider",description="Organization responsible for providing the component, if this is different from the \"maintainer\" (e.g., a reseller).")})},indexHasKey={@IndexHasKey(id="oscal-index-inventory-item-responsible-party-role-id",level=ERROR,target="responsible-party",indexName="index-metadata-role-id",keyFields=@KeyField(target="@role-id")),@IndexHasKey(id="oscal-index-inventory-item-responsible-party-party-uuid",level=ERROR,target="responsible-party",indexName="index-metadata-party-uuid",keyFields=@KeyField(target="party-uuid"))}), modelConstraints=@AssemblyConstraints(unique=@IsUnique(id="oscal-unique-inventory-item-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 InventoryItem extends Object implements dev.metaschema.core.model.IBoundObject
A single managed inventory item within the system.
  • Constructor Details

    • InventoryItem

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

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

      A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this inventory item elsewhere in this or other OSCAL instances. The locally defined UUID of the inventory item 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 "Inventory Item Universally Unique Identifier".

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

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

      A summary of the inventory item stating its purpose within the system.

      Returns:
      the description value
    • setDescription

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

      A summary of the inventory item stating its purpose within 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
    • 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
    • getImplementedComponents

      Get the "Implemented Component".

      The set of components that are implemented in a given system inventory item.

      Returns:
      the implemented-component value
    • setImplementedComponents

      Set the "Implemented Component".

      The set of components that are implemented in a given system inventory item.

      Parameters:
      value - the implemented-component value to set
    • addImplementedComponent

      Add a new InventoryItem.ImplementedComponent item to the underlying collection.
      Parameters:
      item - the item to add
      Returns:
      true
    • removeImplementedComponent

      Remove the first matching InventoryItem.ImplementedComponent 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