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 the assessment plan and POA&M to import information about the system. 018 */ 019@MetaschemaAssembly( 020 formalName = "Import System Security Plan", 021 description = "Used by the assessment plan and POA\\&M to import information about the system.", 022 name = "import-ssp", 023 metaschema = OscalAssessmentCommonMetaschema.class 024) 025public class ImportSsp { 026 @BoundFlag( 027 formalName = "System Security Plan Reference", 028 description = "A resolvable URL reference to the system security plan for the system being assessed.", 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 ImportSsp() { 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}