Package gov.nist.secauto.oscal.lib.model
Class PlanOfActionAndMilestones
java.lang.Object
gov.nist.secauto.oscal.lib.model.AbstractOscalInstance
gov.nist.secauto.oscal.lib.model.PlanOfActionAndMilestones
- All Implemented Interfaces:
gov.nist.secauto.metaschema.core.model.IBoundObject
,IOscalInstance
@MetaschemaAssembly(formalName="Plan of Action and Milestones (POA&M)",
description="A plan of action and milestones which identifies initial and residual risks, deviations, and disposition, such as those required by FedRAMP.",
name="plan-of-action-and-milestones",
moduleClass=OscalPoamModule.class,
rootName="plan-of-action-and-milestones",
remarks="Either an OSCAL-based SSP must be imported, or a unique system-id must be specified. Both may be present.",
valueConstraints=@ValueConstraints(lets=@Let(name="all-imports",target="recurse-depth(\'.[import-ap]/doc(resolve-uri(Q{http://csrc.nist.gov/ns/oscal/1.0}resolve-reference(import-ap/@href)))/assessment-plan|.[import-ssp]/doc(resolve-uri(Q{http://csrc.nist.gov/ns/oscal/1.0}resolve-reference(import-ssp/@href)))/system-security-plan|.[import-profile]/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-poam-index-metadata-scoped-role-id",formalName="In-Scope Role Identifiers",description="An index of role identifiers that are in-scope for the plan-of-action-and-milestones model. Roles are collected from imported system-securtity-plans, which in turn includes referenced 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-poam-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-poam-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-poam-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-poam-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")}),@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 PlanOfActionAndMilestones
extends AbstractOscalInstance
implements gov.nist.secauto.metaschema.core.model.IBoundObject
A plan of action and milestones which identifies initial and residual risks, deviations, and disposition, such as those required by FedRAMP.
-
Constructor Summary
ConstructorsConstructorDescriptionPlanOfActionAndMilestones
(gov.nist.secauto.metaschema.core.model.IMetaschemaData data) -
Method Summary
Modifier and TypeMethodDescriptionboolean
addFinding
(Finding item) Add a newFinding
item to the underlying collection.boolean
addObservation
(Observation item) Add a newObservation
item to the underlying collection.boolean
addPoamItem
(PoamItem item) Add a newPoamItem
item to the underlying collection.boolean
Add a newRisk
item to the underlying collection.gov.nist.secauto.metaschema.core.model.IMetaschemaData
getRisks()
getUuid()
boolean
removeFinding
(Finding item) Remove the first matchingFinding
item from the underlying collection.boolean
removeObservation
(Observation item) Remove the first matchingObservation
item from the underlying collection.boolean
removePoamItem
(PoamItem item) Remove the first matchingPoamItem
item from the underlying collection.boolean
removeRisk
(Risk item) Remove the first matchingRisk
item from the underlying collection.void
setBackMatter
(BackMatter value) void
setFindings
(List<Finding> value) void
setImportSsp
(ImportSsp value) void
void
setMetadata
(Metadata value) void
setObservations
(List<Observation> value) void
setPoamItems
(List<PoamItem> value) void
void
setSystemId
(SystemId value) void
toString()
Methods inherited from class gov.nist.secauto.oscal.lib.model.AbstractOscalInstance
getResourceByUuid
-
Constructor Details
-
PlanOfActionAndMilestones
public PlanOfActionAndMilestones() -
PlanOfActionAndMilestones
-
-
Method Details
-
getMetaschemaData
- Specified by:
getMetaschemaData
in interfacegov.nist.secauto.metaschema.core.model.IBoundObject
-
getUuid
- Specified by:
getUuid
in interfaceIOscalInstance
-
setUuid
-
getMetadata
- Specified by:
getMetadata
in interfaceIOscalInstance
-
setMetadata
-
getImportSsp
-
setImportSsp
-
getSystemId
-
setSystemId
-
getLocalDefinitions
-
setLocalDefinitions
-
getObservations
-
setObservations
-
addObservation
Add a newObservation
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removeObservation
Remove the first matchingObservation
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getRisks
-
setRisks
-
addRisk
Add a newRisk
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removeRisk
Remove the first matchingRisk
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getFindings
-
setFindings
-
addFinding
Add a newFinding
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removeFinding
Remove the first matchingFinding
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getPoamItems
-
setPoamItems
-
addPoamItem
Add a newPoamItem
item to the underlying collection.- Parameters:
item
- the item to add- Returns:
true
-
removePoamItem
Remove the first matchingPoamItem
item from the underlying collection.- Parameters:
item
- the item to remove- Returns:
true
if the item was removed orfalse
otherwise
-
getBackMatter
- Specified by:
getBackMatter
in interfaceIOscalInstance
-
setBackMatter
-
toString
-