@mitre/hdf-schema 3.2.0 → 3.3.1

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 (37) hide show
  1. package/README.md +15 -16
  2. package/dist/go/hdf.go +398 -134
  3. package/dist/helpers.d.ts +1 -1
  4. package/dist/index.d.ts +27 -52
  5. package/dist/index.js +30 -48
  6. package/dist/schemas/hdf-amendments.schema.json +466 -45
  7. package/dist/schemas/hdf-baseline.schema.json +471 -50
  8. package/dist/schemas/hdf-comparison.schema.json +721 -103
  9. package/dist/schemas/hdf-evidence-package.schema.json +465 -44
  10. package/dist/schemas/hdf-plan.schema.json +472 -50
  11. package/dist/schemas/hdf-results.schema.json +678 -80
  12. package/dist/schemas/hdf-system.schema.json +497 -59
  13. package/dist/ts/hdf.d.ts +3562 -0
  14. package/dist/ts/hdf.js +564 -0
  15. package/dist/ts/hdf.ts +3623 -0
  16. package/package.json +18 -17
  17. package/dist/ts/hdf-amendments.d.ts +0 -474
  18. package/dist/ts/hdf-amendments.js +0 -88
  19. package/dist/ts/hdf-amendments.ts +0 -486
  20. package/dist/ts/hdf-baseline.d.ts +0 -549
  21. package/dist/ts/hdf-baseline.js +0 -110
  22. package/dist/ts/hdf-baseline.ts +0 -563
  23. package/dist/ts/hdf-comparison.d.ts +0 -1185
  24. package/dist/ts/hdf-comparison.js +0 -216
  25. package/dist/ts/hdf-comparison.ts +0 -1210
  26. package/dist/ts/hdf-evidence-package.d.ts +0 -348
  27. package/dist/ts/hdf-evidence-package.js +0 -39
  28. package/dist/ts/hdf-evidence-package.ts +0 -356
  29. package/dist/ts/hdf-plan.d.ts +0 -204
  30. package/dist/ts/hdf-plan.js +0 -23
  31. package/dist/ts/hdf-plan.ts +0 -205
  32. package/dist/ts/hdf-results.d.ts +0 -1588
  33. package/dist/ts/hdf-results.js +0 -246
  34. package/dist/ts/hdf-results.ts +0 -1616
  35. package/dist/ts/hdf-system.d.ts +0 -609
  36. package/dist/ts/hdf-system.js +0 -102
  37. package/dist/ts/hdf-system.ts +0 -617
