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 Catalog.class,
17 CatalogGroup.class,
18 Control.class
19 },
20 imports = {
21 OscalControlCommonMetaschema.class,
22 OscalMetadataMetaschema.class
23 },
24 remarks = "The OSCAL Control Catalog format can be used to describe a collection of security controls and related control enhancements, along with contextualizing documentation and metadata. The root of the Control Catalog format is `catalog`."
25 )
26 public final class OscalCatalogMetaschema extends AbstractBoundMetaschema {
27 private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Control Catalog Model");
28
29 private static final String SHORT_NAME = "oscal-catalog";
30
31 private static final String VERSION = "1.1.2";
32
33 private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0");
34
35 private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal");
36
37 private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("The OSCAL Control Catalog format can be used to describe a collection of security controls and related control enhancements, along with contextualizing documentation and metadata. The root of the Control Catalog format is `catalog`.");
38
39 public OscalCatalogMetaschema(List<? extends IMetaschema> importedMetaschema,
40 IBindingContext bindingContext) {
41 super(importedMetaschema, bindingContext);
42 }
43
44 @Override
45 public MarkupLine getName() {
46 return NAME;
47 }
48
49 @Override
50 public String getShortName() {
51 return SHORT_NAME;
52 }
53
54 @Override
55 public String getVersion() {
56 return VERSION;
57 }
58
59 @Override
60 public URI getXmlNamespace() {
61 return XML_NAMESPACE;
62 }
63
64 @Override
65 public URI getJsonBaseUri() {
66 return JSON_BASE_URI;
67 }
68
69 @Override
70 public MarkupMultiline getRemarks() {
71 return REMARKS;
72 }
73 }