cyber_trackr_live 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG-GEM.md +47 -0
  3. data/CODE_OF_CONDUCT.md +20 -0
  4. data/CONTRIBUTING.md +422 -0
  5. data/LICENSE.md +16 -0
  6. data/NOTICE.md +16 -0
  7. data/README-GEM.md +75 -0
  8. data/SECURITY.md +86 -0
  9. data/cyber_trackr_live.gemspec +56 -0
  10. data/examples/cyber_trackr_client.rb +208 -0
  11. data/examples/fetch-complete-stig +174 -0
  12. data/examples/fetch-stig-complete +67 -0
  13. data/examples/fetch-stig-direct +99 -0
  14. data/examples/use_helper.rb +50 -0
  15. data/lib/cyber_trackr_client/api/api_documentation_api.rb +79 -0
  16. data/lib/cyber_trackr_client/api/cci_api.rb +147 -0
  17. data/lib/cyber_trackr_client/api/documents_api.rb +276 -0
  18. data/lib/cyber_trackr_client/api/rmf_controls_api.rb +272 -0
  19. data/lib/cyber_trackr_client/api/scap_api.rb +276 -0
  20. data/lib/cyber_trackr_client/api_client.rb +437 -0
  21. data/lib/cyber_trackr_client/api_error.rb +58 -0
  22. data/lib/cyber_trackr_client/configuration.rb +400 -0
  23. data/lib/cyber_trackr_client/models/api_documentation.rb +238 -0
  24. data/lib/cyber_trackr_client/models/assessment_procedure.rb +321 -0
  25. data/lib/cyber_trackr_client/models/cci_detail.rb +391 -0
  26. data/lib/cyber_trackr_client/models/document_detail.rb +434 -0
  27. data/lib/cyber_trackr_client/models/document_version.rb +385 -0
  28. data/lib/cyber_trackr_client/models/error.rb +313 -0
  29. data/lib/cyber_trackr_client/models/requirement_detail.rb +580 -0
  30. data/lib/cyber_trackr_client/models/requirement_summary.rb +360 -0
  31. data/lib/cyber_trackr_client/models/rmf_control_detail.rb +436 -0
  32. data/lib/cyber_trackr_client/models/rmf_control_list.rb +241 -0
  33. data/lib/cyber_trackr_client/version.rb +15 -0
  34. data/lib/cyber_trackr_client.rb +54 -0
  35. data/lib/cyber_trackr_helper.rb +269 -0
  36. data/lib/rubocop/cop/cyber_trackr_api/README.md +81 -0
  37. data/openapi/openapi.yaml +798 -0
  38. metadata +271 -0
