001package gov.nist.secauto.oscal.lib.model;
002
003import gov.nist.secauto.metaschema.binding.IBindingContext;
004import gov.nist.secauto.metaschema.binding.model.AbstractBoundMetaschema;
005import gov.nist.secauto.metaschema.binding.model.annotations.Metaschema;
006import gov.nist.secauto.metaschema.model.common.IMetaschema;
007import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupLine;
008import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultiline;
009import java.lang.Override;
010import java.lang.String;
011import java.net.URI;
012import java.util.List;
013
014@Metaschema(
015    assemblies = {
016        PlanOfActionAndMilestones.class,
017        LocalDefinitions.class,
018        PoamItem.class
019    },
020    imports = {
021        OscalMetadataMetaschema.class,
022        OscalImplementationCommonMetaschema.class,
023        OscalAssessmentCommonMetaschema.class
024    },
025    remarks = "The OSCAL Plan of Action and Milestones (POA\\&M) format is used to describe the information typically provided by an assessor during the preparation for an assessment.\n"
026            + "\n"
027            + "The root of the OSCAL Plan of Action and Milestones (POA\\&M) format is `plan-action-milestones`."
028)
029public final class OscalPoamMetaschema extends AbstractBoundMetaschema {
030  private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Plan of Action and Milestones (POA\\&M) Model");
031
032  private static final String SHORT_NAME = "oscal-poam";
033
034  private static final String VERSION = "1.1.2";
035
036  private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0");
037
038  private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal");
039
040  private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("The OSCAL Plan of Action and Milestones (POA\\&M) format is used to describe the information typically provided by an assessor during the preparation for an assessment.\n"
041      + "\n"
042      + "The root of the OSCAL Plan of Action and Milestones (POA\\&M) format is `plan-action-milestones`.");
043
044  public OscalPoamMetaschema(List<? extends IMetaschema> importedMetaschema,
045      IBindingContext bindingContext) {
046    super(importedMetaschema, bindingContext);
047  }
048
049  @Override
050  public MarkupLine getName() {
051    return NAME;
052  }
053
054  @Override
055  public String getShortName() {
056    return SHORT_NAME;
057  }
058
059  @Override
060  public String getVersion() {
061    return VERSION;
062  }
063
064  @Override
065  public URI getXmlNamespace() {
066    return XML_NAMESPACE;
067  }
068
069  @Override
070  public URI getJsonBaseUri() {
071    return JSON_BASE_URI;
072  }
073
074  @Override
075  public MarkupMultiline getRemarks() {
076    return REMARKS;
077  }
078}