1 package gov.nist.secauto.oscal.lib.model; 2 3 import gov.nist.secauto.metaschema.binding.IBindingContext; 4 import gov.nist.secauto.metaschema.binding.model.AbstractBoundMetaschema; 5 import gov.nist.secauto.metaschema.binding.model.annotations.Metaschema; 6 import gov.nist.secauto.metaschema.model.common.IMetaschema; 7 import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupLine; 8 import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultiline; 9 import java.lang.Override; 10 import java.lang.String; 11 import java.net.URI; 12 import java.util.List; 13 14 @Metaschema( 15 assemblies = { 16 SystemSecurityPlan.class, 17 ImportProfile.class, 18 SystemCharacteristics.class, 19 SystemInformation.class, 20 Impact.class, 21 SecurityImpactLevel.class, 22 Status.class, 23 AuthorizationBoundary.class, 24 Diagram.class, 25 NetworkArchitecture.class, 26 DataFlow.class, 27 SystemImplementation.class, 28 ControlImplementation.class, 29 ImplementedRequirement.class, 30 Statement.class, 31 ByComponent.class 32 }, 33 imports = { 34 OscalMetadataMetaschema.class, 35 OscalImplementationCommonMetaschema.class 36 }, 37 remarks = "The OSCAL Control SSP format can be used to describe the information typically specified in a system security plan, such as those defined in NIST SP 800-18.\n" 38 + "\n" 39 + "The root of the OSCAL System Security Plan (SSP) format is `system-security-plan`." 40 ) 41 public final class OscalSspMetaschema extends AbstractBoundMetaschema { 42 private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL System Security Plan (SSP) Model"); 43 44 private static final String SHORT_NAME = "oscal-ssp"; 45 46 private static final String VERSION = "1.1.2"; 47 48 private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0"); 49 50 private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal"); 51 52 private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("The OSCAL Control SSP format can be used to describe the information typically specified in a system security plan, such as those defined in NIST SP 800-18.\n" 53 + "\n" 54 + "The root of the OSCAL System Security Plan (SSP) format is `system-security-plan`."); 55 56 public OscalSspMetaschema(List<? extends IMetaschema> importedMetaschema, 57 IBindingContext bindingContext) { 58 super(importedMetaschema, bindingContext); 59 } 60 61 @Override 62 public MarkupLine getName() { 63 return NAME; 64 } 65 66 @Override 67 public String getShortName() { 68 return SHORT_NAME; 69 } 70 71 @Override 72 public String getVersion() { 73 return VERSION; 74 } 75 76 @Override 77 public URI getXmlNamespace() { 78 return XML_NAMESPACE; 79 } 80 81 @Override 82 public URI getJsonBaseUri() { 83 return JSON_BASE_URI; 84 } 85 86 @Override 87 public MarkupMultiline getRemarks() { 88 return REMARKS; 89 } 90 }