=begin
#Enterprise Mission Assurance Support Service (eMASS)
#The Enterprise Mission Assurance Support Service (eMASS) Representational State Transfer (REST) Application Programming Interface (API) enables users to perform assessments and complete actions associated with system records. The `emasser` is a command-line interface (CLI) tool that implements all of the eMASS endpoints defined in the eMASS REST API v3.2, dated October 21, 2021.
Register CLI New users will need to register an API key with the eMASS development team prior to accessing the site for the first time. The eMASS REST API requires a client certificate (SSL/TLS, DoD PKI only) where {url}/api/register (POST) is used to register the client certificate. Every call to the eMASS REST API will require the use of the agreed upon public key certificate and API key. The API key must be provided in the request header for all endpoint calls (api-key). If the service receives an untrusted certificate or API key, a 401 error response code will be returned along with an error message. Available Request Headers:
key | Example Value | Description |
`api-key` | api-key-provided-by-emass | This API key must be provided in the request header for all endpoint calls |
`user-uid` | USER.UID.KEY | This User unique identifier key must be provided in the request header for all PUT, POST, and DELETE endpoint calls |
| | Note: For DoD users this is the DoD ID Number (EIDIPI) on their DoD CAC |
Approve API Client for Actionable Requests Users are required to log-in to eMASS and grant permissions for a client to update data within eMASS on their behalf. This is only required for actionable requests (PUT, POST, DELETE). The Registration Endpoint and all GET requests can be accessed without completing this process with the correct permissions. Please note that leaving a field parameter blank (for PUT/POST requests) has the potential to clear information in the active eMASS records. To establish an account with eMASS and/or acquire an api-key/user-uid, contact one of the listed POC:
OpenAPI spec version: v3.2
Contact: disa.meade.id.mbx.emass-tier-iii-support@mail.mil
Generated by: https://github.com/swagger-api/swagger-codegen.git
Swagger Codegen version: 3.0.26
=end
require 'date'
module SwaggerClient
class Systems
# [Read-only] Unique system record identifier.
attr_accessor :system_id
# [Read-only] RMF/DIACAP Policy identifier for the system record.
attr_accessor :policy
# [Read-Only] Registration types parameters (assessAndAuthorize, assessOnly, guest, regular, functional, cloudServiceProvider.)
attr_accessor :registration_type
# [Read-only] Name of the system record.
attr_accessor :name
# [Read-only] Acronym of the system record.
attr_accessor :acronym
# [Read-only] Description of the system record.
attr_accessor :description
# [Read-only] Owning organization of the system record.
attr_accessor :system_owner
# [Read-only] Name of the top-level component that owns the system (e.g. Navy, Air Force, Army, etc..).
attr_accessor :organization_name
# [Read-only] Secondary organization that owns the system record (i.e. Sub-Organization-level.
attr_accessor :secondary_organization
# [Read-only] Version/Release Number of system record.
attr_accessor :version_release_no
# [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)
attr_accessor :system_type
# [Read-only] Is the system record a National Security System?
attr_accessor :is_nss
# [Read-only] Does the system record have a public facing component/presence.
attr_accessor :is_public_facing
# [Read-only] Corresponding Cyber Operational Attributes Management System (COAMS) identifier for the system record.
attr_accessor :coams_id
# [Read-only] Identifies if system is a Type Authorization.
attr_accessor :is_type_authorization
# [Read-only] DITPR ID of the system record.
attr_accessor :ditpr_id
# [Read-only] Authorization Status of the system record.
attr_accessor :authorization_status
# [Read-only] Authorization Date of the system record.
attr_accessor :authorization_date
# [Read-only] Authorization Termination Date of the system record.
attr_accessor :authorization_termination_date
# [Read-only] Length of system’s Authorization. Calculated based off of Authorization Date & Authorization Termination Date.
attr_accessor :authorization_length
# [Read-only] Terms/Conditions for receiving and maintaining the system’s Authorization. Assigned by the Authorizing Official.
attr_accessor :terms_for_auth
# [Read-only] Status of the approval of the system’s RMF Security Plan. Values include the following options (Approved, Denied, Not Yet Approved).
attr_accessor :security_plan_approval_status
# [Read-only] Approval date of the system’s RMF Security Plan.
attr_accessor :security_plan_approval_date
# [Read-only] Mission Criticality of the system record. Values include the following options (Mission Critical (MC), Mission Essential (ME), Mission Support (MS).
attr_accessor :mission_criticality
# [Read-only] Geographical Association of the system record (VA only).
attr_accessor :geographical_association
# [Read-only] Ownership of the system record (VA only).
attr_accessor :system_ownership
# [Read-only] Governing Mission Area of the system record.
attr_accessor :governing_mission_area
# [Read-only] Primary functional area of the system record.
attr_accessor :primary_functional_area
# [Read-only] Secondary functional area of the system record.
attr_accessor :secondary_functional_area
# [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)
attr_accessor :primary_control_set
# [Read-only] Confidentiality of the system record. RMF values include the following options (High, Moderate, Low)
attr_accessor :confidentiality
# [Read-only] Integrity of the system record. RMF values include the following options (High, Moderate, Low)
attr_accessor :integrity
# [Read-only] Availability of the system record. RMF values include the following options (High, Moderate, Low)
attr_accessor :availability
# [Read-only] Overlays applied to the system record.
attr_accessor :applied_overlays
# [Read-only] RMF Activity of the system record.
attr_accessor :rmf_activity
# [Read-only] Cross Domain Tickets of the system record.
attr_accessor :cross_domain_ticket
# [Read-Only] DITPR-DON identifier of the system record.
attr_accessor :ditpr_don_id
# [Read-Only] MAC level of the system record.
attr_accessor :mac
# [Read-Only] DoD Confidentiality level of the system record.
attr_accessor :dod_confidentiality
# [Read-only] Has the system record’s Contingency Plan been tested?
attr_accessor :contingency_plan_tested
# [Read-only] Date the system record’s Contingency Plan was tested.
attr_accessor :contingency_plan_test_date
# [Read-only] Date the system record’s Annual Security Review was conducted.
attr_accessor :security_review_date
# [Read-Only] Does the system record have an Ongoing or Risk Accepted POA&M Item?
attr_accessor :has_open_poam_item
# [Read-Only] Does the system record have an Ongoing or Risk Accepted POA&M Item 90 to 120 days past its Scheduled Completion Date?
attr_accessor :has_open_poam_item90to120_past_scheduled_completion_date
# [Read-Only] Does the system record have an Ongoing or Risk Accepted POA&M Item 120 days past its Scheduled Completion Date?
attr_accessor :has_open_poam_item120_plus_past_scheudled_completion_date
# [Optional] Values include the following options (Very Low, Low, Moderate,High,Very High)
attr_accessor :impact
# [Read-only] Does the system record contain and/or process Controlled Unclassified information?
attr_accessor :has_cui
# [Read-only] Does the system record contain and/or process Personally Identifiable Information?
attr_accessor :has_pii
# [Read-only] Does the system record contain and/or process Personal Health Information?
attr_accessor :has_phi
# [Read-only] Unique identifier for the DoD’s Ports, Protocols, and Services Management Registry system.
attr_accessor :ppsm_registry_number
# [Read-only] Identify the interconnected information systems and corresponding identifiers within control CA-3.
attr_accessor :interconnected_information_system_and_identifiers
# [Read-only] Does the system require a Privacy Impact Assessment?
attr_accessor :is_pia_required
# [Read-only] Status of the PIA, availability values include the following options (Not Started, In Progress, Completed)
attr_accessor :pia_status
# [Read-only] Date in which the system’s PIA took place.
attr_accessor :pia_date
# [Read-only] User-defined field to augment Ad Hoc Reporting.
attr_accessor :user_defined_field1
# [Read-only] User-defined field to augment Ad Hoc Reporting.
attr_accessor :user_defined_field2
# [Read-only] User-defined field to augment Ad Hoc Reporting.
attr_accessor :user_defined_field3
# [Read-only] User-defined field to augment Ad Hoc Reporting.
attr_accessor :user_defined_field4
# [Read-only] User-defined field to augment Ad Hoc Reporting.
attr_accessor :user_defined_field5
# [Read-only] Displays the system’s current step within the RMF Lifecycle.
attr_accessor :current_rmf_lifecycle_step
# [Read-only] Include any additional information required by the organization.
attr_accessor :other_information
# [Read-only] Indicates if the system reports to the DoD Cyber Hygiene Scorecard.
attr_accessor :reports_for_scorecard
attr_accessor :package
attr_accessor :connectivity_ccsd
class EnumAttributeValidator
attr_reader :datatype
attr_reader :allowable_values
def initialize(datatype, allowable_values)
@allowable_values = allowable_values.map do |value|
case datatype.to_s
when /Integer/i
value.to_i
when /Float/i
value.to_f
else
value
end
end
end
def valid?(value)
!value || allowable_values.include?(value)
end
end
# Attribute mapping from ruby-style variable name to JSON key.
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
# Attribute type mapping.
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
# List of attributes with nullable: true
def self.openapi_nullable
Set.new([
])
end
# Initializes the object
# @param [Hash] attributes Model attributes in the form of hash
def initialize(attributes = {})
if (!attributes.is_a?(Hash))
fail ArgumentError, "The input argument (attributes) must be a hash in `SwaggerClient::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 `SwaggerClient::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
# Show invalid properties with the reasons. Usually used together with valid?
# @return Array for valid properties with the reasons
def list_invalid_properties
invalid_properties = Array.new
invalid_properties
end
# Check to see if the all the properties in the model are valid
# @return true if the model is valid
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] policy Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] registration_type Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] organization_name Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] system_type Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] authorization_status Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] security_plan_approval_status Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] mission_criticality Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] geographical_association Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] system_ownership Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] governing_mission_area Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] primary_functional_area Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] secondary_functional_area Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] primary_control_set Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] confidentiality Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] integrity Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] availability Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] applied_overlays Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] rmf_activity Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] mac Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] dod_confidentiality Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] impact Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] pia_status Object to be assigned
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
# Custom attribute writer method checking allowed values (enum).
# @param [Object] current_rmf_lifecycle_step Object to be assigned
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
# Checks equality by comparing each attribute.
# @param [Object] Object to be compared
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
# @see the `==` method
# @param [Object] Object to be compared
def eql?(o)
self == o
end
# Calculates hash code according to all attributes.
# @return [Integer] Hash code
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
# Builds the object from hash
# @param [Hash] attributes Model attributes in the form of hash
# @return [Object] Returns the model itself
def self.build_from_hash(attributes)
new.build_from_hash(attributes)
end
# Builds the object from hash
# @param [Hash] attributes Model attributes in the form of hash
# @return [Object] Returns the model itself
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
# Deserializes the data based on type
# @param string type Data type
# @param string value Value to be deserialized
# @return [Object] Deserialized data
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<(?.+)>\z/
inner_type = Regexp.last_match[:inner_type]
value.map { |v| _deserialize(inner_type, v) }
when /\AHash<(?.+?), (?.+)>\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
SwaggerClient.const_get(type).build_from_hash(value)
end
end
# Returns the string representation of the object
# @return [String] String presentation of the object
def to_s
to_hash.to_s
end
# to_body is an alias to to_hash (backward compatibility)
# @return [Hash] Returns the object in the form of hash
def to_body
to_hash
end
# Returns the object in the form of hash
# @return [Hash] Returns the object in the form of hash
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
# 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
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 end
end