View Javadoc
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  }