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
@@ -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