001package gov.nist.secauto.oscal.lib.model;
002
003import gov.nist.secauto.metaschema.binding.model.annotations.BoundField;
004import gov.nist.secauto.metaschema.binding.model.annotations.BoundFieldValue;
005import gov.nist.secauto.metaschema.binding.model.annotations.BoundFlag;
006import gov.nist.secauto.metaschema.binding.model.annotations.MetaschemaAssembly;
007import gov.nist.secauto.metaschema.model.common.datatype.adapter.UriReferenceAdapter;
008import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultiline;
009import gov.nist.secauto.metaschema.model.common.datatype.markup.MarkupMultilineAdapter;
010import java.lang.Override;
011import java.lang.String;
012import java.net.URI;
013import org.apache.commons.lang3.builder.MultilineRecursiveToStringStyle;
014import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
015
016/**
017 * Used by assessment-results to import information about the original plan for assessing the system.
018 */
019@MetaschemaAssembly(
020    formalName = "Import Assessment Plan",
021    description = "Used by assessment-results to import information about the original plan for assessing the system.",
022    name = "import-ap",
023    metaschema = OscalArMetaschema.class
024)
025public class ImportAp {
026  @BoundFlag(
027      formalName = "Assessment Plan Reference",
028      description = "A resolvable URL reference to the assessment plan governing the assessment activities.",
029      useName = "href",
030      required = true,
031      typeAdapter = UriReferenceAdapter.class,
032      remarks = "This value may be one of:\n"
033              + "\n"
034              + "1. an [absolute URI](https://pages.nist.gov/OSCAL/concepts/uri-use/#absolute-uri) that points to a network resolvable resource,\n"
035              + "2. a [relative reference](https://pages.nist.gov/OSCAL/concepts/uri-use/#relative-reference) pointing to a network resolvable resource whose base URI is the URI of the containing document, or\n"
036              + "3. a bare URI fragment (i.e., \\`#uuid\\`) pointing to a `back-matter` resource in this or an imported document (see [linking to another OSCAL object](https://pages.nist.gov/OSCAL/concepts/uri-use/#linking-to-another-oscal-object))."
037  )
038  private URI _href;
039
040  @BoundField(
041      formalName = "Remarks",
042      description = "Additional commentary about the containing object.",
043      useName = "remarks"
044  )
045  @BoundFieldValue(
046      typeAdapter = MarkupMultilineAdapter.class
047  )
048  private MarkupMultiline _remarks;
049
050  public ImportAp() {
051  }
052
053  public URI getHref() {
054    return _href;
055  }
056
057  public void setHref(URI value) {
058    _href = value;
059  }
060
061  public MarkupMultiline getRemarks() {
062    return _remarks;
063  }
064
065  public void setRemarks(MarkupMultiline value) {
066    _remarks = value;
067  }
068
069  @Override
070  public String toString() {
071    return new ReflectionToStringBuilder(this, MultilineRecursiveToStringStyle.MULTI_LINE_STYLE).toString();
072  }
073}