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    fields = ThreatId.class,
016    assemblies = {
017        ImportSsp.class,
018        LocalObjective.class,
019        AssessmentMethod.class,
020        Activity.class,
021        Task.class,
022        ReviewedControls.class,
023        SelectControlById.class,
024        SelectObjectiveById.class,
025        AssessmentSubjectPlaceholder.class,
026        AssessmentSubject.class,
027        SelectSubjectById.class,
028        SubjectReference.class,
029        AssessmentAssets.class,
030        FindingTarget.class,
031        Finding.class,
032        Observation.class,
033        Origin.class,
034        OriginActor.class,
035        RelatedTask.class,
036        Risk.class,
037        LoggedBy.class,
038        Characterization.class,
039        Response.class,
040        AssessmentPart.class
041    },
042    imports = {
043        OscalControlCommonMetaschema.class,
044        OscalImplementationCommonMetaschema.class
045    },
046    remarks = "This contains all modules common to the assessment plan, assessment results, and POAM models.\n"
047            + "\n"
048            + "The root of the OSCAL Assessment Plan format is `assessment-plan`.\n"
049            + "\n"
050            + "The root of the OSCAL Assessment Results format is `assessment-results`.\n"
051            + "\n"
052            + "The root of the OSCAL Plan of Action and Milestones (POA\\&M) format is `plan-of-action-and-milestones`."
053)
054public final class OscalAssessmentCommonMetaschema extends AbstractBoundMetaschema {
055  private static final MarkupLine NAME = MarkupLine.fromMarkdown("OSCAL Assessment Layer Format -- Common Modules");
056
057  private static final String SHORT_NAME = "oscal-assessment-common";
058
059  private static final String VERSION = "1.1.2";
060
061  private static final URI XML_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal/1.0");
062
063  private static final URI JSON_BASE_URI = URI.create("http://csrc.nist.gov/ns/oscal");
064
065  private static final MarkupMultiline REMARKS = MarkupMultiline.fromMarkdown("This contains all modules common to the assessment plan, assessment results, and POAM models.\n"
066      + "\n"
067      + "The root of the OSCAL Assessment Plan format is `assessment-plan`.\n"
068      + "\n"
069      + "The root of the OSCAL Assessment Results format is `assessment-results`.\n"
070      + "\n"
071      + "The root of the OSCAL Plan of Action and Milestones (POA\\&M) format is `plan-of-action-and-milestones`.");
072
073  public OscalAssessmentCommonMetaschema(List<? extends IMetaschema> importedMetaschema,
074      IBindingContext bindingContext) {
075    super(importedMetaschema, bindingContext);
076  }
077
078  @Override
079  public MarkupLine getName() {
080    return NAME;
081  }
082
083  @Override
084  public String getShortName() {
085    return SHORT_NAME;
086  }
087
088  @Override
089  public String getVersion() {
090    return VERSION;
091  }
092
093  @Override
094  public URI getXmlNamespace() {
095    return XML_NAMESPACE;
096  }
097
098  @Override
099  public URI getJsonBaseUri() {
100    return JSON_BASE_URI;
101  }
102
103  @Override
104  public MarkupMultiline getRemarks() {
105    return REMARKS;
106  }
107}