Package gov.nist.secauto.oscal.lib.model
Class AssessmentPlan
java.lang.Object
gov.nist.secauto.oscal.lib.model.AbstractOscalInstance
gov.nist.secauto.oscal.lib.model.AssessmentPlan
- All Implemented Interfaces:
gov.nist.secauto.metaschema.core.model.IBoundObject,IOscalInstance
@MetaschemaAssembly(formalName="Security Assessment Plan (SAP)",
description="An assessment plan, such as those provided by a FedRAMP assessor.",
name="assessment-plan",
moduleClass=OscalApModule.class,
rootName="assessment-plan",
valueConstraints=@ValueConstraints(lets=@Let(name="all-imports",target="recurse-depth(\'.[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-ap-index-metadata-scoped-role-id",formalName="In-Scope Role Identifiers",description="An index of role identifiers that are in-scope for the assessment-plan 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-ap-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-ap-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-ap-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-ap-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 AssessmentPlan
extends AbstractOscalInstance
implements gov.nist.secauto.metaschema.core.model.IBoundObject
An assessment plan, such as those provided by a FedRAMP assessor.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classUsed to define data objects that are used in the assessment plan, that do not appear in the referenced SSP.static classUsed to define various terms and conditions under which an assessment, described by the plan, can be performed. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanAdd a newAssessmentSubjectitem to the underlying collection.booleanAdd a newTaskitem to the underlying collection.gov.nist.secauto.metaschema.core.model.IMetaschemaDatagetTasks()getUuid()booleanRemove the first matchingAssessmentSubjectitem from the underlying collection.booleanremoveTask(Task item) Remove the first matchingTaskitem from the underlying collection.voidvoidvoidsetBackMatter(BackMatter value) voidsetImportSsp(ImportSsp value) voidvoidsetMetadata(Metadata value) voidvoidvoidvoidtoString()Methods inherited from class gov.nist.secauto.oscal.lib.model.AbstractOscalInstance
getResourceByUuid
-
Constructor Details
-
AssessmentPlan
public AssessmentPlan() -
AssessmentPlan
-
-
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
-
getLocalDefinitions
-
setLocalDefinitions
-
getTermsAndConditions
-
setTermsAndConditions
-
getReviewedControls
-
setReviewedControls
-
getAssessmentSubjects
-
setAssessmentSubjects
-
addAssessmentSubject
Add a newAssessmentSubjectitem to the underlying collection.- Parameters:
item- the item to add- Returns:
true
-
removeAssessmentSubject
Remove the first matchingAssessmentSubjectitem from the underlying collection.- Parameters:
item- the item to remove- Returns:
trueif the item was removed orfalseotherwise
-
getAssessmentAssets
-
setAssessmentAssets
-
getTasks
-
setTasks
-
addTask
Add a newTaskitem to the underlying collection.- Parameters:
item- the item to add- Returns:
true
-
removeTask
Remove the first matchingTaskitem from the underlying collection.- Parameters:
item- the item to remove- Returns:
trueif the item was removed orfalseotherwise
-
getBackMatter
- Specified by:
getBackMatterin interfaceIOscalInstance
-
setBackMatter
-
toString
-