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 = MappingCollection.class,
016    imports = {
017        OscalMetadataModule.class,
018        OscalMappingCommonModule.class
019    },
020    remarks = "The OSCAL Control mapping format can be used to describe how a collection of security controls and related control enhancements relate to another collection of controls. The root of the Control Catalog format is `mapping-collection`."
021)
022public final class OscalMappingModule extends AbstractBoundModule {
023  private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Control Mapping Model");
024
025  private static final String SHORT_NAME = "oscal-mapping";
026
027  private static final String VERSION = "1.2.0";
028
029  private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0");
030
031  private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal");
032
033  private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("The OSCAL Control mapping format can be used to describe how a collection of security controls and related control enhancements relate to another collection of controls. The root of the Control Catalog format is `mapping-collection`.");
034
035  public OscalMappingModule(List<? extends IBoundModule> importedModules,
036      IBindingContext bindingContext) {
037    super(importedModules, bindingContext);
038  }
039
040  @Override
041  public MarkupLine getName() {
042    return NAME;
043  }
044
045  @Override
046  public String getShortName() {
047    return SHORT_NAME;
048  }
049
050  @Override
051  public String getVersion() {
052    return VERSION;
053  }
054
055  @Override
056  public URI getXmlNamespace() {
057    return XML_NAMESPACE;
058  }
059
060  @Override
061  public URI getJsonBaseUri() {
062    return JSON_BASE_URI;
063  }
064
065  @Override
066  public MarkupMultiline getRemarks() {
067    return REMARKS;
068  }
069}