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.
- checksums.yaml +7 -0
- data/.dockerignore +11 -0
- data/.env-example +10 -0
- data/.github/release-drafter.yml +16 -0
- data/.github/workflows/codeql-analysis.yml +70 -0
- data/.github/workflows/draft-release.yml +16 -0
- data/.github/workflows/generate_docs.yml +33 -0
- data/.github/workflows/gh-pages.yml +33 -0
- data/.github/workflows/release.yml +38 -0
- data/.github/workflows/rubocop.yml +23 -0
- data/.github/workflows/test-cli.yml +73 -0
- data/.gitignore +17 -0
- data/.mergify.yml +25 -0
- data/.rubocop.yml +80 -0
- data/.rubocop_todo.yml +27 -0
- data/CHANGELOG.md +16 -0
- data/Dockerfile +10 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +110 -0
- data/LICENSE.md +15 -0
- data/README.md +108 -0
- data/Rakefile +18 -0
- data/TAGS +2393 -0
- data/_config.yml +2 -0
- data/docs/developers.md +115 -0
- data/docs/features.md +1193 -0
- data/docs/redoc/index.html +1231 -0
- data/docs/swagger/dist/favicon-16x16.png +0 -0
- data/docs/swagger/dist/favicon-32x32.png +0 -0
- data/docs/swagger/dist/oauth2-redirect.html +75 -0
- data/docs/swagger/dist/swagger-ui-bundle.js +3 -0
- data/docs/swagger/dist/swagger-ui-bundle.js.map +1 -0
- data/docs/swagger/dist/swagger-ui-es-bundle-core.js +3 -0
- data/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +1 -0
- data/docs/swagger/dist/swagger-ui-es-bundle.js +3 -0
- data/docs/swagger/dist/swagger-ui-es-bundle.js.map +1 -0
- data/docs/swagger/dist/swagger-ui-standalone-preset.js +3 -0
- data/docs/swagger/dist/swagger-ui-standalone-preset.js.map +1 -0
- data/docs/swagger/dist/swagger-ui.css +4 -0
- data/docs/swagger/dist/swagger-ui.css.map +1 -0
- data/docs/swagger/dist/swagger-ui.js +3 -0
- data/docs/swagger/dist/swagger-ui.js.map +1 -0
- data/docs/swagger/index.html +60 -0
- data/emass_client/eMASSRestOpenApi.yaml +5698 -0
- data/emass_client/ruby_client/.gitignore +39 -0
- data/emass_client/ruby_client/.rspec +2 -0
- data/emass_client/ruby_client/.rubocop.yml +154 -0
- data/emass_client/ruby_client/.swagger-codegen/VERSION +1 -0
- data/emass_client/ruby_client/.swagger-codegen-ignore +23 -0
- data/emass_client/ruby_client/Gemfile +9 -0
- data/emass_client/ruby_client/README.md +1284 -0
- data/emass_client/ruby_client/Rakefile +8 -0
- data/emass_client/ruby_client/docs/ArtifactsApi.md +284 -0
- data/emass_client/ruby_client/docs/ArtifactsDelete.md +6 -0
- data/emass_client/ruby_client/docs/ArtifactsDeleteInner.md +7 -0
- data/emass_client/ruby_client/docs/ArtifactsExportApi.md +76 -0
- data/emass_client/ruby_client/docs/ArtifactsGet.md +20 -0
- data/emass_client/ruby_client/docs/ArtifactsRequestPutBody.md +16 -0
- data/emass_client/ruby_client/docs/ArtifactsResponseDel.md +8 -0
- data/emass_client/ruby_client/docs/ArtifactsResponseDelData.md +9 -0
- data/emass_client/ruby_client/docs/ArtifactsResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/ArtifactsResponsePutPost.md +8 -0
- data/emass_client/ruby_client/docs/CACApi.md +140 -0
- data/emass_client/ruby_client/docs/CMMCAssessmentsApi.md +71 -0
- data/emass_client/ruby_client/docs/CacGet.md +13 -0
- data/emass_client/ruby_client/docs/CacRequestPostBody.md +8 -0
- data/emass_client/ruby_client/docs/CacResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/CacResponsePost.md +8 -0
- data/emass_client/ruby_client/docs/CacResponsePostData.md +9 -0
- data/emass_client/ruby_client/docs/CmmcGet.md +19 -0
- data/emass_client/ruby_client/docs/CmmcResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/ConnectivityCcsd.md +8 -0
- data/emass_client/ruby_client/docs/ControlsApi.md +140 -0
- data/emass_client/ruby_client/docs/ControlsGet.md +36 -0
- data/emass_client/ruby_client/docs/ControlsPut.md +9 -0
- data/emass_client/ruby_client/docs/ControlsRequestPutBody.md +29 -0
- data/emass_client/ruby_client/docs/ControlsResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/ControlsResponsePut.md +8 -0
- data/emass_client/ruby_client/docs/DefinitionTransitions.md +9 -0
- data/emass_client/ruby_client/docs/DeleteMilestone.md +7 -0
- data/emass_client/ruby_client/docs/DeletePoam.md +7 -0
- data/emass_client/ruby_client/docs/Empty200Response.md +6 -0
- data/emass_client/ruby_client/docs/Error.md +8 -0
- data/emass_client/ruby_client/docs/InstancesTransitions.md +12 -0
- data/emass_client/ruby_client/docs/MilestoneResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/MilestoneResponsePost.md +8 -0
- data/emass_client/ruby_client/docs/MilestoneResponsePut.md +8 -0
- data/emass_client/ruby_client/docs/MilestonesApi.md +350 -0
- data/emass_client/ruby_client/docs/MilestonesDelete.md +6 -0
- data/emass_client/ruby_client/docs/MilestonesGet.md +12 -0
- data/emass_client/ruby_client/docs/MilestonesPost.md +6 -0
- data/emass_client/ruby_client/docs/MilestonesPut.md +6 -0
- data/emass_client/ruby_client/docs/MilestonesPutPostDelete.md +11 -0
- data/emass_client/ruby_client/docs/MilestonesRequestPostBody.md +9 -0
- data/emass_client/ruby_client/docs/MilestonesRequestPutBody.md +9 -0
- data/emass_client/ruby_client/docs/MilestonesRequiredPost.md +8 -0
- data/emass_client/ruby_client/docs/MilestonesRequiredPut.md +9 -0
- data/emass_client/ruby_client/docs/Model200.md +7 -0
- data/emass_client/ruby_client/docs/Model201.md +7 -0
- data/emass_client/ruby_client/docs/Model201Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model400.md +7 -0
- data/emass_client/ruby_client/docs/Model400Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model400Response.md +7 -0
- data/emass_client/ruby_client/docs/Model401.md +7 -0
- data/emass_client/ruby_client/docs/Model401Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model403.md +7 -0
- data/emass_client/ruby_client/docs/Model403Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model404.md +8 -0
- data/emass_client/ruby_client/docs/Model404Response.md +7 -0
- data/emass_client/ruby_client/docs/Model405.md +7 -0
- data/emass_client/ruby_client/docs/Model405Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model411.md +7 -0
- data/emass_client/ruby_client/docs/Model411Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model490.md +7 -0
- data/emass_client/ruby_client/docs/Model490Meta.md +8 -0
- data/emass_client/ruby_client/docs/Model500.md +7 -0
- data/emass_client/ruby_client/docs/Model500Meta.md +8 -0
- data/emass_client/ruby_client/docs/PACApi.md +137 -0
- data/emass_client/ruby_client/docs/POAMApi.md +346 -0
- data/emass_client/ruby_client/docs/PacGet.md +14 -0
- data/emass_client/ruby_client/docs/PacPost.md +9 -0
- data/emass_client/ruby_client/docs/PacRequestPostBody.md +9 -0
- data/emass_client/ruby_client/docs/PacResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/PacResponsePost.md +8 -0
- data/emass_client/ruby_client/docs/PoamDelete.md +6 -0
- data/emass_client/ruby_client/docs/PoamGet.md +39 -0
- data/emass_client/ruby_client/docs/PoamPost.md +6 -0
- data/emass_client/ruby_client/docs/PoamPostPutDel.md +10 -0
- data/emass_client/ruby_client/docs/PoamPut.md +6 -0
- data/emass_client/ruby_client/docs/PoamRequestPostBody.md +6 -0
- data/emass_client/ruby_client/docs/PoamRequestPutBody.md +6 -0
- data/emass_client/ruby_client/docs/PoamRequiredPost.md +32 -0
- data/emass_client/ruby_client/docs/PoamRequiredPut.md +35 -0
- data/emass_client/ruby_client/docs/PoamResponseDelete.md +8 -0
- data/emass_client/ruby_client/docs/PoamResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/PoamResponsePost.md +8 -0
- data/emass_client/ruby_client/docs/PoamResponsePut.md +8 -0
- data/emass_client/ruby_client/docs/Register.md +8 -0
- data/emass_client/ruby_client/docs/RegisterData.md +7 -0
- data/emass_client/ruby_client/docs/RegisterUserRequestPostBody.md +7 -0
- data/emass_client/ruby_client/docs/RegistrationApi.md +71 -0
- data/emass_client/ruby_client/docs/RoleCategory.md +10 -0
- data/emass_client/ruby_client/docs/Roles.md +9 -0
- data/emass_client/ruby_client/docs/Ssps.md +9 -0
- data/emass_client/ruby_client/docs/Stage.md +8 -0
- data/emass_client/ruby_client/docs/StaticCodeApplication.md +12 -0
- data/emass_client/ruby_client/docs/StaticCodeRequestPostBody.md +6 -0
- data/emass_client/ruby_client/docs/StaticCodeRequiredPost.md +8 -0
- data/emass_client/ruby_client/docs/StaticCodeRequiredPostApplication.md +8 -0
- data/emass_client/ruby_client/docs/StaticCodeScansApi.md +73 -0
- data/emass_client/ruby_client/docs/Success200Response.md +8 -0
- data/emass_client/ruby_client/docs/SystemIdArtifactsBody.md +10 -0
- data/emass_client/ruby_client/docs/SystemResponse.md +8 -0
- data/emass_client/ruby_client/docs/SystemRolesApi.md +137 -0
- data/emass_client/ruby_client/docs/SystemRolesCategoryResponse.md +8 -0
- data/emass_client/ruby_client/docs/SystemRolesResponse.md +8 -0
- data/emass_client/ruby_client/docs/SystemRolesResponseData.md +8 -0
- data/emass_client/ruby_client/docs/Systems.md +70 -0
- data/emass_client/ruby_client/docs/SystemsApi.md +155 -0
- data/emass_client/ruby_client/docs/Test.md +8 -0
- data/emass_client/ruby_client/docs/TestApi.md +66 -0
- data/emass_client/ruby_client/docs/TestData.md +7 -0
- data/emass_client/ruby_client/docs/TestResultsApi.md +144 -0
- data/emass_client/ruby_client/docs/TestResultsGet.md +15 -0
- data/emass_client/ruby_client/docs/TestResultsPost.md +9 -0
- data/emass_client/ruby_client/docs/TestResultsRequestPostBody.md +11 -0
- data/emass_client/ruby_client/docs/TestResultsResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/TestResultsResponsePost.md +8 -0
- data/emass_client/ruby_client/docs/Users.md +9 -0
- data/emass_client/ruby_client/docs/WorkflowDefinitionGet.md +11 -0
- data/emass_client/ruby_client/docs/WorkflowDefinitionResponseGet.md +8 -0
- data/emass_client/ruby_client/docs/WorkflowDefinitionsApi.md +74 -0
- data/emass_client/ruby_client/docs/WorkflowInstancesApi.md +146 -0
- data/emass_client/ruby_client/docs/WorkflowInstancesGet.md +16 -0
- data/emass_client/ruby_client/docs/WorkflowInstancesResponseGet.md +8 -0
- data/emass_client/ruby_client/git_push.sh +55 -0
- data/emass_client/ruby_client/lib/swagger_client/api/artifacts_api.rb +310 -0
- data/emass_client/ruby_client/lib/swagger_client/api/artifacts_export_api.rb +86 -0
- data/emass_client/ruby_client/lib/swagger_client/api/cac_api.rb +143 -0
- data/emass_client/ruby_client/lib/swagger_client/api/cmmc_assessments_api.rb +77 -0
- data/emass_client/ruby_client/lib/swagger_client/api/controls_api.rb +143 -0
- data/emass_client/ruby_client/lib/swagger_client/api/milestones_api.rb +366 -0
- data/emass_client/ruby_client/lib/swagger_client/api/pac_api.rb +140 -0
- data/emass_client/ruby_client/lib/swagger_client/api/poam_api.rb +345 -0
- data/emass_client/ruby_client/lib/swagger_client/api/registration_api.rb +78 -0
- data/emass_client/ruby_client/lib/swagger_client/api/static_code_scans_api.rb +84 -0
- data/emass_client/ruby_client/lib/swagger_client/api/system_roles_api.rb +150 -0
- data/emass_client/ruby_client/lib/swagger_client/api/systems_api.rb +162 -0
- data/emass_client/ruby_client/lib/swagger_client/api/test_api.rb +70 -0
- data/emass_client/ruby_client/lib/swagger_client/api/test_results_api.rb +149 -0
- data/emass_client/ruby_client/lib/swagger_client/api/workflow_definitions_api.rb +76 -0
- data/emass_client/ruby_client/lib/swagger_client/api/workflow_instances_api.rb +153 -0
- data/emass_client/ruby_client/lib/swagger_client/api_client.rb +389 -0
- data/emass_client/ruby_client/lib/swagger_client/api_error.rb +57 -0
- data/emass_client/ruby_client/lib/swagger_client/configuration.rb +224 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_delete.rb +201 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_delete_inner.rb +207 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_get.rb +383 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_request_put_body.rb +363 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_del.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_del_data.rb +225 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/artifacts_response_put_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cac_get.rb +301 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cac_request_post_body.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cac_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cac_response_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cac_response_post_data.rb +225 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cmmc_get.rb +398 -0
- data/emass_client/ruby_client/lib/swagger_client/models/cmmc_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/connectivity_ccsd.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/controls_get.rb +663 -0
- data/emass_client/ruby_client/lib/swagger_client/models/controls_put.rb +227 -0
- data/emass_client/ruby_client/lib/swagger_client/models/controls_request_put_body.rb +606 -0
- data/emass_client/ruby_client/lib/swagger_client/models/controls_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/controls_response_put.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/definition_transitions.rb +274 -0
- data/emass_client/ruby_client/lib/swagger_client/models/delete_milestone.rb +212 -0
- data/emass_client/ruby_client/lib/swagger_client/models/delete_poam.rb +212 -0
- data/emass_client/ruby_client/lib/swagger_client/models/empty200_response.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/error.rb +225 -0
- data/emass_client/ruby_client/lib/swagger_client/models/instances_transitions.rb +327 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestone_response_put.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_delete.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_get.rb +291 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_post.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_put.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_put_post_delete.rb +247 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_request_post_body.rb +242 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_request_put_body.rb +242 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_required_post.rb +227 -0
- data/emass_client/ruby_client/lib/swagger_client/models/milestones_required_put.rb +242 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_200.rb +208 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_201.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_201_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_400.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_400_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_400_response.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_401.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_401_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_403.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_403_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_404.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_404_response.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_405.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_405_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_411.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_411_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_490.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_490_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_500.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/model_500_meta.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/pac_get.rb +311 -0
- data/emass_client/ruby_client/lib/swagger_client/models/pac_post.rb +259 -0
- data/emass_client/ruby_client/lib/swagger_client/models/pac_request_post_body.rb +261 -0
- data/emass_client/ruby_client/lib/swagger_client/models/pac_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/pac_response_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_delete.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_get.rb +646 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_post.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_post_put_del.rb +237 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_put.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_request_post_body.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_request_put_body.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_required_post.rb +564 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_required_put.rb +594 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_delete.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/poam_response_put.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/register.rb +215 -0
- data/emass_client/ruby_client/lib/swagger_client/models/register_data.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/register_user_request_post_body.rb +211 -0
- data/emass_client/ruby_client/lib/swagger_client/models/role_category.rb +272 -0
- data/emass_client/ruby_client/lib/swagger_client/models/roles.rb +274 -0
- data/emass_client/ruby_client/lib/swagger_client/models/ssps.rb +227 -0
- data/emass_client/ruby_client/lib/swagger_client/models/stage.rb +252 -0
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_application.rb +303 -0
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_request_post_body.rb +197 -0
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_required_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/static_code_required_post_application.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/success200_response.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/system_id_artifacts_body.rb +284 -0
- data/emass_client/ruby_client/lib/swagger_client/models/system_response.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/system_roles_category_response.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/system_roles_response.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/system_roles_response_data.rb +219 -0
- data/emass_client/ruby_client/lib/swagger_client/models/systems.rb +1137 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test.rb +215 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test_data.rb +206 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_get.rb +333 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_post.rb +227 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_request_post_body.rb +306 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/test_results_response_post.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/users.rb +224 -0
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_definition_get.rb +282 -0
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_definition_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_instances_get.rb +368 -0
- data/emass_client/ruby_client/lib/swagger_client/models/workflow_instances_response_get.rb +217 -0
- data/emass_client/ruby_client/lib/swagger_client/version.rb +14 -0
- data/emass_client/ruby_client/lib/swagger_client.rb +161 -0
- data/emass_client/ruby_client/spec/api/artifacts_api_spec.rb +92 -0
- data/emass_client/ruby_client/spec/api/artifacts_export_api_spec.rb +48 -0
- data/emass_client/ruby_client/spec/api/cac_api_spec.rb +60 -0
- data/emass_client/ruby_client/spec/api/cmmc_assessments_api_spec.rb +46 -0
- data/emass_client/ruby_client/spec/api/controls_api_spec.rb +60 -0
- data/emass_client/ruby_client/spec/api/milestones_api_spec.rb +105 -0
- data/emass_client/ruby_client/spec/api/pac_api_spec.rb +59 -0
- data/emass_client/ruby_client/spec/api/poam_api_spec.rb +103 -0
- data/emass_client/ruby_client/spec/api/registration_api_spec.rb +46 -0
- data/emass_client/ruby_client/spec/api/static_code_scans_api_spec.rb +47 -0
- data/emass_client/ruby_client/spec/api/system_roles_api_spec.rb +60 -0
- data/emass_client/ruby_client/spec/api/systems_api_spec.rb +67 -0
- data/emass_client/ruby_client/spec/api/test_api_spec.rb +45 -0
- data/emass_client/ruby_client/spec/api/test_results_api_spec.rb +62 -0
- data/emass_client/ruby_client/spec/api/workflow_definitions_api_spec.rb +47 -0
- data/emass_client/ruby_client/spec/api/workflow_instances_api_spec.rb +63 -0
- data/emass_client/ruby_client/spec/api_client_spec.rb +225 -0
- data/emass_client/ruby_client/spec/base_object_spec.rb +109 -0
- data/emass_client/ruby_client/spec/configuration_spec.rb +41 -0
- data/emass_client/ruby_client/spec/models/artifacts_delete_inner_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/artifacts_delete_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/artifacts_get_spec.rb +126 -0
- data/emass_client/ruby_client/spec/models/artifacts_request_put_body_spec.rb +102 -0
- data/emass_client/ruby_client/spec/models/artifacts_response_del_data_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/artifacts_response_del_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/artifacts_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/artifacts_response_put_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/cac_get_spec.rb +80 -0
- data/emass_client/ruby_client/spec/models/cac_request_post_body_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/cac_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/cac_response_post_data_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/cac_response_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/cmmc_get_spec.rb +128 -0
- data/emass_client/ruby_client/spec/models/cmmc_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/connectivity_ccsd_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/controls_get_spec.rb +262 -0
- data/emass_client/ruby_client/spec/models/controls_put_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/controls_request_put_body_spec.rb +216 -0
- data/emass_client/ruby_client/spec/models/controls_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/controls_response_put_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/definition_transitions_spec.rb +64 -0
- data/emass_client/ruby_client/spec/models/delete_milestone_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/delete_poam_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/empty200_response_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/error_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/instances_transitions_spec.rb +86 -0
- data/emass_client/ruby_client/spec/models/milestone_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/milestone_response_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/milestone_response_put_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/milestones_delete_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/milestones_get_spec.rb +74 -0
- data/emass_client/ruby_client/spec/models/milestones_post_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/milestones_put_post_delete_spec.rb +64 -0
- data/emass_client/ruby_client/spec/models/milestones_put_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/milestones_request_post_body_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/milestones_request_put_body_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/milestones_required_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/milestones_required_put_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/model_200_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_201_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_201_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_400_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_400_response_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_400_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_401_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_401_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_403_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_403_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_404_response_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_404_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_405_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_405_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_411_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_411_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_490_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_490_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/model_500_meta_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/model_500_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/pac_get_spec.rb +86 -0
- data/emass_client/ruby_client/spec/models/pac_post_spec.rb +56 -0
- data/emass_client/ruby_client/spec/models/pac_request_post_body_spec.rb +56 -0
- data/emass_client/ruby_client/spec/models/pac_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/pac_response_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/poam_delete_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/poam_get_spec.rb +264 -0
- data/emass_client/ruby_client/spec/models/poam_post_put_del_spec.rb +58 -0
- data/emass_client/ruby_client/spec/models/poam_post_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/poam_put_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/poam_request_post_body_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/poam_request_put_body_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/poam_required_post_spec.rb +218 -0
- data/emass_client/ruby_client/spec/models/poam_required_put_spec.rb +236 -0
- data/emass_client/ruby_client/spec/models/poam_response_delete_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/poam_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/poam_response_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/poam_response_put_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/register_data_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/register_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/register_user_request_post_body_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/role_category_spec.rb +62 -0
- data/emass_client/ruby_client/spec/models/roles_spec.rb +60 -0
- data/emass_client/ruby_client/spec/models/ssps_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/stage_spec.rb +50 -0
- data/emass_client/ruby_client/spec/models/static_code_application_spec.rb +78 -0
- data/emass_client/ruby_client/spec/models/static_code_request_post_body_spec.rb +34 -0
- data/emass_client/ruby_client/spec/models/static_code_required_post_application_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/static_code_required_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/success200_response_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/system_id_artifacts_body_spec.rb +66 -0
- data/emass_client/ruby_client/spec/models/system_response_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/system_roles_category_response_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/system_roles_response_data_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/system_roles_response_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/systems_spec.rb +510 -0
- data/emass_client/ruby_client/spec/models/test_data_spec.rb +40 -0
- data/emass_client/ruby_client/spec/models/test_results_get_spec.rb +96 -0
- data/emass_client/ruby_client/spec/models/test_results_post_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/test_results_request_post_body_spec.rb +68 -0
- data/emass_client/ruby_client/spec/models/test_results_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/test_results_response_post_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/test_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/users_spec.rb +52 -0
- data/emass_client/ruby_client/spec/models/workflow_definition_get_spec.rb +68 -0
- data/emass_client/ruby_client/spec/models/workflow_definition_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/models/workflow_instances_get_spec.rb +110 -0
- data/emass_client/ruby_client/spec/models/workflow_instances_response_get_spec.rb +46 -0
- data/emass_client/ruby_client/spec/spec_helper.rb +110 -0
- data/emass_client/ruby_client/swagger_client.gemspec +38 -0
- data/emass_client/swagger-codegen/ruby_template/api_client.mustache +384 -0
- data/emass_client/swagger-codegen/ruby_template/api_info.mustache +12 -0
- data/emass_client/swagger-codegen/ruby_template/configuration.mustache +234 -0
- data/emass_client/swagger-codegen/ruby_template/gemspec.mustache +37 -0
- data/emasser.gemspec +40 -0
- data/exe/emasser +5 -0
- data/lib/emasser/cli.rb +25 -0
- data/lib/emasser/configuration.rb +34 -0
- data/lib/emasser/constants.rb +18 -0
- data/lib/emasser/delete.rb +146 -0
- data/lib/emasser/errors.rb +14 -0
- data/lib/emasser/get.rb +675 -0
- data/lib/emasser/help/approvalCac_post_mapper.md +20 -0
- data/lib/emasser/help/approvalPac_post_mapper.md +20 -0
- data/lib/emasser/help/artifacts_del_mapper.md +9 -0
- data/lib/emasser/help/artifacts_post_mapper.md +59 -0
- data/lib/emasser/help/artifacts_put_mapper.md +34 -0
- data/lib/emasser/help/cmmc_get_mapper.md +4 -0
- data/lib/emasser/help/controls_put_mapper.md +74 -0
- data/lib/emasser/help/milestone_del_mapper.md +11 -0
- data/lib/emasser/help/milestone_post_mapper.md +14 -0
- data/lib/emasser/help/milestone_put_mapper.md +23 -0
- data/lib/emasser/help/poam_del_mapper.md +5 -0
- data/lib/emasser/help/poam_post_mapper.md +93 -0
- data/lib/emasser/help/poam_put_mapper.md +107 -0
- data/lib/emasser/help/staticcode_clear_mapper.md +16 -0
- data/lib/emasser/help/staticcode_post_mapper.md +21 -0
- data/lib/emasser/help/testresults_post_mapper.md +21 -0
- data/lib/emasser/help.rb +11 -0
- data/lib/emasser/input_converters.rb +21 -0
- data/lib/emasser/options_parser.rb +20 -0
- data/lib/emasser/output_converters.rb +14 -0
- data/lib/emasser/post.rb +609 -0
- data/lib/emasser/put.rb +581 -0
- data/lib/emasser/version.rb +5 -0
- data/lib/emasser.rb +19 -0
- metadata +725 -0
data/lib/emasser/post.rb
ADDED
|
@@ -0,0 +1,609 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Hack class that properly formats the CLI help
|
|
4
|
+
class SubCommandBase < Thor
|
|
5
|
+
include OptionsParser
|
|
6
|
+
include InputConverters
|
|
7
|
+
include OutputConverters
|
|
8
|
+
|
|
9
|
+
# We do not control the method declaration for the banner
|
|
10
|
+
|
|
11
|
+
# rubocop:disable Style/OptionalBooleanParameter
|
|
12
|
+
def self.banner(command, _namespace = nil, subcommand = false)
|
|
13
|
+
# Use the $thor_runner (declared by the Thor CLI framework)
|
|
14
|
+
# to properly format the help text of sub-sub-commands.
|
|
15
|
+
|
|
16
|
+
# rubocop:disable Style/GlobalVars
|
|
17
|
+
if ancestors[0].to_s.include? '::Post'
|
|
18
|
+
"#{basename} #{command.formatted_usage(self, $thor_runner, subcommand)}"
|
|
19
|
+
else
|
|
20
|
+
"#{basename} post #{command.formatted_usage(self, $thor_runner, subcommand)}"
|
|
21
|
+
end
|
|
22
|
+
# rubocop:enable Style/GlobalVars
|
|
23
|
+
end
|
|
24
|
+
# rubocop:enable Style/OptionalBooleanParameter
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Override thor's long_desc identation behavior
|
|
28
|
+
class Thor
|
|
29
|
+
module Shell
|
|
30
|
+
class Basic
|
|
31
|
+
def print_wrapped(message, _options = {})
|
|
32
|
+
message = "\n#{message}\n" unless message[0] == "\n"
|
|
33
|
+
stdout.puts message
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
module Emasser
|
|
40
|
+
POAMS_POST_HELP_MESSAGE = "\nInvoke \"bundle exec exe/emasser post poams help add\" for additional help"
|
|
41
|
+
# The Test Results endpoints provide the ability to add test results for a
|
|
42
|
+
# system's Assessment Procedures (CCIs) which determine Security Control compliance.
|
|
43
|
+
#
|
|
44
|
+
# Endpoint:
|
|
45
|
+
# /api/systems/{systemId}/test-results - Add one or many test results for a system
|
|
46
|
+
class TestResults < SubCommandBase
|
|
47
|
+
def self.exit_on_failure?
|
|
48
|
+
true
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
desc 'add', 'Post a test result for a system'
|
|
52
|
+
long_desc Help.text(:testresults_post_mapper)
|
|
53
|
+
|
|
54
|
+
# Required fields
|
|
55
|
+
option :systemId, type: :numeric, required: true,
|
|
56
|
+
desc: 'A numeric value representing the system identification'
|
|
57
|
+
option :cci, type: :string, required: true, desc: 'The system CCI string numerical value'
|
|
58
|
+
option :testedBy, type: :string, required: true, desc: 'The person that conducted the test (Last Name, First)'
|
|
59
|
+
option :testDate, type: :numeric, required: true, desc: 'The date test was conducted, Unix time format.'
|
|
60
|
+
option :description, type: :string, required: true, desc: 'The description of test result. 4000 Characters.'
|
|
61
|
+
option :complianceStatus, type: :string, required: true, enum: ['Compliant', 'Non-Compliant', 'Not Applicable']
|
|
62
|
+
|
|
63
|
+
def add
|
|
64
|
+
body = SwaggerClient::TestResultsRequestPostBody.new
|
|
65
|
+
body.cci = options[:cci]
|
|
66
|
+
body.tested_by = options[:testedBy]
|
|
67
|
+
body.test_date = options[:testDate]
|
|
68
|
+
body.description = options[:description]
|
|
69
|
+
body.compliance_status = options[:complianceStatus]
|
|
70
|
+
|
|
71
|
+
body_array = Array.new(1, body)
|
|
72
|
+
|
|
73
|
+
begin
|
|
74
|
+
result = SwaggerClient::TestResultsApi
|
|
75
|
+
.new.add_test_results_by_system_id(body_array, options[:systemId])
|
|
76
|
+
puts to_output_hash(result).green
|
|
77
|
+
rescue SwaggerClient::ApiError => e
|
|
78
|
+
puts 'Exception when calling TestResultsApi->add_test_results_by_system_id'.red
|
|
79
|
+
puts to_output_hash(e)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# The POA&M endpoints provide the ability to add Plan of Action and Milestones (POA&M)
|
|
85
|
+
# items to a system.
|
|
86
|
+
#
|
|
87
|
+
# Endpoint:
|
|
88
|
+
# /api/systems/{systemId}/poams - Add one or many poa&m items in a system
|
|
89
|
+
class Poams < SubCommandBase
|
|
90
|
+
def self.exit_on_failure?
|
|
91
|
+
true
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
# POAM --------------------------------------------------------------------
|
|
95
|
+
#
|
|
96
|
+
# The following fields are required based on the contents of the status field
|
|
97
|
+
# status Required Fields
|
|
98
|
+
# -------------------------------------------------------------------------
|
|
99
|
+
# Risk Accepted comments, resources
|
|
100
|
+
# Ongoing scheduledCompletionDate, resources, milestones (at least 1)
|
|
101
|
+
# Completed scheduledCompletionDate, comments, resources,
|
|
102
|
+
# completionDate, milestones (at least 1)
|
|
103
|
+
# Not Applicable POAM can not be created
|
|
104
|
+
#--------------------------------------------------------------------------
|
|
105
|
+
#
|
|
106
|
+
# If a POC email is supplied, the application will attempt to locate a user
|
|
107
|
+
# already registered within the application and pre-populate any information
|
|
108
|
+
# not explicitly supplied in the request. If no such user is found, these
|
|
109
|
+
# fields are required within the request:
|
|
110
|
+
# pocFirstName, pocLastName, pocPhoneNumber
|
|
111
|
+
|
|
112
|
+
desc 'add', 'Add one or many POA&M items in a system'
|
|
113
|
+
long_desc Help.text(:poam_post_mapper)
|
|
114
|
+
|
|
115
|
+
# Required parameters/fields (the poamId and displayPoamId are generated by the PUT call)
|
|
116
|
+
option :systemId, type: :numeric, required: true, desc: 'A numeric value representing the system identification'
|
|
117
|
+
option :status, type: :string, required: true, enum: ['Ongoing', 'Risk Accepted', 'Completed', 'Not Applicable']
|
|
118
|
+
option :vulnerabilityDescription, type: :string, required: true, desc: 'POA&M vulnerability description'
|
|
119
|
+
option :sourceIdentVuln,
|
|
120
|
+
type: :string, required: true, desc: 'Source that identifies the vulnerability'
|
|
121
|
+
option :pocOrganization, type: :string, required: true, desc: 'Organization/Office represented'
|
|
122
|
+
option :resources, type: :string, required: true, desc: 'List of resources used'
|
|
123
|
+
|
|
124
|
+
# Conditional parameters/fields
|
|
125
|
+
option :milestone, type: :hash, required: false, desc: 'key:values are: description and scheduledCompletionDate'
|
|
126
|
+
option :pocFirstName, type: :string, required: false, desc: 'First name of POC'
|
|
127
|
+
option :pocLastName, type: :string, required: false, desc: 'Last name of POC.'
|
|
128
|
+
option :pocEmail, type: :string, required: false, desc: 'Email address of POC'
|
|
129
|
+
option :pocPhoneNumber, type: :string, required: false, desc: 'Phone number of POC (area code) ***-**** format'
|
|
130
|
+
option :severity, type: :string, required: false, enum: ['Very Low', 'Low', 'Moderate', 'High', 'Very High']
|
|
131
|
+
option :scheduledCompletionDate,
|
|
132
|
+
type: :numeric, required: false, desc: 'The scheduled completion date - Unix time format'
|
|
133
|
+
option :completionDate,
|
|
134
|
+
type: :numeric, required: false, desc: 'The schedule completion date - Unix time format'
|
|
135
|
+
option :comments, type: :string, required: false, desc: 'Comments for completed and risk accepted POA&M items'
|
|
136
|
+
|
|
137
|
+
# Optional parameters/fields
|
|
138
|
+
option :externalUid, type: :string, required: false, desc: 'External ID associated with the POA&M'
|
|
139
|
+
option :controlAcronym, type: :string, required: false, desc: 'The system acronym(s) e.g "AC-1, AC-2"'
|
|
140
|
+
option :cci, type: :string, required: false, desc: 'The system CCIS string numerical value'
|
|
141
|
+
option :securityChecks, type: :string, required: false, desc: 'Security Checks that are associated with the POA&M'
|
|
142
|
+
option :rawSeverity, type: :string, required: false, enum: %w[I II III]
|
|
143
|
+
option :relevanceOfThreat,
|
|
144
|
+
type: :string, required: false, enum: ['Very Low', 'Low', 'Moderate', 'High', 'Very High']
|
|
145
|
+
option :likelihood, type: :string, required: false, enum: ['Very Low', 'Low', 'Moderate', 'High', 'Very High']
|
|
146
|
+
option :impact, type: :string, required: false, desc: 'Description of Security Control’s impact'
|
|
147
|
+
option :impactDescription, type: :string, required: false, desc: 'Description of the security control impact'
|
|
148
|
+
option :residualRiskLevel,
|
|
149
|
+
type: :string, required: false, enum: ['Very Low', 'Low', 'Moderate', 'High', 'Very High']
|
|
150
|
+
option :recommendations, type: :string, required: false, desc: 'Recomendations'
|
|
151
|
+
option :mitigation, type: :string, required: false, desc: 'Mitigation explanation'
|
|
152
|
+
|
|
153
|
+
# rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
154
|
+
def add
|
|
155
|
+
# Required fields
|
|
156
|
+
body = SwaggerClient::PoamRequiredPost.new
|
|
157
|
+
body.status = options[:status]
|
|
158
|
+
body.vulnerability_description = options[:vulnerabilityDescription]
|
|
159
|
+
body.source_ident_vuln = options[:sourceIdentVuln]
|
|
160
|
+
body.poc_organization = options[:pocOrganization]
|
|
161
|
+
body.resources = options[:resources]
|
|
162
|
+
|
|
163
|
+
process_business_logic(body)
|
|
164
|
+
|
|
165
|
+
# Add conditional fields
|
|
166
|
+
body.poc_first_name = options[:pocFirstName] if options[:pocFirstName]
|
|
167
|
+
body.poc_last_name = options[:pocLastName] if options[:pocLastName]
|
|
168
|
+
body.poc_email = options[:pocEmail] if options[:pocEmail]
|
|
169
|
+
body.poc_phone_number = options[:pocPhoneNumber] if options[:pocPhoneNumber]
|
|
170
|
+
body.severity = options[:severity] if options[:severity]
|
|
171
|
+
|
|
172
|
+
# Add optional fields
|
|
173
|
+
body.external_uid = options[:externalUid] if options[:externalUid]
|
|
174
|
+
body.control_acronyms = options[:controlAcronym] if options[:controlAcronym]
|
|
175
|
+
body.cci = options[:cci] if options[:cci]
|
|
176
|
+
body.security_checks = options[:securityChecks] if options[:securityChecks]
|
|
177
|
+
body.raw_severity = options[:rawSeverity] if options[:rawSeverity]
|
|
178
|
+
body.relevance_of_threat = options[:relevanceOfThreat] if options[:relevanceOfThreat]
|
|
179
|
+
body.likelihood = options[:likelihood] if options[:likelihood]
|
|
180
|
+
body.impact = options[:impact] if options[:impact]
|
|
181
|
+
body.impact_description = options[:impactDescription] if options[:impactDescription]
|
|
182
|
+
body.residual_risk_level = options[:residualRiskLevel] if options[:residualRiskLevel]
|
|
183
|
+
body.recommendations = options[:recommendations] if options[:recommendations]
|
|
184
|
+
body.mitigation = options[:mitigation] if options[:mitigation]
|
|
185
|
+
|
|
186
|
+
body_array = Array.new(1, body)
|
|
187
|
+
|
|
188
|
+
begin
|
|
189
|
+
result = SwaggerClient::POAMApi.new.add_poam_by_system_id(body_array, options[:systemId])
|
|
190
|
+
puts to_output_hash(result).green
|
|
191
|
+
rescue SwaggerClient::ApiError => e
|
|
192
|
+
puts 'Exception when calling POAMApi->add_poam_by_system_id'.red
|
|
193
|
+
puts to_output_hash(e)
|
|
194
|
+
end
|
|
195
|
+
end
|
|
196
|
+
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
197
|
+
|
|
198
|
+
# rubocop:disable Metrics/BlockLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
199
|
+
no_commands do
|
|
200
|
+
def process_business_logic(body)
|
|
201
|
+
#-----------------------------------------------------------------------------
|
|
202
|
+
# Conditional fields based on the status field values
|
|
203
|
+
# "Risk Accepted" comments, resources
|
|
204
|
+
# "Ongoing" scheduledCompletionDate, resources, milestones (at least 1)
|
|
205
|
+
# "Completed" scheduledCompletionDate, comments, resources,
|
|
206
|
+
# completionDate, milestones (at least 1)
|
|
207
|
+
# "Not Applicable" POAM can not be created
|
|
208
|
+
#-----------------------------------------------------------------------------
|
|
209
|
+
# rubocop:disable Style/CaseLikeIf, Style/StringLiterals
|
|
210
|
+
if options[:status] == "Risk Accepted"
|
|
211
|
+
if options[:comments].nil?
|
|
212
|
+
puts 'When status = "Risk Accepted" the following parameters/fields are required:'.red
|
|
213
|
+
puts ' comments'.red
|
|
214
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
215
|
+
exit
|
|
216
|
+
else
|
|
217
|
+
body.comments = options[:comments]
|
|
218
|
+
end
|
|
219
|
+
elsif options[:status] == "Ongoing"
|
|
220
|
+
if options[:scheduledCompletionDate].nil? || options[:milestone].nil?
|
|
221
|
+
puts 'When status = "Ongoing" the following parameters/fields are required:'.red
|
|
222
|
+
puts ' scheduledCompletionDate, or milestone'.red
|
|
223
|
+
print_milestone_help
|
|
224
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
225
|
+
exit
|
|
226
|
+
elsif options[:milestone]["description"].nil? || options[:milestone]["scheduledCompletionDate"].nil?
|
|
227
|
+
puts 'Missing milstone parameters/fields'.red
|
|
228
|
+
print_milestone_help
|
|
229
|
+
exit
|
|
230
|
+
else
|
|
231
|
+
body.scheduled_completion_date = options[:scheduledCompletionDate]
|
|
232
|
+
|
|
233
|
+
milestone = SwaggerClient::MilestonesRequiredPost.new
|
|
234
|
+
milestone.description = options[:milestone]["description"]
|
|
235
|
+
milestone.scheduled_completion_date = options[:milestone]["scheduledCompletionDate"]
|
|
236
|
+
milestone_array = Array.new(1, milestone)
|
|
237
|
+
body.milestones = milestone_array
|
|
238
|
+
end
|
|
239
|
+
elsif options[:status] == "Completed"
|
|
240
|
+
if options[:scheduledCompletionDate].nil? || options[:comments].nil? ||
|
|
241
|
+
options[:completionDate].nil? || options[:milestone].nil?
|
|
242
|
+
puts 'When status = "Completed" the following parameters/fields are required:'.red
|
|
243
|
+
puts ' scheduledCompletionDate, comments, completionDate, or milestone'.red
|
|
244
|
+
print_milestone_help
|
|
245
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
246
|
+
exit
|
|
247
|
+
else
|
|
248
|
+
body.scheduled_completion_date = options[:scheduledCompletionDate]
|
|
249
|
+
body.comments = options[:comments]
|
|
250
|
+
body.completion_date = options[:completionDate]
|
|
251
|
+
|
|
252
|
+
milestone = SwaggerClient::MilestonesRequiredPost.new
|
|
253
|
+
milestone.description = options[:milestone]["description"]
|
|
254
|
+
milestone.scheduled_completion_date = options[:milestone]["scheduledCompletionDate"]
|
|
255
|
+
milestone_array = Array.new(1, milestone)
|
|
256
|
+
body.milestones = milestone_array
|
|
257
|
+
end
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
# POC checks: If any poc information is provided all POC fields are required
|
|
261
|
+
if options[:pocFirstName]
|
|
262
|
+
if options[:pocLastName].nil? || options[:pocEmail].nil? || options[:pocPhoneNumber].nil?
|
|
263
|
+
puts 'If a POC first name is given, then all POC information must be entered:'.red
|
|
264
|
+
puts ' pocLastName, pocEmail, pocPhoneNumber'.red
|
|
265
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
266
|
+
exit
|
|
267
|
+
end
|
|
268
|
+
elsif options[:pocLastName]
|
|
269
|
+
if options[:pocFirstName].nil? || options[:pocEmail].nil? || options[:pocPhoneNumber].nil?
|
|
270
|
+
puts 'If a POC last name is given, then all POC information must be entered:'.red
|
|
271
|
+
puts ' pocFirstName, pocEmail, pocPhoneNumber'.red
|
|
272
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
273
|
+
exit
|
|
274
|
+
end
|
|
275
|
+
elsif options[:pocEmail]
|
|
276
|
+
if options[:pocFirstName].nil? || options[:pocLastName].nil? || options[:pocPhoneNumber].nil?
|
|
277
|
+
puts 'If a POC email is given, then all POC information must be entered:'.red
|
|
278
|
+
puts ' pocFirstName, pocLastName, pocPhoneNumber'.red
|
|
279
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
280
|
+
exit
|
|
281
|
+
end
|
|
282
|
+
elsif options[:pocPhoneNumber]
|
|
283
|
+
if options[:pocFirstName].nil? || options[:pocLastName].nil? || options[:pocEmail].nil?
|
|
284
|
+
puts 'If a POC phone number is given, then all POC information must be entered:'.red
|
|
285
|
+
puts ' pocFirstName, pocLastName, pocEmail'.red
|
|
286
|
+
puts POAMS_POST_HELP_MESSAGE.yellow
|
|
287
|
+
exit
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
# rubocop:enable Style/CaseLikeIf, Style/StringLiterals
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
def print_milestone_help
|
|
294
|
+
puts 'Milestone format is:'.yellow
|
|
295
|
+
puts ' --milestone description:"[value]" scheduledCompletionDate:"[value]"'.yellow
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
# rubocop:enable Metrics/BlockLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# The Milestones endpoints provide the ability add milestones that are associated with
|
|
302
|
+
# Plan of Action and Milestones (POA&M) items for a system.
|
|
303
|
+
#
|
|
304
|
+
# Endpoint:
|
|
305
|
+
# /api/systems/{systemId}/poams/{poamId}/milestones - Add milestones in one or many poa&m items in a system
|
|
306
|
+
class Milestones < SubCommandBase
|
|
307
|
+
def self.exit_on_failure?
|
|
308
|
+
true
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
desc 'add', 'Add milestones to one or many POA&M items in a system'
|
|
312
|
+
long_desc Help.text(:milestone_post_mapper)
|
|
313
|
+
|
|
314
|
+
# Required parameters/fields
|
|
315
|
+
option :systemId, type: :numeric, required: true, desc: 'A numeric value representing the system identification'
|
|
316
|
+
option :poamId, type: :numeric, required: true, desc: 'A numeric value representing the poam identification'
|
|
317
|
+
option :description, type: :string, required: true, desc: 'The milestone description'
|
|
318
|
+
option :scheduledCompletionDate,
|
|
319
|
+
type: :numeric, required: false, desc: 'The scheduled completion date - Unix time format'
|
|
320
|
+
|
|
321
|
+
def add
|
|
322
|
+
body = SwaggerClient::MilestonesRequestPostBody.new
|
|
323
|
+
body.poam_id = options[:poamId]
|
|
324
|
+
body.description = options[:description]
|
|
325
|
+
body.scheduled_completion_date = options[:scheduledCompletionDate]
|
|
326
|
+
body_array = Array.new(1, body)
|
|
327
|
+
|
|
328
|
+
begin
|
|
329
|
+
result = SwaggerClient::MilestonesApi
|
|
330
|
+
.new.add_milestone_by_system_id_and_poam_id(body_array, options[:systemId], options[:poamId])
|
|
331
|
+
puts to_output_hash(result).green
|
|
332
|
+
rescue SwaggerClient::ApiError => e
|
|
333
|
+
puts 'Exception when calling MilestonesApi->add_milestone_by_system_id_and_poam_id'.red
|
|
334
|
+
puts to_output_hash(e)
|
|
335
|
+
end
|
|
336
|
+
end
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
# Add one or many artifacts for a system (delivery method must be a zip file)
|
|
340
|
+
#
|
|
341
|
+
# Endpoints:
|
|
342
|
+
# /api/systems/{systemId}/artifacts - Post one or many artifacts to a system
|
|
343
|
+
class Artifacts < SubCommandBase
|
|
344
|
+
def self.exit_on_failure?
|
|
345
|
+
true
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
desc 'upload SYSTEM_ID FILE [FILE ...]', 'Uploads [FILES] to the given [SYSTEM_ID] as artifacts'
|
|
349
|
+
long_desc Help.text(:artifacts_post_mapper)
|
|
350
|
+
|
|
351
|
+
# Required parameters/fields
|
|
352
|
+
option :systemId, type: :numeric, required: true, desc: 'A numeric value representing the system identification'
|
|
353
|
+
option :files, type: :array, required: true, desc: 'Artifact file(s) to post to the given system'
|
|
354
|
+
option :type,
|
|
355
|
+
type: :string, required: true,
|
|
356
|
+
enum: ['Procedure', 'Diagram', 'Policy', 'Labor', 'Document',
|
|
357
|
+
'Image', 'Other', 'Scan Result', 'Auditor Report']
|
|
358
|
+
option :category, type: :string, required: true, enum: ['Implementation Guidance', 'Evidence']
|
|
359
|
+
option :isTemplate, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false.'
|
|
360
|
+
# NOTE: compress is a required parameter, however Thor does not allow a boolean type to be required because it
|
|
361
|
+
# automatically creates a --no-isTemplate option for isTemplate=false
|
|
362
|
+
|
|
363
|
+
# Optional parameters/fields
|
|
364
|
+
option :description, type: :string, required: false, desc: 'Artifact description'
|
|
365
|
+
option :refPageNumber, type: :string, required: false, desc: 'Artifact reference page number'
|
|
366
|
+
option :ccis, type: :string, required: false, desc: 'The system CCIs string numerical value'
|
|
367
|
+
option :controls,
|
|
368
|
+
type: :string, required: false,
|
|
369
|
+
desc: 'Control acronym associated with the artifact. NIST SP 800-53 Revision 4 defined'
|
|
370
|
+
option :artifactExpirationDate,
|
|
371
|
+
type: :numeric, required: false, desc: 'Date Artifact expires and requires review - Unix time format'
|
|
372
|
+
option :lastReviewedDate,
|
|
373
|
+
type: :numeric, required: false, desc: 'Date Artifact was last reviewed - Unix time format'
|
|
374
|
+
|
|
375
|
+
def upload
|
|
376
|
+
optional_options_keys = optional_options(@_initializer).keys
|
|
377
|
+
optional_options = to_input_hash(optional_options_keys, options)
|
|
378
|
+
# Remove the isTemplate as we can't use the required = true.
|
|
379
|
+
optional_options.delete(:is_template)
|
|
380
|
+
|
|
381
|
+
opts = {}
|
|
382
|
+
opts[:form_params] = optional_options
|
|
383
|
+
|
|
384
|
+
tempfile = Tempfile.create(['artifacts', '.zip'])
|
|
385
|
+
|
|
386
|
+
Zip::OutputStream.open(tempfile.path) do |z|
|
|
387
|
+
options[:files].each do |file|
|
|
388
|
+
# Add file name to the archive: Don't use the full path
|
|
389
|
+
z.put_next_entry(File.basename(file))
|
|
390
|
+
# Add the file to the archive
|
|
391
|
+
z.print File.read(file)
|
|
392
|
+
end
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
begin
|
|
396
|
+
result = SwaggerClient::ArtifactsApi
|
|
397
|
+
.new
|
|
398
|
+
.add_artifacts_by_system_id(options[:isTemplate], options[:type],
|
|
399
|
+
options[:category], tempfile, options[:systemId], opts)
|
|
400
|
+
puts to_output_hash(result).green
|
|
401
|
+
rescue SwaggerClient::ApiError => e
|
|
402
|
+
puts 'Exception when calling ArtifactsApi->add_artifacts_by_system_id'.red
|
|
403
|
+
puts to_output_hash(e)
|
|
404
|
+
ensure
|
|
405
|
+
# Delete the temp file
|
|
406
|
+
unless File.exist? tempfile
|
|
407
|
+
tempfile.close
|
|
408
|
+
FileUtils.remove_file(tempfile, true)
|
|
409
|
+
end
|
|
410
|
+
end
|
|
411
|
+
end
|
|
412
|
+
end
|
|
413
|
+
|
|
414
|
+
# Add a Control Approval Chain (CAC)
|
|
415
|
+
#
|
|
416
|
+
# Endpoints:
|
|
417
|
+
# /api/systems/{systemId}/approval/cac - Submit control to second stage of CAC
|
|
418
|
+
class CAC < SubCommandBase
|
|
419
|
+
def self.exit_on_failure?
|
|
420
|
+
true
|
|
421
|
+
end
|
|
422
|
+
|
|
423
|
+
desc 'add', 'Submit control to second stage of CAC'
|
|
424
|
+
long_desc Help.text(:approvalCac_post_mapper)
|
|
425
|
+
|
|
426
|
+
# Required parameters/fields
|
|
427
|
+
option :systemId, type: :numeric, required: true, desc: 'A numeric value representing the system identification'
|
|
428
|
+
option :controlAcronym, type: :string, required: true, desc: 'The system acronym "AC-1, AC-2"'
|
|
429
|
+
|
|
430
|
+
# Conditional parameters/fields
|
|
431
|
+
option :comments, type: :string, required: false, desc: 'The control approval chain comments'
|
|
432
|
+
|
|
433
|
+
def add
|
|
434
|
+
body = SwaggerClient::CacRequestPostBody.new
|
|
435
|
+
body.control_acronym = options[:controlAcronym]
|
|
436
|
+
body.comments = options[:comments]
|
|
437
|
+
|
|
438
|
+
body_array = Array.new(1, body)
|
|
439
|
+
|
|
440
|
+
begin
|
|
441
|
+
# Get location of one or many controls in CAC
|
|
442
|
+
result = SwaggerClient::CacApi.new.add_s_ystem_c_ac(body_array, options[:systemId])
|
|
443
|
+
puts to_output_hash(result).green
|
|
444
|
+
rescue SwaggerClient::ApiError => e
|
|
445
|
+
puts 'Exception when calling ApprovalChainApi->add_s_ystem_c_ac'.red
|
|
446
|
+
puts to_output_hash(e)
|
|
447
|
+
end
|
|
448
|
+
end
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
# Add a Package Approval Chain (PAC)
|
|
452
|
+
#
|
|
453
|
+
# Endpoints:
|
|
454
|
+
# /api/systems/{systemId}/approval/pac - Initiate system workflow for review
|
|
455
|
+
class PAC < SubCommandBase
|
|
456
|
+
def self.exit_on_failure?
|
|
457
|
+
true
|
|
458
|
+
end
|
|
459
|
+
|
|
460
|
+
desc 'add', 'Initiate system workflow for review'
|
|
461
|
+
long_desc Help.text(:approvalPac_post_mapper)
|
|
462
|
+
|
|
463
|
+
# Required parameters/fields
|
|
464
|
+
option :systemId, type: :numeric, required: true,
|
|
465
|
+
desc: 'A numeric value representing the system identification'
|
|
466
|
+
option :workflow, type: :string, required: true,
|
|
467
|
+
enum: ['Assess and Authorize', 'Assess Only', 'Security Plan Approval']
|
|
468
|
+
option :name, type: :string, required: true, desc: 'The control package name'
|
|
469
|
+
option :comments, type: :string, required: true,
|
|
470
|
+
desc: 'Comments submitted upon initiation of the indicated workflow'
|
|
471
|
+
|
|
472
|
+
def add
|
|
473
|
+
body = SwaggerClient::PacRequestBodyPost.new
|
|
474
|
+
body.name = options[:name]
|
|
475
|
+
body.type = options[:type]
|
|
476
|
+
body.comments = options[:comments]
|
|
477
|
+
|
|
478
|
+
body_array = Array.new(1, body)
|
|
479
|
+
|
|
480
|
+
result = SwaggerClient::PacApi.new.add_s_ystem_p_ac(body_array, options[:systemId])
|
|
481
|
+
puts to_output_hash(result).green
|
|
482
|
+
rescue SwaggerClient::ApiError => e
|
|
483
|
+
puts 'Exception when calling ApprovalChainApi->add_s_ystem_c_ac'.red
|
|
484
|
+
puts to_output_hash(e)
|
|
485
|
+
end
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
# TThe Static Code Scans endpoint provides the ability to upload application
|
|
489
|
+
# scan findings into a system's assets module.
|
|
490
|
+
#
|
|
491
|
+
# Application findings can also be cleared from the system.
|
|
492
|
+
#
|
|
493
|
+
# Endpoint:
|
|
494
|
+
# /api/systems/{systemId}/static-code-scans - Upload static code scans
|
|
495
|
+
class ScanFindings < SubCommandBase
|
|
496
|
+
def self.exit_on_failure?
|
|
497
|
+
true
|
|
498
|
+
end
|
|
499
|
+
|
|
500
|
+
desc 'add', 'Upload static code scans'
|
|
501
|
+
long_desc Help.text(:staticcode_post_mapper)
|
|
502
|
+
|
|
503
|
+
# Required parameters/fields
|
|
504
|
+
option :systemId, type: :numeric, required: true, desc: 'A numeric value representing the system identification'
|
|
505
|
+
option :applicationName, type: :string, required: true, desc: 'Name of the software application that was assessed'
|
|
506
|
+
option :version, type: :string, required: true, desc: 'The version of the application'
|
|
507
|
+
option :codeCheckName, type: :string, required: true, desc: 'Name of the software vulnerability or weakness'
|
|
508
|
+
option :scanDate, type: :numeric, required: false, desc: 'The findings scan date - Unix time format'
|
|
509
|
+
option :cweId, type: :string, required: true, desc: 'The Common Weakness Enumerator (CWE) identifier'
|
|
510
|
+
|
|
511
|
+
# Optional parameter/fields
|
|
512
|
+
option :rawSeverity, type: :string, required: false, enum: %w[Low Medium Moderate High Critical]
|
|
513
|
+
option :count, type: :numeric, required: false, desc: 'Number of instances observed for a specified finding'
|
|
514
|
+
|
|
515
|
+
def add
|
|
516
|
+
application = SwaggerClient::StaticCodeRequiredPostApplication.new
|
|
517
|
+
application.application_name = options[:applicationName]
|
|
518
|
+
application.version = options[:version]
|
|
519
|
+
|
|
520
|
+
application_findings = SwaggerClient::StaticCodeApplication.new
|
|
521
|
+
application_findings.code_check_name = options[:codeCheckName]
|
|
522
|
+
application_findings.scan_date = options[:scanDate]
|
|
523
|
+
application_findings.cwe_id = options[:cweId]
|
|
524
|
+
|
|
525
|
+
application_findings.raw_severity = options[:rawSeverity] if options[:rawSeverity]
|
|
526
|
+
application_findings.count = options[:count] if options[:count]
|
|
527
|
+
|
|
528
|
+
body = SwaggerClient::StaticCodeRequiredPost.new
|
|
529
|
+
body.application = application
|
|
530
|
+
body.application_findings = application_findings
|
|
531
|
+
|
|
532
|
+
body_array = Array.new(1, body)
|
|
533
|
+
|
|
534
|
+
begin
|
|
535
|
+
result = SwaggerClient::StaticCodeScansApi
|
|
536
|
+
.new.add_static_code_scans_by_system_id(body_array, options[:systemId])
|
|
537
|
+
puts to_output_hash(result).green
|
|
538
|
+
rescue SwaggerClient::ApiError => e
|
|
539
|
+
puts 'Exception when calling StaticCodeScansApi->add_static_code_scans_by_system_id'.red
|
|
540
|
+
puts to_output_hash(e)
|
|
541
|
+
end
|
|
542
|
+
end
|
|
543
|
+
|
|
544
|
+
# CLEAR ------------------------------------------------------------------------------------
|
|
545
|
+
desc 'clear', 'Clear an application findings'
|
|
546
|
+
long_desc Help.text(:staticcode_clear_mapper)
|
|
547
|
+
|
|
548
|
+
# Required parameters/fields
|
|
549
|
+
option :systemId, type: :numeric, required: true, desc: 'A numeric value representing the system identification'
|
|
550
|
+
option :applicationName, type: :string, required: true, desc: 'Name of the software application that was assessed'
|
|
551
|
+
option :version, type: :string, required: true, desc: 'The version of the application'
|
|
552
|
+
option :clearFindings, type: :boolean, required: false, default: false, desc: 'BOOLEAN - true or false'
|
|
553
|
+
# NOTE: clearFindings is a required parameter to clear an application's findings, however Thor does not allow
|
|
554
|
+
# a boolean type to be required because it automatically creates a --no-clearFindings option for clearFindings=false
|
|
555
|
+
|
|
556
|
+
def clear
|
|
557
|
+
unless options[:clearFindings]
|
|
558
|
+
puts 'To clear an application findings, the field clearFindings (--clearFindings) is required'.red
|
|
559
|
+
puts NEW_LINE + 'Invoke "bundle exec exe/emasser post scan_findings help clear" for additional help'.yellow
|
|
560
|
+
exit
|
|
561
|
+
end
|
|
562
|
+
|
|
563
|
+
application = SwaggerClient::StaticCodeRequiredPostApplication.new
|
|
564
|
+
application.application_name = options[:applicationName]
|
|
565
|
+
application.version = options[:version]
|
|
566
|
+
|
|
567
|
+
application_findings = SwaggerClient::StaticCodeApplication.new
|
|
568
|
+
application_findings.clear_findings = options[:clearFindings]
|
|
569
|
+
|
|
570
|
+
body = SwaggerClient::StaticCodeRequiredPost.new
|
|
571
|
+
body.application = application
|
|
572
|
+
body.application_findings = application_findings
|
|
573
|
+
|
|
574
|
+
body_array = Array.new(1, body)
|
|
575
|
+
|
|
576
|
+
begin
|
|
577
|
+
result = SwaggerClient::StaticCodeScansApi
|
|
578
|
+
.new.add_static_code_scans_by_system_id(body_array, options[:systemId])
|
|
579
|
+
puts to_output_hash(result).green
|
|
580
|
+
rescue SwaggerClient::ApiError => e
|
|
581
|
+
puts 'Exception when calling StaticCodeScansApi->add_static_code_scans_by_system_id'.red
|
|
582
|
+
puts to_output_hash(e)
|
|
583
|
+
end
|
|
584
|
+
end
|
|
585
|
+
end
|
|
586
|
+
|
|
587
|
+
class Post < SubCommandBase
|
|
588
|
+
desc 'test_results', 'Add system Test Results'
|
|
589
|
+
subcommand 'test_results', TestResults
|
|
590
|
+
|
|
591
|
+
desc 'poams', 'Add Plan of Action and Milestones (POA&M) items to a system'
|
|
592
|
+
subcommand 'poams', Poams
|
|
593
|
+
|
|
594
|
+
desc 'milestones', 'Add milestone(s) to one or many POA&M items in a system'
|
|
595
|
+
subcommand 'milestones', Milestones
|
|
596
|
+
|
|
597
|
+
desc 'artifacts', 'Add system Artifacts'
|
|
598
|
+
subcommand 'artifacts', Artifacts
|
|
599
|
+
|
|
600
|
+
desc 'cac', 'Add Control Approval Chain (CAC) security content'
|
|
601
|
+
subcommand 'cac', CAC
|
|
602
|
+
|
|
603
|
+
desc 'pac', 'Add Package Approval Chain (PAC) security content'
|
|
604
|
+
subcommand 'pac', PAC
|
|
605
|
+
|
|
606
|
+
desc 'scan_findings', 'Upload static code scans'
|
|
607
|
+
subcommand 'scan_findings', ScanFindings
|
|
608
|
+
end
|
|
609
|
+
end
|