emasser 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (469) hide show
  1. checksums.yaml +7 -0
  2. data/.dockerignore +11 -0
  3. data/.env-example +10 -0
  4. data/.github/release-drafter.yml +16 -0
  5. data/.github/workflows/codeql-analysis.yml +70 -0
  6. data/.github/workflows/draft-release.yml +16 -0
  7. data/.github/workflows/generate_docs.yml +33 -0
  8. data/.github/workflows/gh-pages.yml +33 -0
  9. data/.github/workflows/release.yml +38 -0
  10. data/.github/workflows/rubocop.yml +23 -0
  11. data/.github/workflows/test-cli.yml +73 -0
  12. data/.gitignore +17 -0
  13. data/.mergify.yml +25 -0
  14. data/.rubocop.yml +80 -0
  15. data/.rubocop_todo.yml +27 -0
  16. data/CHANGELOG.md +16 -0
  17. data/Dockerfile +10 -0
  18. data/Gemfile +8 -0
  19. data/Gemfile.lock +110 -0
  20. data/LICENSE.md +15 -0
  21. data/README.md +108 -0
  22. data/Rakefile +18 -0
  23. data/TAGS +2393 -0
  24. data/_config.yml +2 -0
  25. data/docs/developers.md +115 -0
  26. data/docs/features.md +1193 -0
  27. data/docs/redoc/index.html +1231 -0
  28. data/docs/swagger/dist/favicon-16x16.png +0 -0
  29. data/docs/swagger/dist/favicon-32x32.png +0 -0
  30. data/docs/swagger/dist/oauth2-redirect.html +75 -0
  31. data/docs/swagger/dist/swagger-ui-bundle.js +3 -0
  32. data/docs/swagger/dist/swagger-ui-bundle.js.map +1 -0
  33. data/docs/swagger/dist/swagger-ui-es-bundle-core.js +3 -0
  34. data/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +1 -0
  35. data/docs/swagger/dist/swagger-ui-es-bundle.js +3 -0
  36. data/docs/swagger/dist/swagger-ui-es-bundle.js.map +1 -0
  37. data/docs/swagger/dist/swagger-ui-standalone-preset.js +3 -0
  38. data/docs/swagger/dist/swagger-ui-standalone-preset.js.map +1 -0
  39. data/docs/swagger/dist/swagger-ui.css +4 -0
  40. data/docs/swagger/dist/swagger-ui.css.map +1 -0
  41. data/docs/swagger/dist/swagger-ui.js +3 -0
  42. data/docs/swagger/dist/swagger-ui.js.map +1 -0
  43. data/docs/swagger/index.html +60 -0
  44. data/emass_client/eMASSRestOpenApi.yaml +5698 -0
  45. data/emass_client/ruby_client/.gitignore +39 -0
  46. data/emass_client/ruby_client/.rspec +2 -0
  47. data/emass_client/ruby_client/.rubocop.yml +154 -0
  48. data/emass_client/ruby_client/.swagger-codegen/VERSION +1 -0
  49. data/emass_client/ruby_client/.swagger-codegen-ignore +23 -0
  50. data/emass_client/ruby_client/Gemfile +9 -0
  51. data/emass_client/ruby_client/README.md +1284 -0
  52. data/emass_client/ruby_client/Rakefile +8 -0
  53. data/emass_client/ruby_client/docs/ArtifactsApi.md +284 -0
  54. data/emass_client/ruby_client/docs/ArtifactsDelete.md +6 -0
  55. data/emass_client/ruby_client/docs/ArtifactsDeleteInner.md +7 -0
  56. data/emass_client/ruby_client/docs/ArtifactsExportApi.md +76 -0
  57. data/emass_client/ruby_client/docs/ArtifactsGet.md +20 -0
  58. data/emass_client/ruby_client/docs/ArtifactsRequestPutBody.md +16 -0
  59. data/emass_client/ruby_client/docs/ArtifactsResponseDel.md +8 -0
  60. data/emass_client/ruby_client/docs/ArtifactsResponseDelData.md +9 -0
  61. data/emass_client/ruby_client/docs/ArtifactsResponseGet.md +8 -0
  62. data/emass_client/ruby_client/docs/ArtifactsResponsePutPost.md +8 -0
  63. data/emass_client/ruby_client/docs/CACApi.md +140 -0
  64. data/emass_client/ruby_client/docs/CMMCAssessmentsApi.md +71 -0
  65. data/emass_client/ruby_client/docs/CacGet.md +13 -0
  66. data/emass_client/ruby_client/docs/CacRequestPostBody.md +8 -0
  67. data/emass_client/ruby_client/docs/CacResponseGet.md +8 -0
  68. data/emass_client/ruby_client/docs/CacResponsePost.md +8 -0
  69. data/emass_client/ruby_client/docs/CacResponsePostData.md +9 -0
  70. data/emass_client/ruby_client/docs/CmmcGet.md +19 -0
  71. data/emass_client/ruby_client/docs/CmmcResponseGet.md +8 -0
  72. data/emass_client/ruby_client/docs/ConnectivityCcsd.md +8 -0
  73. data/emass_client/ruby_client/docs/ControlsApi.md +140 -0
  74. data/emass_client/ruby_client/docs/ControlsGet.md +36 -0
  75. data/emass_client/ruby_client/docs/ControlsPut.md +9 -0
  76. data/emass_client/ruby_client/docs/ControlsRequestPutBody.md +29 -0
  77. data/emass_client/ruby_client/docs/ControlsResponseGet.md +8 -0
  78. data/emass_client/ruby_client/docs/ControlsResponsePut.md +8 -0
  79. data/emass_client/ruby_client/docs/DefinitionTransitions.md +9 -0
  80. data/emass_client/ruby_client/docs/DeleteMilestone.md +7 -0
  81. data/emass_client/ruby_client/docs/DeletePoam.md +7 -0
  82. data/emass_client/ruby_client/docs/Empty200Response.md +6 -0
  83. data/emass_client/ruby_client/docs/Error.md +8 -0
  84. data/emass_client/ruby_client/docs/InstancesTransitions.md +12 -0
  85. data/emass_client/ruby_client/docs/MilestoneResponseGet.md +8 -0
  86. data/emass_client/ruby_client/docs/MilestoneResponsePost.md +8 -0
  87. data/emass_client/ruby_client/docs/MilestoneResponsePut.md +8 -0
  88. data/emass_client/ruby_client/docs/MilestonesApi.md +350 -0
  89. data/emass_client/ruby_client/docs/MilestonesDelete.md +6 -0
  90. data/emass_client/ruby_client/docs/MilestonesGet.md +12 -0
  91. data/emass_client/ruby_client/docs/MilestonesPost.md +6 -0
  92. data/emass_client/ruby_client/docs/MilestonesPut.md +6 -0
  93. data/emass_client/ruby_client/docs/MilestonesPutPostDelete.md +11 -0
  94. data/emass_client/ruby_client/docs/MilestonesRequestPostBody.md +9 -0
  95. data/emass_client/ruby_client/docs/MilestonesRequestPutBody.md +9 -0
  96. data/emass_client/ruby_client/docs/MilestonesRequiredPost.md +8 -0
  97. data/emass_client/ruby_client/docs/MilestonesRequiredPut.md +9 -0
  98. data/emass_client/ruby_client/docs/Model200.md +7 -0
  99. data/emass_client/ruby_client/docs/Model201.md +7 -0
  100. data/emass_client/ruby_client/docs/Model201Meta.md +8 -0
  101. data/emass_client/ruby_client/docs/Model400.md +7 -0
  102. data/emass_client/ruby_client/docs/Model400Meta.md +8 -0
  103. data/emass_client/ruby_client/docs/Model400Response.md +7 -0
  104. data/emass_client/ruby_client/docs/Model401.md +7 -0
  105. data/emass_client/ruby_client/docs/Model401Meta.md +8 -0
  106. data/emass_client/ruby_client/docs/Model403.md +7 -0
  107. data/emass_client/ruby_client/docs/Model403Meta.md +8 -0
  108. data/emass_client/ruby_client/docs/Model404.md +8 -0
  109. data/emass_client/ruby_client/docs/Model404Response.md +7 -0
  110. data/emass_client/ruby_client/docs/Model405.md +7 -0
  111. data/emass_client/ruby_client/docs/Model405Meta.md +8 -0
  112. data/emass_client/ruby_client/docs/Model411.md +7 -0
  113. data/emass_client/ruby_client/docs/Model411Meta.md +8 -0
  114. data/emass_client/ruby_client/docs/Model490.md +7 -0
  115. data/emass_client/ruby_client/docs/Model490Meta.md +8 -0
  116. data/emass_client/ruby_client/docs/Model500.md +7 -0
  117. data/emass_client/ruby_client/docs/Model500Meta.md +8 -0
  118. data/emass_client/ruby_client/docs/PACApi.md +137 -0
  119. data/emass_client/ruby_client/docs/POAMApi.md +346 -0
  120. data/emass_client/ruby_client/docs/PacGet.md +14 -0
  121. data/emass_client/ruby_client/docs/PacPost.md +9 -0
  122. data/emass_client/ruby_client/docs/PacRequestPostBody.md +9 -0
  123. data/emass_client/ruby_client/docs/PacResponseGet.md +8 -0
  124. data/emass_client/ruby_client/docs/PacResponsePost.md +8 -0
  125. data/emass_client/ruby_client/docs/PoamDelete.md +6 -0
  126. data/emass_client/ruby_client/docs/PoamGet.md +39 -0
  127. data/emass_client/ruby_client/docs/PoamPost.md +6 -0
  128. data/emass_client/ruby_client/docs/PoamPostPutDel.md +10 -0
  129. data/emass_client/ruby_client/docs/PoamPut.md +6 -0
  130. data/emass_client/ruby_client/docs/PoamRequestPostBody.md +6 -0
  131. data/emass_client/ruby_client/docs/PoamRequestPutBody.md +6 -0
  132. data/emass_client/ruby_client/docs/PoamRequiredPost.md +32 -0
  133. data/emass_client/ruby_client/docs/PoamRequiredPut.md +35 -0
  134. data/emass_client/ruby_client/docs/PoamResponseDelete.md +8 -0
  135. data/emass_client/ruby_client/docs/PoamResponseGet.md +8 -0
  136. data/emass_client/ruby_client/docs/PoamResponsePost.md +8 -0
  137. data/emass_client/ruby_client/docs/PoamResponsePut.md +8 -0
  138. data/emass_client/ruby_client/docs/Register.md +8 -0
  139. data/emass_client/ruby_client/docs/RegisterData.md +7 -0
  140. data/emass_client/ruby_client/docs/RegisterUserRequestPostBody.md +7 -0
  141. data/emass_client/ruby_client/docs/RegistrationApi.md +71 -0
  142. data/emass_client/ruby_client/docs/RoleCategory.md +10 -0
  143. data/emass_client/ruby_client/docs/Roles.md +9 -0
  144. data/emass_client/ruby_client/docs/Ssps.md +9 -0
  145. data/emass_client/ruby_client/docs/Stage.md +8 -0
  146. data/emass_client/ruby_client/docs/StaticCodeApplication.md +12 -0
  147. data/emass_client/ruby_client/docs/StaticCodeRequestPostBody.md +6 -0
  148. data/emass_client/ruby_client/docs/StaticCodeRequiredPost.md +8 -0
  149. data/emass_client/ruby_client/docs/StaticCodeRequiredPostApplication.md +8 -0
  150. data/emass_client/ruby_client/docs/StaticCodeScansApi.md +73 -0
  151. data/emass_client/ruby_client/docs/Success200Response.md +8 -0
  152. data/emass_client/ruby_client/docs/SystemIdArtifactsBody.md +10 -0
  153. data/emass_client/ruby_client/docs/SystemResponse.md +8 -0
  154. data/emass_client/ruby_client/docs/SystemRolesApi.md +137 -0
  155. data/emass_client/ruby_client/docs/SystemRolesCategoryResponse.md +8 -0
  156. data/emass_client/ruby_client/docs/SystemRolesResponse.md +8 -0
  157. data/emass_client/ruby_client/docs/SystemRolesResponseData.md +8 -0
  158. data/emass_client/ruby_client/docs/Systems.md +70 -0
  159. data/emass_client/ruby_client/docs/SystemsApi.md +155 -0
  160. data/emass_client/ruby_client/docs/Test.md +8 -0
  161. data/emass_client/ruby_client/docs/TestApi.md +66 -0
  162. data/emass_client/ruby_client/docs/TestData.md +7 -0
  163. data/emass_client/ruby_client/docs/TestResultsApi.md +144 -0
  164. data/emass_client/ruby_client/docs/TestResultsGet.md +15 -0
  165. data/emass_client/ruby_client/docs/TestResultsPost.md +9 -0
  166. data/emass_client/ruby_client/docs/TestResultsRequestPostBody.md +11 -0
  167. data/emass_client/ruby_client/docs/TestResultsResponseGet.md +8 -0
  168. data/emass_client/ruby_client/docs/TestResultsResponsePost.md +8 -0
  169. data/emass_client/ruby_client/docs/Users.md +9 -0
  170. data/emass_client/ruby_client/docs/WorkflowDefinitionGet.md +11 -0
  171. data/emass_client/ruby_client/docs/WorkflowDefinitionResponseGet.md +8 -0
  172. data/emass_client/ruby_client/docs/WorkflowDefinitionsApi.md +74 -0
  173. data/emass_client/ruby_client/docs/WorkflowInstancesApi.md +146 -0
  174. data/emass_client/ruby_client/docs/WorkflowInstancesGet.md +16 -0
  175. data/emass_client/ruby_client/docs/WorkflowInstancesResponseGet.md +8 -0
  176. data/emass_client/ruby_client/git_push.sh +55 -0
  177. data/emass_client/ruby_client/lib/swagger_client/api/artifacts_api.rb +310 -0
  178. data/emass_client/ruby_client/lib/swagger_client/api/artifacts_export_api.rb +86 -0
  179. data/emass_client/ruby_client/lib/swagger_client/api/cac_api.rb +143 -0
  180. data/emass_client/ruby_client/lib/swagger_client/api/cmmc_assessments_api.rb +77 -0
  181. data/emass_client/ruby_client/lib/swagger_client/api/controls_api.rb +143 -0
  182. data/emass_client/ruby_client/lib/swagger_client/api/milestones_api.rb +366 -0
  183. data/emass_client/ruby_client/lib/swagger_client/api/pac_api.rb +140 -0
  184. data/emass_client/ruby_client/lib/swagger_client/api/poam_api.rb +345 -0
  185. data/emass_client/ruby_client/lib/swagger_client/api/registration_api.rb +78 -0
  186. data/emass_client/ruby_client/lib/swagger_client/api/static_code_scans_api.rb +84 -0
  187. data/emass_client/ruby_client/lib/swagger_client/api/system_roles_api.rb +150 -0
  188. data/emass_client/ruby_client/lib/swagger_client/api/systems_api.rb +162 -0
  189. data/emass_client/ruby_client/lib/swagger_client/api/test_api.rb +70 -0
  190. data/emass_client/ruby_client/lib/swagger_client/api/test_results_api.rb +149 -0
  191. data/emass_client/ruby_client/lib/swagger_client/api/workflow_definitions_api.rb +76 -0
  192. data/emass_client/ruby_client/lib/swagger_client/api/workflow_instances_api.rb +153 -0
  193. data/emass_client/ruby_client/lib/swagger_client/api_client.rb +389 -0
  194. data/emass_client/ruby_client/lib/swagger_client/api_error.rb +57 -0
  195. data/emass_client/ruby_client/lib/swagger_client/configuration.rb +224 -0
  196. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_delete.rb +201 -0
  197. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_delete_inner.rb +207 -0
  198. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_get.rb +383 -0
  199. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_request_put_body.rb +363 -0
  200. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_del.rb +217 -0
  201. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_del_data.rb +225 -0
  202. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_get.rb +217 -0
  203. data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_put_post.rb +217 -0
  204. data/emass_client/ruby_client/lib/swagger_client/models/cac_get.rb +301 -0
  205. data/emass_client/ruby_client/lib/swagger_client/models/cac_request_post_body.rb +217 -0
  206. data/emass_client/ruby_client/lib/swagger_client/models/cac_response_get.rb +217 -0
  207. data/emass_client/ruby_client/lib/swagger_client/models/cac_response_post.rb +217 -0
  208. data/emass_client/ruby_client/lib/swagger_client/models/cac_response_post_data.rb +225 -0
  209. data/emass_client/ruby_client/lib/swagger_client/models/cmmc_get.rb +398 -0
  210. data/emass_client/ruby_client/lib/swagger_client/models/cmmc_response_get.rb +217 -0
  211. data/emass_client/ruby_client/lib/swagger_client/models/connectivity_ccsd.rb +217 -0
  212. data/emass_client/ruby_client/lib/swagger_client/models/controls_get.rb +663 -0
  213. data/emass_client/ruby_client/lib/swagger_client/models/controls_put.rb +227 -0
  214. data/emass_client/ruby_client/lib/swagger_client/models/controls_request_put_body.rb +606 -0
  215. data/emass_client/ruby_client/lib/swagger_client/models/controls_response_get.rb +217 -0
  216. data/emass_client/ruby_client/lib/swagger_client/models/controls_response_put.rb +217 -0
  217. data/emass_client/ruby_client/lib/swagger_client/models/definition_transitions.rb +274 -0
  218. data/emass_client/ruby_client/lib/swagger_client/models/delete_milestone.rb +212 -0
  219. data/emass_client/ruby_client/lib/swagger_client/models/delete_poam.rb +212 -0
  220. data/emass_client/ruby_client/lib/swagger_client/models/empty200_response.rb +197 -0
  221. data/emass_client/ruby_client/lib/swagger_client/models/error.rb +225 -0
  222. data/emass_client/ruby_client/lib/swagger_client/models/instances_transitions.rb +327 -0
  223. data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_get.rb +217 -0
  224. data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_post.rb +217 -0
  225. data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_put.rb +217 -0
  226. data/emass_client/ruby_client/lib/swagger_client/models/milestones_delete.rb +197 -0
  227. data/emass_client/ruby_client/lib/swagger_client/models/milestones_get.rb +291 -0
  228. data/emass_client/ruby_client/lib/swagger_client/models/milestones_post.rb +197 -0
  229. data/emass_client/ruby_client/lib/swagger_client/models/milestones_put.rb +197 -0
  230. data/emass_client/ruby_client/lib/swagger_client/models/milestones_put_post_delete.rb +247 -0
  231. data/emass_client/ruby_client/lib/swagger_client/models/milestones_request_post_body.rb +242 -0
  232. data/emass_client/ruby_client/lib/swagger_client/models/milestones_request_put_body.rb +242 -0
  233. data/emass_client/ruby_client/lib/swagger_client/models/milestones_required_post.rb +227 -0
  234. data/emass_client/ruby_client/lib/swagger_client/models/milestones_required_put.rb +242 -0
  235. data/emass_client/ruby_client/lib/swagger_client/models/model_200.rb +208 -0
  236. data/emass_client/ruby_client/lib/swagger_client/models/model_201.rb +206 -0
  237. data/emass_client/ruby_client/lib/swagger_client/models/model_201_meta.rb +219 -0
  238. data/emass_client/ruby_client/lib/swagger_client/models/model_400.rb +206 -0
  239. data/emass_client/ruby_client/lib/swagger_client/models/model_400_meta.rb +219 -0
  240. data/emass_client/ruby_client/lib/swagger_client/models/model_400_response.rb +206 -0
  241. data/emass_client/ruby_client/lib/swagger_client/models/model_401.rb +206 -0
  242. data/emass_client/ruby_client/lib/swagger_client/models/model_401_meta.rb +219 -0
  243. data/emass_client/ruby_client/lib/swagger_client/models/model_403.rb +206 -0
  244. data/emass_client/ruby_client/lib/swagger_client/models/model_403_meta.rb +219 -0
  245. data/emass_client/ruby_client/lib/swagger_client/models/model_404.rb +219 -0
  246. data/emass_client/ruby_client/lib/swagger_client/models/model_404_response.rb +206 -0
  247. data/emass_client/ruby_client/lib/swagger_client/models/model_405.rb +206 -0
  248. data/emass_client/ruby_client/lib/swagger_client/models/model_405_meta.rb +219 -0
  249. data/emass_client/ruby_client/lib/swagger_client/models/model_411.rb +206 -0
  250. data/emass_client/ruby_client/lib/swagger_client/models/model_411_meta.rb +219 -0
  251. data/emass_client/ruby_client/lib/swagger_client/models/model_490.rb +206 -0
  252. data/emass_client/ruby_client/lib/swagger_client/models/model_490_meta.rb +219 -0
  253. data/emass_client/ruby_client/lib/swagger_client/models/model_500.rb +206 -0
  254. data/emass_client/ruby_client/lib/swagger_client/models/model_500_meta.rb +219 -0
  255. data/emass_client/ruby_client/lib/swagger_client/models/pac_get.rb +311 -0
  256. data/emass_client/ruby_client/lib/swagger_client/models/pac_post.rb +259 -0
  257. data/emass_client/ruby_client/lib/swagger_client/models/pac_request_post_body.rb +261 -0
  258. data/emass_client/ruby_client/lib/swagger_client/models/pac_response_get.rb +217 -0
  259. data/emass_client/ruby_client/lib/swagger_client/models/pac_response_post.rb +217 -0
  260. data/emass_client/ruby_client/lib/swagger_client/models/poam_delete.rb +197 -0
  261. data/emass_client/ruby_client/lib/swagger_client/models/poam_get.rb +646 -0
  262. data/emass_client/ruby_client/lib/swagger_client/models/poam_post.rb +197 -0
  263. data/emass_client/ruby_client/lib/swagger_client/models/poam_post_put_del.rb +237 -0
  264. data/emass_client/ruby_client/lib/swagger_client/models/poam_put.rb +197 -0
  265. data/emass_client/ruby_client/lib/swagger_client/models/poam_request_post_body.rb +197 -0
  266. data/emass_client/ruby_client/lib/swagger_client/models/poam_request_put_body.rb +197 -0
  267. data/emass_client/ruby_client/lib/swagger_client/models/poam_required_post.rb +564 -0
  268. data/emass_client/ruby_client/lib/swagger_client/models/poam_required_put.rb +594 -0
  269. data/emass_client/ruby_client/lib/swagger_client/models/poam_response_delete.rb +217 -0
  270. data/emass_client/ruby_client/lib/swagger_client/models/poam_response_get.rb +217 -0
  271. data/emass_client/ruby_client/lib/swagger_client/models/poam_response_post.rb +217 -0
  272. data/emass_client/ruby_client/lib/swagger_client/models/poam_response_put.rb +217 -0
  273. data/emass_client/ruby_client/lib/swagger_client/models/register.rb +215 -0
  274. data/emass_client/ruby_client/lib/swagger_client/models/register_data.rb +206 -0
  275. data/emass_client/ruby_client/lib/swagger_client/models/register_user_request_post_body.rb +211 -0
  276. data/emass_client/ruby_client/lib/swagger_client/models/role_category.rb +272 -0
  277. data/emass_client/ruby_client/lib/swagger_client/models/roles.rb +274 -0
  278. data/emass_client/ruby_client/lib/swagger_client/models/ssps.rb +227 -0
  279. data/emass_client/ruby_client/lib/swagger_client/models/stage.rb +252 -0
  280. data/emass_client/ruby_client/lib/swagger_client/models/static_code_application.rb +303 -0
  281. data/emass_client/ruby_client/lib/swagger_client/models/static_code_request_post_body.rb +197 -0
  282. data/emass_client/ruby_client/lib/swagger_client/models/static_code_required_post.rb +217 -0
  283. data/emass_client/ruby_client/lib/swagger_client/models/static_code_required_post_application.rb +217 -0
  284. data/emass_client/ruby_client/lib/swagger_client/models/success200_response.rb +217 -0
  285. data/emass_client/ruby_client/lib/swagger_client/models/system_id_artifacts_body.rb +284 -0
  286. data/emass_client/ruby_client/lib/swagger_client/models/system_response.rb +217 -0
  287. data/emass_client/ruby_client/lib/swagger_client/models/system_roles_category_response.rb +217 -0
  288. data/emass_client/ruby_client/lib/swagger_client/models/system_roles_response.rb +217 -0
  289. data/emass_client/ruby_client/lib/swagger_client/models/system_roles_response_data.rb +219 -0
  290. data/emass_client/ruby_client/lib/swagger_client/models/systems.rb +1137 -0
  291. data/emass_client/ruby_client/lib/swagger_client/models/test.rb +215 -0
  292. data/emass_client/ruby_client/lib/swagger_client/models/test_data.rb +206 -0
  293. data/emass_client/ruby_client/lib/swagger_client/models/test_results_get.rb +333 -0
  294. data/emass_client/ruby_client/lib/swagger_client/models/test_results_post.rb +227 -0
  295. data/emass_client/ruby_client/lib/swagger_client/models/test_results_request_post_body.rb +306 -0
  296. data/emass_client/ruby_client/lib/swagger_client/models/test_results_response_get.rb +217 -0
  297. data/emass_client/ruby_client/lib/swagger_client/models/test_results_response_post.rb +217 -0
  298. data/emass_client/ruby_client/lib/swagger_client/models/users.rb +224 -0
  299. data/emass_client/ruby_client/lib/swagger_client/models/workflow_definition_get.rb +282 -0
  300. data/emass_client/ruby_client/lib/swagger_client/models/workflow_definition_response_get.rb +217 -0
  301. data/emass_client/ruby_client/lib/swagger_client/models/workflow_instances_get.rb +368 -0
  302. data/emass_client/ruby_client/lib/swagger_client/models/workflow_instances_response_get.rb +217 -0
  303. data/emass_client/ruby_client/lib/swagger_client/version.rb +14 -0
  304. data/emass_client/ruby_client/lib/swagger_client.rb +161 -0
  305. data/emass_client/ruby_client/spec/api/artifacts_api_spec.rb +92 -0
  306. data/emass_client/ruby_client/spec/api/artifacts_export_api_spec.rb +48 -0
  307. data/emass_client/ruby_client/spec/api/cac_api_spec.rb +60 -0
  308. data/emass_client/ruby_client/spec/api/cmmc_assessments_api_spec.rb +46 -0
  309. data/emass_client/ruby_client/spec/api/controls_api_spec.rb +60 -0
  310. data/emass_client/ruby_client/spec/api/milestones_api_spec.rb +105 -0
  311. data/emass_client/ruby_client/spec/api/pac_api_spec.rb +59 -0
  312. data/emass_client/ruby_client/spec/api/poam_api_spec.rb +103 -0
  313. data/emass_client/ruby_client/spec/api/registration_api_spec.rb +46 -0
  314. data/emass_client/ruby_client/spec/api/static_code_scans_api_spec.rb +47 -0
  315. data/emass_client/ruby_client/spec/api/system_roles_api_spec.rb +60 -0
  316. data/emass_client/ruby_client/spec/api/systems_api_spec.rb +67 -0
  317. data/emass_client/ruby_client/spec/api/test_api_spec.rb +45 -0
  318. data/emass_client/ruby_client/spec/api/test_results_api_spec.rb +62 -0
  319. data/emass_client/ruby_client/spec/api/workflow_definitions_api_spec.rb +47 -0
  320. data/emass_client/ruby_client/spec/api/workflow_instances_api_spec.rb +63 -0
  321. data/emass_client/ruby_client/spec/api_client_spec.rb +225 -0
  322. data/emass_client/ruby_client/spec/base_object_spec.rb +109 -0
  323. data/emass_client/ruby_client/spec/configuration_spec.rb +41 -0
  324. data/emass_client/ruby_client/spec/models/artifacts_delete_inner_spec.rb +40 -0
  325. data/emass_client/ruby_client/spec/models/artifacts_delete_spec.rb +34 -0
  326. data/emass_client/ruby_client/spec/models/artifacts_get_spec.rb +126 -0
  327. data/emass_client/ruby_client/spec/models/artifacts_request_put_body_spec.rb +102 -0
  328. data/emass_client/ruby_client/spec/models/artifacts_response_del_data_spec.rb +52 -0
  329. data/emass_client/ruby_client/spec/models/artifacts_response_del_spec.rb +46 -0
  330. data/emass_client/ruby_client/spec/models/artifacts_response_get_spec.rb +46 -0
  331. data/emass_client/ruby_client/spec/models/artifacts_response_put_post_spec.rb +46 -0
  332. data/emass_client/ruby_client/spec/models/cac_get_spec.rb +80 -0
  333. data/emass_client/ruby_client/spec/models/cac_request_post_body_spec.rb +46 -0
  334. data/emass_client/ruby_client/spec/models/cac_response_get_spec.rb +46 -0
  335. data/emass_client/ruby_client/spec/models/cac_response_post_data_spec.rb +52 -0
  336. data/emass_client/ruby_client/spec/models/cac_response_post_spec.rb +46 -0
  337. data/emass_client/ruby_client/spec/models/cmmc_get_spec.rb +128 -0
  338. data/emass_client/ruby_client/spec/models/cmmc_response_get_spec.rb +46 -0
  339. data/emass_client/ruby_client/spec/models/connectivity_ccsd_spec.rb +46 -0
  340. data/emass_client/ruby_client/spec/models/controls_get_spec.rb +262 -0
  341. data/emass_client/ruby_client/spec/models/controls_put_spec.rb +52 -0
  342. data/emass_client/ruby_client/spec/models/controls_request_put_body_spec.rb +216 -0
  343. data/emass_client/ruby_client/spec/models/controls_response_get_spec.rb +46 -0
  344. data/emass_client/ruby_client/spec/models/controls_response_put_spec.rb +46 -0
  345. data/emass_client/ruby_client/spec/models/definition_transitions_spec.rb +64 -0
  346. data/emass_client/ruby_client/spec/models/delete_milestone_spec.rb +40 -0
  347. data/emass_client/ruby_client/spec/models/delete_poam_spec.rb +40 -0
  348. data/emass_client/ruby_client/spec/models/empty200_response_spec.rb +34 -0
  349. data/emass_client/ruby_client/spec/models/error_spec.rb +46 -0
  350. data/emass_client/ruby_client/spec/models/instances_transitions_spec.rb +86 -0
  351. data/emass_client/ruby_client/spec/models/milestone_response_get_spec.rb +46 -0
  352. data/emass_client/ruby_client/spec/models/milestone_response_post_spec.rb +46 -0
  353. data/emass_client/ruby_client/spec/models/milestone_response_put_spec.rb +46 -0
  354. data/emass_client/ruby_client/spec/models/milestones_delete_spec.rb +34 -0
  355. data/emass_client/ruby_client/spec/models/milestones_get_spec.rb +74 -0
  356. data/emass_client/ruby_client/spec/models/milestones_post_spec.rb +34 -0
  357. data/emass_client/ruby_client/spec/models/milestones_put_post_delete_spec.rb +64 -0
  358. data/emass_client/ruby_client/spec/models/milestones_put_spec.rb +34 -0
  359. data/emass_client/ruby_client/spec/models/milestones_request_post_body_spec.rb +52 -0
  360. data/emass_client/ruby_client/spec/models/milestones_request_put_body_spec.rb +52 -0
  361. data/emass_client/ruby_client/spec/models/milestones_required_post_spec.rb +46 -0
  362. data/emass_client/ruby_client/spec/models/milestones_required_put_spec.rb +52 -0
  363. data/emass_client/ruby_client/spec/models/model_200_spec.rb +40 -0
  364. data/emass_client/ruby_client/spec/models/model_201_meta_spec.rb +46 -0
  365. data/emass_client/ruby_client/spec/models/model_201_spec.rb +40 -0
  366. data/emass_client/ruby_client/spec/models/model_400_meta_spec.rb +46 -0
  367. data/emass_client/ruby_client/spec/models/model_400_response_spec.rb +40 -0
  368. data/emass_client/ruby_client/spec/models/model_400_spec.rb +40 -0
  369. data/emass_client/ruby_client/spec/models/model_401_meta_spec.rb +46 -0
  370. data/emass_client/ruby_client/spec/models/model_401_spec.rb +40 -0
  371. data/emass_client/ruby_client/spec/models/model_403_meta_spec.rb +46 -0
  372. data/emass_client/ruby_client/spec/models/model_403_spec.rb +40 -0
  373. data/emass_client/ruby_client/spec/models/model_404_response_spec.rb +40 -0
  374. data/emass_client/ruby_client/spec/models/model_404_spec.rb +46 -0
  375. data/emass_client/ruby_client/spec/models/model_405_meta_spec.rb +46 -0
  376. data/emass_client/ruby_client/spec/models/model_405_spec.rb +40 -0
  377. data/emass_client/ruby_client/spec/models/model_411_meta_spec.rb +46 -0
  378. data/emass_client/ruby_client/spec/models/model_411_spec.rb +40 -0
  379. data/emass_client/ruby_client/spec/models/model_490_meta_spec.rb +46 -0
  380. data/emass_client/ruby_client/spec/models/model_490_spec.rb +40 -0
  381. data/emass_client/ruby_client/spec/models/model_500_meta_spec.rb +46 -0
  382. data/emass_client/ruby_client/spec/models/model_500_spec.rb +40 -0
  383. data/emass_client/ruby_client/spec/models/pac_get_spec.rb +86 -0
  384. data/emass_client/ruby_client/spec/models/pac_post_spec.rb +56 -0
  385. data/emass_client/ruby_client/spec/models/pac_request_post_body_spec.rb +56 -0
  386. data/emass_client/ruby_client/spec/models/pac_response_get_spec.rb +46 -0
  387. data/emass_client/ruby_client/spec/models/pac_response_post_spec.rb +46 -0
  388. data/emass_client/ruby_client/spec/models/poam_delete_spec.rb +34 -0
  389. data/emass_client/ruby_client/spec/models/poam_get_spec.rb +264 -0
  390. data/emass_client/ruby_client/spec/models/poam_post_put_del_spec.rb +58 -0
  391. data/emass_client/ruby_client/spec/models/poam_post_spec.rb +34 -0
  392. data/emass_client/ruby_client/spec/models/poam_put_spec.rb +34 -0
  393. data/emass_client/ruby_client/spec/models/poam_request_post_body_spec.rb +34 -0
  394. data/emass_client/ruby_client/spec/models/poam_request_put_body_spec.rb +34 -0
  395. data/emass_client/ruby_client/spec/models/poam_required_post_spec.rb +218 -0
  396. data/emass_client/ruby_client/spec/models/poam_required_put_spec.rb +236 -0
  397. data/emass_client/ruby_client/spec/models/poam_response_delete_spec.rb +46 -0
  398. data/emass_client/ruby_client/spec/models/poam_response_get_spec.rb +46 -0
  399. data/emass_client/ruby_client/spec/models/poam_response_post_spec.rb +46 -0
  400. data/emass_client/ruby_client/spec/models/poam_response_put_spec.rb +46 -0
  401. data/emass_client/ruby_client/spec/models/register_data_spec.rb +40 -0
  402. data/emass_client/ruby_client/spec/models/register_spec.rb +46 -0
  403. data/emass_client/ruby_client/spec/models/register_user_request_post_body_spec.rb +40 -0
  404. data/emass_client/ruby_client/spec/models/role_category_spec.rb +62 -0
  405. data/emass_client/ruby_client/spec/models/roles_spec.rb +60 -0
  406. data/emass_client/ruby_client/spec/models/ssps_spec.rb +52 -0
  407. data/emass_client/ruby_client/spec/models/stage_spec.rb +50 -0
  408. data/emass_client/ruby_client/spec/models/static_code_application_spec.rb +78 -0
  409. data/emass_client/ruby_client/spec/models/static_code_request_post_body_spec.rb +34 -0
  410. data/emass_client/ruby_client/spec/models/static_code_required_post_application_spec.rb +46 -0
  411. data/emass_client/ruby_client/spec/models/static_code_required_post_spec.rb +46 -0
  412. data/emass_client/ruby_client/spec/models/success200_response_spec.rb +46 -0
  413. data/emass_client/ruby_client/spec/models/system_id_artifacts_body_spec.rb +66 -0
  414. data/emass_client/ruby_client/spec/models/system_response_spec.rb +46 -0
  415. data/emass_client/ruby_client/spec/models/system_roles_category_response_spec.rb +46 -0
  416. data/emass_client/ruby_client/spec/models/system_roles_response_data_spec.rb +46 -0
  417. data/emass_client/ruby_client/spec/models/system_roles_response_spec.rb +46 -0
  418. data/emass_client/ruby_client/spec/models/systems_spec.rb +510 -0
  419. data/emass_client/ruby_client/spec/models/test_data_spec.rb +40 -0
  420. data/emass_client/ruby_client/spec/models/test_results_get_spec.rb +96 -0
  421. data/emass_client/ruby_client/spec/models/test_results_post_spec.rb +52 -0
  422. data/emass_client/ruby_client/spec/models/test_results_request_post_body_spec.rb +68 -0
  423. data/emass_client/ruby_client/spec/models/test_results_response_get_spec.rb +46 -0
  424. data/emass_client/ruby_client/spec/models/test_results_response_post_spec.rb +46 -0
  425. data/emass_client/ruby_client/spec/models/test_spec.rb +46 -0
  426. data/emass_client/ruby_client/spec/models/users_spec.rb +52 -0
  427. data/emass_client/ruby_client/spec/models/workflow_definition_get_spec.rb +68 -0
  428. data/emass_client/ruby_client/spec/models/workflow_definition_response_get_spec.rb +46 -0
  429. data/emass_client/ruby_client/spec/models/workflow_instances_get_spec.rb +110 -0
  430. data/emass_client/ruby_client/spec/models/workflow_instances_response_get_spec.rb +46 -0
  431. data/emass_client/ruby_client/spec/spec_helper.rb +110 -0
  432. data/emass_client/ruby_client/swagger_client.gemspec +38 -0
  433. data/emass_client/swagger-codegen/ruby_template/api_client.mustache +384 -0
  434. data/emass_client/swagger-codegen/ruby_template/api_info.mustache +12 -0
  435. data/emass_client/swagger-codegen/ruby_template/configuration.mustache +234 -0
  436. data/emass_client/swagger-codegen/ruby_template/gemspec.mustache +37 -0
  437. data/emasser.gemspec +40 -0
  438. data/exe/emasser +5 -0
  439. data/lib/emasser/cli.rb +25 -0
  440. data/lib/emasser/configuration.rb +34 -0
  441. data/lib/emasser/constants.rb +18 -0
  442. data/lib/emasser/delete.rb +146 -0
  443. data/lib/emasser/errors.rb +14 -0
  444. data/lib/emasser/get.rb +675 -0
  445. data/lib/emasser/help/approvalCac_post_mapper.md +20 -0
  446. data/lib/emasser/help/approvalPac_post_mapper.md +20 -0
  447. data/lib/emasser/help/artifacts_del_mapper.md +9 -0
  448. data/lib/emasser/help/artifacts_post_mapper.md +59 -0
  449. data/lib/emasser/help/artifacts_put_mapper.md +34 -0
  450. data/lib/emasser/help/cmmc_get_mapper.md +4 -0
  451. data/lib/emasser/help/controls_put_mapper.md +74 -0
  452. data/lib/emasser/help/milestone_del_mapper.md +11 -0
  453. data/lib/emasser/help/milestone_post_mapper.md +14 -0
  454. data/lib/emasser/help/milestone_put_mapper.md +23 -0
  455. data/lib/emasser/help/poam_del_mapper.md +5 -0
  456. data/lib/emasser/help/poam_post_mapper.md +93 -0
  457. data/lib/emasser/help/poam_put_mapper.md +107 -0
  458. data/lib/emasser/help/staticcode_clear_mapper.md +16 -0
  459. data/lib/emasser/help/staticcode_post_mapper.md +21 -0
  460. data/lib/emasser/help/testresults_post_mapper.md +21 -0
  461. data/lib/emasser/help.rb +11 -0
  462. data/lib/emasser/input_converters.rb +21 -0
  463. data/lib/emasser/options_parser.rb +20 -0
  464. data/lib/emasser/output_converters.rb +14 -0
  465. data/lib/emasser/post.rb +609 -0
  466. data/lib/emasser/put.rb +581 -0
  467. data/lib/emasser/version.rb +5 -0
  468. data/lib/emasser.rb +19 -0
  469. metadata +725 -0
