emass_client 3.12.0 → 3.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +159 -129
  3. data/lib/emass_client/api/artifacts_api.rb +40 -48
  4. data/lib/emass_client/api/artifacts_export_api.rb +5 -5
  5. data/lib/emass_client/api/cac_api.rb +10 -10
  6. data/lib/emass_client/api/cloud_resource_results_api.rb +10 -10
  7. data/lib/emass_client/api/cmmc_assessment_dashboards_api.rb +314 -0
  8. data/lib/emass_client/api/cmmc_assessments_api.rb +5 -5
  9. data/lib/emass_client/api/coast_guard_system_fisma_metrics_dashboard_api.rb +95 -0
  10. data/lib/emass_client/api/container_scan_results_api.rb +10 -10
  11. data/lib/emass_client/api/controls_api.rb +17 -17
  12. data/lib/emass_client/api/device_scan_results_api.rb +112 -0
  13. data/lib/emass_client/api/hardware_baseline_api.rb +313 -0
  14. data/lib/emass_client/api/milestones_api.rb +15 -15
  15. data/lib/emass_client/api/organization_migration_status_dashboard_api.rb +95 -0
  16. data/lib/emass_client/api/pac_api.rb +10 -10
  17. data/lib/emass_client/api/poam_api.rb +40 -40
  18. data/lib/emass_client/api/registration_api.rb +5 -5
  19. data/lib/emass_client/api/software_baseline_api.rb +313 -0
  20. data/lib/emass_client/api/static_code_scans_api.rb +9 -9
  21. data/lib/emass_client/api/system_application_findings_dashboards_api.rb +168 -0
  22. data/lib/emass_client/api/{enterprise_artifacts_dashboards_api.rb → system_artifacts_dashboards_api.rb} +21 -21
  23. data/lib/emass_client/api/system_associations_dashboard_api.rb +8 -8
  24. data/lib/emass_client/api/system_atciatc_dashboard_api.rb +95 -0
  25. data/lib/emass_client/api/system_conmon_integration_status_dashboard_api.rb +8 -8
  26. data/lib/emass_client/api/system_connectivity_ccsd_dashboards_api.rb +168 -0
  27. data/lib/emass_client/api/system_critical_assets_dashboard_api.rb +95 -0
  28. data/lib/emass_client/api/system_device_findings_dashboards_api.rb +168 -0
  29. data/lib/emass_client/api/system_fisma_metrics_dashboard_api.rb +95 -0
  30. data/lib/emass_client/api/{hardware_baseline_dashboards_api.rb → system_hardware_dashboards_api.rb} +21 -21
  31. data/lib/emass_client/api/system_migration_status_dashboard_api.rb +95 -0
  32. data/lib/emass_client/api/{enterprise_poam_dashboards_api.rb → system_poam_dashboards_api.rb} +21 -21
  33. data/lib/emass_client/api/{ports_and_protocols_dashboards_api.rb → system_ports_protocols_dashboards_api.rb} +21 -21
  34. data/lib/emass_client/api/system_privacy_dashboard_api.rb +95 -0
  35. data/lib/emass_client/api/system_questionnaire_dashboards_api.rb +168 -0
  36. data/lib/emass_client/api/system_roles_api.rb +8 -8
  37. data/lib/emass_client/api/{enterprise_security_controls_dashboards_api.rb → system_security_controls_dashboards_api.rb} +31 -31
  38. data/lib/emass_client/api/{enterprise_sensor_based_hardware_resources_dashboards_api.rb → system_sensor_hardware_dashboards_api.rb} +21 -21
  39. data/lib/emass_client/api/{enterprise_sensor_based_software_resources_dashboards_api.rb → system_sensor_software_dashboards_api.rb} +29 -29
  40. data/lib/emass_client/api/{software_baseline_dashboards_api.rb → system_software_dashboards_api.rb} +21 -21
  41. data/lib/emass_client/api/system_status_dashboard_api.rb +8 -8
  42. data/lib/emass_client/api/{enterprise_terms_conditions_dashboards_api.rb → system_terms_conditions_dashboards_api.rb} +21 -21
  43. data/lib/emass_client/api/system_vulnerability_dashboard_api.rb +95 -0
  44. data/lib/emass_client/api/{enterprise_vulnerability_dashboards_api.rb → system_workflows_dashboards_api.rb} +53 -53
  45. data/lib/emass_client/api/systems_api.rb +16 -22
  46. data/lib/emass_client/api/test_api.rb +5 -5
  47. data/lib/emass_client/api/test_results_api.rb +10 -10
  48. data/lib/emass_client/api/{users_dashboard_api.rb → user_system_assignments_dashboard_api.rb} +13 -13
  49. data/lib/emass_client/api/va_system_dashboards_api.rb +679 -0
  50. data/lib/emass_client/api/vaombfisma_dashboard_api.rb +95 -0
  51. data/lib/emass_client/api/workflow_definitions_api.rb +9 -9
  52. data/lib/emass_client/api/workflow_instances_api.rb +14 -14
  53. data/lib/emass_client/api_client.rb +44 -31
  54. data/lib/emass_client/api_error.rb +4 -4
  55. data/lib/emass_client/configuration.rb +42 -12
  56. data/lib/emass_client/models/{response201.rb → api_rule_failed.rb} +17 -11
  57. data/lib/emass_client/models/{response490_meta.rb → api_rule_failed_meta.rb} +16 -10
  58. data/lib/emass_client/models/artifacts_ids.rb +221 -0
  59. data/lib/emass_client/models/artifacts_optional_fields.rb +298 -0
  60. data/lib/emass_client/models/artifacts_read_only_fields.rb +255 -0
  61. data/lib/emass_client/models/artifacts_request_delete_body_inner.rb +14 -8
  62. data/lib/emass_client/models/artifacts_required_fields.rb +252 -0
  63. data/lib/emass_client/models/artifacts_response_del.rb +14 -8
  64. data/lib/emass_client/models/artifacts_response_del_data_inner.rb +14 -8
  65. data/lib/emass_client/models/artifacts_response_get.rb +15 -9
  66. data/lib/emass_client/models/{artifacts_get.rb → artifacts_response_get_data_inner.rb} +78 -62
  67. data/lib/emass_client/models/artifacts_response_put_post.rb +14 -8
  68. data/lib/emass_client/models/artifacts_response_put_post_data_inner.rb +19 -13
  69. data/lib/emass_client/models/{response400.rb → bad_request.rb} +17 -11
  70. data/lib/emass_client/models/{response400_meta.rb → bad_request_meta.rb} +16 -10
  71. data/lib/emass_client/models/cac_get.rb +14 -8
  72. data/lib/emass_client/models/cac_response_get.rb +14 -8
  73. data/lib/emass_client/models/cac_response_post.rb +14 -8
  74. data/lib/emass_client/models/cac_response_post_data_inner.rb +19 -13
  75. data/lib/emass_client/models/cloud_resources_delete.rb +14 -8
  76. data/lib/emass_client/models/cloud_resources_delete_body_inner.rb +14 -8
  77. data/lib/emass_client/models/cloud_resources_post_delete.rb +19 -13
  78. data/lib/emass_client/models/cloud_resources_response_post.rb +14 -8
  79. data/lib/emass_client/models/cmmc_get.rb +84 -123
  80. data/lib/emass_client/models/cmmc_response_get.rb +14 -8
  81. data/lib/emass_client/models/connectivity_ccsd.rb +14 -8
  82. data/lib/emass_client/models/container_resources_delete_body_inner.rb +14 -8
  83. data/lib/emass_client/models/containers_resources_post_delete.rb +19 -13
  84. data/lib/emass_client/models/containers_response_delete.rb +14 -8
  85. data/lib/emass_client/models/containers_response_post.rb +14 -8
  86. data/lib/emass_client/models/controls_conditional_fields.rb +357 -0
  87. data/lib/emass_client/models/controls_ids.rb +221 -0
  88. data/lib/emass_client/models/controls_optional_fields.rb +471 -0
  89. data/lib/emass_client/models/controls_put.rb +19 -13
  90. data/lib/emass_client/models/controls_read_only_fields.rb +277 -0
  91. data/lib/emass_client/models/controls_required_fields.rb +295 -0
  92. data/lib/emass_client/models/controls_response_get.rb +15 -9
  93. data/lib/emass_client/models/{controls_get.rb → controls_response_get_data_inner.rb} +155 -138
  94. data/lib/emass_client/models/controls_response_put.rb +14 -8
  95. data/lib/emass_client/models/{response403.rb → created.rb} +17 -11
  96. data/lib/emass_client/models/{response201_meta.rb → created_meta.rb} +16 -10
  97. data/lib/emass_client/models/definition_transitions.rb +14 -8
  98. data/lib/emass_client/models/{poam_response_post.rb → device_scan_results_response_post.rb} +17 -11
  99. data/lib/emass_client/models/{success200_response_data_inner.rb → device_scan_results_response_post_data_inner.rb} +51 -16
  100. data/lib/emass_client/models/{response401.rb → forbidden.rb} +17 -11
  101. data/lib/emass_client/models/{response403_meta.rb → forbidden_meta.rb} +16 -10
  102. data/lib/emass_client/models/get_system_status_details200_response.rb +240 -0
  103. data/lib/emass_client/models/hw_baseline_conditional_fields.rb +244 -0
  104. data/lib/emass_client/models/hw_baseline_ids.rb +221 -0
  105. data/lib/emass_client/models/hw_baseline_optional_fields.rb +354 -0
  106. data/lib/emass_client/models/hw_baseline_read_only_fields.rb +222 -0
  107. data/lib/emass_client/models/hw_baseline_request_delete_body_inner.rb +220 -0
  108. data/lib/emass_client/models/hw_baseline_required_fields.rb +221 -0
  109. data/lib/emass_client/models/{poam_response_delete.rb → hw_baseline_response_delete.rb} +17 -11
  110. data/lib/emass_client/models/hw_baseline_response_delete_data_inner.rb +274 -0
  111. data/lib/emass_client/models/{dashboard_mock_response.rb → hw_baseline_response_get.rb} +18 -12
  112. data/lib/emass_client/models/hw_baseline_response_get_data_inner.rb +429 -0
  113. data/lib/emass_client/models/{success200_response.rb → hw_baseline_response_post_put.rb} +17 -11
  114. data/lib/emass_client/models/hw_baseline_response_post_put_data_inner.rb +274 -0
  115. data/lib/emass_client/models/{instances_transitions.rb → instance_transitions.rb} +16 -10
  116. data/lib/emass_client/models/internal_server_error.rb +220 -0
  117. data/lib/emass_client/models/{response500_meta.rb → internal_server_error_meta.rb} +16 -10
  118. data/lib/emass_client/models/length_required.rb +220 -0
  119. data/lib/emass_client/models/{response411_meta.rb → length_required_meta.rb} +16 -10
  120. data/lib/emass_client/models/method_not_allowed.rb +220 -0
  121. data/lib/emass_client/models/{response405_meta.rb → method_not_allowed_meta.rb} +16 -10
  122. data/lib/emass_client/models/milestone_response_delete.rb +14 -8
  123. data/lib/emass_client/models/milestone_response_get.rb +14 -8
  124. data/lib/emass_client/models/milestone_response_get_milestone.rb +14 -8
  125. data/lib/emass_client/models/milestone_response_post.rb +14 -8
  126. data/lib/emass_client/models/milestone_response_put.rb +14 -8
  127. data/lib/emass_client/models/milestones_fields.rb +222 -0
  128. data/lib/emass_client/models/milestones_get.rb +43 -15
  129. data/lib/emass_client/models/milestones_put_post_delete.rb +19 -13
  130. data/lib/emass_client/models/milestones_request_delete_body_inner.rb +14 -8
  131. data/lib/emass_client/models/milestones_required_post.rb +23 -40
  132. data/lib/emass_client/models/milestones_required_post_milestones_inner.rb +265 -0
  133. data/lib/emass_client/models/milestones_required_put.rb +23 -57
  134. data/lib/emass_client/models/{ssps.rb → milestones_required_put_milestones_inner.rb} +89 -35
  135. data/lib/emass_client/models/{response404.rb → not_found.rb} +16 -10
  136. data/lib/emass_client/models/pac_get.rb +30 -13
  137. data/lib/emass_client/models/pac_post.rb +19 -13
  138. data/lib/emass_client/models/pac_response_get.rb +14 -8
  139. data/lib/emass_client/models/pac_response_post.rb +14 -8
  140. data/lib/emass_client/models/{dashboard_mock_response_pagination.rb → pagination.rb} +35 -29
  141. data/lib/emass_client/models/poam_conditional_fields.rb +402 -0
  142. data/lib/emass_client/models/poam_ids.rb +241 -0
  143. data/lib/emass_client/models/poam_optional_fields.rb +409 -0
  144. data/lib/emass_client/models/poam_post_put_del.rb +19 -13
  145. data/lib/emass_client/models/poam_read_only_fields.rb +332 -0
  146. data/lib/emass_client/models/poam_request_delete_body_inner.rb +14 -8
  147. data/lib/emass_client/models/poam_required_fields.rb +305 -0
  148. data/lib/emass_client/models/poam_response_get_poams.rb +15 -9
  149. data/lib/emass_client/models/poam_response_get_poams_data.rb +824 -0
  150. data/lib/emass_client/models/poam_response_get_systems.rb +15 -9
  151. data/lib/emass_client/models/{poam_get.rb → poam_response_get_systems_data_inner.rb} +325 -365
  152. data/lib/emass_client/models/{poam_response_put.rb → poam_response_post_put_delete.rb} +16 -10
  153. data/lib/emass_client/models/register.rb +14 -8
  154. data/lib/emass_client/models/register_data.rb +14 -8
  155. data/lib/emass_client/models/register_user_request_post_body.rb +24 -8
  156. data/lib/emass_client/models/response200.rb +14 -8
  157. data/lib/emass_client/models/role_category.rb +14 -8
  158. data/lib/emass_client/models/roles.rb +14 -8
  159. data/lib/emass_client/models/stage.rb +14 -8
  160. data/lib/emass_client/models/static_code_application_post.rb +14 -8
  161. data/lib/emass_client/models/static_code_post.rb +19 -13
  162. data/lib/emass_client/models/static_code_request_post_body.rb +14 -8
  163. data/lib/emass_client/models/static_code_request_post_body_application.rb +14 -8
  164. data/lib/emass_client/models/static_code_response_post.rb +14 -8
  165. data/lib/emass_client/models/sw_baseline_conditional_fields.rb +222 -0
  166. data/lib/emass_client/models/sw_baseline_ids.rb +221 -0
  167. data/lib/emass_client/models/sw_baseline_optional_fields.rb +563 -0
  168. data/lib/emass_client/models/sw_baseline_read_only_fields.rb +222 -0
  169. data/lib/emass_client/models/sw_baseline_request_delete_body_inner.rb +220 -0
  170. data/lib/emass_client/models/sw_baseline_required_fields.rb +241 -0
  171. data/lib/emass_client/models/sw_baseline_response_delete.rb +231 -0
  172. data/lib/emass_client/models/sw_baseline_response_delete_data_inner.rb +274 -0
  173. data/lib/emass_client/models/sw_baseline_response_get.rb +240 -0
  174. data/lib/emass_client/models/sw_baseline_response_get_data_inner.rb +624 -0
  175. data/lib/emass_client/models/sw_baseline_response_post_put.rb +231 -0
  176. data/lib/emass_client/models/sw_baseline_response_post_put_data_inner.rb +274 -0
  177. data/lib/emass_client/models/system_response.rb +14 -8
  178. data/lib/emass_client/models/system_roles_category_response.rb +14 -8
  179. data/lib/emass_client/models/system_roles_response.rb +14 -8
  180. data/lib/emass_client/models/system_roles_response_data_inner.rb +14 -8
  181. data/lib/emass_client/models/systems.rb +708 -86
  182. data/lib/emass_client/models/systems_response.rb +14 -8
  183. data/lib/emass_client/models/test.rb +14 -8
  184. data/lib/emass_client/models/test_data.rb +14 -8
  185. data/lib/emass_client/models/test_results_get.rb +14 -8
  186. data/lib/emass_client/models/test_results_post.rb +19 -13
  187. data/lib/emass_client/models/test_results_response_get.rb +14 -8
  188. data/lib/emass_client/models/test_results_response_post.rb +14 -8
  189. data/lib/emass_client/models/unauthorized.rb +220 -0
  190. data/lib/emass_client/models/{response401_meta.rb → unauthorized_meta.rb} +16 -10
  191. data/lib/emass_client/models/users.rb +14 -8
  192. data/lib/emass_client/models/workflow_definition_get.rb +14 -8
  193. data/lib/emass_client/models/workflow_definition_response_get.rb +14 -8
  194. data/lib/emass_client/models/workflow_instance_get.rb +28 -11
  195. data/lib/emass_client/models/workflow_instance_response_get.rb +14 -8
  196. data/lib/emass_client/models/workflow_instances_response_get.rb +15 -9
  197. data/lib/emass_client/models/workflow_instances_response_get_pagination.rb +14 -8
  198. data/lib/emass_client/version.rb +5 -5
  199. data/lib/emass_client.rb +101 -52
  200. metadata +105 -56
  201. data/lib/emass_client/api/fisma_inventory_summary_dashboards_api.rb +0 -168
  202. data/lib/emass_client/api/privacy_compliance_dashboards_api.rb +0 -168
  203. data/lib/emass_client/api/system_a20_summary_dashboard_api.rb +0 -95
  204. data/lib/emass_client/api/system_aa_summary_dashboard_api.rb +0 -95
  205. data/lib/emass_client/api/system_pl109_reporting_summary_dashboard_api.rb +0 -95
  206. data/lib/emass_client/api/threat_risks_dashboards_api.rb +0 -241
  207. data/lib/emass_client/models/mock_object.rb +0 -338
  208. data/lib/emass_client/models/response405.rb +0 -214
  209. data/lib/emass_client/models/response411.rb +0 -214
  210. data/lib/emass_client/models/response490.rb +0 -214
  211. data/lib/emass_client/models/response500.rb +0 -214
  212. data/lib/emass_client/models/workflow_instances_get.rb +0 -337
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #Enterprise Mission Assurance Support Service (eMASS)
3
+
4
+ #The eMASS Representational State Transfer (REST) Application Programming Interface (API) enables users to perform assessments and complete actions associated with system records. The eMASS API provides an interface for application to communicate eMASS Services. For information on how to register and use the eMASS API reference the [eMASS API Getting Started](eMASSGettingStarted.md). Additional information about eMASS can be obtain by contacting the National Industrial Security Program (NISP). Points of Contact are:
5
+
6
+ The version of the OpenAPI document: v3.22
7
+ Contact: disa.global.servicedesk.mbx.ma-ticket-request@mail.mil
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.12.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module EmassClient
17
+ class HwBaselineIds
18
+ # [Required] Unique eMASS system identifier.
19
+ attr_accessor :system_id
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'system_id' => :'systemId'
25
+ }
26
+ end
27
+
28
+ # Returns attribute mapping this model knows about
29
+ def self.acceptable_attribute_map
30
+ attribute_map
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ acceptable_attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'system_id' => :'Integer'
42
+ }
43
+ end
44
+
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ ])
49
+ end
50
+
51
+ # Initializes the object
52
+ # @param [Hash] attributes Model attributes in the form of hash
53
+ def initialize(attributes = {})
54
+ if (!attributes.is_a?(Hash))
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `EmassClient::HwBaselineIds` initialize method"
56
+ end
57
+
58
+ # check to see if the attribute exists and convert string to symbol for hash key
59
+ acceptable_attribute_map = self.class.acceptable_attribute_map
60
+ attributes = attributes.each_with_object({}) { |(k, v), h|
61
+ if (!acceptable_attribute_map.key?(k.to_sym))
62
+ fail ArgumentError, "`#{k}` is not a valid attribute in `EmassClient::HwBaselineIds`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
63
+ end
64
+ h[k.to_sym] = v
65
+ }
66
+
67
+ if attributes.key?(:'system_id')
68
+ self.system_id = attributes[:'system_id']
69
+ end
70
+ end
71
+
72
+ # Show invalid properties with the reasons. Usually used together with valid?
73
+ # @return Array for valid properties with the reasons
74
+ def list_invalid_properties
75
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
76
+ invalid_properties = Array.new
77
+ invalid_properties
78
+ end
79
+
80
+ # Check to see if the all the properties in the model are valid
81
+ # @return true if the model is valid
82
+ def valid?
83
+ warn '[DEPRECATED] the `valid?` method is obsolete'
84
+ true
85
+ end
86
+
87
+ # Checks equality by comparing each attribute.
88
+ # @param [Object] Object to be compared
89
+ def ==(o)
90
+ return true if self.equal?(o)
91
+ self.class == o.class &&
92
+ system_id == o.system_id
93
+ end
94
+
95
+ # @see the `==` method
96
+ # @param [Object] Object to be compared
97
+ def eql?(o)
98
+ self == o
99
+ end
100
+
101
+ # Calculates hash code according to all attributes.
102
+ # @return [Integer] Hash code
103
+ def hash
104
+ [system_id].hash
105
+ end
106
+
107
+ # Builds the object from hash
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @return [Object] Returns the model itself
110
+ def self.build_from_hash(attributes)
111
+ return nil unless attributes.is_a?(Hash)
112
+ attributes = attributes.transform_keys(&:to_sym)
113
+ transformed_hash = {}
114
+ openapi_types.each_pair do |key, type|
115
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
116
+ transformed_hash["#{key}"] = nil
117
+ elsif type =~ /\AArray<(.*)>/i
118
+ # check to ensure the input is an array given that the attribute
119
+ # is documented as an array but the input is not
120
+ if attributes[attribute_map[key]].is_a?(Array)
121
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
122
+ end
123
+ elsif !attributes[attribute_map[key]].nil?
124
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
125
+ end
126
+ end
127
+ new(transformed_hash)
128
+ end
129
+
130
+ # Deserializes the data based on type
131
+ # @param string type Data type
132
+ # @param string value Value to be deserialized
133
+ # @return [Object] Deserialized data
134
+ def self._deserialize(type, value)
135
+ case type.to_sym
136
+ when :Time
137
+ Time.parse(value)
138
+ when :Date
139
+ Date.parse(value)
140
+ when :String
141
+ value.to_s
142
+ when :Integer
143
+ value.to_i
144
+ when :Float
145
+ value.to_f
146
+ when :Boolean
147
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
148
+ true
149
+ else
150
+ false
151
+ end
152
+ when :Object
153
+ # generic object (usually a Hash), return directly
154
+ value
155
+ when /\AArray<(?<inner_type>.+)>\z/
156
+ inner_type = Regexp.last_match[:inner_type]
157
+ value.map { |v| _deserialize(inner_type, v) }
158
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
159
+ k_type = Regexp.last_match[:k_type]
160
+ v_type = Regexp.last_match[:v_type]
161
+ {}.tap do |hash|
162
+ value.each do |k, v|
163
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
164
+ end
165
+ end
166
+ else # model
167
+ # models (e.g. Pet) or oneOf
168
+ klass = EmassClient.const_get(type)
169
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
170
+ end
171
+ end
172
+
173
+ # Returns the string representation of the object
174
+ # @return [String] String presentation of the object
175
+ def to_s
176
+ to_hash.to_s
177
+ end
178
+
179
+ # to_body is an alias to to_hash (backward compatibility)
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_body
182
+ to_hash
183
+ end
184
+
185
+ # Returns the object in the form of hash
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_hash
188
+ hash = {}
189
+ self.class.attribute_map.each_pair do |attr, param|
190
+ value = self.send(attr)
191
+ if value.nil?
192
+ is_nullable = self.class.openapi_nullable.include?(attr)
193
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
194
+ end
195
+
196
+ hash[param] = _to_hash(value)
197
+ end
198
+ hash
199
+ end
200
+
201
+ # Outputs non-array value in the form of hash
202
+ # For object, use to_hash. Otherwise, just return the value
203
+ # @param [Object] value Any valid value
204
+ # @return [Hash] Returns the value in the form of hash
205
+ def _to_hash(value)
206
+ if value.is_a?(Array)
207
+ value.compact.map { |v| _to_hash(v) }
208
+ elsif value.is_a?(Hash)
209
+ {}.tap do |hash|
210
+ value.each { |k, v| hash[k] = _to_hash(v) }
211
+ end
212
+ elsif value.respond_to? :to_hash
213
+ value.to_hash
214
+ else
215
+ value
216
+ end
217
+ end
218
+
219
+ end
220
+
221
+ end
@@ -0,0 +1,354 @@
1
+ =begin
2
+ #Enterprise Mission Assurance Support Service (eMASS)
3
+
4
+ #The eMASS Representational State Transfer (REST) Application Programming Interface (API) enables users to perform assessments and complete actions associated with system records. The eMASS API provides an interface for application to communicate eMASS Services. For information on how to register and use the eMASS API reference the [eMASS API Getting Started](eMASSGettingStarted.md). Additional information about eMASS can be obtain by contacting the National Industrial Security Program (NISP). Points of Contact are:
5
+
6
+ The version of the OpenAPI document: v3.22
7
+ Contact: disa.global.servicedesk.mbx.ma-ticket-request@mail.mil
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.12.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module EmassClient
17
+ class HwBaselineOptionalFields
18
+ # [Optional] Type of the hardware asset.
19
+ attr_accessor :component_type
20
+
21
+ # [Optional] Nickname of the hardware asset.
22
+ attr_accessor :nickname
23
+
24
+ # [Optional] IP address of the hardware asset.
25
+ attr_accessor :asset_ip_address
26
+
27
+ # [Optional] Public facing is defined as any asset that is accessible from a commercial connection.
28
+ attr_accessor :public_facing
29
+
30
+ # [Optional] Determine if this is a virtual hardware asset.
31
+ attr_accessor :virtual_asset
32
+
33
+ # [Optional] Manufacturer of the hardware asset. Populated with \"Virtual\" by default if Virtual Asset is true, however this can be overridden.
34
+ attr_accessor :manufacturer
35
+
36
+ # [Optional] Model number of the hardware asset. Populated with \"Virtual\" by default if Virtual Asset is true, however this can be overridden
37
+ attr_accessor :model_number
38
+
39
+ # [Optional] Serial number of the hardware asset. Populated with \"Virtual\" by default if Virtual Asset is true, however this can be overridden.
40
+ attr_accessor :serial_number
41
+
42
+ # [Optional] Operating System, IOS, or Firmware version of the hardware asset.
43
+ attr_accessor :os_ios_fw_version
44
+
45
+ # [Optional] Memory size / type of the hardware asset.
46
+ attr_accessor :memory_size_type
47
+
48
+ # [Optional] Location of the hardware asset.
49
+ attr_accessor :location
50
+
51
+ # [Optional] Approval status of the hardware asset.
52
+ attr_accessor :approval_status
53
+
54
+ # [Optional] Indicates whether the asset is a critical information system asset.
55
+ attr_accessor :critical_asset
56
+
57
+ # Attribute mapping from ruby-style variable name to JSON key.
58
+ def self.attribute_map
59
+ {
60
+ :'component_type' => :'componentType',
61
+ :'nickname' => :'nickname',
62
+ :'asset_ip_address' => :'assetIpAddress',
63
+ :'public_facing' => :'publicFacing',
64
+ :'virtual_asset' => :'virtualAsset',
65
+ :'manufacturer' => :'manufacturer',
66
+ :'model_number' => :'modelNumber',
67
+ :'serial_number' => :'serialNumber',
68
+ :'os_ios_fw_version' => :'OsIosFwVersion',
69
+ :'memory_size_type' => :'memorySizeType',
70
+ :'location' => :'location',
71
+ :'approval_status' => :'approvalStatus',
72
+ :'critical_asset' => :'criticalAsset'
73
+ }
74
+ end
75
+
76
+ # Returns attribute mapping this model knows about
77
+ def self.acceptable_attribute_map
78
+ attribute_map
79
+ end
80
+
81
+ # Returns all the JSON keys this model knows about
82
+ def self.acceptable_attributes
83
+ acceptable_attribute_map.values
84
+ end
85
+
86
+ # Attribute type mapping.
87
+ def self.openapi_types
88
+ {
89
+ :'component_type' => :'String',
90
+ :'nickname' => :'String',
91
+ :'asset_ip_address' => :'String',
92
+ :'public_facing' => :'Boolean',
93
+ :'virtual_asset' => :'Boolean',
94
+ :'manufacturer' => :'String',
95
+ :'model_number' => :'String',
96
+ :'serial_number' => :'String',
97
+ :'os_ios_fw_version' => :'String',
98
+ :'memory_size_type' => :'String',
99
+ :'location' => :'String',
100
+ :'approval_status' => :'String',
101
+ :'critical_asset' => :'Boolean'
102
+ }
103
+ end
104
+
105
+ # List of attributes with nullable: true
106
+ def self.openapi_nullable
107
+ Set.new([
108
+ :'component_type',
109
+ :'nickname',
110
+ :'asset_ip_address',
111
+ :'public_facing',
112
+ :'virtual_asset',
113
+ :'manufacturer',
114
+ :'model_number',
115
+ :'serial_number',
116
+ :'os_ios_fw_version',
117
+ :'memory_size_type',
118
+ :'location',
119
+ :'approval_status',
120
+ :'critical_asset'
121
+ ])
122
+ end
123
+
124
+ # Initializes the object
125
+ # @param [Hash] attributes Model attributes in the form of hash
126
+ def initialize(attributes = {})
127
+ if (!attributes.is_a?(Hash))
128
+ fail ArgumentError, "The input argument (attributes) must be a hash in `EmassClient::HwBaselineOptionalFields` initialize method"
129
+ end
130
+
131
+ # check to see if the attribute exists and convert string to symbol for hash key
132
+ acceptable_attribute_map = self.class.acceptable_attribute_map
133
+ attributes = attributes.each_with_object({}) { |(k, v), h|
134
+ if (!acceptable_attribute_map.key?(k.to_sym))
135
+ fail ArgumentError, "`#{k}` is not a valid attribute in `EmassClient::HwBaselineOptionalFields`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
136
+ end
137
+ h[k.to_sym] = v
138
+ }
139
+
140
+ if attributes.key?(:'component_type')
141
+ self.component_type = attributes[:'component_type']
142
+ end
143
+
144
+ if attributes.key?(:'nickname')
145
+ self.nickname = attributes[:'nickname']
146
+ end
147
+
148
+ if attributes.key?(:'asset_ip_address')
149
+ self.asset_ip_address = attributes[:'asset_ip_address']
150
+ end
151
+
152
+ if attributes.key?(:'public_facing')
153
+ self.public_facing = attributes[:'public_facing']
154
+ end
155
+
156
+ if attributes.key?(:'virtual_asset')
157
+ self.virtual_asset = attributes[:'virtual_asset']
158
+ end
159
+
160
+ if attributes.key?(:'manufacturer')
161
+ self.manufacturer = attributes[:'manufacturer']
162
+ end
163
+
164
+ if attributes.key?(:'model_number')
165
+ self.model_number = attributes[:'model_number']
166
+ end
167
+
168
+ if attributes.key?(:'serial_number')
169
+ self.serial_number = attributes[:'serial_number']
170
+ end
171
+
172
+ if attributes.key?(:'os_ios_fw_version')
173
+ self.os_ios_fw_version = attributes[:'os_ios_fw_version']
174
+ end
175
+
176
+ if attributes.key?(:'memory_size_type')
177
+ self.memory_size_type = attributes[:'memory_size_type']
178
+ end
179
+
180
+ if attributes.key?(:'location')
181
+ self.location = attributes[:'location']
182
+ end
183
+
184
+ if attributes.key?(:'approval_status')
185
+ self.approval_status = attributes[:'approval_status']
186
+ end
187
+
188
+ if attributes.key?(:'critical_asset')
189
+ self.critical_asset = attributes[:'critical_asset']
190
+ end
191
+ end
192
+
193
+ # Show invalid properties with the reasons. Usually used together with valid?
194
+ # @return Array for valid properties with the reasons
195
+ def list_invalid_properties
196
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
197
+ invalid_properties = Array.new
198
+ invalid_properties
199
+ end
200
+
201
+ # Check to see if the all the properties in the model are valid
202
+ # @return true if the model is valid
203
+ def valid?
204
+ warn '[DEPRECATED] the `valid?` method is obsolete'
205
+ true
206
+ end
207
+
208
+ # Checks equality by comparing each attribute.
209
+ # @param [Object] Object to be compared
210
+ def ==(o)
211
+ return true if self.equal?(o)
212
+ self.class == o.class &&
213
+ component_type == o.component_type &&
214
+ nickname == o.nickname &&
215
+ asset_ip_address == o.asset_ip_address &&
216
+ public_facing == o.public_facing &&
217
+ virtual_asset == o.virtual_asset &&
218
+ manufacturer == o.manufacturer &&
219
+ model_number == o.model_number &&
220
+ serial_number == o.serial_number &&
221
+ os_ios_fw_version == o.os_ios_fw_version &&
222
+ memory_size_type == o.memory_size_type &&
223
+ location == o.location &&
224
+ approval_status == o.approval_status &&
225
+ critical_asset == o.critical_asset
226
+ end
227
+
228
+ # @see the `==` method
229
+ # @param [Object] Object to be compared
230
+ def eql?(o)
231
+ self == o
232
+ end
233
+
234
+ # Calculates hash code according to all attributes.
235
+ # @return [Integer] Hash code
236
+ def hash
237
+ [component_type, nickname, asset_ip_address, public_facing, virtual_asset, manufacturer, model_number, serial_number, os_ios_fw_version, memory_size_type, location, approval_status, critical_asset].hash
238
+ end
239
+
240
+ # Builds the object from hash
241
+ # @param [Hash] attributes Model attributes in the form of hash
242
+ # @return [Object] Returns the model itself
243
+ def self.build_from_hash(attributes)
244
+ return nil unless attributes.is_a?(Hash)
245
+ attributes = attributes.transform_keys(&:to_sym)
246
+ transformed_hash = {}
247
+ openapi_types.each_pair do |key, type|
248
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
249
+ transformed_hash["#{key}"] = nil
250
+ elsif type =~ /\AArray<(.*)>/i
251
+ # check to ensure the input is an array given that the attribute
252
+ # is documented as an array but the input is not
253
+ if attributes[attribute_map[key]].is_a?(Array)
254
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
255
+ end
256
+ elsif !attributes[attribute_map[key]].nil?
257
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
258
+ end
259
+ end
260
+ new(transformed_hash)
261
+ end
262
+
263
+ # Deserializes the data based on type
264
+ # @param string type Data type
265
+ # @param string value Value to be deserialized
266
+ # @return [Object] Deserialized data
267
+ def self._deserialize(type, value)
268
+ case type.to_sym
269
+ when :Time
270
+ Time.parse(value)
271
+ when :Date
272
+ Date.parse(value)
273
+ when :String
274
+ value.to_s
275
+ when :Integer
276
+ value.to_i
277
+ when :Float
278
+ value.to_f
279
+ when :Boolean
280
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
281
+ true
282
+ else
283
+ false
284
+ end
285
+ when :Object
286
+ # generic object (usually a Hash), return directly
287
+ value
288
+ when /\AArray<(?<inner_type>.+)>\z/
289
+ inner_type = Regexp.last_match[:inner_type]
290
+ value.map { |v| _deserialize(inner_type, v) }
291
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
292
+ k_type = Regexp.last_match[:k_type]
293
+ v_type = Regexp.last_match[:v_type]
294
+ {}.tap do |hash|
295
+ value.each do |k, v|
296
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
297
+ end
298
+ end
299
+ else # model
300
+ # models (e.g. Pet) or oneOf
301
+ klass = EmassClient.const_get(type)
302
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
303
+ end
304
+ end
305
+
306
+ # Returns the string representation of the object
307
+ # @return [String] String presentation of the object
308
+ def to_s
309
+ to_hash.to_s
310
+ end
311
+
312
+ # to_body is an alias to to_hash (backward compatibility)
313
+ # @return [Hash] Returns the object in the form of hash
314
+ def to_body
315
+ to_hash
316
+ end
317
+
318
+ # Returns the object in the form of hash
319
+ # @return [Hash] Returns the object in the form of hash
320
+ def to_hash
321
+ hash = {}
322
+ self.class.attribute_map.each_pair do |attr, param|
323
+ value = self.send(attr)
324
+ if value.nil?
325
+ is_nullable = self.class.openapi_nullable.include?(attr)
326
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
327
+ end
328
+
329
+ hash[param] = _to_hash(value)
330
+ end
331
+ hash
332
+ end
333
+
334
+ # Outputs non-array value in the form of hash
335
+ # For object, use to_hash. Otherwise, just return the value
336
+ # @param [Object] value Any valid value
337
+ # @return [Hash] Returns the value in the form of hash
338
+ def _to_hash(value)
339
+ if value.is_a?(Array)
340
+ value.compact.map { |v| _to_hash(v) }
341
+ elsif value.is_a?(Hash)
342
+ {}.tap do |hash|
343
+ value.each { |k, v| hash[k] = _to_hash(v) }
344
+ end
345
+ elsif value.respond_to? :to_hash
346
+ value.to_hash
347
+ else
348
+ value
349
+ end
350
+ end
351
+
352
+ end
353
+
354
+ end