001package gov.nist.secauto.oscal.lib.model; 002 003import gov.nist.secauto.metaschema.core.datatype.markup.MarkupLine; 004import gov.nist.secauto.metaschema.core.datatype.markup.MarkupMultiline; 005import gov.nist.secauto.metaschema.databind.IBindingContext; 006import gov.nist.secauto.metaschema.databind.model.AbstractBoundModule; 007import gov.nist.secauto.metaschema.databind.model.IBoundModule; 008import gov.nist.secauto.metaschema.databind.model.annotations.MetaschemaModule; 009import java.lang.Override; 010import java.lang.String; 011import java.net.URI; 012import java.util.List; 013 014@MetaschemaModule( 015 assemblies = { 016 SystemSecurityPlan.class, 017 ImportProfile.class, 018 SystemCharacteristics.class, 019 SystemInformation.class, 020 Impact.class, 021 SecurityImpactLevel.class, 022 Status.class, 023 AuthorizationBoundary.class, 024 Diagram.class, 025 NetworkArchitecture.class, 026 DataFlow.class, 027 SystemImplementation.class, 028 ControlImplementation.class, 029 ImplementedRequirement.class, 030 Statement.class, 031 ByComponent.class 032 }, 033 imports = { 034 OscalMetadataModule.class, 035 OscalImplementationCommonModule.class 036 }, 037 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" 038 + "\n" 039 + "The root of the OSCAL System Security Plan (SSP) format is `system-security-plan`." 040) 041public final class OscalSspModule extends AbstractBoundModule { 042 private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL System Security Plan (SSP) Model"); 043 044 private static final String SHORT_NAME = "oscal-ssp"; 045 046 private static final String VERSION = "1.1.3"; 047 048 private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0"); 049 050 private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal"); 051 052 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" 053 + "\n" 054 + "The root of the OSCAL System Security Plan (SSP) format is `system-security-plan`."); 055 056 public OscalSspModule(List<? extends IBoundModule> importedModules, 057 IBindingContext bindingContext) { 058 super(importedModules, bindingContext); 059 } 060 061 @Override 062 public MarkupLine getName() { 063 return NAME; 064 } 065 066 @Override 067 public String getShortName() { 068 return SHORT_NAME; 069 } 070 071 @Override 072 public String getVersion() { 073 return VERSION; 074 } 075 076 @Override 077 public URI getXmlNamespace() { 078 return XML_NAMESPACE; 079 } 080 081 @Override 082 public URI getJsonBaseUri() { 083 return JSON_BASE_URI; 084 } 085 086 @Override 087 public MarkupMultiline getRemarks() { 088 return REMARKS; 089 } 090}