class EmassClient::Systems

Attributes

acronym[RW]
Read-only

Acronym of the system record.

applied_overlays[RW]
Read-only

Overlays applied to the system record.

authorization_date[RW]
Read-only

Authorization Date of the system record.

authorization_length[RW]
Read-only

Length of system’s Authorization. Calculated based off of Authorization Date & Authorization Termination Date.

authorization_status[RW]
Read-only

Authorization Status of the system record.

authorization_termination_date[RW]
Read-only

Authorization Termination Date of the system record.

availability[RW]
Read-only

Availability of the system record. RMF values include the following options (High, Moderate, Low)

coams_id[RW]
Read-only

Corresponding Cyber Operational Attributes Management System (COAMS) identifier for the system record.

confidentiality[RW]
Read-only

Confidentiality of the system record. RMF values include the following options (High, Moderate, Low)

connectivity_ccsd[RW]
contingency_plan_test_date[RW]
Read-only

Date the system record’s Contingency Plan was tested.

contingency_plan_tested[RW]
Read-only

Has the system record’s Contingency Plan been tested?

cross_domain_ticket[RW]
Read-only

Cross Domain Tickets of the system record.

current_rmf_lifecycle_step[RW]
Read-only

Displays the system’s current step within the RMF Lifecycle.

description[RW]
Read-only

Description of the system record.

ditpr_don_id[RW]
Read-Only

DITPR-DON identifier of the system record.

ditpr_id[RW]
Read-only

DITPR ID of the system record.

dod_confidentiality[RW]
Read-Only

DoD Confidentiality level of the system record.

geographical_association[RW]
Read-only

Geographical Association of the system record (VA only).

governing_mission_area[RW]
Read-only

Governing Mission Area of the system record.

has_cui[RW]
Read-only

Does the system record contain and/or process Controlled Unclassified information?

has_open_poam_item[RW]
Read-Only

Does the system record have an Ongoing or Risk Accepted POA&M Item?

has_open_poam_item120_plus_past_scheudled_completion_date[RW]
Read-Only

Does the system record have an Ongoing or Risk Accepted POA&M Item 120 days past its Scheduled Completion Date?

has_open_poam_item90to120_past_scheduled_completion_date[RW]
Read-Only

Does the system record have an Ongoing or Risk Accepted POA&M Item 90 to 120 days past its Scheduled Completion Date?

has_phi[RW]
Read-only

Does the system record contain and/or process Personal Health Information?

has_pii[RW]
Read-only

Does the system record contain and/or process Personally Identifiable Information?

impact[RW]
Optional

Values include the following options (Very Low, Low, Moderate,High,Very High)

integrity[RW]
Read-only

Integrity of the system record. RMF values include the following options (High, Moderate, Low)

interconnected_information_system_and_identifiers[RW]
Read-only

Identify the interconnected information systems and corresponding identifiers within control CA-3.

is_nss[RW]
Read-only

Is the system record a National Security System?

is_pia_required[RW]
Read-only

Does the system require a Privacy Impact Assessment?

is_public_facing[RW]
Read-only

Does the system record have a public facing component/presence.

is_type_authorization[RW]
Read-only

Identifies if system is a Type Authorization.

mac[RW]
Read-Only

MAC level of the system record.

mission_criticality[RW]
Read-only

