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.adapter.StringAdapter;
006import dev.metaschema.core.model.IBoundObject;
007import dev.metaschema.core.model.IMetaschemaData;
008import dev.metaschema.core.util.ObjectUtils;
009import dev.metaschema.databind.model.annotations.BoundField;
010import dev.metaschema.databind.model.annotations.MetaschemaAssembly;
011import edu.umd.cs.findbugs.annotations.NonNull;
012import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
013import org.apache.commons.lang3.builder.ToStringStyle;
014
015/**
016 * The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.
017 */
018@MetaschemaAssembly(
019    formalName = "Security Impact Level",
020    description = "The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.",
021    name = "security-impact-level",
022    moduleClass = OscalSspModule.class
023)
024public class SecurityImpactLevel implements IBoundObject {
025  private final IMetaschemaData __metaschemaData;
026
027  /**
028   * A target-level of confidentiality for the system, based on the sensitivity of information within the system.
029   */
030  @BoundField(
031      formalName = "Security Objective: Confidentiality",
032      description = "A target-level of confidentiality for the system, based on the sensitivity of information within the system.",
033      useName = "security-objective-confidentiality",
034      minOccurs = 1,
035      typeAdapter = StringAdapter.class
036  )
037  private String _securityObjectiveConfidentiality;
038
039  /**
040   * A target-level of integrity for the system, based on the sensitivity of information within the system.
041   */
042  @BoundField(
043      formalName = "Security Objective: Integrity",
044      description = "A target-level of integrity for the system, based on the sensitivity of information within the system.",
045      useName = "security-objective-integrity",
046      minOccurs = 1,
047      typeAdapter = StringAdapter.class
048  )
049  private String _securityObjectiveIntegrity;
050
051  /**
052   * A target-level of availability for the system, based on the sensitivity of information within the system.
053   */
054  @BoundField(
055      formalName = "Security Objective: Availability",
056      description = "A target-level of availability for the system, based on the sensitivity of information within the system.",
057      useName = "security-objective-availability",
058      minOccurs = 1,
059      typeAdapter = StringAdapter.class
060  )
061  private String _securityObjectiveAvailability;
062
063  /**
064   * Constructs a new {@code dev.metaschema.oscal.lib.model.SecurityImpactLevel} instance with no metadata.
065   */
066  public SecurityImpactLevel() {
067    this(null);
068  }
069
070  /**
071   * Constructs a new {@code dev.metaschema.oscal.lib.model.SecurityImpactLevel} instance with the specified metadata.
072   *
073   * @param data
074   *           the metaschema data, or {@code null} if none
075   */
076  public SecurityImpactLevel(IMetaschemaData data) {
077    this.__metaschemaData = data;
078  }
079
080  @Override
081  public IMetaschemaData getMetaschemaData() {
082    return __metaschemaData;
083  }
084
085  /**
086   * Get the "{@literal Security Objective: Confidentiality}".
087   *
088   * <p>
089   * A target-level of confidentiality for the system, based on the sensitivity of information within the system.
090   *
091   * @return the security-objective-confidentiality value
092   */
093  @NonNull
094  public String getSecurityObjectiveConfidentiality() {
095    return _securityObjectiveConfidentiality;
096  }
097
098  /**
099   * Set the "{@literal Security Objective: Confidentiality}".
100   *
101   * <p>
102   * A target-level of confidentiality for the system, based on the sensitivity of information within the system.
103   *
104   * @param value
105   *           the security-objective-confidentiality value to set
106   */
107  public void setSecurityObjectiveConfidentiality(@NonNull String value) {
108    _securityObjectiveConfidentiality = value;
109  }
110
111  /**
112   * Get the "{@literal Security Objective: Integrity}".
113   *
114   * <p>
115   * A target-level of integrity for the system, based on the sensitivity of information within the system.
116   *
117   * @return the security-objective-integrity value
118   */
119  @NonNull
120  public String getSecurityObjectiveIntegrity() {
121    return _securityObjectiveIntegrity;
122  }
123
124  /**
125   * Set the "{@literal Security Objective: Integrity}".
126   *
127   * <p>
128   * A target-level of integrity for the system, based on the sensitivity of information within the system.
129   *
130   * @param value
131   *           the security-objective-integrity value to set
132   */
133  public void setSecurityObjectiveIntegrity(@NonNull String value) {
134    _securityObjectiveIntegrity = value;
135  }
136
137  /**
138   * Get the "{@literal Security Objective: Availability}".
139   *
140   * <p>
141   * A target-level of availability for the system, based on the sensitivity of information within the system.
142   *
143   * @return the security-objective-availability value
144   */
145  @NonNull
146  public String getSecurityObjectiveAvailability() {
147    return _securityObjectiveAvailability;
148  }
149
150  /**
151   * Set the "{@literal Security Objective: Availability}".
152   *
153   * <p>
154   * A target-level of availability for the system, based on the sensitivity of information within the system.
155   *
156   * @param value
157   *           the security-objective-availability value to set
158   */
159  public void setSecurityObjectiveAvailability(@NonNull String value) {
160    _securityObjectiveAvailability = value;
161  }
162
163  @Override
164  public String toString() {
165    return ObjectUtils.notNull(new ReflectionToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).toString());
166  }
167}