emasser 1.0.3 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.env-example +2 -0
  3. data/.github/workflows/gh-pages.yml +4 -5
  4. data/.github/workflows/release.yml +9 -9
  5. data/Dockerfile +6 -4
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +23 -30
  8. data/README.md +87 -78
  9. data/docs/features.md +343 -207
  10. data/docs/images/emasser_architecture.jpg +0 -0
  11. data/emasser.gemspec +5 -3
  12. data/images/emasser_architecture.jpg +0 -0
  13. data/images/emasser_diagram-Page-3.jpg +0 -0
  14. data/lib/emasser/cli.rb +2 -2
  15. data/lib/emasser/configuration.rb +1 -0
  16. data/lib/emasser/constants.rb +11 -3
  17. data/lib/emasser/delete.rb +9 -7
  18. data/lib/emasser/get.rb +43 -48
  19. data/lib/emasser/help/cloudresource_post_mapper.md +62 -0
  20. data/lib/emasser/help/container_post_mapper.md +44 -0
  21. data/lib/emasser/output_converters.rb +101 -4
  22. data/lib/emasser/post.rb +231 -38
  23. data/lib/emasser/put.rb +23 -16
  24. data/lib/emasser/version.rb +1 -1
  25. metadata +19 -25
  26. data/.github/workflows/generate_docs.yml +0 -33
  27. data/docs/developers.md +0 -115
  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 +0 -75
  31. data/docs/swagger/dist/swagger-ui-bundle.js +0 -3
  32. data/docs/swagger/dist/swagger-ui-bundle.js.map +0 -1
  33. data/docs/swagger/dist/swagger-ui-es-bundle-core.js +0 -3
  34. data/docs/swagger/dist/swagger-ui-es-bundle-core.js.map +0 -1
  35. data/docs/swagger/dist/swagger-ui-es-bundle.js +0 -3
  36. data/docs/swagger/dist/swagger-ui-es-bundle.js.map +0 -1
  37. data/docs/swagger/dist/swagger-ui-standalone-preset.js +0 -3
  38. data/docs/swagger/dist/swagger-ui-standalone-preset.js.map +0 -1
  39. data/docs/swagger/dist/swagger-ui.css +0 -4
  40. data/docs/swagger/dist/swagger-ui.css.map +0 -1
  41. data/docs/swagger/dist/swagger-ui.js +0 -3
  42. data/docs/swagger/dist/swagger-ui.js.map +0 -1
  43. data/docs/swagger/index.html +0 -60
data/docs/features.md CHANGED
@@ -1,9 +1,17 @@
1
1
  # emasser CLI Features
2
2
 
3
- ## Required Environment Variables
4
- To facilitate setting the required environment variables the emasser CLI utilized the zero-dependency module to load these variables from a .env file. An .env-example file is provided with the required fields (listed below).
3
+ ## Environment Variables
4
+ To facilitate setting the required environment variables the `emasser `CLI utilized the zero-dependency module to load these variables from a `.env` file.
5
5
 
6
- emasser environment variables (required):
6
+ ### Configuring the `.env` File
7
+ An `.env-example` file is provided with the required and optional fields.
8
+
9
+ Modify the `.env_example` as necessary and save it as a `.env` file.
10
+
11
+ Place the file on the path where the `emasser` command is executed.
12
+
13
+ ### Required and Optional Environment Variables
14
+ The following environment variables are required:
7
15
  * EMASSER_API_KEY_API_KEY=`<API key>`
8
16
  * EMASSER_API_KEY_USER_UID=`<unique identifier for the API Key (EMASSER_API_KEY_API_KEY)`
9
17
  * EMASSER_HOST=`<FQDN of the eMASS server>`
@@ -11,26 +19,31 @@ emasser environment variables (required):
11
19
  * EMASSER_CERT_FILE_PATH=`<path to your eMASS certificate in PEM format>`
12
20
  * EMASSER_KEY_PASSWORD=`<password for the key given in EMASSER_KEY_FILE_PATH>`
13
21
 