Mission Criticality of the system record. Values include the following options (Mission Critical (MC), Mission Essential (ME), Mission Support (MS).

name[RW]
Read-only

Name of the system record.

organization_name[RW]
Read-only

Name of the top-level component that owns the system (e.g. Navy, Air Force, Army, etc..).

other_information[RW]
Read-only

Include any additional information required by the organization.

package[RW]
pia_date[RW]
Read-only

Date in which the system’s PIA took place.

pia_status[RW]
Read-only

Status of the PIA, availability values include the following options (Not Started, In Progress, Completed)

policy[RW]
Read-only

RMF/DIACAP Policy identifier for the system record.

ppsm_registry_number[RW]
Read-only

Unique identifier for the DoD’s Ports, Protocols, and Services Management Registry system.

primary_control_set[RW]
Read-only

Primary Control Set of the system record. RMF values include the following options (NIST SP 800-53 Revision 4), DIACAP values include the following options (DoDI 8500.2)

primary_functional_area[RW]
Read-only

Primary functional area of the system record.

registration_type[RW]
Read-Only

Registration types parameters (assessAndAuthorize, assessOnly, guest, regular, functional, cloudServiceProvider.)

reports_for_scorecard[RW]
Read-only

Indicates if the system reports to the DoD Cyber Hygiene Scorecard.

rmf_activity[RW]
Read-only

RMF Activity of the system record.

secondary_functional_area[RW]
Read-only

Secondary functional area of the system record.

secondary_organization[RW]
Read-only

Secondary organization that owns the system record (i.e. Sub-Organization-level.

security_plan_approval_date[RW]
Read-only

Approval date of the system’s RMF Security Plan.

security_plan_approval_status[RW]
Read-only

Status of the approval of the system’s RMF Security Plan. Values include the following options (Approved, Denied, Not Yet Approved).

security_review_date[RW]
Read-only

Date the system record’s Annual Security Review was conducted.

system_id[RW]
Read-only

Unique system record identifier.

system_owner[RW]
Read-only

Owning organization of the system record.

system_ownership[RW]
Read-only

Ownership of the system record (VA only).

system_type[RW]
Read-only

Type of the system record. RMF values include the following options (IS Major Application, IS Enclave, Platform IT System). DIACAP values include the following options (Platform IT, Interconnection, AIS Application)

terms_for_auth[RW]
Read-only

Terms/Conditions for receiving and maintaining the system’s Authorization. Assigned by the Authorizing Official.

user_defined_field1[RW]
Read-only

User-defined field to augment Ad Hoc Reporting.

user_defined_field2[RW]
Read-only

User-defined field to augment Ad Hoc Reporting.

user_defined_field3[RW]
Read-only

User-defined field to augment Ad Hoc Reporting.

user_defined_field4[RW]
Read-only

User-defined field to augment Ad Hoc Reporting.

user_defined_field5[RW]
Read-only

User-defined field to augment Ad Hoc Reporting.

version_release_no[RW]
Read-only

Version/Release Number of system record.

Public Class Methods

attribute_map() click to toggle source

Attribute mapping from ruby-style variable name to JSON key.

# File lib/emass_client/models/systems.rb, line 229
def self.attribute_map
  {
    :'system_id' => :'systemId',
    :'policy' => :'policy',
    :'registration_type' => :'registrationType',
    :'name' => :'name',
    :'acronym' => :'acronym',
    :'description' => :'description',
    :'system_owner' => :'systemOwner',
    :'organization_name' => :'organizationName',
    :'secondary_organization' => :'secondaryOrganization',
    :'version_release_no' => :'versionReleaseNo',
    :'system_type' => :'systemType',
    :'is_nss' => :'isNSS',
    :'is_public_facing' => :'isPublicFacing',
    :'coams_id' => :'coamsId',
    :'is_type_authorization' => :'isTypeAuthorization',
    :'ditpr_id' => :'ditprId',
    :'authorization_status' => :'authorizationStatus',
    :'authorization_date' => :'authorizationDate',
    :'authorization_termination_date' => :'authorizationTerminationDate',
    :'authorization_length' => :'authorizationLength',
    :'terms_for_auth' => :'termsForAuth',
    :'security_plan_approval_status' => :'securityPlanApprovalStatus',
    :'security_plan_approval_date' => :'securityPlanApprovalDate',
    :'mission_criticality' => :'missionCriticality',
    :'geographical_association' => :'geographicalAssociation',
    :'system_ownership' => :'systemOwnership',
    :'governing_mission_area' => :'governingMissionArea',
    :'primary_functional_area' => :'primaryFunctionalArea',
    :'secondary_functional_area' => :'secondaryFunctionalArea',
    :'primary_control_set' => :'primaryControlSet',
    :'confidentiality' => :'confidentiality',
    :'integrity' => :'integrity',
    :'availability' => :'availability',
    :'applied_overlays' => :'appliedOverlays',
    :'rmf_activity' => :'rmfActivity',
    :'cross_domain_ticket' => :'crossDomainTicket',
    :'ditpr_don_id' => :'ditprDonId',
    :'mac' => :'mac',
    :'dod_confidentiality' => :'dodConfidentiality',
    :'contingency_plan_tested' => :'contingencyPlanTested',
    :'contingency_plan_test_date' => :'contingencyPlanTestDate',
    :'security_review_date' => :'securityReviewDate',
    :'has_open_poam_item' => :'hasOpenPoamItem',
    :'has_open_poam_item90to120_past_scheduled_completion_date' => :'hasOpenPoamItem90to120PastScheduledCompletionDate',
    :'has_open_poam_item120_plus_past_scheudled_completion_date' => :'hasOpenPoamItem120PlusPastScheudledCompletionDate',
    :'impact' => :'impact',
    :'has_cui' => :'hasCUI',
    :'has_pii' => :'hasPII',
    :'has_phi' => :'hasPHI',
    :'ppsm_registry_number' => :'ppsmRegistryNumber',
    :'interconnected_information_system_and_identifiers' => :'interconnectedInformationSystemAndIdentifiers',
    :'is_pia_required' => :'isPiaRequired',
    :'pia_status' => :'piaStatus',
    :'pia_date' => :'piaDate',
    :'user_defined_field1' => :'userDefinedField1',
    :'user_defined_field2' => :'userDefinedField2',
    :'user_defined_field3' => :'userDefinedField3',
    :'user_defined_field4' => :'userDefinedField4',
    :'user_defined_field5' => :'userDefinedField5',
    :'current_rmf_lifecycle_step' => :'currentRmfLifecycleStep',
    :'other_information' => :'otherInformation',
    :'reports_for_scorecard' => :'reportsForScorecard',
    :'package' => :'package',
    :'connectivity_ccsd' => :'connectivityCcsd'
  }
end
build_from_hash(attributes) click to toggle source

Builds the object from hash @param [Hash] attributes Model attributes in the form of hash @return [Object] Returns the model itself

# File lib/emass_client/models/systems.rb, line 1025
def self.build_from_hash(attributes)
  new.build_from_hash(attributes)
end
new(attributes = {}) click to toggle source

Initializes the object @param [Hash] attributes Model attributes in the form of hash

# File lib/emass_client/models/systems.rb, line 376
def initialize(attributes = {})
  if (!attributes.is_a?(Hash))
    fail ArgumentError, "The input argument (attributes) must be a hash in `EmassClient::Systems` initialize method"
  end

  # check to see if the attribute exists and convert string to symbol for hash key
  attributes = attributes.each_with_object({}) { |(k, v), h|
    if (!self.class.attribute_map.key?(k.to_sym))
      fail ArgumentError, "`#{k}` is not a valid attribute in `EmassClient::Systems`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
    end
    h[k.to_sym] = v
  }

  if attributes.key?(:'system_id')
    self.system_id = attributes[:'system_id']
  end

  if attributes.key?(:'policy')
    self.policy = attributes[:'policy']
  end

  if attributes.key?(:'registration_type')
    self.registration_type = attributes[:'registration_type']
  end

  if attributes.key?(:'name')
    self.name = attributes[:'name']
  end

  if attributes.key?(:'acronym')
    self.acronym = attributes[:'acronym']
  end

  if attributes.key?(:'description')
    self.description = attributes[:'description']
  end

  if attributes.key?(:'system_owner')
    self.system_owner = attributes[:'system_owner']
  end

  if attributes.key?(:'organization_name')
    self.organization_name = attributes[:'organization_name']
  end

  if attributes.key?(:'secondary_organization')
    self.secondary_organization = attributes[:'secondary_organization']
  end

  if attributes.key?(:'version_release_no')
    self.version_release_no = attributes[:'version_release_no']
  end

  if attributes.key?(:'system_type')
    self.system_type = attributes[:'system_type']
  end

  if attributes.key?(:'is_nss')
    self.is_nss = attributes[:'is_nss']
  end

  if attributes.key?(:'is_public_facing')
    self.is_public_facing = attributes[:'is_public_facing']
  end

  if attributes.key?(:'coams_id')
    self.coams_id = attributes[:'coams_id']
  end

  if attributes.key?(:'is_type_authorization')
    self.is_type_authorization = attributes[:'is_type_authorization']
  end

  if attributes.key?(:'ditpr_id')
    self.ditpr_id = attributes[:'ditpr_id']
  end

  if attributes.key?(:'authorization_status')
    self.authorization_status = attributes[:'authorization_status']
  end

  if attributes.key?(:'authorization_date')
    self.authorization_date = attributes[:'authorization_date']
  end

  if attributes.key?(:'authorization_termination_date')
    self.authorization_termination_date = attributes[:'authorization_termination_date']
  end

  if attributes.key?(:'authorization_length')
    self.authorization_length = attributes[:'authorization_length']
  end

  if attributes.key?(:'terms_for_auth')
    self.terms_for_auth = attributes[:'terms_for_auth']
  end

  if attributes.key?(:'security_plan_approval_status')
    self.security_plan_approval_status = attributes[:'security_plan_approval_status']
  end

  if attributes.key?(:'security_plan_approval_date')
    self.security_plan_approval_date = attributes[:'security_plan_approval_date']
  end

  if attributes.key?(:'mission_criticality')
    self.mission_criticality = attributes[:'mission_criticality']
  end

  if attributes.key?(:'geographical_association')
    self.geographical_association = attributes[:'geographical_association']
  end

  if attributes.key?(:'system_ownership')
    self.system_ownership = attributes[:'system_ownership']
  end

  if attributes.key?(:'governing_mission_area')
    self.governing_mission_area = attributes[:'governing_mission_area']
  end

  if attributes.key?(:'primary_functional_area')
    self.primary_functional_area = attributes[:'primary_functional_area']
  end

  if attributes.key?(:'secondary_functional_area')
    self.secondary_functional_area = attributes[:'secondary_functional_area']
  end

  if attributes.key?(:'primary_control_set')
    self.primary_control_set = attributes[:'primary_control_set']
  end

  if attributes.key?(:'confidentiality')
    self.confidentiality = attributes[:'confidentiality']
  end

  if attributes.key?(:'integrity')
    self.integrity = attributes[:'integrity']
  end

  if attributes.key?(:'availability')
    self.availability = attributes[:'availability']
  end

  if attributes.key?(:'applied_overlays')
    self.applied_overlays = attributes[:'applied_overlays']
  end

  if attributes.key?(:'rmf_activity')
    self.rmf_activity = attributes[:'rmf_activity']
  end

  if attributes.key?(:'cross_domain_ticket')
    self.cross_domain_ticket = attributes[:'cross_domain_ticket']
  end

  if attributes.key?(:'ditpr_don_id')
    self.ditpr_don_id = attributes[:'ditpr_don_id']
  end

  if attributes.key?(:'mac')
    self.mac = attributes[:'mac']
  end

  if attributes.key?(:'dod_confidentiality')
    self.dod_confidentiality = attributes[:'dod_confidentiality']
  end

  if attributes.key?(:'contingency_plan_tested')
    self.contingency_plan_tested = attributes[:'contingency_plan_tested']
  end

  if attributes.key?(:'contingency_plan_test_date')
    self.contingency_plan_test_date = attributes[:'contingency_plan_test_date']
  end

  if attributes.key?(:'security_review_date')
    self.security_review_date = attributes[:'security_review_date']
  end

  if attributes.key?(:'has_open_poam_item')
    self.has_open_poam_item = attributes[:'has_open_poam_item']
  end

  if attributes.key?(:'has_open_poam_item90to120_past_scheduled_completion_date')
    self.has_open_poam_item90to120_past_scheduled_completion_date = attributes[:'has_open_poam_item90to120_past_scheduled_completion_date']
  end

  if attributes.key?(:'has_open_poam_item120_plus_past_scheudled_completion_date')
    self.has_open_poam_item120_plus_past_scheudled_completion_date = attributes[:'has_open_poam_item120_plus_past_scheudled_completion_date']
  end

  if attributes.key?(:'impact')
    self.impact = attributes[:'impact']
  end

  if attributes.key?(:'has_cui')
    self.has_cui = attributes[:'has_cui']
  end

  if attributes.key?(:'has_pii')
    self.has_pii = attributes[:'has_pii']
  end

  if attributes.key?(:'has_phi')
    self.has_phi = attributes[:'has_phi']
  end

  if attributes.key?(:'ppsm_registry_number')
    self.ppsm_registry_number = attributes[:'ppsm_registry_number']
  end

  if attributes.key?(:'interconnected_information_system_and_identifiers')
    self.interconnected_information_system_and_identifiers = attributes[:'interconnected_information_system_and_identifiers']
  end

  if attributes.key?(:'is_pia_required')
    self.is_pia_required = attributes[:'is_pia_required']
  end

  if attributes.key?(:'pia_status')
    self.pia_status = attributes[:'pia_status']
  end

  if attributes.key?(:'pia_date')
    self.pia_date = attributes[:'pia_date']
  end

  if attributes.key?(:'user_defined_field1')
    self.user_defined_field1 = attributes[:'user_defined_field1']
  end

  if attributes.key?(:'user_defined_field2')
    self.user_defined_field2 = attributes[:'user_defined_field2']
  end

  if attributes.key?(:'user_defined_field3')
    self.user_defined_field3 = attributes[:'user_defined_field3']
  end

  if attributes.key?(:'user_defined_field4')
    self.user_defined_field4 = attributes[:'user_defined_field4']
  end

  if attributes.key?(:'user_defined_field5')
    self.user_defined_field5 = attributes[:'user_defined_field5']
  end

  if attributes.key?(:'current_rmf_lifecycle_step')
    self.current_rmf_lifecycle_step = attributes[:'current_rmf_lifecycle_step']
  end

  if attributes.key?(:'other_information')
    self.other_information = attributes[:'other_information']
  end

  if attributes.key?(:'reports_for_scorecard')
    self.reports_for_scorecard = attributes[:'reports_for_scorecard']
  end

  if attributes.key?(:'package')
    if (value = attributes[:'package']).is_a?(Array)
      self.package = value
    end
  end

  if attributes.key?(:'connectivity_ccsd')
    if (value = attributes[:'connectivity_ccsd']).is_a?(Array)
      self.connectivity_ccsd = value
    end
  end
end
openapi_nullable() click to toggle source

List of attributes with nullable: true

# File lib/emass_client/models/systems.rb, line 369
def self.openapi_nullable
  Set.new([
  ])
end
openapi_types() click to toggle source

Attribute type mapping.

# File lib/emass_client/models/systems.rb, line 299
def self.openapi_types
  {
    :'system_id' => :'Object',
    :'policy' => :'Object',
    :'registration_type' => :'Object',
    :'name' => :'Object',
    :'acronym' => :'Object',
    :'description' => :'Object',
    :'system_owner' => :'Object',
    :'organization_name' => :'Object',
    :'secondary_organization' => :'Object',
    :'version_release_no' => :'Object',
    :'system_type' => :'Object',
    :'is_nss' => :'Object',
    :'is_public_facing' => :'Object',
    :'coams_id' => :'Object',
    :'is_type_authorization' => :'Object',
    :'ditpr_id' => :'Object',
    :'authorization_status' => :'Object',
    :'authorization_date' => :'Object',
    :'authorization_termination_date' => :'Object',
    :'authorization_length' => :'Object',
    :'terms_for_auth' => :'Object',
    :'security_plan_approval_status' => :'Object',
    :'security_plan_approval_date' => :'Object',
    :'mission_criticality' => :'Object',
    :'geographical_association' => :'Object',
    :'system_ownership' => :'Object',
    :'governing_mission_area' => :'Object',
    :'primary_functional_area' => :'Object',
    :'secondary_functional_area' => :'Object',
    :'primary_control_set' => :'Object',
    :'confidentiality' => :'Object',
    :'integrity' => :'Object',
    :'availability' => :'Object',
    :'applied_overlays' => :'Object',
    :'rmf_activity' => :'Object',
    :'cross_domain_ticket' => :'Object',
    :'ditpr_don_id' => :'Object',
    :'mac' => :'Object',
    :'dod_confidentiality' => :'Object',
    :'contingency_plan_tested' => :'Object',
    :'contingency_plan_test_date' => :'Object',
    :'security_review_date' => :'Object',
    :'has_open_poam_item' => :'Object',
    :'has_open_poam_item90to120_past_scheduled_completion_date' => :'Object',
    :'has_open_poam_item120_plus_past_scheudled_completion_date' => :'Object',
    :'impact' => :'Object',
    :'has_cui' => :'Object',
    :'has_pii' => :'Object',
    :'has_phi' => :'Object',
    :'ppsm_registry_number' => :'Object',
    :'interconnected_information_system_and_identifiers' => :'Object',
    :'is_pia_required' => :'Object',
    :'pia_status' => :'Object',
    :'pia_date' => :'Object',
    :'user_defined_field1' => :'Object',
    :'user_defined_field2' => :'Object',
    :'user_defined_field3' => :'Object',
    :'user_defined_field4' => :'Object',
    :'user_defined_field5' => :'Object',
    :'current_rmf_lifecycle_step' => :'Object',
    :'other_information' => :'Object',
    :'reports_for_scorecard' => :'Object',
    :'package' => :'Object',
    :'connectivity_ccsd' => :'Object'
  }
end

Public Instance Methods

==(o) click to toggle source

Checks equality by comparing each attribute. @param [Object] Object to be compared

# File lib/emass_client/models/systems.rb, line 941
def ==(o)
  return true if self.equal?(o)
  self.class == o.class &&
      system_id == o.system_id &&
      policy == o.policy &&
      registration_type == o.registration_type &&
      name == o.name &&
      acronym == o.acronym &&
      description == o.description &&
      system_owner == o.system_owner &&
      organization_name == o.organization_name &&
      secondary_organization == o.secondary_organization &&
      version_release_no == o.version_release_no &&
      system_type == o.system_type &&
      is_nss == o.is_nss &&
      is_public_facing == o.is_public_facing &&
      coams_id == o.coams_id &&
      is_type_authorization == o.is_type_authorization &&
      ditpr_id == o.ditpr_id &&
      authorization_status == o.authorization_status &&
      authorization_date == o.authorization_date &&
      authorization_termination_date == o.authorization_termination_date &&
      authorization_length == o.authorization_length &&
      terms_for_auth == o.terms_for_auth &&
      security_plan_approval_status == o.security_plan_approval_status &&
      security_plan_approval_date == o.security_plan_approval_date &&
      mission_criticality == o.mission_criticality &&
      geographical_association == o.geographical_association &&
      system_ownership == o.system_ownership &&
      governing_mission_area == o.governing_mission_area &&
      primary_functional_area == o.primary_functional_area &&
      secondary_functional_area == o.secondary_functional_area &&
      primary_control_set == o.primary_control_set &&
      confidentiality == o.confidentiality &&
      integrity == o.integrity &&
      availability == o.availability &&
      applied_overlays == o.applied_overlays &&
      rmf_activity == o.rmf_activity &&
      cross_domain_ticket == o.cross_domain_ticket &&
      ditpr_don_id == o.ditpr_don_id &&
      mac == o.mac &&
      dod_confidentiality == o.dod_confidentiality &&
      contingency_plan_tested == o.contingency_plan_tested &&
      contingency_plan_test_date == o.contingency_plan_test_date &&
      security_review_date == o.security_review_date &&
      has_open_poam_item == o.has_open_poam_item &&
      has_open_poam_item90to120_past_scheduled_completion_date == o.has_open_poam_item90to120_past_scheduled_completion_date &&
      has_open_poam_item120_plus_past_scheudled_completion_date == o.has_open_poam_item120_plus_past_scheudled_completion_date &&
      impact == o.impact &&
      has_cui == o.has_cui &&
      has_pii == o.has_pii &&
      has_phi == o.has_phi &&
      ppsm_registry_number == o.ppsm_registry_number &&
      interconnected_information_system_and_identifiers == o.interconnected_information_system_and_identifiers &&
      is_pia_required == o.is_pia_required &&
      pia_status == o.pia_status &&
      pia_date == o.pia_date &&
      user_defined_field1 == o.user_defined_field1 &&
      user_defined_field2 == o.user_defined_field2 &&
      user_defined_field3 == o.user_defined_field3 &&
      user_defined_field4 == o.user_defined_field4 &&
      user_defined_field5 == o.user_defined_field5 &&
      current_rmf_lifecycle_step == o.current_rmf_lifecycle_step &&
      other_information == o.other_information &&
      reports_for_scorecard == o.reports_for_scorecard &&
      package == o.package &&
      connectivity_ccsd == o.connectivity_ccsd
end
_deserialize(type, value) click to toggle source

Deserializes the data based on type @param string type Data type @param string value Value to be deserialized @return [Object] Deserialized data

# File lib/emass_client/models/systems.rb, line 1055
def _deserialize(type, value)
  case type.to_sym
  when :DateTime
    DateTime.parse(value)
  when :Date
    Date.parse(value)
  when :String
    value.to_s
  when :Integer
    value.to_i
  when :Float
    value.to_f
  when :Boolean
    if value.to_s =~ /\A(true|t|yes|y|1)\z/i
      true
    else
      false
    end
  when :Object
    # generic object (usually a Hash), return directly
    value
  when /\AArray<(?<inner_type>.+)>\z/
    inner_type = Regexp.last_match[:inner_type]
    value.map { |v| _deserialize(inner_type, v) }
  when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
    k_type = Regexp.last_match[:k_type]
    v_type = Regexp.last_match[:v_type]
    {}.tap do |hash|
      value.each do |k, v|
        hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
      end
    end
  else # model
    EmassClient.const_get(type).build_from_hash(value)
  end
end
_to_hash(value) click to toggle source

Outputs non-array value in the form of hash For object, use to_hash. Otherwise, just return the value @param [Object] value Any valid value @return [Hash] Returns the value in the form of hash

# File lib/emass_client/models/systems.rb, line 1124
def _to_hash(value)
  if value.is_a?(Array)
    value.compact.map { |v| _to_hash(v) }
  elsif value.is_a?(Hash)
    {}.tap do |hash|
      value.each { |k, v| hash[k] = _to_hash(v) }
    end
  elsif value.respond_to? :to_hash
    value.to_hash
  else
    value
  end
end
applied_overlays=(applied_overlays) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] applied_overlays Object to be assigned

# File lib/emass_client/models/systems.rb, line 871
def applied_overlays=(applied_overlays)
  validator = EnumAttributeValidator.new('Object', ['Classified Information', 'Privacy', 'Cross Domain Solution (CDS)', 'Financial Management', 'Intelligence', 'Nuclear Command, Communication, Control Systems (NC3)', 'Cloud Service Provider (CSP)'])
  unless validator.valid?(applied_overlays)
    fail ArgumentError, "invalid value for \"applied_overlays\", must be one of #{validator.allowable_values}."
  end
  @applied_overlays = applied_overlays
end
authorization_status=(authorization_status) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] authorization_status Object to be assigned