@@ -1,549 +0,0 @@
1
- /**
2
- * Information on the set of requirements that can be assessed, including baseline metadata
3
- * and requirement definitions.
4
- *
5
- * Shared metadata fields for baselines. Used in both standalone baseline documents and
6
- * evaluated baseline results.
7
- */
8
- export interface HdfBaseline {
9
- /**
10
- * The set of dependencies this baseline depends on.
11
- */
12
- depends?: Dependency[];
13
- /**
14
- * The tool that generated this file.
15
- */
16
- generator?: Generator;
17
- /**
18
- * A set of descriptions for the requirement groups.
19
- */
20
- groups?: RequirementGroup[];
21
- /**
22
- * The input(s) or attribute(s) to be used in the run.
23
- */
24
- inputs?: Input[];
25
- /**
26
- * Cryptographic integrity information for verifying this baseline has not been tampered
27
- * with.
28
- */
29
- integrity?: Integrity;
30
- /**
31
- * Optional reference to automated remediation resources (Ansible playbooks, Terraform
32
- * scripts, etc.) for implementing the security controls defined in this baseline.
33
- */
34
- remediation?: Remediation;
35
- /**
36
- * The set of requirements - contains no findings as the assessment has not yet occurred.
37
- */
38
- requirements: BaselineRequirement[];
39
- /**
40
- * The name - must be unique.
41
- */
42
- name: string;
43
- /**
44
- * The copyright holder(s).
45
- */
46
- copyright?: string;
47
- /**
48
- * The email address or other contact information of the copyright holder(s).
49
- */
50
- copyrightEmail?: string;
51
- /**
52
- * Optional key-value labels for flexible grouping. Well-known keys: system, component,
53
- * environment, region, team. Values must be strings.
54
- */
55
- labels?: {
56
- [key: string]: string;
57
- };
58
- /**
59
- * The copyright license. Example: 'Apache-2.0'.
60
- */
61
- license?: string;
62
- /**
63
- * The maintainer(s).
64
- */
65
- maintainer?: string;
66
- /**
67
- * The status. Example: 'loaded'.
68
- */
69
- status?: string;
70
- /**
71
- * The summary. Example: the Security Technical Implementation Guide (STIG) header.
72
- */
73
- summary?: string;
74
- /**
75
- * The set of supported platform targets.
76
- */
77
- supports?: SupportedPlatform[];
78
- /**
79
- * The title - should be human readable.
80
- */
81
- title?: string;
82
- /**
83
- * The version of the baseline.
84
- */
85
- version?: string;
86
- [property: string]: any;
87
- }
88
- /**
89
- * A dependency for a baseline. Can include relative paths or URLs for where to find the
90
- * dependency.
91
- */
92
- export interface Dependency {
93
- /**
94
- * The branch name for a git repo.
95
- */
96
- branch?: string;
97
- /**
98
- * The 'user/profilename' attribute for an Automate server.
99
- */
100
- compliance?: string;
101
- /**
102
- * The location of the git repo. Example:
103
- * 'https://github.com/my-org/ubuntu-22.04-stig-baseline.git'.
104
- */
105
- git?: string;
106
- /**
107
- * The name or assigned alias.
108
- */
109
- name?: string;
110
- /**
111
- * The relative path if the dependency is locally available.
112
- */
113
- path?: string;
114
- /**
115
- * The status. Should be: 'loaded', 'failed', or 'skipped'.
116
- */
117
- status?: string;
118
- /**
119
- * The reason for the status if it is 'failed' or 'skipped'.
120
- */
121
- statusMessage?: string;
122
- /**
123
- * The 'user/profilename' attribute for a Supermarket server.
124
- */
125
- supermarket?: string;
126
- /**
127
- * The address of the dependency.
128
- */
129
- url?: string;
130
- [property: string]: any;
131
- }
132
- /**
133
- * The tool that generated this file.
134
- *
135
- * Information about the tool that generated this HDF file.
136
- */
137
- export interface Generator {
138
- /**
139
- * The name of the software that produced this HDF file. Example: 'gosec-to-hdf'.
140
- */
141
- name: string;
142
- /**
143
- * The version of the tool. Example: '5.22.3'.
144
- */
145
- version: string;
146
- [property: string]: any;
147
- }
148
- /**
149
- * Describes a group of requirements, such as those defined in a single file.
150
- */
151
- export interface RequirementGroup {
152
- /**
153
- * The unique identifier for the group. Example: the relative path to the file specifying
154
- * the requirements.
155
- */
156
- id: string;
157
- /**
158
- * The set of requirements as specified by their ids in this group. Example: 'SV-238196'.
159
- */
160
- requirements: string[];
161
- /**
162
- * The title of the group - should be human readable.
163
- */
164
- title?: string;
165
- [property: string]: any;
166
- }
167
- /**
168
- * A typed input parameter that bridges governance requirements and scanner automation.
169
- * Inputs carry expected configuration values with type information, comparison operators,
170
- * and validation constraints, enabling traceability from policy through to scan results.
171
- */
172
- export interface Input {
173
- /**
174
- * Validation constraints for the input value.
175
- */
176
- constraints?: InputConstraints;
177
- /**
178
- * Human-readable description of what this input controls.
179
- */
180
- description?: string;
181
- /**
182
- * The input name. Must be unique within a baseline or results document. Example:
183
- * 'max_concurrent_sessions'.
184
- */
185
- name: string;
186
- /**
187
- * The comparison operator used when evaluating this input against observed values.
188
- */
189
- operator?: ComparisonOperator;
190
- /**
191
- * Whether this input must be provided. Defaults to false if omitted.
192
- */
193
- required?: boolean;
194
- /**
195
- * Whether this input contains sensitive data (passwords, keys). Sensitive values should be
196
- * redacted in output. Defaults to false if omitted.
197
- */
198
- sensitive?: boolean;
199
- /**
200
- * The data type of this input.
201
- */
202
- type?: InputType;
203
- /**
204
- * The input value. Type should match the declared type field. Accepts any JSON value.
205
- */
206
- value?: any;
207
- [property: string]: any;
208
- }
209
- /**
210
- * Validation constraints for the input value.
211
- *
212
- * Validation constraints for an input value.
213
- */
214
- export interface InputConstraints {
215
- /**
216
- * Enumeration of permitted values.
217
- */
218
- allowedValues?: any[];
219
- /**
220
- * Maximum allowed value (for Numeric inputs).
221
- */
222
- max?: number;
223
- /**
224
- * Minimum allowed value (for Numeric inputs).
225
- */
226
- min?: number;
227
- /**
228
- * Regular expression pattern the value must match (for String inputs).
229
- */
230
- pattern?: string;
231
- [property: string]: any;
232
- }
233
- /**
234
- * The comparison operator used when evaluating this input against observed values.
235
- *
236
- * Comparison operator for evaluating the input value against observed values. Numeric:
237
- * eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
238
- */
239
- export declare enum ComparisonOperator {
240
- Contains = "contains",
241
- Eq = "eq",
242
- Ge = "ge",
243
- Gt = "gt",
244
- In = "in",
245
- LE = "le",
246
- Lt = "lt",
247
- Matches = "matches",
248
- Ne = "ne",
249
- NotIn = "notIn"
250
- }
251
- /**
252
- * The data type of this input.
253
- *
254
- * The data type of the input value. Aligns with InSpec input types.
255
- */
256
- export declare enum InputType {
257
- Array = "Array",
258
- Boolean = "Boolean",
259
- Hash = "Hash",
260
- Numeric = "Numeric",
261
- Regexp = "Regexp",
262
- String = "String"
263
- }
264
- /**
265
- * Cryptographic integrity information for verifying this baseline has not been tampered
266
- * with.
267
- *
268
- * Cryptographic integrity information for verifying the HDF file has not been tampered
269
- * with. If algorithm is provided, checksum must also be provided, and vice versa.
270
- */
271
- export interface Integrity {
272
- /**
273
- * The hash algorithm used for the checksum.
274
- */
275
- algorithm?: HashAlgorithm;
276
- /**
277
- * The checksum value.
278
- */
279
- checksum?: string;
280
- /**
281
- * Optional cryptographic signature.
282
- */
283
- signature?: string;
284
- /**
285
- * Identifier of who signed this file.
286
- */
287
- signedBy?: string;
288
- [property: string]: any;
289
- }
290
- /**
291
- * The hash algorithm used for the checksum.
292
- *
293
- * Supported cryptographic hash algorithms for checksums and integrity verification.
294
- */
295
- export declare enum HashAlgorithm {
296
- Sha256 = "sha256",
297
- Sha384 = "sha384",
298
- Sha512 = "sha512"
299
- }
300
- /**
301
- * Optional reference to automated remediation resources (Ansible playbooks, Terraform
302
- * scripts, etc.) for implementing the security controls defined in this baseline.
303
- *
304
- * Reference to automated remediation resources for implementing security controls. Points
305
- * to external automation content like Ansible playbooks, Terraform scripts, or
306
- * vendor-provided remediation tools.
307
- */
308
- export interface Remediation {
309
- /**
310
- * Optional cryptographic checksum for verifying the integrity of remediation resources
311
- * fetched from the URI. Recommended for security when referencing external automation
312
- * scripts.
313
- */
314
- checksum?: Checksum;
315
- /**
316
- * URI pointing to automated remediation resources (Ansible playbooks, Terraform scripts,
317
- * etc.). Examples: GitHub repository, DISA STIG Supplemental Automation Content,
318
- * vendor-provided scripts.
319
- */
320
- uri: string;
321
- [property: string]: any;
322
- }
323
- /**
324
- * Optional cryptographic checksum for verifying the integrity of remediation resources
325
- * fetched from the URI. Recommended for security when referencing external automation
326
- * scripts.
327
- *
328
- * Cryptographic checksum for baseline integrity verification.
329
- */
330
- export interface Checksum {
331
- /**
332
- * The hash algorithm used for the checksum.
333
- */
334
- algorithm: HashAlgorithm;
335
- /**
336
- * The checksum value.
337
- */
338
- value: string;
339
- [property: string]: any;
340
- }
341
- /**
342
- * A requirement definition without assessment results.
343
- *
344
- * Core requirement fields shared between baseline requirements and evaluated requirements.
345
- * Contains the fundamental requirement definition without assessment results.
346
- */
347
- export interface BaselineRequirement {
348
- /**
349
- * Array of labeled descriptions. At least one description with label 'default' must be
350
- * present. Convention: place default description first. Common labels: 'default', 'check',
351
- * 'fix', 'rationale'.
352
- */
353
- descriptions: Description[];
354
- /**
355
- * Explicit severity rating. Typically derived from impact score but provided explicitly for
356
- * clarity.
357
- */
358
- severity?: Severity;
359
- /**
360
- * The requirement identifier. Example: 'SV-238196'.
361
- */
362
- id: string;
363
- /**
364
- * The impactfulness or severity (0.0 to 1.0).
365
- */
366
- impact: number;
367
- /**
368
- * A set of tags - usually metadata like CCI, STIG ID, severity.
369
- */
370
- tags: {
371
- [key: string]: any;
372
- };
373
- /**
374
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
375
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
376
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
377
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
378
- * Optional: when omitted, consumers should treat the requirement as 'required' by
379
- * convention.
380
- */
381
- applicability?: Applicability;
382
- /**
383
- * The raw source code of the requirement. Set to null for manual-only requirements or
384
- * requirements not yet implemented; use verificationMethod to disambiguate manual-by-design
385
- * from manual-pending-automation. Note that if this is an overlay, it does not include the
386
- * underlying source code.
387
- */
388
- code?: string;
389
- /**
390
- * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
391
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
392
- * process; 'technical' = an enforced technical configuration; 'management' = a
393
- * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
394
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
395
- * family/id but should not assume a default.
396
- */
397
- controlType?: ControlType;
398
- /**
399
- * The set of references to external documents.
400
- */
401
- refs?: Reference[];
402
- /**
403
- * The explicit location of the requirement within the source code.
404
- */
405
- sourceLocation?: SourceLocation;
406
- /**
407
- * The title - is nullable.
408
- */
409
- title?: string;
410
- /**
411
- * How this requirement is intended to be verified. Disambiguates the two cases that null
412
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
413
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
414
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
415
- * runs without operator action; 'hybrid' = part automated, part manual. Optional: when
416
- * omitted, consumers should not infer a default.
417
- */
418
- verificationMethod?: VerificationMethodEnum;
419
- [property: string]: any;
420
- }
421
- /**
422
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
423
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
424
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
425
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
426
- * Optional: when omitted, consumers should treat the requirement as 'required' by
427
- * convention.
428
- */
429
- export declare enum Applicability {
430
- Advisory = "advisory",
431
- Optional = "optional",
432
- Required = "required"
433
- }
434
- /**
435
- * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
436
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
437
- * process; 'technical' = an enforced technical configuration; 'management' = a
438
- * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
439
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
440
- * family/id but should not assume a default.
441
- */
442
- export declare enum ControlType {
443
- Management = "management",
444
- Operational = "operational",
445
- Policy = "policy",
446
- Procedure = "procedure",
447
- Technical = "technical"
448
- }
449
- export interface Description {
450
- /**
451
- * The description text content.
452
- */
453
- data: string;
454
- /**
455
- * Description category. The 'default' label is required for the primary description. Common
456
- * labels: 'default', 'check', 'fix', 'rationale'. Tools may use custom labels.
457
- */
458
- label: string;
459
- [property: string]: any;
460
- }
461
- /**
462
- * A reference to an external document.
463
- *
464
- * A reference using the 'ref' field.
465
- *
466
- * A URL pointing at the reference.
467
- *
468
- * A URI pointing at the reference.
469
- */
470
- export interface Reference {
471
- ref?: {
472
- [key: string]: any;
473
- }[] | string;
474
- url?: string;
475
- uri?: string;
476
- [property: string]: any;
477
- }
478
- /**
479
- * Explicit severity rating. Typically derived from impact score but provided explicitly for
480
- * clarity.
481
- *
482
- * Severity rating for a requirement. Typically derived from the numeric impact score.
483
- */
484
- export declare enum Severity {
485
- Critical = "critical",
486
- High = "high",
487
- Informational = "informational",
488
- Low = "low",
489
- Medium = "medium"
490
- }
491
- /**
492
- * The explicit location of the requirement within the source code.
493
- *
494
- * The explicit location of a requirement within source code.
495
- */
496
- export interface SourceLocation {
497
- /**
498
- * The line on which this requirement is located.
499
- */
500
- line?: number;
501
- /**
502
- * Path to the file that this requirement originates from.
503
- */
504
- ref?: string;
505
- [property: string]: any;
506
- }
507
- /**
508
- * How this requirement is intended to be verified. Disambiguates the two cases that null
509
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
510
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
511
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
512
- * runs without operator action; 'hybrid' = part automated, part manual. Optional: when
513
- * omitted, consumers should not infer a default.
514
- *
515
- * How a requirement is intended to be verified. Disambiguates the two cases that null
516
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
517
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
518
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
519
- * runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
520
- * disambiguate from the unrelated Verification_Method DID-context struct.
521
- */
522
- export declare enum VerificationMethodEnum {
523
- Automated = "automated",
524
- Hybrid = "hybrid",
525
- ManualByDesign = "manual-by-design",
526
- ManualPendingAutomation = "manual-pending-automation"
527
- }
528
- /**
529
- * A supported platform target. Example: the platform name being 'ubuntu'.
530
- */
531
- export interface SupportedPlatform {
532
- /**
533
- * The location of the platform. Can be: 'os', 'aws', 'azure', or 'gcp'.
534
- */
535
- platform?: string;
536
- /**
537
- * The platform family. Example: 'redhat'.
538
- */
539
- platformFamily?: string;
540
- /**
541
- * The platform name - can include wildcards. Example: 'debian'.
542
- */
543
- platformName?: string;
544
- /**
545
- * The release of the platform. Example: '20.04' for 'ubuntu'.
546
- */
547
- release?: string;
548
- [property: string]: any;
549
- }
@@ -1,110 +0,0 @@
1
- /**
2
- * The comparison operator used when evaluating this input against observed values.
3
- *
4
- * Comparison operator for evaluating the input value against observed values. Numeric:
5
- * eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
6
- */
7
- export var ComparisonOperator;
8
- (function (ComparisonOperator) {
9
- ComparisonOperator["Contains"] = "contains";
10
- ComparisonOperator["Eq"] = "eq";
11
- ComparisonOperator["Ge"] = "ge";
12
- ComparisonOperator["Gt"] = "gt";
13
- ComparisonOperator["In"] = "in";
14
- ComparisonOperator["LE"] = "le";
15
- ComparisonOperator["Lt"] = "lt";
16
- ComparisonOperator["Matches"] = "matches";
17
- ComparisonOperator["Ne"] = "ne";
18
- ComparisonOperator["NotIn"] = "notIn";
19
- })(ComparisonOperator || (ComparisonOperator = {}));
20
- /**
21
- * The data type of this input.
22
- *
23
- * The data type of the input value. Aligns with InSpec input types.
24
- */
25
- export var InputType;
26
- (function (InputType) {
27
- InputType["Array"] = "Array";
28
- InputType["Boolean"] = "Boolean";
29
- InputType["Hash"] = "Hash";
30
- InputType["Numeric"] = "Numeric";
31
- InputType["Regexp"] = "Regexp";
32
- InputType["String"] = "String";
33
- })(InputType || (InputType = {}));
34
- /**
35
- * The hash algorithm used for the checksum.
36
- *
37
- * Supported cryptographic hash algorithms for checksums and integrity verification.
38
- */
39
- export var HashAlgorithm;
40
- (function (HashAlgorithm) {
41
- HashAlgorithm["Sha256"] = "sha256";
42
- HashAlgorithm["Sha384"] = "sha384";
43
- HashAlgorithm["Sha512"] = "sha512";
44
- })(HashAlgorithm || (HashAlgorithm = {}));
45
- /**
46
- * Whether the requirement is mandatory within its baseline. Distinct from severity (risk
47
- * weight) and status (lifecycle state). Maps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop,
48
- * FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group
49
- * memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).
50
- * Optional: when omitted, consumers should treat the requirement as 'required' by
51
- * convention.
52
- */
53
- export var Applicability;
54
- (function (Applicability) {
55
- Applicability["Advisory"] = "advisory";
56
- Applicability["Optional"] = "optional";
57
- Applicability["Required"] = "required";
58
- })(Applicability || (Applicability = {}));
59
- /**
60
- * Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A
61
- * categories. 'policy' = an authored governance statement; 'procedure' = a documented
62
- * process; 'technical' = an enforced technical configuration; 'management' = a
63
- * programmatic/management activity; 'operational' = a recurring operational activity (e.g.
64
- * AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from
65
- * family/id but should not assume a default.
66
- */
67
- export var ControlType;
68
- (function (ControlType) {
69
- ControlType["Management"] = "management";
70
- ControlType["Operational"] = "operational";
71
- ControlType["Policy"] = "policy";
72
- ControlType["Procedure"] = "procedure";
73
- ControlType["Technical"] = "technical";
74
- })(ControlType || (ControlType = {}));
75
- /**
76
- * Explicit severity rating. Typically derived from impact score but provided explicitly for
77
- * clarity.
78
- *
79
- * Severity rating for a requirement. Typically derived from the numeric impact score.
80
- */
81
- export var Severity;
82
- (function (Severity) {
83
- Severity["Critical"] = "critical";
84
- Severity["High"] = "high";
85
- Severity["Informational"] = "informational";
86
- Severity["Low"] = "low";
87
- Severity["Medium"] = "medium";
88
- })(Severity || (Severity = {}));
89
- /**
90
- * How this requirement is intended to be verified. Disambiguates the two cases that null
91
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
92
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
93
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
94
- * runs without operator action; 'hybrid' = part automated, part manual. Optional: when
95
- * omitted, consumers should not infer a default.
96
- *
97
- * How a requirement is intended to be verified. Disambiguates the two cases that null
98
- * 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
99
- * to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
100
- * exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
101
- * runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
102
- * disambiguate from the unrelated Verification_Method DID-context struct.
103
- */
104
- export var VerificationMethodEnum;
105
- (function (VerificationMethodEnum) {
106
- VerificationMethodEnum["Automated"] = "automated";
107
- VerificationMethodEnum["Hybrid"] = "hybrid";
108
- VerificationMethodEnum["ManualByDesign"] = "manual-by-design";
109
- VerificationMethodEnum["ManualPendingAutomation"] = "manual-pending-automation";
110
- })(VerificationMethodEnum || (VerificationMethodEnum = {}));