emasser 1.0.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 (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
@@ -0,0 +1,675 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Naming/MethodName
4
+
5
+ # Hack class that properly formats the CLI help
6
+ class SubCommandBase < Thor
7
+ include OptionsParser
8
+ include InputConverters
9
+ include OutputConverters
10
+
11
+ # We do not control the method declaration for the banner
12
+
13
+ # rubocop:disable Style/OptionalBooleanParameter
14
+ def self.banner(command, _namespace = nil, subcommand = false)
15
+ # Use the $thor_runner (declared by the Thor CLI framework)
16
+ # to properly format the help text of sub-sub-commands.
17
+
18
+ # rubocop:disable Style/GlobalVars
19
+ if ancestors[0].to_s.include? '::Get'
20
+ "#{basename} #{command.formatted_usage(self, $thor_runner, subcommand)}"
21
+ else
22
+ "#{basename} get #{command.formatted_usage(self, $thor_runner, subcommand)}"
23
+ end
24
+ # rubocop:enable Style/GlobalVars
25
+ end
26
+ # rubocop:enable Style/OptionalBooleanParameter
27
+ end
28
+
29
+ module Emasser
30
+ # The Test Connection endpoint is provided by eMASS to verify and troubleshoot the
31
+ # connection to the web service.
32
+ #
33
+ # Endpoint:
34
+ # /api - Test connection to the API
35
+ class Test < SubCommandBase
36
+ def self.exit_on_failure?
37
+ true
38
+ end
39
+
40
+ desc 'connection', 'Test connection to the API'
41
+
42
+ def connection
43
+ result = SwaggerClient::TestApi.new.test_connection
44
+ puts to_output_hash(result).green
45
+ rescue SwaggerClient::ApiError => e
46
+ puts 'Exception when calling TestApi->test_connection'.red
47
+ puts to_output_hash(e)
48
+ end
49
+ end
50
+
51
+ # The Systems endpoints provide the ability to view system information.
52
+ #
53
+ # Endpoint:
54
+ # /api/systems - Get system information
55
+ # /api/systems/{systemId} - Get system information for a specific system
56
+ class System < SubCommandBase
57
+ def self.exit_on_failure?
58
+ true
59
+ end
60
+
61
+ desc 'id [--system-name [SYSTEM_NAME]] [--system-owner [SYSTEM_OWNER]]',
62
+ 'Attempts to provide system ID of a system with name [NAME] and owner [SYSTEM_OWNER]'
63
+ # desc 'id', 'Get a system ID given "name" or "owner"'
64
+
65
+ # Required parameters/fields
66
+ option :system_name
67
+ option :system_owner
68
+
69
+ def id
70
+ if options[:system_name].nil? && options[:system_owner].nil?
71
+ raise ArgumentError,
72
+ 'SYSTEM_NAME or SYSTEM_OWNER is required'
73
+ end
74
+
75
+ begin
76
+ results = SwaggerClient::SystemsApi.new.get_systems.data
77
+ results = filter_systems(results, options[:system_name], options[:system_owner])
78
+ results.each { |result| puts "#{result[:systemId]} - #{result[:systemOwner]} - #{result[:name]}" }
79
+ rescue SwaggerClient::ApiError => e
80
+ puts 'Exception when calling SystemsApi->get_systems'
81
+ puts to_output_hash(e)
82
+ end
83
+ end
84
+
85
+ no_commands do
86
+ def filter_systems(results, system_name = nil, system_owner = nil)
87
+ if system_owner.nil?
88
+ results.filter { |result| result[:name].eql?(system_name) }
89
+ elsif system_name.nil?
90
+ results.filter { |result| result[:systemOwner].eql?(system_owner) }
91
+ else
92
+ results.filter { |result| result[:name].eql?(system_name) && result[:systemOwner].eql?(system_owner) }
93
+ end
94
+ end
95
+ end
96
+
97
+ desc "byId \[options\]", 'Retrieve a system - filtered by [options] params'
98
+ option :systemId, type: :numeric, required: true,
99
+ desc: 'A numeric value representing the system identification'
100
+ option :includePackage, type: :boolean, required: false, desc: 'BOOLEAN - true or false.'
101
+ option :policy, type: :string, required: false, enum: %w[diacap rmf reporting]
102
+
103
+ def byId
104
+ optional_options_keys = optional_options(@_initializer).keys
105
+ optional_options = to_input_hash(optional_options_keys, options)
106
+ # optional_options.merge!(Emasser::GET_SYSTEM_RETURN_TYPE)
107
+
108
+ begin
109
+ # Get system information matching provided parameters
110
+ result = SwaggerClient::SystemsApi.new.get_system(options[:systemId], optional_options)
111
+ puts to_output_hash(result).green
112
+ rescue SwaggerClient::ApiError => e
113
+ puts 'Exception when calling SystemsApi->get_systems'.red
114
+ puts to_output_hash(e)
115
+ end
116
+ end
117
+ end
118
+
119
+ class Systems < SubCommandBase
120
+ def self.exit_on_failure?
121
+ true
122
+ end
123
+
124
+ desc "all \[options\]", 'Retrieves all available system(s) - filtered by [options] params'
125
+ # Optional parameters/fields
126
+ option :registrationType,
127
+ type: :string, required: false,
128
+ enum: %w[assessAndAuthorize assessOnly guest regular functional cloudServiceProvider commonControlProvider]
129
+ option :ditprId, type: :string, required: false,
130
+ desc: 'DoD Information Technology (IT) Portfolio Repository (DITPR) string Id'
131
+ option :coamsId, type: :string, required: false,
132
+ desc: 'Cyber Operational Attributes Management System (COAMS) string Id'
133
+ option :policy, type: :string, required: false, enum: %w[diacap rmf reporting]
134
+
135
+ option :includePackage, type: :boolean, required: false, desc: 'BOOLEAN - true or false.'
136
+ option :includeDitprMetrics, type: :boolean, required: false, desc: 'BOOLEAN - true or false.'
137
+ option :includeDecommissioned, type: :boolean, required: false, desc: 'BOOLEAN - true or false.'
138
+ option :reportsForScorecard, type: :boolean, required: false, desc: 'BOOLEAN - true or false.'
139
+
140
+ def all
141
+ optional_options_keys = optional_options(@_initializer).keys
142
+ optional_options = to_input_hash(optional_options_keys, options)
143
+ # optional_options.merge!(Emasser::GET_SYSTEM_RETURN_TYPE)
144
+
145
+ begin
146
+ # Get system information matching provided parameters
147
+ result = SwaggerClient::SystemsApi.new.get_systems(optional_options)
148
+ puts to_output_hash(result).green
149
+ rescue SwaggerClient::ApiError => e
150
+ puts 'Exception when calling SystemsApi->get_systems'.red
151
+ puts to_output_hash(e)
152
+ end
153
+ end
154
+ end
155
+
156
+ # The System Roles endpoints provides the ability to access user data assigned to systems.
157
+ # Notes:
158
+ # The endpoint can access three different role categories: PAC, CAC, and Other.
159
+ # If a system is dual-policy enabled, the returned system role information will default
160
+ # to the RMF policy information unless otherwise specified.
161
+ #
162
+ # Endpoint:
163
+ # /api/system-roles - Get all available roles
164
+ # /api/system-roles/{roleCategory} - Get system roles for provided role catgory
165
+ class Roles < SubCommandBase
166
+ def self.exit_on_failure?
167
+ true
168
+ end
169
+
170
+ desc 'all', 'Retrieves all available system roles'
171
+
172
+ def all
173
+ result = SwaggerClient::SystemRolesApi.new.get_system_roles
174
+ puts to_output_hash(result).green
175
+ rescue SwaggerClient::ApiError => e
176
+ puts 'Exception when calling SystemRolesApi->get_system_roles'.red
177
+ puts to_output_hash(e)
178
+ end
179
+
180
+ desc "byCategory \[options\]", 'Retrieves role(s) - filtered by [options] params'
181
+ # Required parameters/fields
182
+ option :roleCategory, type: :string, required: true, enum: %w[PAC CAC Other]
183
+ option :role, type: :string, required: true,
184
+ enum: ['AO', 'Auditor', 'Artifact Manager', 'C&A Team', 'IAO',
185
+ 'ISSO', 'PM/IAM', 'SCA', 'User Rep', 'Validator']
186
+ # Optional parameters/fields
187
+ option :policy, type: :string, required: false, enum: %w[diacap rmf reporting]
188
+ option :includeDecommissioned, type: :boolean, required: false, desc: 'BOOLEAN - true or false.'
189
+
190
+ def byCategory
191
+ optional_options_keys = optional_options(@_initializer).keys
192
+ optional_options = to_input_hash(optional_options_keys, options)
193
+
194
+ begin
195
+ result = SwaggerClient::SystemRolesApi.new.get_system_roles_by_category_id(options[:roleCategory],
196
+ options[:role], optional_options)
197
+ puts to_output_hash(result).green
198
+ rescue SwaggerClient::ApiError => e
199
+ puts 'Exception when calling SystemRolesApi->get_system_by_role_category_id'.red
200
+ puts to_output_hash(e)
201
+ end
202
+ end
203
+ end
204
+
205
+ # The Controls endpoints provide the ability to view Security Control information
206
+ # of a system for both the Implementation Plan and Risk Assessment.
207
+ #
208
+ # Endpoint:
209
+ # /api/systems/{systemId}/controls - Get control information in a system for one or many controls
210
+ class Controls < SubCommandBase
211
+ def self.exit_on_failure?
212
+ true
213
+ end
214
+
215
+ desc 'forSystem', 'Get control information in a system for one or many controls (acronym)'
216
+ # Required parameters/fields
217
+ option :systemId, type: :numeric, required: true,
218
+ desc: 'A numeric value representing the system identification'
219
+ # Optional parameters/fields
220
+ option :acronyms, type: :string, required: false,
221
+ desc: 'The system acronym(s) e.g "AC-1, AC-2" - if not provided all controls for systemId are' \
222
+ ' returned'
223
+
224
+ def forSystem
225
+ optional_options_keys = optional_options(@_initializer).keys
226
+ optional_options = to_input_hash(optional_options_keys, options)
227
+
228
+ begin
229
+ result = SwaggerClient::ControlsApi.new.get_system_controls(options[:systemId], optional_options)
230
+ puts to_output_hash(result).green
231
+ rescue SwaggerClient::ApiError => e
232
+ puts 'Exception when calling ControlsApi->get_system_controls'.red
233
+ puts to_output_hash(e)
234
+ end
235
+ end
236
+ end
237
+
238
+ # The Test Results endpoints provide the ability to view test results for a
239
+ # system's Assessment Procedures (CCIs) which determine Security Control compliance.
240
+ #
241
+ # Endpoint:
242
+ # /api/systems/{systemId}/test-results - Get one or many test results in a system
243
+ class TestResults < SubCommandBase
244
+ def self.exit_on_failure?
245
+ true
246
+ end
247
+
248
+ desc 'forSystem', 'Get one or many test results in a system'
249
+ # Required parameters/fields
250
+ option :systemId, type: :numeric, required: true,
251
+ desc: 'A numeric value representing the system identification'
252
+ # Optional parameters/fields
253
+ option :controlAcronyms, type: :string, required: false, desc: 'The system acronym(s) e.g "AC-1, AC-2"'
254
+ option :ccis, type: :string, required: false, desc: 'The system CCIS string numerical value'
255
+ option :latestOnly, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
256
+
257
+ def forSystem
258
+ optional_options_keys = optional_options(@_initializer).keys
259
+ optional_options = to_input_hash(optional_options_keys, options)
260
+
261
+ begin
262
+ result = SwaggerClient::TestResultsApi.new.get_system_test_results(options[:systemId], optional_options)
263
+ puts to_output_hash(result).green
264
+ rescue SwaggerClient::ApiError => e
265
+ puts 'Exception when calling TestResultsApi->get_system_test_results'.red
266
+ puts to_output_hash(e)
267
+ end
268
+ end
269
+ end
270
+
271
+ # The POA&Ms endpoints provide the ability to view Plan of Action and Milestones (POA&M)
272
+ # items and associated milestones for a system.
273
+ #
274
+ # Endpoint:
275
+ # /api/systems/{systemId}/poams - Get one or many POA&M items in a system
276
+ # /api/systems/{systemId}/poams/{poamId} - Get POA&M item by ID in a system
277
+ class Poams < SubCommandBase
278
+ def self.exit_on_failure?
279
+ true
280
+ end
281
+
282
+ # BY SYSTEM ID ------------------------------------------------------------------
283
+ desc 'forSystem', 'Get one or many POA&M items in a system'
284
+ # Required parameters/fields
285
+ option :systemId, type: :numeric, required: true,
286
+ desc: 'A numeric value representing the system identification'
287
+ # Optional parameters/fields
288
+ option :scheduledCompletionDateStart, type: :numeric, required: false,
289
+ desc: 'The schedule completion start date - Unix time format.'
290
+ option :scheduledCompletionDateEnd, type: :numeric, required: false,
291
+ desc: 'The scheduled completion end date - Unix time format.'
292
+ option :controlAcronyms, type: :string, required: false, desc: 'The system acronym(s) e.g "AC-1, AC-2"'
293
+ option :ccis, type: :string, required: false, desc: 'The system CCIS string numerical value'
294
+ option :systemOnly, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
295
+
296
+ def forSystem
297
+ optional_options_keys = optional_options(@_initializer).keys
298
+ optional_options = to_input_hash(optional_options_keys, options)
299
+
300
+ begin
301
+ result = SwaggerClient::POAMApi.new.get_system_poams(options[:systemId], optional_options)
302
+ puts to_output_hash(result).green
303
+ rescue SwaggerClient::ApiError => e
304
+ puts 'Exception when calling POAMApi->get_system_poams'.red
305
+ puts to_output_hash(e)
306
+ end
307
+ end
308
+
309
+ # BY POAM ID --------------------------------------------------------------
310
+ desc 'byPoamId', 'Get POA&M item for given systemId and poamId'
311
+ # Required parameters/fields
312
+ option :systemId, type: :numeric, required: true,
313
+ desc: 'A numeric value representing the system identification'
314
+ option :poamId, type: :numeric, required: true,
315
+ desc: 'A numeric value representing the poam identification'
316
+
317
+ def byPoamId
318
+ result = SwaggerClient::POAMApi.new.get_system_poams_by_poam_id(options[:systemId], options[:poamId])
319
+ puts to_output_hash(result).green
320
+ rescue SwaggerClient::ApiError => e
321
+ puts 'Exception when calling POAMApi->get_system_poams_by_poam_id'.red
322
+ puts to_output_hash(e)
323
+ end
324
+ end
325
+
326
+ # The Milestones endpoints provide the ability to view milestones that are associated
327
+ # with Plan of Action and Milestones (POA&M) items for a system.
328
+ #
329
+ # /api/systems/{systemId}/poams/{poamId}/milestones - Get milestones in one or many POA&M items in a system
330
+ # /api/systems/{systemId}/poams/{poamId}/milestones/{milestoneId} - Get milestone by ID in POA&M item in a system
331
+ class Milestones < SubCommandBase
332
+ def self.exit_on_failure?
333
+ true
334
+ end
335
+ # MILSTONES by SYSTEM and POAM ID -----------------------------------------
336
+ desc 'byPoamId', 'Get milestone(s) for given specified system and poam'
337
+ # Required parameters/fields
338
+ option :systemId, type: :numeric, required: true,
339
+ desc: 'A numeric value representing the system identification'
340
+ option :poamId, type: :numeric, required: true,
341
+ desc: 'A numeric value representing the poam identification'
342
+ # Optional parameters/fields
343
+ option :scheduledCompletionDateStart, type: :numeric, required: false,
344
+ desc: 'The schedule completion start date - Unix time format.'
345
+ option :scheduledCompletionDateEnd, type: :numeric, required: false,
346
+ desc: 'The scheduled completion end date - Unix time format.'
347
+
348
+ def byPoamId
349
+ optional_options_keys = optional_options(@_initializer).keys
350
+ optional_options = to_input_hash(optional_options_keys, options)
351
+
352
+ begin
353
+ # Get milestones in one or many poa&m items in a system
354
+ result = SwaggerClient::MilestonesApi.new.get_system_milestones_by_poam_id(options[:systemId],
355
+ options[:poamId], optional_options)
356
+ puts to_output_hash(result).green
357
+ rescue SwaggerClient::ApiError => e
358
+ puts 'Exception when calling MilestonesApi->get_system_milestones_by_poam_id'.red
359
+ puts to_output_hash(e)
360
+ end
361
+ end
362
+
363
+ # MILSTONES by SYSTEM, POAM, and MILESTONE ID -----------------------------------------
364
+ desc 'byMilestoneId', 'Get milestone(s) for given specified system, poam, and milestone Id'
365
+ # Required parameters/fields
366
+ option :systemId, type: :numeric, required: true,
367
+ desc: 'A numeric value representing the system identification'
368
+ option :poamId, type: :numeric, required: true,
369
+ desc: 'A numeric value representing the poam identification'
370
+ option :milestoneId, type: :numeric, required: true,
371
+ desc: 'A numeric value representing the milestone identification'
372
+
373
+ def byMilestoneId
374
+ result = SwaggerClient::MilestonesApi.new.get_system_milestones_by_poam_id_and_milestone_id(
375
+ options[:systemId], options[:poamId], options[:milestoneId]
376
+ )
377
+ puts to_output_hash(result).green
378
+ rescue SwaggerClient::ApiError => e
379
+ puts 'Exception when calling MilestonesApi->get_system_milestones_by_poam_id_and_milestone_id'.red
380
+ puts to_output_hash(e)
381
+ end
382
+ end
383
+
384
+ # The Artifact endpoints provide the ability to add new Artifacts
385
+ # (supporting documentation/evidence for Security Control Assessments
386
+ # and system Authorization activities) to a system.
387
+ #
388
+ # Endpoints:
389
+ # /api/systems/{systemId}/artifacts - Get one or many artifacts in a system
390
+ # /api/systems/{systemId}/artifacts-export - Get the file of an artifact in a system
391
+ class Artifacts < SubCommandBase
392
+ def self.exit_on_failure?
393
+ true
394
+ end
395
+
396
+ desc 'system', 'Get all system artifacts for a system Id'
397
+ # Required parameters/fields
398
+ option :systemId, type: :numeric, required: true,
399
+ desc: 'A numeric value representing the system identification'
400
+ # Optional parameters/fields
401
+ option :filename, type: :string, required: false, desc: 'The artifact file name'
402
+ option :controlAcronyms, type: :string, required: false, desc: 'The system acronym(s) e.g "AC-1, AC-2"'
403
+ option :ccis, type: :string, required: false, desc: 'The system CCIS string numerical value'
404
+ option :systemOnly, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
405
+
406
+ def forSystem
407
+ optional_options_keys = optional_options(@_initializer).keys
408
+ optional_options = to_input_hash(optional_options_keys, options)
409
+
410
+ begin
411
+ # Get one or many artifacts in a system
412
+ result = SwaggerClient::ArtifactsApi.new.get_system_artifacts(options[:systemId],
413
+ optional_options)
414
+ puts to_output_hash(result).green
415
+ rescue SwaggerClient::ApiError => e
416
+ puts 'Exception when calling ArtifactsApi->get_system_artifacts'.red
417
+ puts to_output_hash(e)
418
+ end
419
+ end
420
+
421
+ desc 'export', 'Get artifact binary file associated with given filename'
422
+ # Required parameters/fields
423
+ option :systemId, type: :numeric, required: true,
424
+ desc: 'A numeric value representing the system identification'
425
+ option :filename, type: :string, required: true, desc: 'The artifact file name'
426
+ option :compress, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
427
+ # NOTE: compress is a required parameter, however Thor does not allow a boolean type to be required because it
428
+ # automatically creates a --no-compress option, which is confusing in the help output:
429
+ # [--compress], [--no-compress] # BOOLEAN - true or false.
430
+
431
+ def export
432
+ optional_options_keys = optional_options(@_initializer).keys
433
+ optional_options = to_input_hash(optional_options_keys, options)
434
+ optional_options.merge!(Emasser::GET_ARTIFACTS_RETURN_TYPE)
435
+
436
+ result = SwaggerClient::ArtifactsExportApi.new.get_system_artifacts_export(
437
+ options[:systemId], options[:filename], optional_options
438
+ )
439
+ if options[:compress]
440
+ p result.green
441
+ else
442
+ begin
443
+ puts JSON.pretty_generate(JSON.parse(result)).green
444
+ rescue StandardError
445
+ puts result.red
446
+ end
447
+ end
448
+ rescue SwaggerClient::ApiError => e
449
+ puts 'Exception when calling ArtifactsApi->get_system_artifacts_export'.red
450
+ puts to_output_hash(e)
451
+ end
452
+ end
453
+
454
+ # The Control Approval Chain (CAC) endpoints provide the ability to view the status of
455
+ # Security Controls and submit them to the second stage in the Control Approval Chain
456
+ # Note:
457
+ # POST requests will only yield successful results if the Security Control is at the first
458
+ # stage of the CAC. If the control is not at the first stage, an error will be returned.
459
+ #
460
+ # Endpoints:
461
+ # /api/systems/{systemId}/approval/cac - Get location of one or many controls in CAC
462
+ class CAC < SubCommandBase
463
+ def self.exit_on_failure?
464
+ true
465
+ end
466
+
467
+ desc 'controls', 'Get location of one or many controls in CAC'
468
+ # Required parameters/fields
469
+ option :systemId, type: :numeric, required: true,
470
+ desc: 'A numeric value representing the system identification'
471
+ # Optional parameters/fields
472
+ option :controlAcronyms, type: :string, required: false,
473
+ desc: 'The system acronym(s) e.g "AC-1, AC-2" - if not provided all CACs for systemId' \
474
+ ' are returned'
475
+
476
+ def controls
477
+ optional_options_keys = optional_options(@_initializer).keys
478
+ optional_options = to_input_hash(optional_options_keys, options)
479
+
480
+ begin
481
+ # Get location of one or many controls in CAC
482
+ result = SwaggerClient::CACApi.new.get_system_cac(options[:systemId], optional_options)
483
+ puts to_output_hash(result).green
484
+ rescue SwaggerClient::ApiError => e
485
+ puts 'Exception when calling ApprovalChainApi->get_system_cac'.red
486
+ puts to_output_hash(e)
487
+ end
488
+ end
489
+ end
490
+
491
+ # The Package Approval Chain (PAC) endpoints provide the ability to view the
492
+ # status of existing workflows and initiate new workflows for a system.
493
+ #
494
+ # Notes:
495
+ # - If the indicated system has any active workflows, the response will include
496
+ # information such as the workflow type and the current stage of each workflow.
497
+ # - If there are no active workflows, then a null data member will be returned.
498
+ #
499
+ # Endpoints:
500
+ # /api/systems/{systemId}/approval/pac - Get location of system package in PAC
501
+ class PAC < SubCommandBase
502
+ def self.exit_on_failure?
503
+ true
504
+ end
505
+
506
+ desc 'package', 'Get location of system package in PAC'
507
+ # Required parameters/fields
508
+ option :systemId, type: :numeric, required: true,
509
+ desc: 'A numeric value representing the system identification'
510
+
511
+ def package
512
+ # Get location of system package in PAC
513
+ result = SwaggerClient::PACApi.new.get_system_pac(options[:systemId])
514
+ puts to_output_hash(result).green
515
+ rescue SwaggerClient::ApiError => e
516
+ puts 'Exception when calling ApprovalChainApi->get_system_'.red
517
+ puts to_output_hash(e)
518
+ end
519
+ end
520
+
521
+ # The Cybersecurity Maturity Model Certification (CMMC) Assessments endpoint provides
522
+ # the ability to view CMMC assessment information. It is available to CMMC eMASS only.
523
+ #
524
+ # Endpoints:
525
+ # /api/cmmc-assessments - Get CMMC assessment information
526
+ class CMMC < SubCommandBase
527
+ def self.exit_on_failure?
528
+ true
529
+ end
530
+
531
+ desc 'assessments', 'Get CMMC assessment information'
532
+ long_desc Help.text(:cmmc_get_mapper)
533
+
534
+ # Required parameters/fields
535
+ option :sinceDate, type: :string, required: true, desc: 'The CMMC date. Unix date format'
536
+
537
+ def assessments
538
+ result = SwaggerClient::CMMCAssessmentsApi.new.get_cmmc_assessments(options[:sinceDate])
539
+ puts to_output_hash(result).green
540
+ rescue SwaggerClient::ApiError => e
541
+ puts 'Exception when calling ApprovalChainApi->get_cmmc_assessments'.red
542
+ puts to_output_hash(e)
543
+ end
544
+ end
545
+
546
+ # The Workflow Definitions endpoint provides the ability to view all workflow schemas
547
+ # available on the eMASS instance. Every transition for each workflow stage is included.
548
+ #
549
+ # Endpoints:
550
+ # /api/workflow-definitions - Get workflow definitions in a site
551
+ class WorkflowDefinitions < SubCommandBase
552
+ def self.exit_on_failure?
553
+ true
554
+ end
555
+
556
+ desc 'forSite', 'Get location of system package in PAC'
557
+
558
+ # Optional parameters/fields
559
+ option :includeInactive, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
560
+ option :registrationType,
561
+ type: :string, required: false,
562
+ enum: %w[assessAndAuthorize assessOnly guest regular functional cloudServiceProvider commonControlProvider]
563
+
564
+ def forSite
565
+ optional_options_keys = optional_options(@_initializer).keys
566
+ optional_options = to_input_hash(optional_options_keys, options)
567
+
568
+ result = SwaggerClient::WorkflowDefinitionsApi.new.get_workflow_definitions(optional_options)
569
+ puts to_output_hash(result).green
570
+ rescue SwaggerClient::ApiError => e
571
+ puts 'Exception when calling ApprovalChainApi->get_workflow_definitions'.red
572
+ puts to_output_hash(e)
573
+ end
574
+ end
575
+
576
+ # The Workflow Instances endpoint provides the ability to view detailed information on all
577
+ # active and historical workflows for a system.
578
+ #
579
+ # Endpoints:
580
+ # /api/systems/{systemId}/workflow-instances - Get workflow instances in a system
581
+ # /api/systems/{systemId}/workflow-instances/{workflowInstanceId} - Get workflow instance by ID in a system
582
+ class WorkflowInstances < SubCommandBase
583
+ def self.exit_on_failure?
584
+ true
585
+ end
586
+
587
+ desc 'forSystem', 'Get workflow instances in a system'
588
+ # Required parameters/fields
589
+ option :systemId, type: :numeric, required: true,
590
+ desc: 'A numeric value representing the system identification'
591
+
592
+ # Optional parameters/fields
593
+ option :includeComments, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
594
+ option :pageIndex, type: :numeric, required: false, desc: 'The page number to be returned'
595
+ option :sinceDate, type: :string, required: false, desc: 'The workflow instance date. Unix date format'
596
+ option :status, type: :string, required: false, enum: %w[active inactive all]
597
+
598
+ def forSystem
599
+ optional_options_keys = optional_options(@_initializer).keys
600
+ optional_options = to_input_hash(optional_options_keys, options)
601
+
602
+ result = SwaggerClient::WorkflowInstancesApi.new.get_system_workflow_instances(
603
+ options[:systemId], optional_options
604
+ )
605
+ puts to_output_hash(result).green
606
+ rescue SwaggerClient::ApiError => e
607
+ puts 'Exception when calling ApprovalChainApi->get_system_workflow_instances'.red
608
+ puts to_output_hash(e)
609
+ end
610
+
611
+ # Workflow by workflowInstanceId ---------------------------------------------------------
612
+ desc 'byWorkflowInstanceId', 'Get workflow instance by ID in a system'
613
+
614
+ # Required parameters/fields
615
+ option :systemId, type: :numeric, required: true,
616
+ desc: 'A numeric value representing the system identification'
617
+ option :workflowInstanceId, type: :numeric, required: true,
618
+ desc: 'A numeric value representing the workflowInstance identification'
619
+
620
+ def byWorkflowInstanceId
621
+ result = SwaggerClient::WorkflowInstancesApi.new.get_system_workflow_instances_by_workflow_instance_id(
622
+ options[:systemId], options[:workflowInstanceId]
623
+ )
624
+ puts to_output_hash(result).green
625
+ rescue SwaggerClient::ApiError => e
626
+ puts 'Exception when calling ApprovalChainApi->get_system_workflow_instances_by_workflow_instance_id'.red
627
+ puts to_output_hash(e)
628
+ end
629
+ end
630
+
631
+ class Get < SubCommandBase
632
+ desc 'test', 'Test connection to the configured eMASS server'
633
+ subcommand 'test', Test
634
+
635
+ desc 'system', 'Get a system ID given name/owner, or get a system by ID'
636
+ subcommand 'system', System
637
+
638
+ desc 'systems', 'Get all systems'
639
+ subcommand 'systems', Systems
640
+
641
+ desc 'roles', 'Get all system roles or by category Id'
642
+ subcommand 'roles', Roles
643
+
644
+ desc 'controls', 'Get system Controls'
645
+ subcommand 'controls', Controls
646
+
647
+ desc 'test_results', 'Get system Test Results'
648
+ subcommand 'test_results', TestResults
649
+
650
+ desc 'poams', 'Get system Poams'
651
+ subcommand 'poams', Poams
652
+
653
+ desc 'milestones', 'Get system Milestones'
654
+ subcommand 'milestones', Milestones
655
+
656
+ desc 'artifacts', 'Get system Artifacts'
657
+ subcommand 'artifacts', Artifacts
658
+
659
+ desc 'cac', 'Get location of one or many controls in CAC'
660
+ subcommand 'cac', CAC
661
+
662
+ desc 'pac', 'Get status of active workflows in a system'
663
+ subcommand 'pac', PAC
664
+
665
+ desc 'cmmc', 'Get CMMC assessment information'
666
+ subcommand 'cmmc', CMMC
667
+
668
+ desc 'workflow_definitions', 'Get workflow definitions in a site'
669
+ subcommand 'workflow_definitions', WorkflowDefinitions
670
+
671
+ desc 'workflow_instances', 'Get workflow instance by system and/or ID in a system'
672
+ subcommand 'workflow_instances', WorkflowInstances
673
+ end
674
+ end
675
+ # rubocop:enable Naming/MethodName