# File lib/emass_client/models/systems.rb, line 751
def authorization_status=(authorization_status)
  validator = EnumAttributeValidator.new('Object', ['Authority to Operate (ATO)', 'Authority to Operate with Conditions (ATO) w/Conditions)', 'Interim Authority to Test (IATT)', 'Interim Authority to Operate (IATO)', 'Denied Authority to Operate (DATO)', 'Not Yet Authorized', 'Unaccredited', 'Decommissioned'])
  unless validator.valid?(authorization_status)
    fail ArgumentError, "invalid value for \"authorization_status\", must be one of #{validator.allowable_values}."
  end
  @authorization_status = authorization_status
end
availability=(availability) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] availability Object to be assigned

# File lib/emass_client/models/systems.rb, line 861
def availability=(availability)
  validator = EnumAttributeValidator.new('Object', ['High', 'Moderate', 'Low'])
  unless validator.valid?(availability)
    fail ArgumentError, "invalid value for \"availability\", must be one of #{validator.allowable_values}."
  end
  @availability = availability
end
build_from_hash(attributes) click to toggle source

Builds the object from hash @param [Hash] attributes Model attributes in the form of hash @return [Object] Returns the model itself

# File lib/emass_client/models/systems.rb, line 1032
def build_from_hash(attributes)
  return nil unless attributes.is_a?(Hash)
  self.class.openapi_types.each_pair do |key, type|
    if type =~ /\AArray<(.*)>/i
      # check to ensure the input is an array given that the attribute
      # is documented as an array but the input is not
      if attributes[self.class.attribute_map[key]].is_a?(Array)
        self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
      end
    elsif !attributes[self.class.attribute_map[key]].nil?
      self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
    elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
      self.send("#{key}=", nil)
    end
  end

  self
