001// Generated from: ../../../../../../../../oscal/src/metaschema/oscal_ssp_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 System Security Plan (SSP) Model
016 * <p>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.</p>
017 * <p>The root of the OSCAL System Security Plan (SSP) format is <code>system-security-plan</code>.</p>
018 */
019@MetaschemaModule(
020    assemblies = {
021        SystemSecurityPlan.class,
022        ImportProfile.class,
023        SystemCharacteristics.class,
024        SystemInformation.class,
025        Impact.class,
026        SecurityImpactLevel.class,
027        Status.class,
028        AuthorizationBoundary.class,
029        Diagram.class,
030        NetworkArchitecture.class,
031        DataFlow.class,
032        SystemImplementation.class,
033        ControlImplementation.class,
034        ImplementedRequirement.class,
035        Statement.class,
036        ByComponent.class
037    },
038    imports = {
039        OscalMetadataModule.class,
040        OscalImplementationCommonModule.class
041    },
042    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"
043            + "\n"
044            + "The root of the OSCAL System Security Plan (SSP) format is `system-security-plan`."
045)
046public final class OscalSspModule extends AbstractBoundModule {
047  private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL System Security Plan (SSP) Model");
048
049  private static final String SHORT_NAME = "oscal-ssp";
050
051  private static final String VERSION = "1.2.0";
052
053  private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0");
054
055  private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal");
056
057  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"
058      + "\n"
059      + "The root of the OSCAL System Security Plan (SSP) format is `system-security-plan`.");
060
061  /**
062   * Construct a new module instance.
063   *
064   * @param importedModules
065   *           modules imported by this module
066   * @param bindingContext
067   *           the binding context to associate with this module
068   */
069  public OscalSspModule(List<? extends IBoundModule> importedModules,
070      IBindingContext bindingContext) {
071    super(importedModules, bindingContext);
072  }
073
074  @Override
075  public MarkupLine getName() {
076    return NAME;
077  }
078
079  @Override
080  public String getShortName() {
081    return SHORT_NAME;
082  }
083
084  @Override
085  public String getVersion() {
086    return VERSION;
087  }
088
089  @Override
090  public URI getXmlNamespace() {
091    return XML_NAMESPACE;
092  }
093
094  @Override
095  public URI getJsonBaseUri() {
096    return JSON_BASE_URI;
097  }
098
099  @Override
100  public MarkupMultiline getRemarks() {
101    return REMARKS;
102  }
103}