data/docs/features.md ADDED
@@ -0,0 +1,1193 @@
1
+ # emasser CLI Features
2
+
3
+ ## Required Environment Variables
4
+ To facilitate setting the required environment variables the emasser CLI utilized the zero-dependency module to load these variables from a .env file. An .env-example file is provided with the required fields (listed below).
5
+
6
+ emasser environment variables required:
7
+ * EMASSER_API_KEY_API_KEY=`<API key>`
8
+ * EMASSER_API_KEY_USER_UID=`<unique identifier for the API Key (EMASSER_API_KEY_API_KEY)`
9
+ * EMASSER_HOST=`<FQDN of the eMASS server>`
10
+ * EMASSER_KEY_FILE_PATH=`<path to your eMASS key in PEM format>`
11
+ * EMASSER_CERT_FILE_PATH=`<path to your eMASS certificate in PEM format>`
12
+ * EMASSER_KEY_PASSWORD=`<password for the key given in EMASSER_KEY_FILE_PATH>`
13
+ * EMASSER_CLIENT_SIDE_VALIDATION=`<client side validation - true or false>`
14
+ * EMASSER_VERIFY_SSL=`<verify SSL - true or false>`
15
+ * EMASSER_VERIFY_SSL_HOST=`<verify host SSL - true or false>`
16
+ * EMASSER_DEBUGGING=`<set debugging - true or false>`
17
+
18
+ ## Common emasser Endpoint Requests Information
19
+ - To invoke any boolean parameters use --parameterName for TRUE and --no-parameterName for FALSE
20
+ - The eMASS API provides the capability of updating multiple entries within several endpoints, however this CLI only supports updating one entry at the time.
21
+
22
+ ## Invoking emmaser CLI Commands
23
+
24
+ The CLI invoke commands listed in this document shows them when executing from the source code (after a pull from GitHub). If an executable (.gem) is created the command to invoke the endpoint is different. For example:
25
+ - Invoking the GET systems endpoint from the source code is:
26
+
27
+ bundle exec exe/emasser get systems all
28
+
29
+ - Invoking the GET systems endpoint from the compile binary (.gem) is:
30
+
31
+ emasser get systems all
32
+
33
+ ## API Endpoints Provided
34
+
35
+ ### GET
36
+ * [/api](#get-test-connection)
37
+ * [/api/system](#get-system)
38
+ * [/api/systems](#get-systems)
39
+ * [/api/system-roles](#get-roles)
40
+ * [/api/system-roles/{roleCategory}](#get-roles)
41
+ * [/api/systems/{systemId}/controls](#get-controls)
42
+ * [/api/systems/{systemId}/test-results](#get-test_results)
43
+ * [/api/systems/{systemId}/poams](#get-poams)
44
+ * [/api/systems/{systemId}/poams/{poamId}](#get-poams)
45
+ * [/api/systems/{systemId}/poams/{poamId}/milestones](#get-milestones)
46
+ * [/api/systems/{systemId}/poams/{poamId}/milestones/{milestoneId})](#get-milestones)
47
+ * [/api/systems/{systemId}/artifacts](#get-artifacts)
48
+ * [/api/systems/{systemId}/artifacts-export](#get-artifacts)
49
+ * [/api/systems/{systemId}/approval/cac](#get-cac)
50
+ * [/api/systems/{systemId}/approval/pac](#get-pac)
51
+ * [/api/cmmc-assessments](#get-cmmc)
52
+ * [/api/workflow-definitions](#get-workflow_definitions)
53
+ * [/api/systems/{systemId}/workflow-instances](#get-workflow_instances)
54
+
55
+ ### POST
56
+ * [/api/systems/{systemId}/test-results](#post-test_results)
57
+ * [/api/systems/{systemId}/poam](#post-poams)
58
+ * [/api/systems/{systemId}/poam/{poamId}/milestones](#post-milestones)
59
+ * [/api/systems/{systemId}/artifacts](#post-artifacts)
60
+ * [/api/systems/{systemId}/approval/cac](#post-cac)
61
+ * [/api/systems/{systemId}/approval/pac](#post-pac)
62
+ * [/api/systems/{systemId}/static-code-scans](#post-static_code_scan)
63
+
64
+ ### PUT
65
+ * [/api/systems/{systemId}/controls](#put-controls)
66
+ * [/api/systems/{systemId}/poams](#put-poams)
67
+ * [/api/systems/{systemId}/poams/{poamId}/milestones](#put-milestones)
68
+ * [/api/systems/{systemId}/artifacts](#put-artifacts)
69
+
70
+ ### DELETE
71
+ * [/api/systems/{systemId}/poams](#delete-poams)
72
+ * [/api/systems/{systemId}/poams/{poamId}/milestones](#delete-milestones)
73
+ * [/api/systems/{systemId}/artifacts](#delete-artifacts)
74
+
75
+ ## Endpoints CLI help
76
+
77
+ Each CLI endpoint command has several layers of help.
78
+ - Using `help` after a `get, put, post, or delete` command lists all available endpoint calls
79
+
80
+ ```
81
+ $ bundle exec exe/emasser get help
82
+ ```
83
+
84
+ would list all available `GET` endpoint Commands:
85
+
86
+ - emasser get approval ...
87
+ - emasser get artifacts ...
88
+ - emasser get controls ...
89
+ - emasser get help [COMMAND] ...
90
+ - emasser get poams ...
91
+ - emasser get roles ...
92
+ - emasser get system [--system-name [SYSTEM_NAME]] [--system-owner [SYSTEM_OW...
93
+ - emasser get systems [options] ...
94
+ - emasser get test_results ...
95
+
96
+ - Preceding any command with `help` provides help for the command
97
+
98
+ ```
99
+ $ bundle exec exe/emasser get help artifacts
100
+ ```
101
+ would list all available sub-commands and options for the `get artifacts` endpoint commands:
102
+ - emasser get artifacts export --filename=FILENAME --systemId=N # Get artifa...
103
+ - emasser get artifacts help [COMMAND] # Describe s...
104
+ - emasser get artifacts system --systemId=N # Get all sy...
105
+
106
+ - Using `help` after any command lists all available options
107
+
108
+ ```
109
+ $ bundle exec exe/emasser get artifacts help export
110
+ ```
111
+ would list all available options for the `get artifacts export` endpoint command:
112
+ - Usage:
113
+ - emasser get artifacts export --filename=FILENAME --systemId=N
114
+ - Options:
115
+ - --systemId=N # A numeric value representing the system identification
116
+ - --filename=FILENAME # The artifact file name
117
+ - --compress # BOOLEAN - true or false.
118
+
119
+ **The same format is applicable to POST, PUT and DELETE requests as well, however there may be additional help content**
120
+
121
+
122
+ ## Usage - GET
123
+
124
+ ### ```get test connection```
125
+ [top](#api-endpoints-provided)
126
+
127
+ ---
128
+ The Test Connection endpoint provides the ability to verify connection to the web service.
129
+
130
+ $ bundle exec exe/emasser get test connection
131
+
132
+ A return of success from the call indicates that the CLI can reach the configure server URL.
133
+ References [Required Environment Variables](#required-environment-variables) list above.
134
+
135
+ ### ```get system```
136
+ [top](#api-endpoints-provided)
137
+
138
+ ---
139
+ The `get system id` is a notified call by the CLI to find a system ID based on the system `name` or `owner`
140
+
141
+ The `get system byId` is an eMASS GET request
142
+
143
+ ### get system id
144
+ Retrieves a system identification based on the SYSTEM_NAME (name) or SYSTEM_OWNER (systemOwner) fields.
145
+
146
+ **NOTE** This call is based on the /api/systems endpoint
147
+
148
+ To invoke the `get system` use the following command:
149
+
150
+ $ bundle exec exe/emasser get system id --system_name "system name" --system_owner "system owner"
151
+
152
+ If using a platform that has `awk` installed the following command can be used to return only the system Id:
153
+
154
+ $ bundle exec exe/emasser get system --system_name "system name" --system_owner "system owner" | awk "{ print $1 }"
155
+
156
+
157
+ ### get system byId
158
+ To view a system by its identification (Id) use the following command:
159
+
160
+ $ bundle exec exe/emasser get system byId
161
+
162
+ - required parameter is:
163
+
164
+ |parameter | type or values |
165
+ |-------------|:----------------------------------|
166
+ |--systemId |Integer - Unique system identifier |
167
+
168
+ - Optional parameters are:
169
+
170
+ |parameter | type or values |
171
+ |------------------------|:----------------------------------------|
172
+ |--includePackage |BOOLEAN - true or false |
173
+ |--policy |Possible values: diacap, rmf, reporting |
174
+
175
+
176
+ ### ```get systems```
177
+ [top](#api-endpoints-provided)
178
+
179
+ ----
180
+ To view systems use the following command:
181
+
182
+ $ bundle exec exe/emasser get systems all
183
+
184
+ - Optional parameters are:
185
+
186
+ |parameter | type or values |
187
+ |------------------------|:----------------------------------------------------------------------------|
188
+ |--coamsId |Cyber Operational Attributes Management System (COAMS) string Id |
189
+ |--ditprId |DoD Information Technology (IT) Portfolio Repository (DITPR) string id |
190
+ |--includeDecommissioned |BOOLEAN - true or false |
191
+ |--includeDitprMetrics |BOOLEAN - true or false |
192
+ |--includePackage |BOOLEAN - true or false |
193
+ |--policy |Possible values: diacap, rmf, reporting |
194
+ |--registrationType |Possible values: assessAndAuthorize, assessOnly, guest, regular, functional, |
195
+ | | loudServiceProvider, commonControlProvider |
196
+ |--reportsForScorecard |BOOLEAN - true or false |
197
+
198
+
199
+ ### ```get roles```
200
+ [top](#api-endpoints-provided)
201
+
202
+ ----
203
+ There are two get endpoints for system roles:
204
+ - all - Retrieves all available roles
205
+ ```
206
+ $ bundle exec exe/emasser get roles all
207
+ ```
208
+ - byCategory - Retrieves roles based on the following required parameter:
209
+ ````
210
+ $ bundle exec exe/emasser get roles byCategory --roleCategory=ROLECATEGORY --role=ROLE
211
+ ````
212
+ - required parameters are:
213
+
214
+ |parameter | type or values |
215
+ |:---------------|:------------------------------------------|
216
+ |--roleCategory |Possible values: PAC, CAC, Other |
217
+ |--role |Possible values: AO, Auditor, Artifact Manager, C&A Team, IAO, ISSO, PM/IAM, SCA, User Rep (View Only), Validator (IV&V)|
218
+
219
+ - optional parameter are:
220
+
221
+ |parameter | type or values |
222
+ |------------------------|:----------------------------------------|
223
+ |--policy |Possible values: diacap, rmf, reporting |
224
+ |--includeDecommissioned |BOOLEAN - true or false |
225
+
226
+
227
+ ### ```get controls```
228
+ [top](#api-endpoints-provided)
229
+
230
+ ----
231
+ To view controls use the following command:
232
+
233
+ $ bundle exec exe/emasser get controls forSystem --systemId=SYSTEMID
234
+
235
+ - required parameter is:
236
+
237
+ |parameter | type or values |
238
+ |-------------|:----------------------------------|
239
+ |--systemId |Integer - Unique system identifier |
240
+
241
+ - optional parameter is:
242
+
243
+ |parameter | type or values |
244
+ |-------------|:------------------------------------------|
245
+ |--acronyms |The system acronym(s) e.g "AC-1, AC-2" - if not provided all controls for systemId are returned |
246
+
247
+
248
+ ### ```get test_results```
249
+ [top](#api-endpoints-provided)
250
+
251
+ ----
252
+ To view test results use the following command:
253
+
254
+ $ bundle exec exe/emasser get test_results forSystem --systemId=SYSTEMID
255
+
256
+ - required parameter is:
257
+
258
+ |parameter | type or values |
259
+ |-------------|:----------------------------------|
260
+ |--systemId |Integer - Unique system identifier |
261
+
262
+ - optional parameters are:
263
+
264
+ |parameter | type or values |
265
+ |-------------------|:------------------------------------------|
266
+ |--controlAcronyms |String - The system acronym(s) e.g "AC-1, AC-2" |
267
+ |--ccis |String - The system CCIS string numerical value |
268
+ |--latestOnly |BOOLEAN - true or false|
269
+
270
+
271
+ ### ```get poams```
272
+ [top](#api-endpoints-provided)
273
+
274
+ ----
275
+ There are two get endpoints for system poams:
276
+ - forSystem - Retrieves all poams for specified system ID
277
+ ````
278
+ $ bundle exec exe/emasser get poams forSystem --systemId=SYSTEMID
279
+ ````
280
+ - required parameter is:
281
+
282
+ |parameter | type or values |
283
+ |-------------|:----------------------------------|
284
+ |--systemId |Integer - Unique system identifier |
285
+
286
+ - optional parameters are:
287
+
288
+ |parameter | type or values |
289
+ |-------------------------------|:----------------------------------------------|
290
+ |--scheduledCompletionDateStart |Date - Unix time format (e.g. 1499644800) |
291
+ |--scheduledCompletionDateEnd |Date - Unix time format (e.g. 1499990400) |
292
+ |--controlAcronyms |String - The system acronym(s) e.g "AC-1, AC-2"|
293
+ |--ccis |String - The system CCIS string numerical value|
294
+ |--systemOnly |BOOLEAN - true or false|
295
+
296
+
297
+ - byPoamId - Retrieves all poams for specified system and poam ID
298
+ ````
299
+ $ bundle exec exe/emasser get poams byPoamId --systemId=SYSTEMID --poamId=POAMID
300
+ ````
301
+ - required parameters are:
302
+
303
+ |parameter | type or values |
304
+ |-------------|:----------------------------------|
305
+ |--systemId |Integer - Unique system identifier |
306
+ |--poamId |Integer - Unique poam identifier |
307
+
308
+
309
+ ### ```get milestones```
310
+ [top](#api-endpoints-provided)
311
+
312
+ ----
313
+ There are two get endpoints for system milestones:
314
+ - byPoamId - Retrieves milestone(s) for specified system and poam ID
315
+ ````
316
+ $ bundle exec exe/emasser get milestones byPoamId --systemId=SYSTEMID --poamId=POAMID
317
+ ````
318
+ - required parameters are:
319
+
320
+ |parameter | type or values |
321
+ |-------------|:----------------------------------|
322
+ |--systemId |Integer - Unique system identifier |
323
+ |--poamId |Integer - Unique poam identifier |
324
+
325
+ - optional parameters are:
326
+
327
+ |parameter | type or values |
328
+ |-------------------------------|:----------------------------------------------|
329
+ |--scheduledCompletionDateStart |Date - Unix time format (e.g. 1499644800) |
330
+ |--scheduledCompletionDateEnd |Date - Unix time format (e.g. 1499990400) |
331
+
332
+
333
+ - byMilestoneId, Retrieve milestone(s) for specified system, poam, and milestone ID"
334
+ ````
335
+ $ bundle exec exe/emasser get poams byMilestoneId --systemId=SYSTEMID --poamId=POAMID --milestoneId=MILESTONEID
336
+ ````
337
+ - required parameters are:
338
+
339
+ |parameter | type or values |
340
+ |--------------|:-------------------------------------|
341
+ |--systemId |Integer - Unique system identifier |
342
+ |--poamId |Integer - Unique poam identifier |
343
+ |--milestoneId |Integer - Unique milestone identifier |
344
+
345
+
346
+ ### ```get artifacts```
347
+ [top](#api-endpoints-provided)
348
+
349
+ ----
350
+ There are two get endpoints that provides the ability to view existing `Artifacts` in a system:
351
+
352
+ - forSystem - Retrieves one or many artifacts in a system specified system ID
353
+ ````
354
+ $ bundle exec exe/emasser get artifacts forSystem --systemId=SYSTEMID
355
+ ````
356
+ - required parameter is:
357
+
358
+ |parameter | type or values |
359
+ |-------------|:----------------------------------|
360
+ |--systemId |Integer - Unique system identifier |
361
+
362
+ - optional parameters are:
363
+
364
+ |parameter | type or values |
365
+ |-------------------------------|:----------------------------------------------|
366
+ |--filename |The artifact file name |
367
+ |--controlAcronyms |String - The system acronym(s) e.g "AC-1, AC-2"|
368
+ |--ccis |String - The system CCIS string numerical value|
369
+ |--systemOnly |BOOLEAN - true or false|
370
+
371
+ - export - Retrieves the file artifacts (if compress is true the file binary contents are returned, otherwise the file textual contents are returned.)
372
+ ````
373
+ $ bundle exec exe/emasser get artifacts export --systemId=SYSTEMID
374
+ ````
375
+ - required parameters are:
376
+
377
+ |parameter | type or values |
378
+ |-------------|:----------------------------------|
379
+ |--systemId |Integer - Unique system identifier |
380
+ |--filename |The artifact file name |
381
+ |--compress |BOOLEAN - true or false. |
382
+
383
+
384
+ ### ```get cac```
385
+ [top](#api-endpoints-provided)
386
+
387
+ ----
388
+ To view one or many Control Approval Chain (CAC) in a system specified system ID use the following command:
389
+ ```
390
+ $ bundle exec exe/emasser get cac controls --systemId=SYSTEMID
391
+ ```
392
+ - required parameter is:
393
+
394
+ |parameter | type or values |
395
+ |-------------|:----------------------------------|
396
+ |--systemId |Integer - Unique system identifier |
397
+
398
+ - optional parameter is:
399
+
400
+ |parameter | type or values |
401
+ |-------------------------------|:----------------------------------------------|
402
+ |--controlAcronyms |String - The system acronym(s) e.g "AC-1, AC-2"|
403
+
404
+
405
+ ### ```get pac```
406
+ [top](#api-endpoints-provided)
407
+
408
+ ----
409
+ To view one or many Package Approval Chain (PAC) in a system specified system ID use the following command:
410
+
411
+ ````
412
+ $ bundle exec exe/emasser get pac package --systemId=SYSTEMID
413
+ ````
414
+ - required parameter is:
415
+
416
+ |parameter | type or values |
417
+ |-------------|:----------------------------------|
418
+ |--systemId |Integer - Unique system identifier |
419
+
420
+
421
+ ### ```get cmmc```
422
+ [top](#api-endpoints-provided)
423
+
424
+ ----
425
+ To view Cybersecurity Maturity Model Certification (CMMC) Assessments use the following command:
426
+
427
+ $ bundle exec exe/emasser get workflow_definitions forSite --sinceDate=SINCEDATE
428
+
429
+ - Required parameters are:
430
+
431
+ |parameter | type or values |
432
+ |----------------|:--------------------------------------|
433
+ |--sinceDate |Date - The CMMC date. Unix date format |
434
+
435
+
436
+ ### ```get workflow_definitions```
437
+ [top](#api-endpoints-provided)
438
+
439
+ ----
440
+ To view Workflow Definitions use the following command:
441
+
442
+ $ bundle exec exe/emasser get workflow_definitions forSite
443
+
444
+ - Optional parameters are:
445
+
446
+ |parameter | type or values |
447
+ |---------------------|:----------------------------------------------------------------------------|
448
+ |--includeInactive |BOOLEAN - true or false |
449
+ |--registrationType |Possible values: assessAndAuthorize, assessOnly, guest, regular, functional, |
450
+ | | loudServiceProvider, commonControlProvider |
451
+
452
+
453
+ ### ```get workflow_instances```
454
+ [top](#api-endpoints-provided)
455
+
456
+ ----
457
+ There are two get endpoints to view workflow instances:
458
+ - forSystem
459
+ $ bundle exec exe/emasser get workflow_instances forSystem --systemId=SYSTEMID
460
+
461
+ - required parameter is:
462
+
463
+ |parameter | type or values |
464
+ |-------------|:----------------------------------|
465
+ |--systemId |Integer - Unique system identifier |
466
+
467
+ - Optional parameters are:
468
+
469
+ |parameter | type or values |
470
+ |-------------------|:---------------------------------------------------|
471
+ |--includeComments |BOOLEAN - true or false |
472
+ |--pageIndex |Integer - The page number to query |
473
+ |--sinceDate |Date - The Workflow Instance date. Unix date format |
474
+ |--status |Possible values: active, inactive, all |
475
+
476
+ - byWorkflowInstanceId
477
+ $ bundle exec exe/emasser get workflow_instances byWorkflowInstanceId --systemId=SYSTEMID --workflowInstanceId=--WORKFLOWID
478
+
479
+ - required parameter is:
480
+
481
+ |parameter | type or values |
482
+ |---------------------|:---------------------------------------------|
483
+ |--systemId |Integer - Unique system identifier |
484
+ |--workflowInstanceId |Integer - Unique workflow instance identifier |
485
+
486
+
487
+ ## Usage - POST
488
+
489
+ ### ``post test_results``
490
+ [top](#api-endpoints-provided)
491
+
492
+ ---
493
+ Test Result add (POST) endpoint API business rules.
494
+
495
+ |Business Rule | Parameter/Field |
496
+ |---------------------------------------------------------------------|:-----------------|
497
+ | Tests Results cannot be saved if the "Test Date" is in the future. | `testDate` |
498
+ | Test Results cannot be saved if a Security Control is "Inherited" in the system record. | `description` |
499
+ | Test Results cannot be saved if an Assessment Procedure is "Inherited" in the system record. | `description` |
500
+ | Test Results cannot be saved if the AP does not exist in the system. | `description` |
501
+ | Test Results cannot be saved if the control is marked "Not Applicable" by an Overlay. | `description` |
502
+ | Test Results cannot be saved if the control is required to be assessed as "Applicable" by an Overlay.| `description` |
503
+ | Test Results cannot be saved if the Tests Results entered is greater than 4000 characters.|`description`|
504
+ | Test Results cannot be saved if the following fields are missing data: | `complianceStatus`, `testDate`, `testedBy`, `description`|
505
+ | Test results cannot be saved if there is more than one test result per CCI |`cci`|
506
+
507
+ ---
508
+ To add (POST) test results use the following command:
509
+
510
+ ````
511
+ $ bundle exec exe/emasser post test_results add --systemId [value] --cci [value] --testedBy [value] --testDate [value] --description [value] --complianceStatus [value]
512
+ ````
513
+ Note: If no POA&Ms or AP exist for the control (system), you will get this response:
514
+ "You have entered a Non-Compliant Test Result. You must create a POA&M Item for this Control and/or AP if one does not already exist."
515
+
516
+ - required parameter are:
517
+
518
+ |parameter | type or values |
519
+ |-------------------|:------------------------------------------------------------|
520
+ |--systemId |Integer - Unique system identifier |
521
+ |--cci |String - CCI associated with the test result. e.g "00221" |
522
+ |--testedBy |String - Last Name, First Name. 100 Characters. |
523
+ |--testDate |Date - Unix time format (e.g. 1499990400) |
524
+ |--description |String - Include description of test result. 4000 Characters |
525
+ |--complianceStatus |Possible values: Compliant, Non-Compliant, Not Applicable |
526
+
527
+ **Note**
528
+ For information at the command line use:
529
+ ```
530
+ $ bundle exec exe/emasser post test_results help add
531
+ ```
532
+
533
+
534
+ ### ``post poams``
535
+ [top](#api-endpoints-provided)
536
+
537
+ ---
538
+ Plan of Action and Milestones (POA&M) add (POST) endpoint API business rules.
539
+
540
+ The following fields are required based on the contents of the status field
541
+
542
+ |status |Required Fields
543
+ |----------------|--------------------------------------------------------
544
+ |Risk Accepted |comments
545
+ |Ongoing |scheduledCompletionDate, milestones (at least 1)
546
+ |Completed |scheduledCompletionDate, comments, completionDate, milestones (at least 1)
547
+ |Not Applicable |POAM can not be created
548
+
549
+ If a POC email is supplied, the application will attempt to locate a user
550
+ already registered within the application and pre-populate any information
551
+ not explicitly supplied in the request. If no such user is found, these
552
+ fields are required within the request.
553
+ - pocOrganization, pocFirstName, pocLastName, pocEmail, pocPhoneNumber
554
+
555
+ Business logic, the following rules apply when adding POA&Ms
556
+
557
+ - POA&M Items cannot be saved if associated Security Control or AP is inherited.
558
+ - POA&M Items cannot be created manually if a Security Control or AP is Not Applicable.
559
+ - Completed POA&M Item cannot be saved if Completion Date is in the future.
560
+ - Completed POA&M Item cannot be saved if Completion Date (completionDate) is in the future.
561
+ - Risk Accepted POA&M Item cannot be saved with a Scheduled Completion Date or Milestones
562
+ - POA&M Items with a review status of "Not Approved" cannot be saved if Milestone Scheduled Completion Date exceeds POA&M Item Scheduled Completion Date.
563
+ - POA&M Items with a review status of "Approved" can be saved if Milestone Scheduled Completion Date exceeds POA&M Item Scheduled Completion Date.
564
+ - POA&M Items that have a status of "Completed" and a status of "Ongoing" cannot be saved without Milestones.
565
+ - POA&M Items that have a status of "Risk Accepted" cannot have milestones.
566
+ - POA&M Items with a review status of "Approved" that have a status of "Completed" and "Ongoing" cannot update Scheduled Completion Date.
567
+ - POA&M Items that have a review status of "Approved" are required to have a Severity Value assigned.
568
+ - POA&M Items cannot be updated if they are included in an active package.
569
+ - Archived POA&M Items cannot be updated.
570
+ - POA&M Items with a status of "Not Applicable" will be updated through test result creation.
571
+ - If the Security Control or Assessment Procedure does not exist in the system we may have to just import POA&M Item at the System Level.
572
+
573
+
574
+ The following parameters/fields have the following character limitations:
575
+ - POA&M Item cannot be saved if the Point of Contact fields exceed 100 characters:
576
+ - Office / Organization (pocOrganization)
577
+ - First Name (pocFirstName)
578
+ - Last Name (pocLastName)
579
+ - Email (email)
580
+ - Phone Number (pocPhoneNumber)
581
+ - POA&M Items cannot be saved if Mitigation field (mitigation) exceeds 2000 characters.
582
+ - POA&M Items cannot be saved if Source Identifying Vulnerability field exceeds 2000 characters.
583
+ - POA&M Items cannot be saved if Comments (comments) field exceeds 2000 characters
584
+ - POA&M Items cannot be saved if Resource (resource) field exceeds 250 characters.
585
+ - POA&M Items cannot be saved if Milestone Description exceeds 2000 characters.
586
+
587
+
588
+ To add (POST) POA&Ms use the following command:
589
+ ```
590
+ $ bundle exec exe/emasser post poams add --systemId [value] --status [value] --vulnerabilityDescription [value] --sourceIdentVuln [value] --pocOrganization [value] --resources [value]
591
+ ```
592
+ **Notes:**
593
+ - The above listed parameters/fields are the minimal required.
594
+ - Based on the value for the status (--status) parameter additional fields are required
595
+ - Refer to instructions listed above for conditional and optional fields requirements.
596
+ - When a milestone is required the format is:
597
+ - --milestone description:[value] scheduledCompletionDate:[value]
598
+
599
+ **If a milestone Id is provided (--milestone milestoneId:[value]) the POA&M with the provided milestone Id is updated and the new POA&M milestones is set to null.**
600
+
601
+ ---
602
+ Client API parameters/fields (required, conditional, and optional).
603
+ - required parameter are:
604
+
605
+ |parameter | type or values |
606
+ |---------------------------|:-----------------------------------------------------------------------|
607
+ |--systemId |Integer - Unique system identifier |
608
+ |--status |Possible Values: Ongoing,Risk Accepted,Completed,Not Applicable |
609
+ |--vulnerabilityDescription |String - Vulnerability description for the POA&M Item. 2000 Characters |
610
+ |--sourceIdentVuln |String - Include Source Identifying Vulnerability text. 2000 Characters |
611
+ |--pocOrganization |String - Organization/Office represented. 100 Characters |
612
+ |--resources |String - List of resources used. Character Limit = 250 |
613
+
614
+ ** If any poc information is provided all POC fields are required. See additional details for POC fields below.
615
+
616
+ - conditional parameters are:
617
+
618
+ |parameter | type or values |
619
+ |--------------------------|:--------------------------------------------------------------------------------------|
620
+ |--milestones |JSON - see milestone format |
621
+ |--pocFirstName |String - First name of POC. 100 Characters |
622
+ |--pocLastName |String - Last name of POC. 100 Characters |
623
+ |--pocEmail |String - Email address of POC. 100 Characters |
624
+ |--pocPhoneNumber |String - Phone number of POC (area code) ***-**** format. 100 Characters |
625
+ |--severity |Possible values - Very Low, Low, Moderate, High, Very High |
626
+ |--scheduledCompletionDate |Date - Required for ongoing and completed POA&M items. Unix time format |
627
+ |--completionDate |Date - Field is required for completed POA&M items. Unix time format |
628
+ |--comments |String - Field is required for completed and risk accepted POA&M items. 2000 Characters|
629
+
630
+ ** If a POC email is supplied, the application will attempt to locate a user already registered within the application and pre-populate any information not explicitly supplied in the request. If no such user is found, these fields are required within the request:
631
+ pocFirstName, pocLastName, pocPhoneNumber
632
+
633
+ Milestone Format:
634
+ - --milestone description:[value] scheduledCompletionDate:[value]
635
+
636
+ - optional parameters are:
637
+
638
+ |parameter | type or values |
639
+ |--------------------|:-----------------------------------------------------------------------------------------|
640
+ |--externalUid |String - External unique identifier for use with associating POA&M Items. 100 Characters |
641
+ |--controlAcronym |String - Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined|
642
+ |--cci |String - CCI associated with the test result |
643
+ |--securityChecks |String - Security Checks that are associated with the POA&M |
644
+ |--rawSeverity |Possible values: I, II, III |
645
+ |--relevanceOfThreat |Possible values: Very Low, Low, Moderate, High, Very High |
646
+ |--likelihood |Possible values: Very Low, Low, Moderate, High, Very High |
647
+ |--impact |Possible values: Very Low, Low, Moderate, High, Very High |
648
+ |--impactDescription |String - Include description of Security Control’s impact |
649
+ |--residualRiskLevel |Possible values: Very Low, Low, Moderate, High, Very High |
650
+ |--recommendations |String - Include recommendations. Character Limit 2,000 |
651
+ |--mitigation |String - Include mitigation explanation. 2000 Characters |
652
+
653
+
654
+ **Note**
655
+ For information at the command line use:
656
+ ```
657
+ $ bundle exec exe/emasser post poams help add
658
+ ```
659
+
660
+
661
+ ### ``post milestones``
662
+ [top](#api-endpoints-provided)
663
+
664
+ ---
665
+ To add (POST) milestones in a system for one or more POA&M items use the following command:
666
+
667
+ ````
668
+ $ bundle exec exe/emasser post milestones add --systemId [value] --poamId [value] --description [value] --scheduledCompletionDate [value]
669
+ ````
670
+ - required parameter are:
671
+
672
+ |parameter | type or values |
673
+ |---------------------------|:----------------------------------------------------|
674
+ |--systemId |Integer - Unique system identifier |
675
+ |--poamId |Integer - Unique item identifier |
676
+ |--description |String - Milestone item description. 2000 Characters |
677
+ |--scheduledCompletionDate |Date - Schedule completion date. Unix date format |
678
+
679
+
680
+ **Note**
681
+ For information at the command line use:
682
+ ```
683
+ $ bundle exec exe/emasser post milestones help add
684
+ ```
685
+
686
+
687
+ ### ``post artifacts``
688
+ [top](#api-endpoints-provided)
689
+
690
+ ---
691
+ The add (POST) artifacts endpoint accepts a single binary file with file extension.zip only. The command line (CI) reads the files provided and zips them before sending to eMASS.
692
+
693
+ ```
694
+ If no artifact is matched via filename to the application, a new artifact will be created with the following default values. Any values not specified below will be blank.
695
+ - isTemplate: false
696
+ - type: other
697
+ - category: evidence
698
+ ```
699
+
700
+ Business Rules:
701
+ - Artifact cannot be saved if the file does not have the following file extensions:
702
+ - .docx,.doc,.txt,.rtf,.xfdl,.xml,.mht,.mhtml,.html,.htm,.pdf
703
+ - .mdb,.accdb,.ppt,.pptx,.xls,.xlsx,.csv,.log
704
+ - .jpeg,.jpg,.tiff,.bmp,.tif,.png,.gif
705
+ - .zip,.rar,.msg,.vsd,.vsw,.vdx, .z{#}, .ckl,.avi,.vsdx
706
+ - Artifact cannot be saved if File Name (fileName) exceeds 1,000 characters
707
+ - Artifact cannot be saved if Description (description) exceeds 2,000 characters
708
+ - Artifact cannot be saved if Reference Page Number (refPageNumber) exceeds 50 characters
709
+ - Artifact version cannot be saved if an Artifact with the same file name already exist in the system.
710
+ - Artifact cannot be saved if the file size exceeds 30MB.
711
+ - Artifact cannot be saved if the Last Review Date is set in the future.
712
+ ---
713
+ To add (POST) artifacts use the following command:
714
+
715
+ ```
716
+ $ bundle exec exe/emasser post artifacts upload --systemId [value] [--isTemplate or --no-isTemplate] --type [value] --category [value] --files [value...value]
717
+ ```
718
+
719
+ - required parameter are:
720
+
721
+ |parameter | type or values |
722
+ |----------------|:----------------------------------------------------|
723
+ |--systemId |Integer - Unique system identifier |
724
+ |--isTemplate |Boolean - Indicates whether an artifact is a template|
725
+ |--type |Possible Values: Procedure, Diagram, Policy, Labor, Document, Image, Other, Scan Result, Auditor Report|
726
+ |--category |Possible Values: Implementation Guidance, Evidence |
727
+ |--files |String - File names (to include path) to be uploaded into eMASS as artifacts |
728
+
729
+ - optional parameter are:
730
+
731
+ |parameter | type or values |
732
+ |-------------------------|:------------------------------------------------------|
733
+ |--description |String - Artifact description. 2000 Characters |
734
+ |--refPageNumber |String - Artifact reference page number. 50 Characters |
735
+ |--ccis |String - CCIs associated with artifact |
736
+ |--controls |String - Control acronym associated with the artifact. NIST SP 800-53 Revision 4 defined|
737
+ |--artifactExpirationDate |Date - Date Artifact expires and requires review. In Unix Date Format|
738
+ |--lastReviewedDate |Date - Date Artifact was last reviewed. In Unix Date Format |
739
+
740
+
741
+ **Note**
742
+ For information at the command line use:
743
+ ```
744
+ $ bundle exec exe/emasser post artifacts help upload
745
+ ```
746
+
747
+
748
+ ### ``post cac``
749
+ [top](#api-endpoints-provided)
750
+
751
+ ----
752
+ Submit control to second role of CAC
753
+
754
+ Business Rule
755
+ - Comments are not required at the first role of the CAC but are required at the second role of the CAC. Comments cannot exceed 10,000 characters.
756
+
757
+ To add (POST) test CAC use the following command:
758
+
759
+ ````
760
+ $ bundle exec exe/emasser post pac add --systemId [value] --controlAcronym [value] --comments [value]
761
+ ````
762
+ - required parameter are:
763
+
764
+ |parameter | type or values |
765
+ |-------------------|:------------------------------------------------------------|
766
+ |--systemId |Integer - Unique system identifier |
767
+ |--controlAcronym |String - Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined |
768
+
769
+ - conditional parameter is:
770
+
771
+ |parameter | type or values |
772
+ |-------------------|:-------------------------------------------|
773
+ |--comments |String -The control approval chain comments |
774
+
775
+ **Note**
776
+ For information at the command line use:
777
+ ```
778
+ $ bundle exec exe/emasser post cac help add
779
+ ```
780
+
781
+
782
+ ### ``post pac``
783
+ [top](#api-endpoints-provided)
784
+
785
+ ----
786
+ Submit control to second role of CAC
787
+
788
+ To add (POST) test PAC use the following command:
789
+
790
+ ````
791
+ $ bundle exec exe/emasser post pac add --systemId [value] --workflow [value] --name [value] --comments [value]
792
+ ````
793
+ - required parameter are:
794
+
795
+ |parameter | type or values |
796
+ |--------------|:--------------------------------------------------------------------------|
797
+ |--systemId |Integer - Unique system identifier |
798
+ |--workflow |Possible Values: Assess and Authorize, Assess Only, Security Plan Approval |
799
+ |--name |String - Package name. 100 Characters |
800
+ |--comments |Strings - Comments submitted upon initiation of the indicated workflow, 4,000 character|
801
+
802
+ **Note**
803
+ For information at the command line use:
804
+ ```
805
+ $ bundle exec exe/emasser post pac help add
806
+ ```
807
+
808
+
809
+ ### ``post static_code_scan``
810
+ [top](#api-endpoints-provided)
811
+
812
+ ----
813
+
814
+ To add (POST) static code scans use the following command:
815
+
816
+ ````
817
+ $ bundle exec exe/emasser post scan_findings add --systemId [value] --applicationName [value] --version [value] --codeCheckName [value] --scanDate [value] --cweId [value]
818
+ ````
819
+ - required parameter are:
820
+
821
+ |parameter | type or values |
822
+ |-------------------|:-----------------------------------------------------------|
823
+ |--systemId |Integer - Unique system identifier |
824
+ |--applicationName |String - Name of the software application that was assessed |
825
+ |--version |String - The version of the application |
826
+ |--codeCheckName |Strings - Name of the software vulnerability or weakness |
827
+ |--scanDate |Date - The findings scan date - Unix time format |
828
+ |--cweId |String - The Common Weakness Enumerator (CWE) identifier |
829
+
830
+ - optional parameters are:
831
+
832
+ |parameter | type or values |
833
+ |-------------------|:------------------------------------------------------|
834
+ |--rawSeverity* |Possible Values: Low, Medium, Moderate, High, Critical |
835
+ |--count |Integer - Number of instances observed for a specified |
836
+
837
+ *rawSeverity: In eMASS, values of "Critical" will appear as "Very High", and values of "Medium" will appear as "Moderate". Any values not listed as options in the list above will map to "Unknown" and appear as blank values.
838
+
839
+ To clear (POST) static code scans use the following command:
840
+
841
+ ````
842
+ $ bundle exec exe/emasser post scan_findings clear --systemId [value] --applicationName [value] --version [value] --clearFindings
843
+ ````
844
+ - required parameter are:
845
+
846
+ |parameter | type or values |
847
+ |-------------------|:-----------------------------------------------------------|
848
+ |--systemId |Integer - Unique system identifier |
849
+ |--applicationName |String - Name of the software application that was assessed |
850
+ |--clearFindings* |Boolean - To clear an application's findings set it to true |
851
+
852
+ *The clearFindings field is an optional field, but required with a value of "True" to clear out all application findings for a single application/version pairing.
853
+
854
+ **Note**
855
+ For information at the command line use:
856
+ ```
857
+ $ bundle exec exe/emasser post scan_findings help add
858
+ ```
859
+
860
+
861
+ ## Usage - PUT
862
+
863
+ ### ``put controls``
864
+ [top](#api-endpoints-provided)
865
+
866
+ ----
867
+ Business Rules
868
+
869
+ The following fields are required based on the value of the `implementationStatus` field
870
+
871
+ |Value |Required Fields
872
+ |------------------------|--------------------------------------------------------
873
+ |Planned or Implemented |controlDesignation, estimatedCompletionDate, responsibleEntities, slcmCriticality, slcmFrequency, slcmMethod, slcmMethod, slcmTracking, slcmComments
874
+ |Not Applicable |naJustification, controlDesignation, responsibleEntities
875
+ |Manually Inherited |controlDesignation, estimatedCompletionDate, responsibleEntities, slcmCriticality, slcmFrequency, slcmMethod, slcmMethod, slcmTracking, slcmComments
876
+
877
+ Implementation Plan cannot be updated if a Security Control is "Inherited" except for the following fields:
878
+ - Common Control Provider (commonControlProvider)
879
+ - Security Control Designation (controlDesignation)
880
+
881
+ The following parameters/fields have the following character limitations:
882
+ - Implementation Plan information cannot be saved if the fields below exceed 2,000 character limits:
883
+ - N/A Justification (naJustification)
884
+ - Responsible Entities (responsibleEntities)
885
+ - Implementation Narrative (implementationNarrative)
886
+ - Criticality (slcmCriticality)
887
+ - Reporting (slcmReporting)
888
+ - Tracking (slcmTracking)
889
+ - Vulnerability Summary (vulnerabilitySummary)
890
+ - Recommendations (recommendations)
891
+ - Implementation Plan information cannot be saved if the fields below exceed 4,000 character limits:
892
+ - SLCM Comments (slcmComments)
893
+
894
+ Implementation Plan information cannot be updated if Security Control does not exist in the system record.
895
+
896
+ ---
897
+ Updating (PUT) a Control can be accomplished by invoking the following command:
898
+ ````
899
+ $ bundle exec exe/emasser put controls update [PARAMETERS]
900
+ ````
901
+ - required parameter are:
902
+
903
+ |parameter | type or values |
904
+ |--------------------------|:-------------------------------------------------------------------------|
905
+ |--systemId |Integer - Unique system identifier |
906
+ |--acronym |String - The system acronym(s) e.g "AC-1, AC-2" |
907
+ |--responsibleEntities |String - Description of the responsible entities for the Security Control |
908
+ |--controlDesignation |Possible values: Common, System-Specific, or Hybrid |
909
+ |--estimatedCompletionDate |Date - Unix time format (e.g. 1499990400) |
910
+ |--comments |String - Security control comments |
911
+
912
+ - optional parameters are:
913
+
914
+ |parameter | type or values |
915
+ |-----------------------|:----------------------------------------------|
916
+ |--implementationStatus |Possible values: Planned, Implemented, Inherited, Not Applicable, or Manually Inherited|
917
+ |--severity |Possible values: Very Low, Low, Moderate, High, Very High |
918
+ |--vulnerabiltySummary |String - The security control vulnerability summary |
919
+ |--recommendations |String - The security control vulnerability recommendation |
920
+ |--relevanceOfThreat |Possible values: Very Low, Low, Moderate, High, Very High |
921
+ |--likelihood |Possible values: Very Low, Low, Moderate, High, Very High |
922
+ |--impact |Possible values: Very Low, Low, Moderate, High, Very High |
923
+ |--impactDescription |String, - Description of the security control impact |
924
+ |--residualRiskLevel |Possible values: Very Low, Low, Moderate, High, Very High |
925
+
926
+ - conditional parameters are:
927
+
928
+ |parameter | type or values |
929
+ |------------------------|:----------------------------------------------|
930
+ |--commonControlProvider |Possible values: DoD, Component, Enclave|
931
+ |--naJustification |String - Justification for Security Controls deemed Not Applicable to the system |
932
+ |--slcmCriticality |String - Criticality of Security Control regarding SLCM |
933
+ |--slcmFrequency |Possible values - Constantly, Daily, Weekly, Monthly, Quarterly, Semi-Annually, Annually, or Undetermined |
934
+ |--slcmMethod |Possible values: Automated, Semi-Automated, Manual, or Undetermined |
935
+ |--slcmReporting |String - The System-Level Continuous Monitoring reporting |
936
+ |--slcmTracking |String - The System-Level Continuous Monitoring tracking |
937
+ |--slcmComments |String, - Additional comments for Security Control regarding SLCM |
938
+
939
+ **Note**
940
+ For information at the command line use:
941
+ ```
942
+ $ bundle exec exe/emasser put controls help update
943
+ ```
944
+
945
+
946
+ ### ``put poams``
947
+ [top](#api-endpoints-provided)
948
+
949
+ ----
950
+ Business Rules
951
+
952
+ The following fields are required based on the value of the `status` field
953
+
954
+ |Value |Required Fields
955
+ |----------------|--------------------------------------------------------
956
+ |Risk Accepted |comments, resources
957
+ |Ongoing |scheduledCompletionDate, resources, milestones (at least 1)
958
+ |Completed |scheduledCompletionDate, comments, resources,
959
+ | |completionDate, milestones (at least 1)
960
+ |Not Applicable |POAM can not be created
961
+
962
+ If a POC email is supplied, the application will attempt to locate a user already registered within the application and pre-populate any information not explicitly supplied in the request. If no such user is found, these fields are required within the request.
963
+ - pocOrganization, pocFirstName, pocLastName, pocEmail, pocPhoneNumber
964
+
965
+ Business logic, the following rules apply when adding POA&Ms
966
+
967
+ - POA&M Item cannot be saved if associated Security Control or AP is inherited.
968
+ - POA&M Item cannot be created manually if a Security Control or AP is Not Applicable.
969
+ - Completed POA&M Item cannot be saved if Completion Date is in the future.
970
+ - Completed POA&M Item cannot be saved if Completion Date (completionDate) is in the future.
971
+ - Risk Accepted POA&M Item cannot be saved with a Scheduled Completion Date (scheduledCompletionDate) or Milestones
972
+ - POA&M Item with a review status of "Not Approved" cannot be saved if Milestone Scheduled Completion Date exceeds POA&M Item Scheduled Completion Date.
973
+ - POA&M Item with a review status of "Approved" can be saved if Milestone Scheduled Completion Date exceeds POA&M Item Scheduled Completion Date.
974
+ - POA&M Items that have a status of "Completed" and a status of "Ongoing" cannot be saved without Milestones.
975
+ - POA&M Items that have a status of "Risk Accepted" cannot have milestones.
976
+ - POA&M Items with a review status of "Approved" that have a status of "Completed" and "Ongoing" cannot update Scheduled Completion Date.
977
+ - POA&M Items that have a review status of "Approved" are required to have a Severity Value assigned.
978
+ - POA&M Items cannot be updated if they are included in an active package.
979
+ - Archived POA&M Items cannot be updated.
980
+ - POA&M Items with a status of "Not Applicable" will be updated through test result creation.
981
+ - If the Security Control or Assessment Procedure does not exist in the system we may have to just import POA&M Item at the System Level.
982
+
983
+
984
+ The following parameters/fields have the following character limitations:
985
+ - POA&M Item cannot be saved if the Point of Contact fields exceed 100 characters:
986
+ - Office / Organization (pocOrganization)
987
+ - First Name (pocFirstName)
988
+ - Last Name (pocLastName)
989
+ - Email (email)
990
+ - Phone Number (pocPhoneNumber)
991
+ - POA&M Item cannot be saved if Mitigation field (mitigation) exceeds 2,000 characters.
992
+ - POA&M Item cannot be saved if Source Identifying Vulnerability field (sourceIdentVuln) exceeds 2,000 characters.
993
+ - POA&M Item cannot be saved if Comments field (comments) exceeds 2,000 characters
994
+ - POA&M Item cannot be saved if Resource field (resource) exceeds 250 characters.
995
+ - POA&M Items cannot be saved if Milestone Description (description) exceeds 2,000 characters.
996
+
997
+ ---
998
+ Updating (PUT) a POA&M can be accomplished by invoking the following command:
999
+ ````
1000
+ $ bundle exec exe/emasser put poams update [PARAMETERS]
1001
+ ````
1002
+ - required parameter are:
1003
+
1004
+ |parameter | type or values |
1005
+ |---------------------------|:-----------------------------------------------------------------------|
1006
+ |--systemId |Integer - Unique system identifier |
1007
+ |--displayPoamId |Integer - Globally unique identifier for individual POA&M Items |
1008
+ |--status |Possible Values: Ongoing,Risk Accepted,Completed,Not Applicable |
1009
+ |--vulnerabilityDescription |String - Vulnerability description for the POA&M Item. 2000 Characters |
1010
+ |--sourceIdentVuln |String - Include Source Identifying Vulnerability text. 2000 Characters |
1011
+ |--pocOrganization |String - Organization/Office represented. 100 Characters |
1012
+ |--resources |String - List of resources used. Character Limit = 250 |
1013
+
1014
+ ** If any poc information is provided all POC fields are required. See additional details for POC fields below.
1015
+
1016
+ - conditional parameters are:
1017
+
1018
+ |parameter | type or values |
1019
+ |--------------------------|:--------------------------------------------------------------------------------------|
1020
+ |--milestones |JSON - see milestone format |
1021
+ |--pocFirstName |String - First name of POC. 100 Characters |
1022
+ |--pocLastName |String - Last name of POC. 100 Characters |
1023
+ |--pocEmail |String - Email address of POC. 100 Characters |
1024
+ |--pocPhoneNumber |String - Phone number of POC (area code) ***-**** format. 100 Characters |
1025
+ |--severity |Possible values - Very Low, Low, Moderate, High, Very High |
1026
+ |--scheduledCompletionDate |Date - Required for ongoing and completed POA&M items. Unix time format |
1027
+ |--completionDate |Date - Field is required for completed POA&M items. Unix time format |
1028
+ |--comments |String - Field is required for completed and risk accepted POA&M items. 2000 Characters|
1029
+ |--isActive |Boolean - Used to delete milestones when updating a POA&M |
1030
+
1031
+ ** If a POC email is supplied, the application will attempt to locate a user already registered within the application and pre-populate any information not explicitly supplied in the request. If no such user is found, these fields are required within the request:
1032
+ pocFirstName, pocLastName, pocPhoneNumber
1033
+
1034
+ Milestone Format:
1035
+ - --milestone milestoneId:[value] description:[value] scheduledCompletionDate:[value]
1036
+ - If a milestoneId is not provide a new milestone is created
1037
+
1038
+ - optional parameters are:
1039
+
1040
+ |parameter | type or values |
1041
+ |--------------------|:-----------------------------------------------------------------------------------------|
1042
+ |--externalUid |String - External unique identifier for use with associating POA&M Items. 100 Characters |
1043
+ |--controlAcronym |String - Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined|
1044
+ |--cci |String - CCI associated with the test result |
1045
+ |--securityChecks |String - Security Checks that are associated with the POA&M |
1046
+ |--rawSeverity |Possible values: I, II, III |
1047
+ |--relevanceOfThreat |Possible values: Very Low, Low, Moderate, High, Very High |
1048
+ |--likelihood |Possible values: Very Low, Low, Moderate, High, Very High |
1049
+ |--impact |Possible values: Very Low, Low, Moderate, High, Very High |
1050
+ |--impactDescription |String - Include description of Security Control’s impact |
1051
+ |--residualRiskLevel |Possible values: Very Low, Low, Moderate, High, Very High |
1052
+ |--recommendations |String - Include recommendations. Character Limit 2,000 |
1053
+ |--mitigation |String - Include mitigation explanation. 2000 Characters |
1054
+
1055
+ **Note**
1056
+ For information at the command line use:
1057
+ ```
1058
+ $ bundle exec exe/emasser put poams help update
1059
+ ```
1060
+
1061
+
1062
+ ### ``put milestones``
1063
+ [top](#api-endpoints-provided)
1064
+
1065
+ ----
1066
+
1067
+ To add (POST) milestones in a system for one or more POA&M items use the following command:
1068
+
1069
+ ````
1070
+ $ bundle exec exe/emasser put milestones update [PARAMETERS]
1071
+ ````
1072
+ - required parameter are:
1073
+
1074
+ |parameter | type or values |
1075
+ |---------------------------|:----------------------------------------------------|
1076
+ |--systemId |Integer - Unique system identifier |
1077
+ |--poamId |Integer - Unique poam identifier |
1078
+ |--milestoneId |Integer - Unique milestone identifier |
1079
+ |--description |String - Milestone item description. 2000 Characters |
1080
+ |--scheduledCompletionDate |Date - Schedule completion date. Unix date format |
1081
+
1082
+
1083
+ **Note**
1084
+ For information at the command line use:
1085
+ ```
1086
+ $ bundle exec exe/emasser put milestones help update
1087
+ ```
1088
+
1089
+
1090
+ ### ``put artifacts``
1091
+ [top](#api-endpoints-provided)
1092
+
1093
+ ----
1094
+ Business Rules
1095
+
1096
+ - Artifact cannot be saved if the file does not have the following file extensions:
1097
+ - .docx,.doc,.txt,.rtf,.xfdl,.xml,.mht,.mhtml,.html,.htm,.pdf
1098
+ - .mdb,.accdb,.ppt,.pptx,.xls,.xlsx,.csv,.log
1099
+ - .jpeg,.jpg,.tiff,.bmp,.tif,.png,.gif
1100
+ - .zip,.rar,.msg,.vsd,.vsw,.vdx, .z{#}, .ckl,.avi,.vsdx
1101
+ - Artifact cannot be saved if File Name (fileName) exceeds 1,000 characters
1102
+ - Artifact cannot be saved if Description (description) exceeds 2,000 characters
1103
+ - Artifact cannot be saved if Reference Page Number (refPageNumber) exceeds 50 characters
1104
+ - Artifact cannot be saved if the file does not have an allowable file extension/type.
1105
+ - Artifact version cannot be saved if an Artifact with the same file name already exist in the system.
1106
+ - Artifact cannot be saved if the file size exceeds 30MB.
1107
+ - Artifact cannot be saved if the Last Review Date is set in the future.
1108
+
1109
+ To add (POST) milestones in a system for one or more POA&M items use the following command:
1110
+
1111
+ ````
1112
+ $ bundle exec exe/emasser put artifacts update [PARAMETERS]
1113
+ ````
1114
+ - required parameter are:
1115
+
1116
+ |parameter | type or values |
1117
+ |----------------|:----------------------------------------------------|
1118
+ |--systemId |Integer - Unique system identifier |
1119
+ |--filename |String - File name should match exactly one file within the provided zip file|
1120
+ | |Binary - Application/zip file. Max 30MB per artifact |
1121
+ |--isTemplate |Boolean - Indicates whether an artifact is a template|
1122
+ |--type* |Possible Values: Procedure, Diagram, Policy, Labor, Document, Image, Other, Scan Result, Auditor Report|
1123
+ |--category* |Possible Values: Implementation Guidance, Evidence |
1124
+
1125
+ *May also accept custom artifact category values set by system administrators.
1126
+
1127
+ - optional parameter are:
1128
+
1129
+ |parameter | type or values |
1130
+ |-------------------------|:------------------------------------------------------|
1131
+ |--description |String - Artifact description. 2000 Characters |
1132
+ |--refPageNumber |String - Artifact reference page number. 50 Characters |
1133
+ |--ccis |String - CCIs associated with artifact |
1134
+ |--controls |String - Control acronym associated with the artifact. NIST SP 800-53 Revision 4 defined|
1135
+ |--artifactExpirationDate |Date - Date Artifact expires and requires review. In Unix Date Format|
1136
+ |--lastReviewedDate |Date - Date Artifact was last reviewed. In Unix Date Format |
1137
+
1138
+
1139
+ **Note**
1140
+ For information at the command line use:
1141
+ ```
1142
+ $ bundle exec exe/emasser put artifacts help update
1143
+ ```
1144
+
1145
+
1146
+ ## Usage - DELETE
1147
+
1148
+ ### ``delete poams``
1149
+ [top](#api-endpoints-provided)
1150
+
1151
+ ----
1152
+ Remove one or many poa&m items in a system
1153
+
1154
+ To remove (DELETE) one or more POA&M items use the following command:
1155
+ ```
1156
+ bundle exec exe/emasser delete poams remove --systemId [value] --poamId [value]
1157
+ ```
1158
+
1159
+
1160
+ ### ``delete milestones``
1161
+ [top](#api-endpoints-provided)
1162
+
1163
+ ----
1164
+ Remove milestones in a system for one or many POA&M items
1165
+
1166
+ To delete a milestone the record must be inactive by having the field isActive set to false (isActive=false).
1167
+
1168
+ The server returns an empty object upon successfully deleting a milestone.
1169
+
1170
+ The last milestone can not be deleted, at-least on must exist.
1171
+
1172
+ To remove (DELETE) one or more Milestones in a system use the following command:
1173
+ ```
1174
+ bundle exec exe/emasser delete milestones remove--systemId [value] --poamId [value] --milestoneId [value]
1175
+ ```
1176
+
1177
+
1178
+ ### ``delete artifacts``
1179
+ [top](#api-endpoints-provided)
1180
+
1181
+ ---
1182
+ Remove one or many artifacts in a system
1183
+
1184
+ Provide single file or a space/comma delimited list of file names to be removed from the system (systemId)
1185
+
1186
+ To remove (DELETE) one or more Artifacts from a system use the following command:
1187
+ ```
1188
+ bundle exec exe/emasser delete artifacts remove --systemId [value] --files [value]
1189
+ or
1190
+ bundle exec exe/emasser delete artifacts remove --systemId [value] --files [value value...]
1191
+ or
1192
+ bundle exec exe/emasser delete artifacts remove --systemId [value] --files [value, value...]
1193
+ ```