@@ -0,0 +1,798 @@
1
+ ---
2
+ openapi: 3.1.1
3
+ info:
4
+ title: Cyber Trackr API
5
+ description: "Complete OpenAPI 3.1.1 specification for cyber.trackr.live API.\nThis
6
+ API provides access to DISA STIGs, SRGs, RMF controls, CCIs, and SCAP data.\n\n##
7
+ DISA Cybersecurity Ecosystem Hierarchy\n\n```\nNIST RMF Controls (high-level policy
8
+ framework)\n ↓ (decomposed into atomic, testable statements)\nCCIs (Control
9
+ Correlation Identifiers - bridge policy to implementation)\n ↓ (grouped by
10
+ technology class into generic requirements) \nSRGs (Security Requirements Guides
11
+ - technology class \"what\" to do)\n ↓ (implemented as vendor-specific \"how\"
12
+ to do it)\nSTIGs (Security Technical Implementation Guides - vendor/product specific)\n
13
+ \ ↓ (automated versions for scanning tools)\nSCAP (Security Content Automation
14
+ Protocol documents)\n```\n\n## Critical Relationships\n\n- **RMF Controls** contain
15
+ assessment procedures that reference **CCIs**\n- **CCIs** map back to **RMF Controls**
16
+ and forward to **STIG/SRG requirements**\n- **SRGs** define generic technology
17
+ requirements that **STIGs** implement specifically\n- **V-IDs** can appear in
18
+ both SRG and corresponding STIG (same requirement, different specificity)\n- **SV-IDs**
19
+ are XCCDF rule identifiers with revision tracking across document releases\n"
20
+ version: 1.0.0
21
+ contact:
22
+ name: Community OpenAPI Documentation
23
+ url: https://github.com/mitre/inspec-juniper/tree/main/tools/cyber-trackr-api
24
+ license:
25
+ name: Apache-2.0
26
+ url: https://www.apache.org/licenses/LICENSE-2.0
27
+ servers:
28
+ - url: https://cyber.trackr.live/api
29
+ description: Production server (default)
30
+ - url: https://{subdomain}.trackr.live/api
31
+ description: Configurable server endpoint
32
+ variables:
33
+ subdomain:
34
+ default: cyber
35
+ description: The subdomain for the trackr.live API
36
+ enum:
37
+ - cyber
38
+ - test
39
+ - staging
40
+ x-code-samples:
41
+ - lang: Ruby
42
+ label: Fetch complete STIG with all controls
43
+ source: |
44
+ # First get the document summary
45
+ doc = client.get_document('Juniper_SRX_Services_Gateway_ALG', '3', '3')
46
+
47
+ # Then fetch detailed data for each requirement
48
+ complete_requirements = []
49
+ doc.requirements.each do |req|
50
+ detailed = client.get_requirement('Juniper_SRX_Services_Gateway_ALG', '3', '3', req.id)
51
+ complete_requirements << detailed
52
+ sleep 0.1 # Be respectful to the API
53
+ end
54
+ - lang: Ruby
55
+ label: Filter STIGs from mixed list
56
+ source: "# The listAllDocuments endpoint returns both STIGs and SRGs\nall_docs =
57
+ client.list_all_documents\n\n# Filter to get only STIGs\nstigs = all_docs.reject
58
+ { |name, versions| \n name.include?('Security_Requirements_Guide') || name.include?('(SRG)')\n}\n\n#
59
+ Filter to get only SRGs\nsrgs = all_docs.select { |name, versions|\n name.include?('Security_Requirements_Guide')
60
+ || name.include?('(SRG)')\n}\n"
61
+ tags:
62
+ - name: API Documentation
63
+ description: Self-documenting API root endpoint
64
+ - name: Documents
65
+ description: Security Technical Implementation Guides (STIGs) and Security Requirements
66
+ Guides (SRGs)
67
+ x-display-name: STIG/SRG Documents
68
+ - name: RMF Controls
69
+ description: Risk Management Framework controls (NIST 800-53 rev 4 & 5)
70
+ - name: CCI
71
+ description: Control Correlation Identifiers (bridge RMF to implementation)
72
+ - name: SCAP
73
+ description: Security Content Automation Protocol documents
74
+ paths:
75
+ "/":
76
+ get:
77
+ operationId: getApiDocumentation
78
+ summary: Get API documentation
79
+ description: Returns self-documenting schema showing all available endpoints
80
+ tags:
81
+ - API Documentation
82
+ responses:
83
+ '200':
84
+ description: API endpoint documentation
85
+ content:
86
+ application/json:
87
+ schema:
88
+ "$ref": "#/components/schemas/ApiDocumentation"
89
+ "/stig":
90
+ get:
91
+ operationId: listAllDocuments
92
+ summary: List all STIGs and SRGs
93
+ description: "Returns complete list of Security Technical Implementation Guides
94
+ (STIGs) and \nSecurity Requirements Guides (SRGs). **Note**: These are mixed
95
+ in one endpoint.\n"
96
+ tags:
97
+ - Documents
98
+ x-returns-mixed-content: true
99
+ x-note: Returns both STIGs and SRGs mixed together. Use name patterns to distinguish
100
+ x-rate-limit: No documented limit, but please be respectful
101
+ responses:
102
+ '200':
103
+ description: Complete list of STIGs and SRGs grouped by document name
104
+ content:
105
+ application/json:
106
+ schema:
107
+ "$ref": "#/components/schemas/DocumentList"
108
+ links:
109
+ GetDocument:
110
+ operationId: getDocument
111
+ description: Get full document details for any STIG/SRG from the list
112
+ parameters:
113
+ title: "$response.body#/{documentName}/0/name"
114
+ version: "$response.body#/{documentName}/0/version"
115
+ release: "$response.body#/{documentName}/0/release"
116
+ "/stig/{title}/{version}/{release}":
117
+ get:
118
+ operationId: getDocument
119
+ summary: Get STIG or SRG document details
120
+ description: Returns complete document with all requirements
121
+ tags:
122
+ - Documents
123
+ x-note: Returns document with requirement summaries only. Use getRequirement
124
+ for full control details
125
+ x-requirements-structure: Requirements are returned as an object with V-IDs
126
+ as keys, not an array
127
+ parameters:
128
+ - name: title
129
+ in: path
130
+ required: true
131
+ description: Document title exactly as it appears in the list endpoint
132
+ schema:
133
+ type: string
134
+ minLength: 1
135
+ maxLength: 200
136
+ example: Juniper_SRX_Services_Gateway_ALG
137
+ - name: version
138
+ in: path
139
+ required: true
140
+ description: Major version number of the document
141
+ schema:
142
+ type: string
143
+ pattern: "^\\d+$"
144
+ example: '3'
145
+ - name: release
146
+ in: path
147
+ required: true
148
+ description: Release number within the version
149
+ schema:
150
+ type: string
151
+ pattern: "^\\d+(\\.\\d+)?$"
152
+ example: '3'
153
+ responses:
154
+ '200':
155
+ description: Complete document details with all requirements
156
+ content:
157
+ application/json:
158
+ schema:
159
+ "$ref": "#/components/schemas/DocumentDetail"
160
+ links:
161
+ GetRequirement:
162
+ operationId: getRequirement
163
+ description: Get full details for any requirement in this document
164
+ parameters:
165
+ title: "$request.path.title"
166
+ version: "$request.path.version"
167
+ release: "$request.path.release"
168
+ vuln: "$response.body#/requirements/{index}/id"
169
+ "/stig/{title}/{version}/{release}/{vuln}":
170
+ get:
171
+ operationId: getRequirement
172
+ summary: Get individual STIG/SRG requirement details
173
+ description: Returns complete details for a specific requirement
174
+ tags:
175
+ - Documents
176
+ x-note: Returns full requirement details including assessment procedures and
177
+ CCI mappings
178
+ x-slow-operation: true
179
+ parameters:
180
+ - name: title
181
+ in: path
182
+ required: true
183
+ description: Document title exactly as it appears in the list endpoint
184
+ schema:
185
+ type: string
186
+ minLength: 1
187
+ maxLength: 200
188
+ example: Juniper_SRX_Services_Gateway_ALG
189
+ - name: version
190
+ in: path
191
+ required: true
192
+ description: Major version number of the document
193
+ schema:
194
+ type: string
195
+ pattern: "^\\d+$"
196
+ example: '3'
197
+ - name: release
198
+ in: path
199
+ required: true
200
+ description: Release number within the version
201
+ schema:
202
+ type: string
203
+ pattern: "^\\d+(\\.\\d+)?$"
204
+ example: '3'
205
+ - name: vuln
206
+ in: path
207
+ required: true
208
+ description: Vulnerability/Requirement ID (V-XXXXXX format)
209
+ schema:
210
+ type: string
211
+ pattern: "^V-\\d{6}$"
212
+ example: V-214518
213
+ responses:
214
+ '200':
215
+ description: Complete requirement details
216
+ content:
217
+ application/json:
218
+ schema:
219
+ "$ref": "#/components/schemas/RequirementDetail"
220
+ '500':
221
+ description: Server error (usually invalid parameter format)
222
+ x-note: Returns 500 (not 404) for invalid V-ID format like 'V-INVALID'
223
+ content:
224
+ application/json:
225
+ schema:
226
+ "$ref": "#/components/schemas/Error"
227
+ "/rmf/4":
228
+ get:
229
+ operationId: listRmfControlsV4
230
+ summary: List RMF revision 4 controls
231
+ description: Returns all Risk Management Framework revision 4 controls with
232
+ titles
233
+ tags:
234
+ - RMF Controls
235
+ responses:
236
+ '200':
237
+ description: Complete list of RMF rev 4 controls
238
+ content:
239
+ application/json:
240
+ schema:
241
+ "$ref": "#/components/schemas/RmfControlList"
242
+ "/rmf/5":
243
+ get:
244
+ operationId: listRmfControlsV5
245
+ summary: List RMF revision 5 controls
246
+ description: Returns all Risk Management Framework revision 5 controls with
247
+ titles
248
+ tags:
249
+ - RMF Controls
250
+ responses:
251
+ '200':
252
+ description: Complete list of RMF rev 5 controls
253
+ content:
254
+ application/json:
255
+ schema:
256
+ "$ref": "#/components/schemas/RmfControlList"
257
+ "/rmf/4/{control}":
258
+ get:
259
+ operationId: getRmfControlV4
260
+ summary: Get RMF revision 4 control details
261
+ description: Returns complete RMF control details including CCI mappings
262
+ tags:
263
+ - RMF Controls
264
+ parameters:
265
+ - name: control
266
+ in: path
267
+ required: true
268
+ description: RMF control identifier (family-number format)
269
+ schema:
270
+ type: string
271
+ pattern: "^[A-Z]+-\\d+$"
272
+ example: AC-1
273
+ responses:
274
+ '200':
275
+ description: Complete RMF control details with CCI mappings
276
+ content:
277
+ application/json:
278
+ schema:
279
+ "$ref": "#/components/schemas/RmfControlDetail"
280
+ "/rmf/5/{control}":
281
+ get:
282
+ operationId: getRmfControlV5
283
+ summary: Get RMF revision 5 control details
284
+ description: Returns complete RMF control details including CCI mappings
285
+ tags:
286
+ - RMF Controls
287
+ parameters:
288
+ - name: control
289
+ in: path
290
+ required: true
291
+ description: RMF control identifier (family-number format)
292
+ schema:
293
+ type: string
294
+ pattern: "^[A-Z]+-\\d+$"
295
+ example: AC-1
296
+ responses:
297
+ '200':
298
+ description: Complete RMF control details with CCI mappings
299
+ content:
300
+ application/json:
301
+ schema:
302
+ "$ref": "#/components/schemas/RmfControlDetail"
303
+ "/scap":
304
+ get:
305
+ operationId: listScapDocuments
306
+ summary: List all SCAP documents
307
+ description: |
308
+ Returns list of Security Content Automation Protocol documents.
309
+ These are automated scanning versions of STIGs.
310
+ tags:
311
+ - SCAP
312
+ responses:
313
+ '200':
314
+ description: List of SCAP documents grouped by name
315
+ content:
316
+ application/json:
317
+ schema:
318
+ "$ref": "#/components/schemas/DocumentList"
319
+ "/scap/{title}/{version}/{release}":
320
+ get:
321
+ operationId: getScapDocument
322
+ summary: Get SCAP document details
323
+ description: Returns complete SCAP document with all requirements (same structure
324
+ as STIG)
325
+ tags:
326
+ - SCAP
327
+ parameters:
328
+ - name: title
329
+ in: path
330
+ required: true
331
+ description: Document title exactly as it appears in the list endpoint
332
+ schema:
333
+ type: string
334
+ minLength: 1
335
+ maxLength: 200
336
+ example: U_MS_Windows_10_V3R2_STIG_SCAP_1-2_Benchmark
337
+ - name: version
338
+ in: path
339
+ required: true
340
+ description: Major version number of the document
341
+ schema:
342
+ type: string
343
+ pattern: "^\\d+$"
344
+ example: '3'
345
+ - name: release
346
+ in: path
347
+ required: true
348
+ description: Release number within the version
349
+ schema:
350
+ type: string
351
+ pattern: "^\\d+(\\.\\d+)?$"
352
+ example: '2'
353
+ responses:
354
+ '200':
355
+ description: Complete SCAP document details
356
+ content:
357
+ application/json:
358
+ schema:
359
+ "$ref": "#/components/schemas/DocumentDetail"
360
+ "/scap/{title}/{version}/{release}/{vuln}":
361
+ get:
362
+ operationId: getScapRequirement
363
+ summary: Get individual SCAP requirement details
364
+ description: Returns complete details for specific SCAP requirement (same structure
365
+ as STIG requirement)
366
+ tags:
367
+ - SCAP
368
+ parameters:
369
+ - name: title
370
+ in: path
371
+ required: true
372
+ description: Document title exactly as it appears in the list endpoint
373
+ schema:
374
+ type: string
375
+ minLength: 1
376
+ maxLength: 200
377
+ example: U_MS_Windows_10_V3R2_STIG_SCAP_1-2_Benchmark
378
+ - name: version
379
+ in: path
380
+ required: true
381
+ description: Major version number of the document
382
+ schema:
383
+ type: string
384
+ pattern: "^\\d+$"
385
+ example: '3'
386
+ - name: release
387
+ in: path
388
+ required: true
389
+ description: Release number within the version
390
+ schema:
391
+ type: string
392
+ pattern: "^\\d+(\\.\\d+)?$"
393
+ example: '2'
394
+ - name: vuln
395
+ in: path
396
+ required: true
397
+ description: Vulnerability/Requirement ID (V-XXXXXX format)
398
+ schema:
399
+ type: string
400
+ pattern: "^V-\\d{6}$"
401
+ example: V-220697
402
+ responses:
403
+ '200':
404
+ description: Complete SCAP requirement details
405
+ content:
406
+ application/json:
407
+ schema:
408
+ "$ref": "#/components/schemas/RequirementDetail"
409
+ '500':
410
+ description: Server error (usually invalid parameter format)
411
+ content:
412
+ application/json:
413
+ schema:
414
+ "$ref": "#/components/schemas/Error"
415
+ "/cci":
416
+ get:
417
+ operationId: listCcis
418
+ summary: List all Control Correlation Identifiers
419
+ description: Returns complete list of CCIs with their definitions
420
+ tags:
421
+ - CCI
422
+ responses:
423
+ '200':
424
+ description: Complete list of CCIs with definitions
425
+ content:
426
+ application/json:
427
+ schema:
428
+ "$ref": "#/components/schemas/CciList"
429
+ "/cci/{item}":
430
+ get:
431
+ operationId: getCciDetails
432
+ summary: Get CCI details with RMF mapping
433
+ description: Returns complete CCI details including RMF control mapping
434
+ tags:
435
+ - CCI
436
+ parameters:
437
+ - name: item
438
+ in: path
439
+ required: true
440
+ description: Control Correlation Identifier (CCI-XXXXXX format)
441
+ schema:
442
+ type: string
443
+ pattern: "^CCI-\\d{6}$"
444
+ example: CCI-000001
445
+ responses:
446
+ '200':
447
+ description: Complete CCI details with RMF control mapping
448
+ content:
449
+ application/json:
450
+ schema:
451
+ "$ref": "#/components/schemas/CciDetail"
452
+ links:
453
+ GetRmfControlV4:
454
+ operationId: getRmfControlV4
455
+ description: Get the mapped RMF revision 4 control
456
+ parameters:
457
+ control: "$response.body#/assessment_procedures/0/control_identifier"
458
+ GetRmfControlV5:
459
+ operationId: getRmfControlV5
460
+ description: Get the mapped RMF revision 5 control (if revision 5)
461
+ parameters:
462
+ control: "$response.body#/assessment_procedures/0/control_identifier"
463
+ '500':
464
+ description: Server error (usually invalid CCI format)
465
+ content:
466
+ application/json:
467
+ schema:
468
+ "$ref": "#/components/schemas/Error"
469
+ security: []
470
+ components:
471
+ securitySchemes: {}
472
+ schemas:
473
+ ApiDocumentation:
474
+ type: object
475
+ description: Self-documenting API schema from root endpoint
476
+ required:
477
+ - server_api_root
478
+ properties:
479
+ server_api_root:
480
+ type: string
481
+ format: uri
482
+ example: https://cyber.trackr.live/api
483
+ additionalProperties:
484
+ type: string
485
+ description: Endpoint path templates (e.g., '/stig/{title}/{version}/{release}')
486
+ DocumentList:
487
+ type: object
488
+ description: List of documents grouped by name with version information
489
+ additionalProperties:
490
+ type: array
491
+ items:
492
+ "$ref": "#/components/schemas/DocumentVersion"
493
+ DocumentVersion:
494
+ type: object
495
+ description: Version information for a specific document release
496
+ required:
497
+ - version
498
+ - release
499
+ - link
500
+ properties:
501
+ date:
502
+ type: string
503
+ description: File creation/build date in YYYY-MM-DD format (may be empty)
504
+ pattern: "^(\\d{4}-\\d{2}-\\d{2}|)$"
505
+ example: '2024-12-19'
506
+ released:
507
+ type: string
508
+ description: Publication/release date in human-readable format (with leading
509
+ space)
510
+ pattern: "^ \\d{1,2} \\w+ \\d{4}$"
511
+ example: " 30 Jan 2025"
512
+ version:
513
+ type: string
514
+ pattern: "^[Vv]?\\d+$"
515
+ example: '3'
516
+ release:
517
+ type: string
518
+ pattern: "^\\d+(\\.\\d+)?$"
519
+ example: '3'
520
+ link:
521
+ type: string
522
+ pattern: "^/(stig|scap)/.+$"
523
+ example: "/stig/Juniper_SRX_Services_Gateway_ALG/3/3"
524
+ DocumentDetail:
525
+ type: object
526
+ description: Complete document details with all requirements
527
+ required:
528
+ - id
529
+ - title
530
+ - description
531
+ - status
532
+ - published
533
+ - requirements
534
+ properties:
535
+ id:
536
+ type: string
537
+ minLength: 1
538
+ example: Juniper_SRX_SG_ALG_STIG
539
+ title:
540
+ type: string
541
+ minLength: 1
542
+ example: Juniper SRX Services Gateway ALG Security Technical Implementation
543
+ Guide
544
+ description:
545
+ type: string
546
+ minLength: 1
547
+ status:
548
+ type: string
549
+ enum:
550
+ - accepted
551
+ - draft
552
+ - deprecated
553
+ example: accepted
554
+ published:
555
+ type: string
556
+ description: Document publication date in YYYY-MM-DD format
557
+ pattern: "^\\d{4}-\\d{2}-\\d{2}$"
558
+ example: '2024-12-19'
559
+ requirements:
560
+ type: object
561
+ description: Requirements mapped by V-ID (e.g., V-214518 as key)
562
+ additionalProperties:
563
+ "$ref": "#/components/schemas/RequirementSummary"
564
+ RequirementSummary:
565
+ type: object
566
+ description: Summary information for a requirement within a document
567
+ required:
568
+ - title
569
+ - rule
570
+ - severity
571
+ - link
572
+ properties:
573
+ title:
574
+ type: string
575
+ minLength: 1
576
+ rule:
577
+ type: string
578
+ pattern: "^SV-\\d+r\\d+_rule$"
579
+ example: SV-214518r997541_rule
580
+ severity:
581
+ type: string
582
+ enum:
583
+ - high
584
+ - medium
585
+ - low
586
+ link:
587
+ type: string
588
+ RequirementDetail:
589
+ type: object
590
+ description: Complete requirement details with implementation guidance
591
+ required:
592
+ - id
593
+ - rule
594
+ - severity
595
+ - requirement-title
596
+ - check-text
597
+ - fix-text
598
+ properties:
599
+ id:
600
+ type: string
601
+ pattern: "^V-\\d{6}$"
602
+ example: V-214518
603
+ rule:
604
+ type: string
605
+ pattern: "^SV-\\d+r\\d+_rule$"
606
+ example: SV-214518r997541_rule
607
+ severity:
608
+ type: string
609
+ enum:
610
+ - high
611
+ - medium
612
+ - low
613
+ requirement-title:
614
+ type: string
615
+ minLength: 1
616
+ requirement-description:
617
+ type: string
618
+ minLength: 1
619
+ mitigation-statement:
620
+ anyOf:
621
+ - type: string
622
+ - type: 'null'
623
+ identifiers:
624
+ type: array
625
+ items:
626
+ type: string
627
+ example:
628
+ - V-66003
629
+ - SV-80493
630
+ - CCI-000213
631
+ check-text:
632
+ type: string
633
+ minLength: 1
634
+ fix-text:
635
+ type: string
636
+ minLength: 1
637
+ check-id:
638
+ type: string
639
+ description: Check procedure identifier
640
+ fix-id:
641
+ type: string
642
+ description: Fix procedure identifier
643
+ group:
644
+ type: string
645
+ description: Requirement group identifier
646
+ version:
647
+ type: string
648
+ description: Requirement version
649
+ stig:
650
+ type: string
651
+ description: Parent STIG identifier
652
+ stig-title:
653
+ type: string
654
+ description: Parent STIG title
655
+ stig-description:
656
+ type: string
657
+ description: Parent STIG description
658
+ stig-published:
659
+ type: string
660
+ description: Parent STIG publication date
661
+ stig-status:
662
+ type: string
663
+ description: Parent STIG status
664
+ RmfControlDetail:
665
+ type: object
666
+ description: Complete RMF control details with CCI mappings
667
+ required:
668
+ - number
669
+ - title
670
+ - family
671
+ - baseline
672
+ - statements
673
+ - assessment_procedures
674
+ properties:
675
+ number:
676
+ type: string
677
+ pattern: "^[A-Z]+-\\d+$"
678
+ example: AC-1
679
+ title:
680
+ type: string
681
+ minLength: 1
682
+ example: POLICY AND PROCEDURES
683
+ family:
684
+ type: string
685
+ minLength: 1
686
+ example: ACCESS CONTROL
687
+ baseline:
688
+ type: array
689
+ items:
690
+ type: string
691
+ enum:
692
+ - LOW
693
+ - MODERATE
694
+ - HIGH
695
+ - PRIVACY
696
+ minItems: 1
697
+ example:
698
+ - LOW
699
+ - MODERATE
700
+ - HIGH
701
+ - PRIVACY
702
+ statements:
703
+ type: string
704
+ minLength: 1
705
+ assessment_procedures:
706
+ type: array
707
+ items:
708
+ "$ref": "#/components/schemas/AssessmentProcedure"
709
+ minItems: 1
710
+ AssessmentProcedure:
711
+ type: object
712
+ description: Assessment procedure linking RMF control sub-parts to CCIs
713
+ required:
714
+ - assessment_procedures
715
+ - cci
716
+ - description
717
+ properties:
718
+ assessment_procedures:
719
+ type: string
720
+ pattern: "^[A-Z]+-\\d+\\.\\d+$"
721
+ example: AC-1.3
722
+ cci:
723
+ type: string
724
+ pattern: "^CCI-\\d{6}$"
725
+ example: CCI-000001
726
+ description:
727
+ type: string
728
+ minLength: 1
729
+ CciList:
730
+ type: object
731
+ description: Complete list of Control Correlation Identifiers with definitions
732
+ additionalProperties:
733
+ type: string
734
+ minLength: 1
735
+ CciDetail:
736
+ type: object
737
+ description: Complete CCI details with RMF control mapping
738
+ required:
739
+ - cci
740
+ - cci_definition
741
+ - rmf
742
+ - family
743
+ - name
744
+ properties:
745
+ cci:
746
+ type: string
747
+ pattern: "^CCI-\\d{6}$"
748
+ example: CCI-000001
749
+ cci_definition:
750
+ type: string
751
+ minLength: 1
752
+ rmf:
753
+ type: string
754
+ pattern: "^[A-Z]+-\\d+$"
755
+ example: AC-1
756
+ family:
757
+ type: string
758
+ minLength: 1
759
+ example: Access Control
760
+ name:
761
+ type: string
762
+ minLength: 1
763
+ example: Access Control Policy And Procedures
764
+ RmfControlList:
765
+ type: object
766
+ description: List of RMF controls with titles
767
+ required:
768
+ - controls
769
+ properties:
770
+ controls:
771
+ type: object
772
+ description: RMF controls mapped to titles
773
+ additionalProperties:
774
+ type: string
775
+ minLength: 1
776
+ Error:
777
+ type: object
778
+ description: Error response format
779
+ required:
780
+ - status
781
+ - title
782
+ properties:
783
+ type:
784
+ type: string
785
+ format: uri
786
+ description: Error type reference
787
+ title:
788
+ type: string
789
+ description: Error title
790
+ minLength: 1
791
+ status:
792
+ type: integer
793
+ description: HTTP status code
794
+ minimum: 400
795
+ maximum: 599
796
+ detail:
797
+ type: string
798
+ description: Error details