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"),@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 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 TypeMethodDescriptionbooleanaddFinding(Finding item) Add a newFindingitem to the underlying collection.booleanaddObservation(Observation item) Add a newObservationitem to the underlying collection.booleanaddPoamItem(PoamItem item) Add a newPoamItemitem to the underlying collection.booleanAdd a newRiskitem to the underlying collection.gov.nist.secauto.metaschema.core.model.IMetaschemaDatagetRisks()getUuid()booleanremoveFinding(Finding item) Remove the first matchingFindingitem from the underlying collection.booleanremoveObservation(Observation item) Remove the first matchingObservationitem from the underlying collection.booleanremovePoamItem(PoamItem item) Remove the first matchingPoamItemitem from the underlying collection.booleanremoveRisk(Risk item) Remove the first matchingRiskitem from the underlying collection.voidsetBackMatter(BackMatter value) voidsetFindings(List<Finding> value) voidsetImportSsp(ImportSsp value) voidvoidsetMetadata(Metadata value) voidsetObservations(List<Observation> value) voidsetPoamItems(List<PoamItem> value) voidvoidsetSystemId(SystemId value) voidtoString()Methods inherited from class gov.nist.secauto.oscal.lib.model.AbstractOscalInstance
getResourceByUuid
-
Constructor Details
-
PlanOfActionAndMilestones
public PlanOfActionAndMilestones() -
PlanOfActionAndMilestones
-
-
Method Details
-
getMetaschemaData
- Specified by:
getMetaschemaDatain interfacegov.nist.secauto.metaschema.core.model.IBoundObject
-
getUuid
- Specified by:
getUuidin interfaceIOscalInstance
-
setUuid
-
getMetadata
- Specified by:
getMetadatain interfaceIOscalInstance
-
setMetadata
-
getImportSsp
-
setImportSsp
-
getSystemId
-
setSystemId
-
getLocalDefinitions
-
setLocalDefinitions
-
getObservations
-
setObservations
-
addObservation
Add a newObservationitem to the underlying collection.- Parameters:
item- the item to add- Returns:
true
-
removeObservation
Remove the first matchingObservationitem from the underlying collection.- Parameters:
item- the item to remove- Returns:
trueif the item was removed orfalseotherwise
-
getRisks
-
setRisks
-
addRisk
Add a newRiskitem to the underlying collection.- Parameters:
item- the item to add- Returns:
true
-
removeRisk
Remove the first matchingRiskitem from the underlying collection.- Parameters:
item- the item to remove- Returns:
trueif the item was removed orfalseotherwise
-
getFindings
-
setFindings
-
addFinding
Add a newFindingitem to the underlying collection.- Parameters:
item- the item to add- Returns:
true
-
removeFinding
Remove the first matchingFindingitem from the underlying collection.- Parameters:
item- the item to remove- Returns:
trueif the item was removed orfalseotherwise
-
getPoamItems
-
setPoamItems
-
addPoamItem
Add a newPoamItemitem to the underlying collection.- Parameters:
item- the item to add- Returns:
true
-
removePoamItem
Remove the first matchingPoamItemitem from the underlying collection.- Parameters:
item- the item to remove- Returns:
trueif the item was removed orfalseotherwise
-
getBackMatter
- Specified by:
getBackMatterin interfaceIOscalInstance
-
setBackMatter
-
toString
-