end
confidentiality=(confidentiality) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] confidentiality Object to be assigned

# File lib/emass_client/models/systems.rb, line 841
def confidentiality=(confidentiality)
  validator = EnumAttributeValidator.new('Object', ['High', 'Moderate', 'Low'])
  unless validator.valid?(confidentiality)
    fail ArgumentError, "invalid value for \"confidentiality\", must be one of #{validator.allowable_values}."
  end
  @confidentiality = confidentiality
end
current_rmf_lifecycle_step=(current_rmf_lifecycle_step) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] current_rmf_lifecycle_step Object to be assigned

# File lib/emass_client/models/systems.rb, line 931
def current_rmf_lifecycle_step=(current_rmf_lifecycle_step)
  validator = EnumAttributeValidator.new('Object', ['1 – Categorize', '2 – Select', '3 – Implement', '4 – Assess', '5 – Authorize', '6 – Monitor'])
  unless validator.valid?(current_rmf_lifecycle_step)
    fail ArgumentError, "invalid value for \"current_rmf_lifecycle_step\", must be one of #{validator.allowable_values}."
  end
  @current_rmf_lifecycle_step = current_rmf_lifecycle_step
end
dod_confidentiality=(dod_confidentiality) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] dod_confidentiality Object to be assigned

# File lib/emass_client/models/systems.rb, line 901
def dod_confidentiality=(dod_confidentiality)
  validator = EnumAttributeValidator.new('Object', ['Public', 'Sensitive', 'Classified'])
  unless validator.valid?(dod_confidentiality)
    fail ArgumentError, "invalid value for \"dod_confidentiality\", must be one of #{validator.allowable_values}."
  end
  @dod_confidentiality = dod_confidentiality