14
- emasser environment variables (optional):
15
- * EMASSER_CLIENT_SIDE_VALIDATION=`<client side validation - true or false>`
16
- * EMASSER_VERIFY_SSL=`<verify SSL - true or false>`
17
- * EMASSER_VERIFY_SSL_HOST=`<verify host SSL - true or false>`
18
- * EMASSER_DEBUGGING=`<set debugging - true or false>`
22
+ The following environment variables are *optional:
23
+ * EMASSER_CLIENT_SIDE_VALIDATION=`<client side validation - true or false (default true)>`
24
+ * EMASSER_VERIFY_SSL=`<verify SSL - true or false (default true)>`
25
+ * EMASSER_VERIFY_SSL_HOST=`<verify host SSL - true or false (default true)>`
26
+ * EMASSER_DEBUGGING=`<set debugging - true or false (default false)>`
27
+ * EMASSER_CLI_DISPLAY_NULL=`<display null value fields - true or false (default true)>`
28
+ * EMASSER_POCH_TO_DATETIME=`<convert epoch to data/time value - true or false (default false)>`
29
+
30
+ \* If not provided defaults are used
31
+
32
+ The proper format to set these variables in the `.env` files is as follows:
33
+ ```bash
34
+ export [VARIABLE_NAME]='value'
35
+ ```
36
+ ***NOTE***
37
+ `emasser` requires authentication to an eMASS instance as well as authorization to use the eMASS API. This authentication and authorization is **not** a function of `emasser` and needs to be accomplished with the eMASS instances owner organization. Further information about eMASS credential requirements refer to [Defense Counterintelligence and Security Agency](https://www.dcsa.mil/is/emass/) about eMASS access.
19
38
 
39
+ ---
20
40
  ## Common emasser Endpoint Requests Information
21
41
  - To invoke any boolean parameters use --parameterName for TRUE and --no-parameterName for FALSE
22
- - The eMASS API provides the capability of updating multiple entries within several endpoints, however this CLI only supports updating one entry at the time.
42
+ - The eMASS API provides the capability of updating multiple entries within several endpoints, however the `emasser` CLI, in some cases only supports updating one entry at the time.
23
43
 
24
44
  ## Invoking emasser CLI Commands
25
45
 
26
- The CLI invoke commands listed in this document shows them when executing from the source code (after a pull from GitHub). If an executable (.gem) is created the command to invoke the endpoint is different. For example:
27
- - Invoking the GET systems endpoint from the source code is:
28
-
29
- bundle exec exe/emasser get systems all
30
-
31
- - Invoking the GET systems endpoint from the compile binary (.gem) is:
32
-
33
- emasser get systems all
46
+ The CLI invoke commands listed in this document shows them when executing from the source code (after a pull from GitHub). Please reference the [`emasser` README](https://mitre.github.io/emasser/) on how to invoke the CLI using other available executables (gem or docker).
34
47
 
35
48
  ## API Endpoints Provided
36
49
 
@@ -38,10 +51,11 @@ The CLI invoke commands listed in this document shows them when executing from t
38
51
  * [/api](#get-test-connection)
39
52
  * [/api/system](#get-system)
40
53
  * [/api/systems](#get-systems)
54
+ * [/api/systems/{systemId}](#get-system)
41
55
  * [/api/system-roles](#get-roles)
42
56
  * [/api/system-roles/{roleCategory}](#get-roles)
43
57
  * [/api/systems/{systemId}/controls](#get-controls)
44
- * [/api/systems/{systemId}/test-results](#get-test_results)
58
+ * [/api/systems/{systemId}/test-results](#get-testresults)
45
59
  * [/api/systems/{systemId}/poams](#get-poams)
46
60
  * [/api/systems/{systemId}/poams/{poamId}](#get-poams)
47
61
  * [/api/systems/{systemId}/poams/{poamId}/milestones](#get-milestones)
@@ -51,8 +65,8 @@ The CLI invoke commands listed in this document shows them when executing from t
51
65
  * [/api/systems/{systemId}/approval/cac](#get-cac)
52
66
  * [/api/systems/{systemId}/approval/pac](#get-pac)
53
67
  * [/api/cmmc-assessments](#get-cmmc)
54
- * [/api/workflow-definitions](#get-workflow_definitions)
55
- * [/api/systems/{systemId}/workflow-instances](#get-workflow_instances)
68
+ * [/api/workflow-definitions](#get-workflowdefinitions)
69
+ * [/api/systems/{systemId}/workflow-instances](#get-workflowinstances)
56
70
 
57
71
  ### POST
58
72
  * [/api/systems/{systemId}/test-results](#post-test_results)
@@ -62,6 +76,8 @@ The CLI invoke commands listed in this document shows them when executing from t
62
76
  * [/api/systems/{systemId}/approval/cac](#post-cac)
63
77
  * [/api/systems/{systemId}/approval/pac](#post-pac)
64
78
  * [/api/systems/{systemId}/static-code-scans](#post-static_code_scan)
79
+ * [/api/systems/{systemId}/cloud-resource-results](#post-cloudresource)
80
+ * [/api/systems/{systemId}/container-scan-results](#post-container)
65
81
 
66
82
  ### PUT
67
83
  * [/api/systems/{systemId}/controls](#put-controls)
@@ -77,77 +93,76 @@ The CLI invoke commands listed in this document shows them when executing from t
77
93
  ## Endpoints CLI help
78
94
 
79
95
  Each CLI endpoint command has several layers of help.
80
- - Using `help` after a `get, put, post, or delete` command lists all available endpoint calls
96
+ - Using `help` after a `get, put, post, or delete` command lists all available endpoint calls. The following command would list all available `GET` endpoints commands.
81
97
 
82
- ```
98
+ ```bash
83
99
  $ bundle exec exe/emasser get help
100
+ Commands:
101
+ emasser get artifacts # Get system Artifacts
102
+ emasser get cac # Get location of one or many controls in...
103
+ emasser get cmmc # Get CMMC assessment information
104
+ emasser get controls # Get system Controls
105
+ emasser get help [COMMAND] # Describe subcommands or one specific su...
106
+ emasser get milestones # Get system Milestones
107
+ emasser get pac # Get status of active workflows in a system
108
+ emasser get poams # Get system Poams
109
+ emasser get roles # Get all system roles or by category Id
110
+ emasser get system # Get a system ID given name/owner, or ge...
111
+ emasser get systems # Get all systems
112
+ emasser get test # Test connection to the configured eMASS...
113
+ emasser get test_results # Get system Test Results
114
+ emasser get workflow_definitions # Get workflow definitions in a site
115
+ emasser get workflow_instances # Get workflow instance by system and/or ...
84
116
  ```
85
-
86
- would list all available `GET` endpoint Commands:
87
-
88
- - emasser get approval ...
89
- - emasser get artifacts ...
90
- - emasser get controls ...
91
- - emasser get help [COMMAND] ...
92
- - emasser get poams ...
93
- - emasser get roles ...
94
- - emasser get system [--system-name [SYSTEM_NAME]] [--system-owner [SYSTEM_OW...
95
- - emasser get systems [options] ...
96
- - emasser get test_results ...
97
-
98
- - Preceding any command with `help` provides help for the command
99
-
100
- ```
117
+ - Preceding any command with `help` provides help for the command. The following command would list all available sub-commands and options for the `get artifacts` endpoint command.
118
+ ```bash
101
119
  $ bundle exec exe/emasser get help artifacts
120
+ commands:
121
+ emasser get artifacts export --filename=FILENAME --systemId=N # Get artifa...
122
+ emasser get artifacts forSystem --systemId=N # Get all sy...
123
+ emasser get artifacts help [COMMAND] # Describe s...
102
124
  ```
103
- would list all available sub-commands and options for the `get artifacts` endpoint commands:
104
- - emasser get artifacts export --filename=FILENAME --systemId=N # Get artifa...
105
- - emasser get artifacts help [COMMAND] # Describe s...
106
- - emasser get artifacts system --systemId=N # Get all sy...
107
-
108
- - Using `help` after any command lists all available options
109
-
110
- ```
125
+ - Using `help` after any command lists all available options. The following command would list all available options for the `get artifacts export` endpoint command.
126
+ ```bash
111
127
  $ bundle exec exe/emasser get artifacts help export
112
- ```
113
- would list all available options for the `get artifacts export` endpoint command:
114
- - Usage:
115
- - emasser get artifacts export --filename=FILENAME --systemId=N
116
- - Options:
117
- - --systemId=N # A numeric value representing the system identification
118
- - --filename=FILENAME # The artifact file name
119
- - --compress # BOOLEAN - true or false.
128
+ Usage:
129
+ emasser get artifacts export --filename=FILENAME --systemId=N
120
130
 
121
- **The same format is applicable to POST, PUT and DELETE requests as well, however there may be additional help content**
131
+ Options:
132
+ --systemId=N # A numeric value representing the system identification
133
+ --filename=FILENAME # The artifact file name
134
+ [--compress], [--no-compress] # BOOLEAN - true or false.
135
+ ```
136
+ **The same format is applicable for POST, PUT and DELETE requests as well, however there may be additional help content**
122
137
 
123
138
 
124
139
  ## Usage - GET
125
140
 
126
- ### ```get test connection```
127
- [top](#api-endpoints-provided)
128
-
141
+ ### ```get test connection```
129
142
  ---
130
143
  The Test Connection endpoint provides the ability to verify connection to the web service.
131
144
 
132
145
  $ bundle exec exe/emasser get test connection
133
146
 
134
147
  A return of success from the call indicates that the CLI can reach the configure server URL.
135
- References [Required Environment Variables](#required-environment-variables) list above.
148
+ References [Required Environment Variables](#required-environment-variables) for the necessary environment variables.
136
149
 
137
- ### ```get system```
138
150
  [top](#api-endpoints-provided)
139
151
 
152
+ ### ```get system```
153
+
140
154
  ---
141
- The `get system id` is a notified call by the CLI to find a system ID based on the system `name` or `owner`
155
+ The `get system` command is not a sanctioned eMASS endpoint, it makes use of the `get systems` endpoint with added business logic.
156
+
157
+ There are two commands provided by the get system:
142
158
 
143
- The `get system byId` is an eMASS GET request
159
+ - The `get system id` - returns system ID's based on the system `name` or `owner`
160
+ - The `get system byId` - returns the system content for parameter system ID
144
161
 
145
162
  ### get system id
146
163
  Retrieves a system identification based on the SYSTEM_NAME (name) or SYSTEM_OWNER (systemOwner) fields.
147
164
 
148
- **NOTE** This call is based on the /api/systems endpoint
149
-
150
- To invoke the `get system` use the following command:
165
+ To invoke the `get system id` use the following command:
151
166
 
152
167
  $ bundle exec exe/emasser get system id --system_name "system name" --system_owner "system owner"
153
168
 
@@ -157,7 +172,7 @@ If using a platform that has `awk` installed the following command can be used t
157
172
 
158
173
 
159
174
  ### get system byId
160
- To view a system by its identification (Id) use the following command:
175
+ Retrieves the system content for provided identification (ID) number. To invoke the endpoint use the following command:
161
176
 
162
177
  $ bundle exec exe/emasser get system byId
163
178
 
@@ -174,14 +189,16 @@ To view a system by its identification (Id) use the following command:
174
189
  |--includePackage |BOOLEAN - true or false |
175
190
  |--policy |Possible values: diacap, rmf, reporting |
176
191
 
192
+ [top](#api-endpoints-provided)
177
193
 
178
194
  ### ```get systems```
179
- [top](#api-endpoints-provided)
180
195
 
181
196
  ----
182
- To view systems use the following command:
183
-
197
+ To retrieve controls use the following command:
198
+ - all - Retrieves all available systems
199
+ ```
184
200
  $ bundle exec exe/emasser get systems all
201
+ ```
185
202
 
186
203
  - Optional parameters are:
187
204
 
@@ -194,12 +211,11 @@ To view systems use the following command:
194
211
  |--includePackage |BOOLEAN - true or false |
195
212
  |--policy |Possible values: diacap, rmf, reporting |
196
213
  |--registrationType |Possible values: assessAndAuthorize, assessOnly, guest, regular, functional, |
197
- | | loudServiceProvider, commonControlProvider |
214
+ | | cloudServiceProvider, commonControlProvider |
198
215
  |--reportsForScorecard |BOOLEAN - true or false |
199
216
 
200
-
201
- ### ```get roles```
202
217
  [top](#api-endpoints-provided)
218
+ ### ```get roles```
203
219
 
204
220
  ----
205
221
  There are two get endpoints for system roles:
@@ -225,12 +241,11 @@ There are two get endpoints for system roles:
225
241
  |--policy |Possible values: diacap, rmf, reporting |
226
242
  |--includeDecommissioned |BOOLEAN - true or false |
227
243
 
228
-
229
- ### ```get controls```
230
244
  [top](#api-endpoints-provided)
245
+ ### ```get controls```
231
246
 
232
247
  ----
233
- To view controls use the following command:
248
+ To retrieve controls use the following command:
234
249
 
235
250
  $ bundle exec exe/emasser get controls forSystem --systemId=SYSTEMID
236
251
 
@@ -246,12 +261,11 @@ To view controls use the following command:
246
261
  |-------------|:------------------------------------------|
247
262
  |--acronyms |The system acronym(s) e.g "AC-1, AC-2" - if not provided all controls for systemId are returned |
248
263
 
249
-
250
- ### ```get test_results```
251
264
  [top](#api-endpoints-provided)
265
+ ### ```get test_results```
252
266
 
253
267
  ----
254
- To view test results use the following command:
268
+ To retrieve test results use the following command:
255
269
 
256
270
  $ bundle exec exe/emasser get test_results forSystem --systemId=SYSTEMID
257
271
 
@@ -269,9 +283,8 @@ To view test results use the following command:
269
283
  |--ccis |String - The system CCIS string numerical value |
270
284
  |--latestOnly |BOOLEAN - true or false|
271
285
 
272
-
273
- ### ```get poams```
274
286
  [top](#api-endpoints-provided)
287
+ ### ```get poams```
275
288
 
276
289
  ----
277
290
  There are two get endpoints for system poams:
@@ -307,9 +320,8 @@ There are two get endpoints for system poams:
307
320
  |--systemId |Integer - Unique system identifier |
308
321
  |--poamId |Integer - Unique poam identifier |
309
322
 
310
-
311
- ### ```get milestones```
312
323
  [top](#api-endpoints-provided)
324
+ ### ```get milestones```
313
325
 
314
326
  ----
315
327
  There are two get endpoints for system milestones:
@@ -344,9 +356,8 @@ There are two get endpoints for system milestones:
344
356
  |--poamId |Integer - Unique poam identifier |
345
357
  |--milestoneId |Integer - Unique milestone identifier |
346
358
 
347
-
348
- ### ```get artifacts```
349
359
  [top](#api-endpoints-provided)
360
+ ### ```get artifacts```
350
361
 
351
362
  ----
352
363
  There are two get endpoints that provides the ability to view existing `Artifacts` in a system:
@@ -380,11 +391,14 @@ There are two get endpoints that provides the ability to view existing `Artifact
380
391
  |-------------|:----------------------------------|
381
392
  |--systemId |Integer - Unique system identifier |
382
393
  |--filename |The artifact file name |
394
+
395
+ - optional parameter is:
396
+ |parameter | type or values |
397
+ |-------------|:----------------------------------|
383
398
  |--compress |BOOLEAN - true or false. |
384
399
 
385
-
386
- ### ```get cac```
387
400
  [top](#api-endpoints-provided)
401
+ ### ```get cac```
388
402
 
389
403
  ----
390
404
  To view one or many Control Approval Chain (CAC) in a system specified system ID use the following command:
@@ -403,9 +417,8 @@ To view one or many Control Approval Chain (CAC) in a system specified system ID
403
417
  |-------------------------------|:----------------------------------------------|
404
418
  |--controlAcronyms |String - The system acronym(s) e.g "AC-1, AC-2"|
405
419
 
406
-
407
- ### ```get pac```
408
420
  [top](#api-endpoints-provided)
421
+ ### ```get pac```
409
422
 
410
423
  ----
411
424
  To view one or many Package Approval Chain (PAC) in a system specified system ID use the following command:
@@ -419,9 +432,8 @@ To view one or many Package Approval Chain (PAC) in a system specified system ID
419
432
  |-------------|:----------------------------------|
420
433
  |--systemId |Integer - Unique system identifier |
421
434
 
422
-
423
- ### ```get cmmc```
424
435
  [top](#api-endpoints-provided)
436
+ ### ```get cmmc```
425
437
 
426
438
  ----
427
439
  To view Cybersecurity Maturity Model Certification (CMMC) Assessments use the following command:
@@ -434,9 +446,8 @@ To view Cybersecurity Maturity Model Certification (CMMC) Assessments use the fo
434
446
  |----------------|:--------------------------------------|
435
447
  |--sinceDate |Date - The CMMC date. Unix date format |
436
448
 
437
-
438
- ### ```get workflow_definitions```
439
449
  [top](#api-endpoints-provided)
450
+ ### ```get workflow_definitions```
440
451
 
441
452
  ----
442
453
  To view Workflow Definitions use the following command:
@@ -449,22 +460,15 @@ To view Workflow Definitions use the following command:
449
460
  |---------------------|:----------------------------------------------------------------------------|
450
461
  |--includeInactive |BOOLEAN - true or false |
451
462
  |--registrationType |Possible values: assessAndAuthorize, assessOnly, guest, regular, functional, |
452
- | | loudServiceProvider, commonControlProvider |
453
-
463
+ | | cloudServiceProvider, commonControlProvider |
454
464
 
455
- ### ```get workflow_instances```
456
465
  [top](#api-endpoints-provided)
457
466
 
467
+ ### ```get workflow_instances```
458
468
  ----
459
469
  There are two get endpoints to view workflow instances:
460
- - forSystem
461
- $ bundle exec exe/emasser get workflow_instances forSystem --systemId=SYSTEMID
462
-
463
- - required parameter is:
464
-
465
- |parameter | type or values |
466
- |-------------|:----------------------------------|
467
- |--systemId |Integer - Unique system identifier |
470
+ - all
471
+ $ bundle exec exe/emasser get workflow_instances all
468
472
 
469
473
  - Optional parameters are:
470
474
 
@@ -476,21 +480,20 @@ There are two get endpoints to view workflow instances:
476
480
  |--status |Possible values: active, inactive, all |
477
481
 
478
482
  - byWorkflowInstanceId
479
- $ bundle exec exe/emasser get workflow_instances byWorkflowInstanceId --systemId=SYSTEMID --workflowInstanceId=--WORKFLOWID
483
+ $ bundle exec exe/emasser get workflow_instances byWorkflowInstanceId --workflowInstanceId=--WORKFLOWID
480
484
 
481
485
  - required parameter is:
482
486
 
483
487
  |parameter | type or values |
484
488
  |---------------------|:---------------------------------------------|
485
- |--systemId |Integer - Unique system identifier |
486
489
  |--workflowInstanceId |Integer - Unique workflow instance identifier |
487
490
 
491
+ [top](#api-endpoints-provided)
492
+
488
493
 
489
494
  ## Usage - POST
490
495
 
491
496
  ### ``post test_results``
492
- [top](#api-endpoints-provided)
493
-
494
497
  ---
495
498
  Test Result add (POST) endpoint API business rules.
496
499
 
@@ -531,11 +534,9 @@ For information at the command line use:
531
534
  ```
532
535
  $ bundle exec exe/emasser post test_results help add
533
536
  ```
534
-
537
+ [top](#post)
535
538
 
536
539
  ### ``post poams``
537
- [top](#api-endpoints-provided)
538
-
539
540
  ---
540
541
  Plan of Action and Milestones (POA&M) add (POST) endpoint API business rules.
541
542
 
@@ -573,19 +574,23 @@ Business logic, the following rules apply when adding POA&Ms
573
574
  - If the Security Control or Assessment Procedure does not exist in the system we may have to just import POA&M Item at the System Level.
574
575
 
575
576
 
576
- The following parameters/fields have the following character limitations:
577
- - POA&M Item cannot be saved if the Point of Contact fields exceed 100 characters:
578
- - Office / Organization (pocOrganization)
579
- - First Name (pocFirstName)
580
- - Last Name (pocLastName)
581
- - Email (email)
582
- - Phone Number (pocPhoneNumber)
583
- - POA&M Items cannot be saved if Mitigation field (mitigation) exceeds 2000 characters.
584
- - POA&M Items cannot be saved if Source Identifying Vulnerability field exceeds 2000 characters.
585
- - POA&M Items cannot be saved if Comments (comments) field exceeds 2000 characters
586
- - POA&M Items cannot be saved if Resource (resource) field exceeds 250 characters.
587
- - POA&M Items cannot be saved if Milestone Description exceeds 2000 characters.
588
-
577
+ The following POA&M parameters/fields have the following character limitations:
578
+ - Fields that can not exceed 100 characters:
579
+ - Office / Organization (`pocOrganization`)
580
+ - First Name (`pocFirstName`)
581
+ - Last Name (`pocLastName`)
582
+ - Email (`email`)
583
+ - Phone Number (`pocPhoneNumber`)
584
+ - External Unique ID (`externalUid`)
585
+ - Fields that can not exceed 250 characters:
586
+ - Resource (`resource`)
587
+ - Fields have can not exceed 2000 character:
588
+ - Vulnerability Description (`vulnerabilityDescription`)
589
+ - Source Identifying Vulnerability (`sourceIdentVuln`)
590
+ - Recommendations (`recommendations`)
591
+ - Risk Accepted Comments (`comments`)
592
+ - Milestone Description (`description`)
593
+ - Mitigation Justification (`mitigation`)
589
594
 
590
595
  To add (POST) POA&Ms use the following command:
591
596
  ```
@@ -604,30 +609,30 @@ $ bundle exec exe/emasser post poams add --systemId [value] --status [value] --v
604
609
  Client API parameters/fields (required, conditional, and optional).
605
610
  - required parameter are:
606
611
 
607
- |parameter | type or values |
608
- |---------------------------|:-----------------------------------------------------------------------|
609
- |--systemId |Integer - Unique system identifier |
610
- |--status |Possible Values: Ongoing,Risk Accepted,Completed,Not Applicable |
611
- |--vulnerabilityDescription |String - Vulnerability description for the POA&M Item. 2000 Characters |
612
- |--sourceIdentVuln |String - Include Source Identifying Vulnerability text. 2000 Characters |
613
- |--pocOrganization |String - Organization/Office represented. 100 Characters |
614
- |--resources |String - List of resources used. Character Limit = 250 |
612
+ |parameter | type or values |
613
+ |---------------------------|:---------------------------------------------------------------|
614
+ |--systemId |Integer - Unique system identifier |
615
+ |--status |Possible Values: Ongoing,Risk Accepted,Completed,Not Applicable |
616
+ |--vulnerabilityDescription |String - Vulnerability description for the POA&M Item |
617
+ |--sourceIdentVuln |String - Include Source Identifying Vulnerability text |
618
+ |--pocOrganization |String - Organization/Office represented |
619
+ |--resources |String - List of resources used. Character Limit = 250 |
615
620
 
616
621
  ** If any poc information is provided all POC fields are required. See additional details for POC fields below.
617
622
 
618
623
  - conditional parameters are:
619
624
 
620
- |parameter | type or values |
621
- |--------------------------|:--------------------------------------------------------------------------------------|
622
- |--milestones |JSON - see milestone format |
623
- |--pocFirstName |String - First name of POC. 100 Characters |
624
- |--pocLastName |String - Last name of POC. 100 Characters |
625
- |--pocEmail |String - Email address of POC. 100 Characters |
626
- |--pocPhoneNumber |String - Phone number of POC (area code) ***-**** format. 100 Characters |
627
- |--severity |Possible values - Very Low, Low, Moderate, High, Very High |
628
- |--scheduledCompletionDate |Date - Required for ongoing and completed POA&M items. Unix time format |
629
- |--completionDate |Date - Field is required for completed POA&M items. Unix time format |
630
- |--comments |String - Field is required for completed and risk accepted POA&M items. 2000 Characters|
625
+ |parameter | type or values |
626
+ |--------------------------|:------------------------------------------------------------------------|
627
+ |--milestones |JSON - see milestone format |
628
+ |--pocFirstName |String - First name of POC |
629
+ |--pocLastName |String - Last name of POC |
630
+ |--pocEmail |String - Email address of POC |
631
+ |--pocPhoneNumber |String - Phone number of POC (area code) ***-**** format |
632
+ |--severity |Possible values - Very Low, Low, Moderate, High, Very High |
633
+ |--scheduledCompletionDate |Date - Required for ongoing and completed POA&M items. Unix time format |
634
+ |--completionDate |Date - Field is required for completed POA&M items. Unix time format |
635
+ |--comments |String - Field is required for completed and risk accepted POA&M items. |
631
636
 
632
637
  ** If a POC email is supplied, the application will attempt to locate a user already registered within the application and pre-populate any information not explicitly supplied in the request. If no such user is found, these fields are required within the request:
633
638
  pocFirstName, pocLastName, pocPhoneNumber
@@ -639,7 +644,7 @@ Client API parameters/fields (required, conditional, and optional).
639
644
 
640
645
  |parameter | type or values |
641
646
  |--------------------|:-----------------------------------------------------------------------------------------|
642
- |--externalUid |String - External unique identifier for use with associating POA&M Items. 100 Characters |
647
+ |--externalUid |String - External unique identifier for use with associating POA&M Items |
643
648
  |--controlAcronym |String - Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined|
644
649
  |--cci |String - CCI associated with the test result |
645
650
  |--securityChecks |String - Security Checks that are associated with the POA&M |
@@ -649,8 +654,8 @@ Client API parameters/fields (required, conditional, and optional).
649
654
  |--impact |Possible values: Very Low, Low, Moderate, High, Very High |
650
655
  |--impactDescription |String - Include description of Security Control’s impact |
651
656
  |--residualRiskLevel |Possible values: Very Low, Low, Moderate, High, Very High |
652
- |--recommendations |String - Include recommendations. Character Limit 2,000 |
653
- |--mitigation |String - Include mitigation explanation. 2000 Characters |
657
+ |--recommendations |String - Include recommendations |
658
+ |--mitigation |String - Include mitigation explanation |
654
659
 
655
660
 
656
661
  **Note**
@@ -658,11 +663,9 @@ For information at the command line use:
658
663
  ```
659
664
  $ bundle exec exe/emasser post poams help add
660
665
  ```
661
-
666
+ [top](#post)
662
667
 
663
668
  ### ``post milestones``
664
- [top](#api-endpoints-provided)
665
-
666
669
  ---
667
670
  To add (POST) milestones in a system for one or more POA&M items use the following command:
668
671
 
@@ -684,11 +687,9 @@ For information at the command line use:
684
687
  ```
685
688
  $ bundle exec exe/emasser post milestones help add
686
689
  ```
687
-
690
+ [top](#post)
688
691
 
689
692
  ### ``post artifacts``
690
- [top](#api-endpoints-provided)
691
-
692
693
  ---
693
694
  The add (POST) artifacts endpoint accepts a single binary file with file extension.zip only. The command line (CI) reads the files provided and zips them before sending to eMASS.
694
695
 
@@ -745,11 +746,9 @@ For information at the command line use:
745
746
  ```
746
747
  $ bundle exec exe/emasser post artifacts help upload
747
748
  ```
748
-
749
+ [top](#post)
749
750
 
750
751
  ### ``post cac``
751
- [top](#api-endpoints-provided)
752
-
753
752
  ----
754
753
  Submit control to second role of CAC
755
754
 
@@ -779,11 +778,9 @@ For information at the command line use:
779
778
  ```
780
779
  $ bundle exec exe/emasser post cac help add
781
780
  ```
782
-
781
+ [top](#post)
783
782
 
784
783
  ### ``post pac``
785
- [top](#api-endpoints-provided)
786
-
787
784
  ----
788
785
  Submit control to second role of CAC
789
786
 
@@ -799,20 +796,17 @@ To add (POST) test PAC use the following command:
799
796
  |--systemId |Integer - Unique system identifier |
800
797
  |--workflow |Possible Values: Assess and Authorize, Assess Only, Security Plan Approval |
801
798
  |--name |String - Package name. 100 Characters |
802
- |--comments |Strings - Comments submitted upon initiation of the indicated workflow, 4,000 character|
799
+ |--comments |String - Comments submitted upon initiation of the indicated workflow, 4,000 character|
803
800
 
804
801
  **Note**
805
802
  For information at the command line use:
806
803
  ```
807
804
  $ bundle exec exe/emasser post pac help add
808
805
  ```
809
-
806
+ [top](#post)
810
807
 
811
808
  ### ``post static_code_scan``
812
- [top](#api-endpoints-provided)
813
-
814
809
  ----
815
-
816
810
  To add (POST) static code scans use the following command:
817
811
 
818
812
  ````
@@ -858,12 +852,139 @@ For information at the command line use:
858
852
  ```
859
853
  $ bundle exec exe/emasser post scan_findings help add
860
854
  ```
855
+ [top](#post)
856
+
857
+ ### ```post cloud_resource```
858
+ ---
859
+
860
+ The following Cloud Resource parameters/fields have the following character limitations:
861
+ - Fields that can not exceed 50 characters:
862
+ - Policy Deployment Version (`policyDeploymentVersion`)
863
+ - Fields that can not exceed 100 characters:
864
+ - Assessment Procedure (`assessmentProcedure`)
865
+ - Security Control Acronym (`control`)
866
+ - CSP Account ID (`cspAccountId`)
867
+ - CSP Region (`cspRegion`)
868
+ - Email of POC (`initiatedBy`)
869
+ - Cloud Service Provider (`provider`)
870
+ - Type of Cloud resource (`resourceType`)
871
+ - Fields that can not exceed 500 characters:
872
+ - CSP/Resource’s Policy ID (`cspPolicyDefinitionId`)
873
+ - Policy Deployment Name (`policyDeploymentName`)
874
+ - Policy Compliance ID (`resourceId`)
875
+ - Cloud Resource Name (`resourceName`)
876
+ - Fields that can not exceed 1000 characters:
877
+ - Reason for Compliance (`complianceReason`)
878
+ - Fields that can not exceed 2000 characters:
879
+ - Policy Short Title (`policyDefinitionTitle`)
880
+
881
+ To add a cloud resource and their scan results in the assets module for a system use the following command:
882
+ ````
883
+ $ bundle exec exe/emasser post cloud_resource add --systemId [value] --provider [value] --resourceId [value] --resourceName [value] --resourceType [value] --cspPolicyDefinitionId [value] --isCompliant or --is-not-Compliant --policyDefinitionTitle [value] --test [value]
884
+ ````
885
+ - required parameter are:
886
+
887
+ |parameter | type or values |
888
+ |------------------------|:--------------------------------------------------------------------------|
889
+ |--systemId |Integer - Unique system identifier |
890
+ |--provider |string - Cloud service provider name |
891
+ |--resourceId |String - Unique identifier/resource namespace for policy compliance result |
892
+ |--resourceName |String - Friendly name of Cloud resource |
893
+ |--resourceType |String - Type of Cloud resource |
894
+ |--cspPolicyDefinitionId |String - Unique identifier/compliance namespace for CSP/Resource\'s policy definition/compliance check|
895
+ |--isCompliant | Boolean - Compliance status of the policy for the identified cloud resource |
896
+ |--policyDefinitionTitle | String - Friendly policy/compliance check title. Recommend short title |
897
+
898
+ - optional parameters are:
899
+
900
+ |parameter | type or values |
901
+ |-------------------|:------------------------------------------------------|
902
+ |--initiatedBy |String - Person initiating the process email address |
903
+ |--cspAccountId |String - System/owner\'s CSP account ID/number |
904
+ |--cspRegion |String - CSP region of system |
905
+ |--isBaseline |Boolean - Flag that indicates in results is a baseline |
906
+ |Tags Object (tags)|
907
+ |--text | String - Text that specifies the tag type |
908
+ |Compliance Results Array Objects (complianceResults)|
909
+ |--assessmentProcedure |String - Comma separated correlation to Assessment Procedure (i.e. CCI number for DoD Control Set) |
910
+ |--complianceCheckTimestamp |Date - The compliance check date - Unix time format |
911
+ |--complianceReason |String - Reason/comments for compliance result |
912
+ |--control |String - Comma separated correlation to Security Control (e.g. exact NIST Control acronym) |
913
+ |--policyDeploymentName |String - Name of policy deployment |
914
+ |--policyDeploymentVersion |String - Version of policy deployment |
915
+ |--severity |Possible Values: Low, Medium, High, Critical |
916
+
917
+
918
+ **Note**
919
+ For information at the command line use:
920
+ ```
921
+ $ bundle exec exe/emasser post cloud_resource help add
922
+ ```
923
+
924
+ [top](#post)
925
+
926
+
927
+ ### ```post container```
928
+ ---
929
+ The following Container parameters/fields have the following character limitations:
930
+ - Fields that can not exceed 100 characters:
931
+ - STIG Benchmark ID (`benchmark`)
932
+ - Container Namespace (`namespace`)
933
+ - Kubernetes assigned IP (`podIp`)
934
+ - Kubernetes Pod Name) (`podName`)
935
+ - Fields that can not exceed 500 characters:
936
+ - Container ID (`containerId`)
937
+ - Friendly Container Name (`containerName`)
938
+ - Fields that can not exceed 1000 characters:
939
+ - Result Comments (`message`)
940
+
941
+
942
+
943
+ To add containers and their scan results in the assets module for a system use the following command:
944
+ ````
945
+ $ bundle exec ruby exe/emasser post container add --systemId [value] --containerId [value] --containerName [value] --time [value] --benchmark [value] --lastSeen [value] --ruleId [value] --status [value]
946
+
947
+ ````
948
+
949
+ - required parameter are:
950
+
951
+ |parameter | type or values |
952
+ |------------------------|:--------------------------------------------------------------------------|
953
+ |--systemId |Integer - Unique system identifier |
954
+ |--containerId |String - Unique identifier of the container |
955
+ |--containerName |String - Friendly name of the container |
956
+ |--time |Date - Datetime of scan/result. Unix date format |
957
+ |Bench Marks Object (benchmarks)|
958
+ |--benchmark |String - Identifier of the benchmark/grouping of compliance results |
959
+ |benchmarks.results |Object
960
+ |--ruleId |String - Identifier for the compliance result, vulnerability, etc.
961
+ |--status |String - Benchmark result status
962
+ |--lastSeen |Date - Date last seen, Unix date format
963
+
964
+ - optional parameters are:
965
+
966
+ |parameter | type or values |
967
+ |----------------------------|:------------------------------------------------------|
968
+ |--podName |String - Name of pod (e.g. Kubernetes pod) |
969
+ |--podIp |String - IP address of pod |
970
+ |--namespace |String - Namespace of container in container orchestration (e.g. Kubernetes namespace)|
971
+ |Tags Object (tags)|
972
+ |--text | String - Text that specifies the tag type |
973
+ |Bench Marks Object (benchmarks)
974
+ |--isBaseline |Boolean - True/false flag for providing results as baseline. If true, all existing compliance results for the provided benchmark within the container will be replaced by results in the current call|
975
+ |benchmarks.results |Object
976
+ |--message |String - Comments for the result
861
977
 
978
+ **Note**
979
+ For information at the command line use:
980
+ ```
981
+ $ bundle exec exe/emasser post container help add
982
+ ```
983
+ [top](#post)
862
984
 
863
985
  ## Usage - PUT
864
986
 
865
987
  ### ``put controls``
866
- [top](#api-endpoints-provided)
867
988
 
868
989
  ----
869
990
  Business Rules
@@ -882,16 +1003,16 @@ Implementation Plan cannot be updated if a Security Control is "Inherited" excep
882
1003
 
883
1004
  The following parameters/fields have the following character limitations:
884
1005
  - Implementation Plan information cannot be saved if the fields below exceed 2,000 character limits:
885
- - N/A Justification (naJustification)
886
- - Responsible Entities (responsibleEntities)
887
- - Implementation Narrative (implementationNarrative)
888
- - Criticality (slcmCriticality)
889
- - Reporting (slcmReporting)
890
- - Tracking (slcmTracking)
891
- - Vulnerability Summary (vulnerabilitySummary)
892
- - Recommendations (recommendations)
1006
+ - N/A Justification (`naJustification`)
1007
+ - Responsible Entities (`responsibleEntities`)
1008
+ - Implementation Narrative (`implementationNarrative`)
1009
+ - Criticality (`slcmCriticality`)
1010
+ - Reporting (`slcmReporting`)
1011
+ - Tracking (`slcmTracking`)
1012
+ - Vulnerability Summary (`vulnerabilitySummary`)
1013
+ - Recommendations (`recommendations`)
893
1014
  - Implementation Plan information cannot be saved if the fields below exceed 4,000 character limits:
894
- - SLCM Comments (slcmComments)
1015
+ - SLCM Comments (`slcmComments`)
895
1016
 
896
1017
  Implementation Plan information cannot be updated if Security Control does not exist in the system record.
897
1018
 
@@ -943,10 +1064,9 @@ For information at the command line use:
943
1064
  ```
944
1065
  $ bundle exec exe/emasser put controls help update
945
1066
  ```
946
-
1067
+ [top](#put)
947
1068
 
948
1069
  ### ``put poams``
949
- [top](#api-endpoints-provided)
950
1070
 
951
1071
  ----
952
1072
  Business Rules
@@ -996,6 +1116,26 @@ The following parameters/fields have the following character limitations:
996
1116
  - POA&M Item cannot be saved if Resource field (resource) exceeds 250 characters.
997
1117
  - POA&M Items cannot be saved if Milestone Description (description) exceeds 2,000 characters.
998
1118
 
1119
+
1120
+ The following POA&M parameters/fields have the following character limitations:
1121
+ - Fields that can not exceed 100 characters:
1122
+ - Office / Organization (`pocOrganization`)
1123
+ - First Name (`pocFirstName`)
1124
+ - Last Name (`pocLastName`)
1125
+ - Email (`email`)
1126
+ - Phone Number (`pocPhoneNumber`)
1127
+ - External Unique ID (`externalUid`)
1128
+ - Fields that can not exceed 250 characters:
1129
+ - Resource (`resource`)
1130
+ - Fields have can not exceed 2000 character:
1131
+ - Vulnerability Description (`vulnerabilityDescription`)
1132
+ - Source Identifying Vulnerability (`sourceIdentVuln`)
1133
+ - Recommendations (`recommendations`)
1134
+ - Risk Accepted Comments (`comments`)
1135
+ - Milestone Description (`description`)
1136
+ - Mitigation Justification (`mitigation`)
1137
+
1138
+
999
1139
  ---
1000
1140
  Updating (PUT) a POA&M can be accomplished by invoking the following command:
1001
1141
  ````
@@ -1003,32 +1143,32 @@ Updating (PUT) a POA&M can be accomplished by invoking the following command:
1003
1143
  ````
1004
1144
  - required parameter are:
1005
1145
 
1006
- |parameter | type or values |
1007
- |---------------------------|:-----------------------------------------------------------------------|
1008
- |--systemId |Integer - Unique system identifier |
1009
- |--displayPoamId |Integer - Globally unique identifier for individual POA&M Items |
1010
- |--status |Possible Values: Ongoing,Risk Accepted,Completed,Not Applicable |
1011
- |--vulnerabilityDescription |String - Vulnerability description for the POA&M Item. 2000 Characters |
1012
- |--sourceIdentVuln |String - Include Source Identifying Vulnerability text. 2000 Characters |
1013
- |--pocOrganization |String - Organization/Office represented. 100 Characters |
1014
- |--resources |String - List of resources used. Character Limit = 250 |
1146
+ |parameter | type or values |
1147
+ |---------------------------|:---------------------------------------------------------------|
1148
+ |--systemId |Integer - Unique system identifier |
1149
+ |--displayPoamId |Integer - Globally unique identifier for individual POA&M Items |
1150
+ |--status |Possible Values: Ongoing,Risk Accepted,Completed,Not Applicable |
1151
+ |--vulnerabilityDescription |String - Vulnerability description for the POA&M Item |
1152
+ |--sourceIdentVuln |String - Include Source Identifying Vulnerability text |
1153
+ |--pocOrganization |String - Organization/Office represented |
1154
+ |--resources |String - List of resources used. Character Limit = 250 |
1015
1155
 
1016
1156
  ** If any poc information is provided all POC fields are required. See additional details for POC fields below.
1017
1157
 
1018
1158
  - conditional parameters are:
1019
1159
 
1020
- |parameter | type or values |
1021
- |--------------------------|:--------------------------------------------------------------------------------------|
1022
- |--milestones |JSON - see milestone format |
1023
- |--pocFirstName |String - First name of POC. 100 Characters |
1024
- |--pocLastName |String - Last name of POC. 100 Characters |
1025
- |--pocEmail |String - Email address of POC. 100 Characters |
1026
- |--pocPhoneNumber |String - Phone number of POC (area code) ***-**** format. 100 Characters |
1027
- |--severity |Possible values - Very Low, Low, Moderate, High, Very High |
1028
- |--scheduledCompletionDate |Date - Required for ongoing and completed POA&M items. Unix time format |
1029
- |--completionDate |Date - Field is required for completed POA&M items. Unix time format |
1030
- |--comments |String - Field is required for completed and risk accepted POA&M items. 2000 Characters|
1031
- |--isActive |Boolean - Used to delete milestones when updating a POA&M |
1160
+ |parameter | type or values |
1161
+ |--------------------------|:-----------------------------------------------------------------------|
1162
+ |--milestones |JSON - see milestone format |
1163
+ |--pocFirstName |String - First name of POC |
1164
+ |--pocLastName |String - Last name of POC |
1165
+ |--pocEmail |String - Email address of POC |
1166
+ |--pocPhoneNumber |String - Phone number of POC (area code) ***-**** format |
1167
+ |--severity |Possible values - Very Low, Low, Moderate, High, Very High |
1168
+ |--scheduledCompletionDate |Date - Required for ongoing and completed POA&M items. Unix time format |
1169
+ |--completionDate |Date - Field is required for completed POA&M items. Unix time format |
1170
+ |--comments |String - Field is required for completed and risk accepted POA&M items |
1171
+ |--isActive |Boolean - Used to delete milestones when updating a POA&M |
1032
1172
 
1033
1173
  ** If a POC email is supplied, the application will attempt to locate a user already registered within the application and pre-populate any information not explicitly supplied in the request. If no such user is found, these fields are required within the request:
1034
1174
  pocFirstName, pocLastName, pocPhoneNumber
@@ -1041,7 +1181,7 @@ Updating (PUT) a POA&M can be accomplished by invoking the following command:
1041
1181
 
1042
1182
  |parameter | type or values |
1043
1183
  |--------------------|:-----------------------------------------------------------------------------------------|
1044
- |--externalUid |String - External unique identifier for use with associating POA&M Items. 100 Characters |
1184
+ |--externalUid |String - External unique identifier for use with associating POA&M Items |
1045
1185
  |--controlAcronym |String - Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined|
1046
1186
  |--cci |String - CCI associated with the test result |
1047
1187
  |--securityChecks |String - Security Checks that are associated with the POA&M |
@@ -1051,7 +1191,7 @@ Updating (PUT) a POA&M can be accomplished by invoking the following command:
1051
1191
  |--impact |Possible values: Very Low, Low, Moderate, High, Very High |
1052
1192
  |--impactDescription |String - Include description of Security Control’s impact |
1053
1193
  |--residualRiskLevel |Possible values: Very Low, Low, Moderate, High, Very High |
1054
- |--recommendations |String - Include recommendations. Character Limit 2,000 |
1194
+ |--recommendations |String - Include recommendations |
1055
1195
  |--mitigation |String - Include mitigation explanation. 2000 Characters |
1056
1196
 
1057
1197
  **Note**
@@ -1059,10 +1199,9 @@ For information at the command line use:
1059
1199
  ```
1060
1200
  $ bundle exec exe/emasser put poams help update
1061
1201
  ```
1062
-
1202
+ [top](#put)
1063
1203
 
1064
1204
  ### ``put milestones``
1065
- [top](#api-endpoints-provided)
1066
1205
 
1067
1206
  ----
1068
1207
 
@@ -1087,10 +1226,9 @@ For information at the command line use:
1087
1226
  ```
1088
1227
  $ bundle exec exe/emasser put milestones help update
1089
1228
  ```
1090
-
1229
+ [top](#put)
1091
1230
 
1092
1231
  ### ``put artifacts``
1093
- [top](#api-endpoints-provided)
1094
1232
 
1095
1233
  ----
1096
1234
  Business Rules
@@ -1143,12 +1281,11 @@ For information at the command line use:
1143
1281
  ```
1144
1282
  $ bundle exec exe/emasser put artifacts help update
1145
1283
  ```
1146
-
1284
+ [top](#put)
1147
1285
 
1148
1286
  ## Usage - DELETE
1149
1287
 
1150
1288
  ### ``delete poams``
1151
- [top](#api-endpoints-provided)
1152
1289
 
1153
1290
  ----
1154
1291
  Remove one or many poa&m items in a system
@@ -1157,10 +1294,9 @@ To remove (DELETE) one or more POA&M items use the following command:
1157
1294
  ```
1158
1295
  bundle exec exe/emasser delete poams remove --systemId [value] --poamId [value]
1159
1296
  ```
1160
-
1297
+ [top](#delete)
1161
1298
 
1162
1299
  ### ``delete milestones``
1163
- [top](#api-endpoints-provided)
1164
1300
 
1165
1301
  ----
1166
1302
  Remove milestones in a system for one or many POA&M items
@@ -1175,10 +1311,9 @@ To remove (DELETE) one or more Milestones in a system use the following command:
1175
1311
  ```
1176
1312
  bundle exec exe/emasser delete milestones remove--systemId [value] --poamId [value] --milestoneId [value]
1177
1313
  ```
1178
-
1314
+ [top](#delete)
1179
1315
 
1180
1316
  ### ``delete artifacts``
1181
- [top](#api-endpoints-provided)
1182
1317
 
1183
1318
  ---
1184
1319
  Remove one or many artifacts in a system
@@ -1193,3 +1328,4 @@ bundle exec exe/emasser delete artifacts remove --systemId [value] --files [valu
1193
1328
  or
1194
1329
  bundle exec exe/emasser delete artifacts remove --systemId [value] --files [value, value...]
1195
1330
  ```
1331
+ [top](#delete)