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 }