end
eql?(o) click to toggle source

@see the ‘==` method @param [Object] Object to be compared

# File lib/emass_client/models/systems.rb, line 1012
def eql?(o)
  self == o
end
geographical_association=(geographical_association) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] geographical_association Object to be assigned

# File lib/emass_client/models/systems.rb, line 781
def geographical_association=(geographical_association)
  validator = EnumAttributeValidator.new('Object', ['VA Operated IS', 'non-VA Operated IS'])
  unless validator.valid?(geographical_association)
    fail ArgumentError, "invalid value for \"geographical_association\", must be one of #{validator.allowable_values}."
  end
  @geographical_association = geographical_association
end
governing_mission_area=(governing_mission_area) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] governing_mission_area Object to be assigned

# File lib/emass_client/models/systems.rb, line 801
def governing_mission_area=(governing_mission_area)
  validator = EnumAttributeValidator.new('Object', ['Business MA (BMA)', 'DoD portion of the Intelligence MA (DIMA)', 'Enterprise Information Environment MA (EIEMA)', 'Warfighting MA (WMA)'])
  unless validator.valid?(governing_mission_area)
    fail ArgumentError, "invalid value for \"governing_mission_area\", must be one of #{validator.allowable_values}."
  end
  @governing_mission_area = governing_mission_area
end
hash() click to toggle source

Calculates hash code according to all attributes. @return [Integer] Hash code

# File lib/emass_client/models/systems.rb, line 1018
def hash
  [system_id, policy, registration_type, name, acronym, description, system_owner, organization_name, secondary_organization, version_release_no, system_type, is_nss, is_public_facing, coams_id, is_type_authorization, ditpr_id, authorization_status, authorization_date, authorization_termination_date, authorization_length, terms_for_auth, security_plan_approval_status, security_plan_approval_date, mission_criticality, geographical_association, system_ownership, governing_mission_area, primary_functional_area, secondary_functional_area, primary_control_set, confidentiality, integrity, availability, applied_overlays, rmf_activity, cross_domain_ticket, ditpr_don_id, mac, dod_confidentiality, contingency_plan_tested, contingency_plan_test_date, security_review_date, has_open_poam_item, has_open_poam_item90to120_past_scheduled_completion_date, has_open_poam_item120_plus_past_scheudled_completion_date, impact, has_cui, has_pii, has_phi, ppsm_registry_number, interconnected_information_system_and_identifiers, is_pia_required, pia_status, pia_date, user_defined_field1, user_defined_field2, user_defined_field3, user_defined_field4, user_defined_field5, current_rmf_lifecycle_step, other_information, reports_for_scorecard, package, connectivity_ccsd].hash
end
impact=(impact) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] impact Object to be assigned

# File lib/emass_client/models/systems.rb, line 911
def impact=(impact)
  validator = EnumAttributeValidator.new('Object', ['low', 'Moderate', 'High'])
  unless validator.valid?(impact)
    fail ArgumentError, "invalid value for \"impact\", must be one of #{validator.allowable_values}."
  end
  @impact = impact
end
integrity=(integrity) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] integrity Object to be assigned

# File lib/emass_client/models/systems.rb, line 851
def integrity=(integrity)
  validator = EnumAttributeValidator.new('Object', ['High', 'Moderate', 'Low'])
  unless validator.valid?(integrity)
    fail ArgumentError, "invalid value for \"integrity\", must be one of #{validator.allowable_values}."
  end
  @integrity = integrity
end
list_invalid_properties() click to toggle source

Show invalid properties with the reasons. Usually used together with valid? @return Array for valid properties with the reasons

# File lib/emass_client/models/systems.rb, line 652
def list_invalid_properties
  invalid_properties = Array.new
  invalid_properties
end
mac=(mac) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] mac Object to be assigned

# File lib/emass_client/models/systems.rb, line 891
def mac=(mac)
  validator = EnumAttributeValidator.new('Object', ['I', 'II', 'III'])
  unless validator.valid?(mac)
    fail ArgumentError, "invalid value for \"mac\", must be one of #{validator.allowable_values}."
  end
  @mac = mac
end
mission_criticality=(mission_criticality) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] mission_criticality Object to be assigned

# File lib/emass_client/models/systems.rb, line 771
def mission_criticality=(mission_criticality)
  validator = EnumAttributeValidator.new('Object', ['Mission Critical (MC)', 'Mission Essential (ME)', 'Mission Support (MS)'])
  unless validator.valid?(mission_criticality)
    fail ArgumentError, "invalid value for \"mission_criticality\", must be one of #{validator.allowable_values}."
  end
  @mission_criticality = mission_criticality
end
organization_name=(organization_name) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] organization_name Object to be assigned

# File lib/emass_client/models/systems.rb, line 731
def organization_name=(organization_name)
  validator = EnumAttributeValidator.new('Object', ['Army', 'Navy', 'Air Force', 'Marines', 'DoD', 'Defense Information Systems Agency'])
  unless validator.valid?(organization_name)
    fail ArgumentError, "invalid value for \"organization_name\", must be one of #{validator.allowable_values}."
  end
  @organization_name = organization_name
end
pia_status=(pia_status) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] pia_status Object to be assigned

# File lib/emass_client/models/systems.rb, line 921
def pia_status=(pia_status)
  validator = EnumAttributeValidator.new('Object', ['Not Started', 'In Progress', 'Completed'])
  unless validator.valid?(pia_status)
    fail ArgumentError, "invalid value for \"pia_status\", must be one of #{validator.allowable_values}."
  end
  @pia_status = pia_status
end
policy=(policy) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] policy Object to be assigned

# File lib/emass_client/models/systems.rb, line 711
def policy=(policy)
  validator = EnumAttributeValidator.new('Object', ['RMF', 'DIACAP'])
  unless validator.valid?(policy)
    fail ArgumentError, "invalid value for \"policy\", must be one of #{validator.allowable_values}."
  end
  @policy = policy
end
primary_control_set=(primary_control_set) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] primary_control_set Object to be assigned

# File lib/emass_client/models/systems.rb, line 831
def primary_control_set=(primary_control_set)
  validator = EnumAttributeValidator.new('Object', ['NIST SP 800-53 Revision 4', 'DoDI 8500.2'])
  unless validator.valid?(primary_control_set)
    fail ArgumentError, "invalid value for \"primary_control_set\", must be one of #{validator.allowable_values}."
  end
  @primary_control_set = primary_control_set
end
primary_functional_area=(primary_functional_area) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] primary_functional_area Object to be assigned

# File lib/emass_client/models/systems.rb, line 811
def primary_functional_area=(primary_functional_area)
  validator = EnumAttributeValidator.new('Object', ['Allies', 'CBRNE', 'Civilian Personnel & Readiness', 'Command and Control', 'Communications', 'Communications Security (COMSEC)', 'Economic', 'Environmental Security', 'Facilities', 'Finance', 'Health/Medical', 'Human Resources', 'Information Management', 'Inspector General', 'Intelligence', 'Logistics', 'Military Personnel and Readiness', 'Nuclear', 'Nuclear, Chemical, and Biological', 'Operations', 'Personnel and Readiness', 'Procurement/Acquisition', 'Reserve Components', 'Scientific and Engineering', 'Space and Weather', 'Test and Evaluation', 'Trainers', 'Weapons', 'Legal', 'Transportation', 'Not Applicable (N/A)', 'Integration and Testing'])
  unless validator.valid?(primary_functional_area)
    fail ArgumentError, "invalid value for \"primary_functional_area\", must be one of #{validator.allowable_values}."
  end
  @primary_functional_area = primary_functional_area
end
registration_type=(registration_type) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] registration_type Object to be assigned

# File lib/emass_client/models/systems.rb, line 721
def registration_type=(registration_type)
  validator = EnumAttributeValidator.new('Object', ['Assess and Authorize', 'Assess Only', 'Guest', 'Regular', 'Functional', 'Cloud Service Provider', 'Common Control Provider'])
  unless validator.valid?(registration_type)
    fail ArgumentError, "invalid value for \"registration_type\", must be one of #{validator.allowable_values}."
  end
  @registration_type = registration_type
end
rmf_activity=(rmf_activity) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] rmf_activity Object to be assigned

# File lib/emass_client/models/systems.rb, line 881
def rmf_activity=(rmf_activity)
  validator = EnumAttributeValidator.new('Object', ['Initiate and plan C&A', 'Initiate and plan cybersecurity Assessment Authorization', 'Implement and validate assigned security controls', 'Make assessment determination and authorization decision', 'Maintain ATO and conduct reviews', 'Decommission'])
  unless validator.valid?(rmf_activity)
    fail ArgumentError, "invalid value for \"rmf_activity\", must be one of #{validator.allowable_values}."
  end
  @rmf_activity = rmf_activity
end
secondary_functional_area=(secondary_functional_area) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] secondary_functional_area Object to be assigned

# File lib/emass_client/models/systems.rb, line 821
def secondary_functional_area=(secondary_functional_area)
  validator = EnumAttributeValidator.new('Object', ['Allies', 'CBRNE', 'Civilian Personnel & Readiness', 'Command and Control', 'Communications', 'Communications Security (COMSEC)', 'Economic', 'Environmental Security', 'Facilities', 'Finance', 'Health/Medical', 'Human Resources', 'Information Management', 'Inspector General', 'Intelligence', 'Logistics', 'Military Personnel and Readiness', 'Nuclear', 'Nuclear, Chemical, and Biological', 'Operations', 'Personnel and Readiness', 'Procurement/Acquisition', 'Reserve Components', 'Scientific and Engineering', 'Space and Weather', 'Test and Evaluation', 'Trainers', 'Weapons', 'Legal', 'Transportation', 'Not Applicable (N/A)', 'Integration and Testing'])
  unless validator.valid?(secondary_functional_area)
    fail ArgumentError, "invalid value for \"secondary_functional_area\", must be one of #{validator.allowable_values}."
  end
  @secondary_functional_area = secondary_functional_area
end
security_plan_approval_status=(security_plan_approval_status) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] security_plan_approval_status Object to be assigned

# File lib/emass_client/models/systems.rb, line 761
def security_plan_approval_status=(security_plan_approval_status)
  validator = EnumAttributeValidator.new('Object', ['Approved', 'Not Yet Approved', 'Denied'])
  unless validator.valid?(security_plan_approval_status)
    fail ArgumentError, "invalid value for \"security_plan_approval_status\", must be one of #{validator.allowable_values}."
  end
  @security_plan_approval_status = security_plan_approval_status
end
system_ownership=(system_ownership) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] system_ownership Object to be assigned

# File lib/emass_client/models/systems.rb, line 791
def system_ownership=(system_ownership)
  validator = EnumAttributeValidator.new('Object', ['Region 1', 'Region 2', 'Region 3', 'Region 4'])
  unless validator.valid?(system_ownership)
    fail ArgumentError, "invalid value for \"system_ownership\", must be one of #{validator.allowable_values}."
  end
  @system_ownership = system_ownership
end
system_type=(system_type) click to toggle source

Custom attribute writer method checking allowed values (enum). @param [Object] system_type Object to be assigned

# File lib/emass_client/models/systems.rb, line 741
def system_type=(system_type)
  validator = EnumAttributeValidator.new('Object', ['IS Major Application', 'IS Enclave', 'Platform IT', 'Platform IT System', 'Platform IT Interconnection', 'AIS Application', 'Outsourced IT-Based Process (DoD-controlled)', 'Enclave', 'Outsourced IT-Based Process (service provider shared)'])
  unless validator.valid?(system_type)
    fail ArgumentError, "invalid value for \"system_type\", must be one of #{validator.allowable_values}."
  end
  @system_type = system_type
end
to_body() click to toggle source

to_body is an alias to to_hash (backward compatibility) @return [Hash] Returns the object in the form of hash

# File lib/emass_client/models/systems.rb, line 1100
def to_body
  to_hash
end
to_hash() click to toggle source

Returns the object in the form of hash @return [Hash] Returns the object in the form of hash

# File lib/emass_client/models/systems.rb, line 1106
def to_hash
  hash = {}
  self.class.attribute_map.each_pair do |attr, param|
    value = self.send(attr)
    if value.nil?
      is_nullable = self.class.openapi_nullable.include?(attr)
      next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
    end

    hash[param] = _to_hash(value)
  end
  hash
end
to_s() click to toggle source

Returns the string representation of the object @return [String] String presentation of the object

# File lib/emass_client/models/systems.rb, line 1094
def to_s
  to_hash.to_s
end
valid?() click to toggle source

Check to see if the all the properties in the model are valid @return true if the model is valid

# File lib/emass_client/models/systems.rb, line 659
def valid?
  policy_validator = EnumAttributeValidator.new('Object', ['RMF', 'DIACAP'])
  return false unless policy_validator.valid?(@policy)
  registration_type_validator = EnumAttributeValidator.new('Object', ['Assess and Authorize', 'Assess Only', 'Guest', 'Regular', 'Functional', 'Cloud Service Provider', 'Common Control Provider'])
  return false unless registration_type_validator.valid?(@registration_type)
  organization_name_validator = EnumAttributeValidator.new('Object', ['Army', 'Navy', 'Air Force', 'Marines', 'DoD', 'Defense Information Systems Agency'])
  return false unless organization_name_validator.valid?(@organization_name)
  system_type_validator = EnumAttributeValidator.new('Object', ['IS Major Application', 'IS Enclave', 'Platform IT', 'Platform IT System', 'Platform IT Interconnection', 'AIS Application', 'Outsourced IT-Based Process (DoD-controlled)', 'Enclave', 'Outsourced IT-Based Process (service provider shared)'])
  return false unless system_type_validator.valid?(@system_type)
  authorization_status_validator = EnumAttributeValidator.new('Object', ['Authority to Operate (ATO)', 'Authority to Operate with Conditions (ATO) w/Conditions)', 'Interim Authority to Test (IATT)', 'Interim Authority to Operate (IATO)', 'Denied Authority to Operate (DATO)', 'Not Yet Authorized', 'Unaccredited', 'Decommissioned'])
  return false unless authorization_status_validator.valid?(@authorization_status)
  security_plan_approval_status_validator = EnumAttributeValidator.new('Object', ['Approved', 'Not Yet Approved', 'Denied'])
  return false unless security_plan_approval_status_validator.valid?(@security_plan_approval_status)
  mission_criticality_validator = EnumAttributeValidator.new('Object', ['Mission Critical (MC)', 'Mission Essential (ME)', 'Mission Support (MS)'])
  return false unless mission_criticality_validator.valid?(@mission_criticality)
  geographical_association_validator = EnumAttributeValidator.new('Object', ['VA Operated IS', 'non-VA Operated IS'])
  return false unless geographical_association_validator.valid?(@geographical_association)
  system_ownership_validator = EnumAttributeValidator.new('Object', ['Region 1', 'Region 2', 'Region 3', 'Region 4'])
  return false unless system_ownership_validator.valid?(@system_ownership)
  governing_mission_area_validator = EnumAttributeValidator.new('Object', ['Business MA (BMA)', 'DoD portion of the Intelligence MA (DIMA)', 'Enterprise Information Environment MA (EIEMA)', 'Warfighting MA (WMA)'])
  return false unless governing_mission_area_validator.valid?(@governing_mission_area)
  primary_functional_area_validator = EnumAttributeValidator.new('Object', ['Allies', 'CBRNE', 'Civilian Personnel & Readiness', 'Command and Control', 'Communications', 'Communications Security (COMSEC)', 'Economic', 'Environmental Security', 'Facilities', 'Finance', 'Health/Medical', 'Human Resources', 'Information Management', 'Inspector General', 'Intelligence', 'Logistics', 'Military Personnel and Readiness', 'Nuclear', 'Nuclear, Chemical, and Biological', 'Operations', 'Personnel and Readiness', 'Procurement/Acquisition', 'Reserve Components', 'Scientific and Engineering', 'Space and Weather', 'Test and Evaluation', 'Trainers', 'Weapons', 'Legal', 'Transportation', 'Not Applicable (N/A)', 'Integration and Testing'])
  return false unless primary_functional_area_validator.valid?(@primary_functional_area)
  secondary_functional_area_validator = EnumAttributeValidator.new('Object', ['Allies', 'CBRNE', 'Civilian Personnel & Readiness', 'Command and Control', 'Communications', 'Communications Security (COMSEC)', 'Economic', 'Environmental Security', 'Facilities', 'Finance', 'Health/Medical', 'Human Resources', 'Information Management', 'Inspector General', 'Intelligence', 'Logistics', 'Military Personnel and Readiness', 'Nuclear', 'Nuclear, Chemical, and Biological', 'Operations', 'Personnel and Readiness', 'Procurement/Acquisition', 'Reserve Components', 'Scientific and Engineering', 'Space and Weather', 'Test and Evaluation', 'Trainers', 'Weapons', 'Legal', 'Transportation', 'Not Applicable (N/A)', 'Integration and Testing'])
  return false unless secondary_functional_area_validator.valid?(@secondary_functional_area)
  primary_control_set_validator = EnumAttributeValidator.new('Object', ['NIST SP 800-53 Revision 4', 'DoDI 8500.2'])
  return false unless primary_control_set_validator.valid?(@primary_control_set)
  confidentiality_validator = EnumAttributeValidator.new('Object', ['High', 'Moderate', 'Low'])
  return false unless confidentiality_validator.valid?(@confidentiality)
  integrity_validator = EnumAttributeValidator.new('Object', ['High', 'Moderate', 'Low'])
  return false unless integrity_validator.valid?(@integrity)
  availability_validator = EnumAttributeValidator.new('Object', ['High', 'Moderate', 'Low'])
  return false unless availability_validator.valid?(@availability)
  applied_overlays_validator = EnumAttributeValidator.new('Object', ['Classified Information', 'Privacy', 'Cross Domain Solution (CDS)', 'Financial Management', 'Intelligence', 'Nuclear Command, Communication, Control Systems (NC3)', 'Cloud Service Provider (CSP)'])
  return false unless applied_overlays_validator.valid?(@applied_overlays)
  rmf_activity_validator = EnumAttributeValidator.new('Object', ['Initiate and plan C&A', 'Initiate and plan cybersecurity Assessment Authorization', 'Implement and validate assigned security controls', 'Make assessment determination and authorization decision', 'Maintain ATO and conduct reviews', 'Decommission'])
  return false unless rmf_activity_validator.valid?(@rmf_activity)
  mac_validator = EnumAttributeValidator.new('Object', ['I', 'II', 'III'])
  return false unless mac_validator.valid?(@mac)
  dod_confidentiality_validator = EnumAttributeValidator.new('Object', ['Public', 'Sensitive', 'Classified'])
  return false unless dod_confidentiality_validator.valid?(@dod_confidentiality)
  impact_validator = EnumAttributeValidator.new('Object', ['low', 'Moderate', 'High'])
  return false unless impact_validator.valid?(@impact)
  pia_status_validator = EnumAttributeValidator.new('Object', ['Not Started', 'In Progress', 'Completed'])
  return false unless pia_status_validator.valid?(@pia_status)
  current_rmf_lifecycle_step_validator = EnumAttributeValidator.new('Object', ['1 – Categorize', '2 – Select', '3 – Implement', '4 – Assess', '5 – Authorize', '6 – Monitor'])
  return false unless current_rmf_lifecycle_step_validator.valid?(@current_rmf_lifecycle_step)
  true
end