001// Generated from: ../../../../../../../../oscal/src/metaschema/oscal_catalog_metaschema.xml 002// Do not edit - changes will be lost when regenerated. 003package dev.metaschema.oscal.lib.model; 004 005import dev.metaschema.core.datatype.markup.MarkupLine; 006import dev.metaschema.core.datatype.markup.MarkupMultiline; 007import dev.metaschema.databind.IBindingContext; 008import dev.metaschema.databind.model.AbstractBoundModule; 009import dev.metaschema.databind.model.IBoundModule; 010import dev.metaschema.databind.model.annotations.MetaschemaModule; 011import java.net.URI; 012import java.util.List; 013 014/** 015 * OSCAL Control Catalog Model 016 * <p>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 <code>catalog</code>.</p> 017 */ 018@MetaschemaModule( 019 assemblies = { 020 Catalog.class, 021 CatalogGroup.class, 022 Control.class 023 }, 024 imports = { 025 OscalControlCommonModule.class, 026 OscalMetadataModule.class 027 }, 028 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`." 029) 030public final class OscalCatalogModule extends AbstractBoundModule { 031 private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Control Catalog Model"); 032 033 private static final String SHORT_NAME = "oscal-catalog"; 034 035 private static final String VERSION = "1.2.0"; 036 037 private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0"); 038 039 private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal"); 040 041 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`."); 042 043 /** 044 * Construct a new module instance. 045 * 046 * @param importedModules 047 * modules imported by this module 048 * @param bindingContext 049 * the binding context to associate with this module 050 */ 051 public OscalCatalogModule(List<? extends IBoundModule> importedModules, 052 IBindingContext bindingContext) { 053 super(importedModules, bindingContext); 054 } 055 056 @Override 057 public MarkupLine getName() { 058 return NAME; 059 } 060 061 @Override 062 public String getShortName() { 063 return SHORT_NAME; 064 } 065 066 @Override 067 public String getVersion() { 068 return VERSION; 069 } 070 071 @Override 072 public URI getXmlNamespace() { 073 return XML_NAMESPACE; 074 } 075 076 @Override 077 public URI getJsonBaseUri() { 078 return JSON_BASE_URI; 079 } 080 081 @Override 082 public MarkupMultiline getRemarks() { 083 return REMARKS; 084 } 085}