Skip to content

trestle.oscal.ssp

trestle.oscal.ssp ¤

Attributes¤

Classes¤

AdjustmentJustification ¤

Bases: OscalBaseModel

Source code in trestle/oscal/ssp.py
40
41
42
43
44
45
46
class AdjustmentJustification(OscalBaseModel):
    __root__: str = Field(
        ...,
        description=
        'If the selected security level is different from the base security level, this contains the justification for the change.',
        title='Adjustment Justification'
    )
Attributes¤
__root__ = Field(..., description='If the selected security level is different from the base security level, this contains the justification for the change.', title='Adjustment Justification') class-attribute instance-attribute ¤

AuthorizationBoundary ¤

Bases: OscalBaseModel

A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.

Source code in trestle/oscal/ssp.py
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
class AuthorizationBoundary(OscalBaseModel):
    """
    A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.
    """

    class Config:
        extra = Extra.forbid

    description: str = Field(
        ...,
        description="A summary of the system's authorization boundary.",
        title='Authorization Boundary Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    diagrams: Optional[List[Diagram]] = Field(None)
    remarks: Optional[str] = None
Attributes¤
description = Field(..., description="A summary of the system's authorization boundary.", title='Authorization Boundary Description') class-attribute instance-attribute ¤
diagrams = Field(None) class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
426
427
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Base ¤

Bases: OscalBaseModel

Source code in trestle/oscal/ssp.py
413
414
415
416
417
418
class Base(OscalBaseModel):
    __root__: constr(regex=r'^\S(.*\S)?$') = Field(
        ...,
        description='The prescribed base (Confidentiality, Integrity, or Availability) security impact level.',
        title='Base Level (Confidentiality, Integrity, or Availability)'
    )
Attributes¤
__root__ = Field(..., description='The prescribed base (Confidentiality, Integrity, or Availability) security impact level.', title='Base Level (Confidentiality, Integrity, or Availability)') class-attribute instance-attribute ¤

ByComponent ¤

Bases: OscalBaseModel

Defines how the referenced component implements a set of controls.

Source code in trestle/oscal/ssp.py
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
class ByComponent(OscalBaseModel):
    """
    Defines how the referenced component implements a set of controls.
    """

    class Config:
        extra = Extra.forbid

    component_uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        alias='component-uuid',
        description='A machine-oriented identifier reference to the component that is implemeting a given control.',
        title='Component Universally Unique Identifier Reference'
    )
    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this by-component entry elsewhere in this or other OSCAL instances. The locally defined UUID of the by-component entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='By-Component Universally Unique Identifier',
    )
    description: str = Field(
        ...,
        description=
        'An implementation statement that describes how a control or a control statement is implemented within the referenced system component.',
        title='Control Implementation Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    set_parameters: Optional[List[SetParameter]] = Field(None, alias='set-parameters')
    implementation_status: Optional[common.ImplementationStatus] = Field(None, alias='implementation-status')
    export: Optional[Export] = Field(
        None,
        description='Identifies content intended for external consumption, such as with leveraged organizations.',
        title='Export'
    )
    inherited: Optional[List[Inherited]] = Field(None)
    satisfied: Optional[List[Satisfied]] = Field(None)
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
    remarks: Optional[str] = None
Attributes¤
component_uuid = Field(..., alias='component-uuid', description='A machine-oriented identifier reference to the component that is implemeting a given control.', title='Component Universally Unique Identifier Reference') class-attribute instance-attribute ¤
description = Field(..., description='An implementation statement that describes how a control or a control statement is implemented within the referenced system component.', title='Control Implementation Description') class-attribute instance-attribute ¤
export = Field(None, description='Identifies content intended for external consumption, such as with leveraged organizations.', title='Export') class-attribute instance-attribute ¤
implementation_status = Field(None, alias='implementation-status') class-attribute instance-attribute ¤
inherited = Field(None) class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
satisfied = Field(None) class-attribute instance-attribute ¤
set_parameters = Field(None, alias='set-parameters') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this by-component entry elsewhere in this or other OSCAL instances. The locally defined UUID of the by-component entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='By-Component Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
373
374
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Categorization ¤

Bases: OscalBaseModel

A set of information type identifiers qualified by the given identification system used, such as NIST SP 800-60.

Source code in trestle/oscal/ssp.py
352
353
354
355
356
357
358
359
360
361
362
363
364
365
class Categorization(OscalBaseModel):
    """
    A set of information type identifiers qualified by the given identification system used, such as NIST SP 800-60.
    """

    class Config:
        extra = Extra.forbid

    system: Union[AnyUrl, System] = Field(
        ...,
        description='Specifies the information type identification system used.',
        title='Information Type Identification System'
    )
    information_type_ids: Optional[List[constr(regex=r'^\S(.*\S)?$')]] = Field(None, alias='information-type-ids')
Attributes¤
information_type_ids = Field(None, alias='information-type-ids') class-attribute instance-attribute ¤
system = Field(..., description='Specifies the information type identification system used.', title='Information Type Identification System') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
357
358
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

ControlImplementation ¤

Bases: OscalBaseModel

Describes how the system satisfies a set of controls.

Source code in trestle/oscal/ssp.py
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
class ControlImplementation(OscalBaseModel):
    """
    Describes how the system satisfies a set of controls.
    """

    class Config:
        extra = Extra.forbid

    description: str = Field(
        ...,
        description=
        'A statement describing important things to know about how this set of control satisfaction documentation is approached.',
        title='Control Implementation Description'
    )
    set_parameters: Optional[List[SetParameter]] = Field(None, alias='set-parameters')
    implemented_requirements: List[ImplementedRequirement] = Field(..., alias='implemented-requirements')
Attributes¤
description = Field(..., description='A statement describing important things to know about how this set of control satisfaction documentation is approached.', title='Control Implementation Description') class-attribute instance-attribute ¤
implemented_requirements = Field(..., alias='implemented-requirements') class-attribute instance-attribute ¤
set_parameters = Field(None, alias='set-parameters') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
524
525
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

DataFlow ¤

Bases: OscalBaseModel

A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.

Source code in trestle/oscal/ssp.py
337
338
339
340
341
342
343
344
345
346
347
348
349
class DataFlow(OscalBaseModel):
    """
    A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.
    """

    class Config:
        extra = Extra.forbid

    description: str = Field(..., description="A summary of the system's data flow.", title='Data Flow Description')
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    diagrams: Optional[List[Diagram]] = Field(None)
    remarks: Optional[str] = None
Attributes¤
description = Field(..., description="A summary of the system's data flow.", title='Data Flow Description') class-attribute instance-attribute ¤
diagrams = Field(None) class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
342
343
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

DateAuthorized ¤

Bases: OscalBaseModel

Source code in trestle/oscal/ssp.py
331
332
333
334
class DateAuthorized(OscalBaseModel):
    __root__: DateDatatype = Field(
        ..., description='The date the system received its authorization.', title='System Authorization Date'
    )
Attributes¤
__root__ = Field(..., description='The date the system received its authorization.', title='System Authorization Date') class-attribute instance-attribute ¤

DateDatatype ¤

Bases: OscalBaseModel

Source code in trestle/oscal/ssp.py
324
325
326
327
328
class DateDatatype(OscalBaseModel):
    __root__: constr(
        regex=
        r'^(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))(Z|(-((0[0-9]|1[0-2]):00|0[39]:30)|\+((0[0-9]|1[0-4]):00|(0[34569]|10):30|(0[58]|12):45)))?$'
    ) = Field(..., description='A string representing a 24-hour period with an optional timezone.')
Attributes¤
__root__ = Field(..., description='A string representing a 24-hour period with an optional timezone.') class-attribute instance-attribute ¤

Diagram ¤

Bases: OscalBaseModel

A graphic that provides a visual representation the system, or some aspect of it.

Source code in trestle/oscal/ssp.py
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
class Diagram(OscalBaseModel):
    """
    A graphic that provides a visual representation the system, or some aspect of it.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this diagram elsewhere in this or other OSCAL instances. The locally defined UUID of the diagram can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Diagram ID'
    )
    description: Optional[str] = Field(None, description='A summary of the diagram.', title='Diagram Description')
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    caption: Optional[str] = Field(None, description='A brief caption to annotate the diagram.', title='Caption')
    remarks: Optional[str] = None
Attributes¤
caption = Field(None, description='A brief caption to annotate the diagram.', title='Caption') class-attribute instance-attribute ¤
description = Field(None, description='A summary of the diagram.', title='Diagram Description') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this diagram elsewhere in this or other OSCAL instances. The locally defined UUID of the diagram can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Diagram ID') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
306
307
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Export ¤

Bases: OscalBaseModel

Identifies content intended for external consumption, such as with leveraged organizations.

Source code in trestle/oscal/ssp.py
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
class Export(OscalBaseModel):
    """
    Identifies content intended for external consumption, such as with leveraged organizations.
    """

    class Config:
        extra = Extra.forbid

    description: Optional[str] = Field(
        None,
        description=
        'An implementation statement that describes the aspects of the control or control statement implementation that can be available to another system leveraging this system.',
        title='Control Implementation Export Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    provided: Optional[List[Provided]] = Field(None)
    responsibilities: Optional[List[Responsibility]] = Field(None)
    remarks: Optional[str] = None
Attributes¤
description = Field(None, description='An implementation statement that describes the aspects of the control or control statement implementation that can be available to another system leveraging this system.', title='Control Implementation Export Description') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
provided = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsibilities = Field(None) class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
285
286
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Impact ¤

Bases: OscalBaseModel

The expected level of impact resulting from the described information.

Source code in trestle/oscal/ssp.py
606
607
608
609
610
611
612
613
614
615
616
617
618
class Impact(OscalBaseModel):
    """
    The expected level of impact resulting from the described information.
    """

    class Config:
        extra = Extra.forbid

    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    base: Base
    selected: Optional[Selected] = None
    adjustment_justification: Optional[AdjustmentJustification] = Field(None, alias='adjustment-justification')
Attributes¤
adjustment_justification = Field(None, alias='adjustment-justification') class-attribute instance-attribute ¤
base instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
selected = None class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
611
612
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

ImplementedRequirement ¤

Bases: OscalBaseModel

Describes how the system satisfies the requirements of an individual control.

Source code in trestle/oscal/ssp.py
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
class ImplementedRequirement(OscalBaseModel):
    """
    Describes how the system satisfies the requirements of an individual control.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control requirement elsewhere in this or other OSCAL instances. The locally defined UUID of the control requirement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Control Requirement Universally Unique Identifier',
    )
    control_id: constr(
        regex=
        r'^[_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-\.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$'
    ) = Field(
        ...,
        alias='control-id',
        description=
        'A reference to a control with a corresponding id value. When referencing an externally defined control, the Control Identifier Reference must be used in the context of the external / imported OSCAL instance (e.g., uri-reference).',
        title='Control Identifier Reference'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    set_parameters: Optional[List[SetParameter]] = Field(None, alias='set-parameters')
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
    statements: Optional[List[Statement]] = Field(None)
    by_components: Optional[List[ByComponent]] = Field(None, alias='by-components')
    remarks: Optional[str] = None
Attributes¤
by_components = Field(None, alias='by-components') class-attribute instance-attribute ¤
control_id = Field(..., alias='control-id', description='A reference to a control with a corresponding id value. When referencing an externally defined control, the Control Identifier Reference must be used in the context of the external / imported OSCAL instance (e.g., uri-reference).', title='Control Identifier Reference') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
set_parameters = Field(None, alias='set-parameters') class-attribute instance-attribute ¤
statements = Field(None) class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control requirement elsewhere in this or other OSCAL instances. The locally defined UUID of the control requirement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Control Requirement Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
489
490
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

ImportProfile ¤

Bases: OscalBaseModel

Used to import the OSCAL profile representing the system's control baseline.

Source code in trestle/oscal/ssp.py
264
265
266
267
268
269
270
271
272
273
274
275
276
277
class ImportProfile(OscalBaseModel):
    """
    Used to import the OSCAL profile representing the system's control baseline.
    """

    class Config:
        extra = Extra.forbid

    href: str = Field(
        ...,
        description="A resolvable URL reference to the profile or catalog to use as the system's control baseline.",
        title='Profile Reference'
    )
    remarks: Optional[str] = None
Attributes¤
href = Field(..., description="A resolvable URL reference to the profile or catalog to use as the system's control baseline.", title='Profile Reference') class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
269
270
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

InformationType ¤

Bases: OscalBaseModel

Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.

Source code in trestle/oscal/ssp.py
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
class InformationType(OscalBaseModel):
    """
    Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.
    """

    class Config:
        extra = Extra.forbid

    uuid: Optional[constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    )] = Field(
        None,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this information type elsewhere in this or other OSCAL instances. The locally defined UUID of the information type can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Information Type Universally Unique Identifier',
    )
    title: str = Field(
        ...,
        description=
        'A human readable name for the information type. This title should be meaningful within the context of the system.',
        title='title field'
    )
    description: str = Field(
        ...,
        description='A summary of how this information type is used within the system.',
        title='Information Type Description'
    )
    categorizations: Optional[List[Categorization]] = Field(None)
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    confidentiality_impact: Optional[Impact] = Field(None, alias='confidentiality-impact')
    integrity_impact: Optional[Impact] = Field(None, alias='integrity-impact')
    availability_impact: Optional[Impact] = Field(None, alias='availability-impact')
Attributes¤
availability_impact = Field(None, alias='availability-impact') class-attribute instance-attribute ¤
categorizations = Field(None) class-attribute instance-attribute ¤
confidentiality_impact = Field(None, alias='confidentiality-impact') class-attribute instance-attribute ¤
description = Field(..., description='A summary of how this information type is used within the system.', title='Information Type Description') class-attribute instance-attribute ¤
integrity_impact = Field(None, alias='integrity-impact') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
title = Field(..., description='A human readable name for the information type. This title should be meaningful within the context of the system.', title='title field') class-attribute instance-attribute ¤
uuid = Field(None, description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this information type elsewhere in this or other OSCAL instances. The locally defined UUID of the information type can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Information Type Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
626
627
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Inherited ¤

Bases: OscalBaseModel

Describes a control implementation inherited by a leveraging system.

Source code in trestle/oscal/ssp.py
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
class Inherited(OscalBaseModel):
    """
    Describes a control implementation inherited by a leveraging system.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this inherited entry elsewhere in this or other OSCAL instances. The locally defined UUID of the inherited control implementation can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Inherited Universally Unique Identifier',
    )
    provided_uuid: Optional[constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    )] = Field(
        None,
        alias='provided-uuid',
        description=
        'A machine-oriented identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.',
        title='Provided UUID'
    )
    description: str = Field(
        ...,
        description=
        'An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is inheriting from a leveraged system.',
        title='Inherited Control Implementation Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
Attributes¤
description = Field(..., description='An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is inheriting from a leveraged system.', title='Inherited Control Implementation Description') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
provided_uuid = Field(None, alias='provided-uuid', description='A machine-oriented identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.', title='Provided UUID') class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this inherited entry elsewhere in this or other OSCAL instances. The locally defined UUID of the inherited control implementation can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Inherited Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
233
234
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

LeveragedAuthorization ¤

Bases: OscalBaseModel

A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a common control provider.

Source code in trestle/oscal/ssp.py
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
class LeveragedAuthorization(OscalBaseModel):
    """
    A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a common control provider.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope and can be used to reference this leveraged authorization elsewhere in this or other OSCAL instances. The locally defined UUID of the leveraged authorization can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Leveraged Authorization Universally Unique Identifier',
    )
    title: str = Field(
        ...,
        description='A human readable name for the leveraged authorization in the context of the system.',
        title='title field'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    party_uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        alias='party-uuid',
        description='A machine-oriented identifier reference to the party that manages the leveraged system.',
        title='party-uuid field'
    )
    date_authorized: DateAuthorized = Field(..., alias='date-authorized')
    remarks: Optional[str] = None
Attributes¤
date_authorized = Field(..., alias='date-authorized') class-attribute instance-attribute ¤
party_uuid = Field(..., alias='party-uuid', description='A machine-oriented identifier reference to the party that manages the leveraged system.', title='party-uuid field') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
title = Field(..., description='A human readable name for the leveraged authorization in the context of the system.', title='title field') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope and can be used to reference this leveraged authorization elsewhere in this or other OSCAL instances. The locally defined UUID of the leveraged authorization can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Leveraged Authorization Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
559
560
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Model ¤

Bases: OscalBaseModel

Source code in trestle/oscal/ssp.py
732
733
class Model(OscalBaseModel):
    system_security_plan: SystemSecurityPlan = Field(..., alias='system-security-plan')
Attributes¤
system_security_plan = Field(..., alias='system-security-plan') class-attribute instance-attribute ¤

NetworkArchitecture ¤

Bases: OscalBaseModel

A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.

Source code in trestle/oscal/ssp.py
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
class NetworkArchitecture(OscalBaseModel):
    """
    A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.
    """

    class Config:
        extra = Extra.forbid

    description: str = Field(
        ..., description="A summary of the system's network architecture.", title='Network Architecture Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    diagrams: Optional[List[Diagram]] = Field(None)
    remarks: Optional[str] = None
Attributes¤
description = Field(..., description="A summary of the system's network architecture.", title='Network Architecture Description') class-attribute instance-attribute ¤
diagrams = Field(None) class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
542
543
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

OperationalStateValidValues ¤

Bases: Enum

Source code in trestle/oscal/ssp.py
220
221
222
223
224
225
class OperationalStateValidValues(Enum):
    operational = 'operational'
    under_development = 'under-development'
    under_major_modification = 'under-major-modification'
    disposition = 'disposition'
    other = 'other'
Attributes¤
disposition = 'disposition' class-attribute instance-attribute ¤
operational = 'operational' class-attribute instance-attribute ¤
other = 'other' class-attribute instance-attribute ¤
under_development = 'under-development' class-attribute instance-attribute ¤
under_major_modification = 'under-major-modification' class-attribute instance-attribute ¤

Provided ¤

Bases: OscalBaseModel

Describes a capability which may be inherited by a leveraging system.

Source code in trestle/oscal/ssp.py
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
class Provided(OscalBaseModel):
    """
    Describes a capability which may be inherited by a leveraging system.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this provided entry elsewhere in this or other OSCAL instances. The locally defined UUID of the provided entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Provided Universally Unique Identifier',
    )
    description: str = Field(
        ...,
        description=
        'An implementation statement that describes the aspects of the control or control statement implementation that can be provided to another system leveraging this system.',
        title='Provided Control Implementation Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
    remarks: Optional[str] = None
Attributes¤
description = Field(..., description='An implementation statement that describes the aspects of the control or control statement implementation that can be provided to another system leveraging this system.', title='Provided Control Implementation Description') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this provided entry elsewhere in this or other OSCAL instances. The locally defined UUID of the provided entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Provided Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
197
198
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Responsibility ¤

Bases: OscalBaseModel

Describes a control implementation responsibility imposed on a leveraging system.

Source code in trestle/oscal/ssp.py
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
class Responsibility(OscalBaseModel):
    """
    Describes a control implementation responsibility imposed on a leveraging system.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this responsibility elsewhere in this or other OSCAL instances. The locally defined UUID of the responsibility can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Responsibility Universally Unique Identifier',
    )
    provided_uuid: Optional[constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    )] = Field(
        None,
        alias='provided-uuid',
        description=
        'A machine-oriented identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.',
        title='Provided UUID'
    )
    description: str = Field(
        ...,
        description=
        'An implementation statement that describes the aspects of the control or control statement implementation that a leveraging system must implement to satisfy the control provided by a leveraged system.',
        title='Control Implementation Responsibility Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
    remarks: Optional[str] = None
Attributes¤
description = Field(..., description='An implementation statement that describes the aspects of the control or control statement implementation that a leveraging system must implement to satisfy the control provided by a leveraged system.', title='Control Implementation Responsibility Description') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
provided_uuid = Field(None, alias='provided-uuid', description='A machine-oriented identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.', title='Provided UUID') class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this responsibility elsewhere in this or other OSCAL instances. The locally defined UUID of the responsibility can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Responsibility Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
160
161
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Satisfied ¤

Bases: OscalBaseModel

Describes how this system satisfies a responsibility imposed by a leveraged system.

Source code in trestle/oscal/ssp.py
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
class Satisfied(OscalBaseModel):
    """
    Describes how this system satisfies a responsibility imposed by a leveraged system.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this satisfied control implementation entry elsewhere in this or other OSCAL instances. The locally defined UUID of the control implementation can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='Satisfied Universally Unique Identifier',
    )
    responsibility_uuid: Optional[constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    )] = Field(
        None,
        alias='responsibility-uuid',
        description=
        'A machine-oriented identifier reference to a control implementation that satisfies a responsibility imposed by a leveraged system.',
        title='Responsibility UUID'
    )
    description: str = Field(
        ...,
        description=
        'An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is implementing based on a requirement from a leveraged system.',
        title='Satisfied Control Implementation Responsibility Description'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
    remarks: Optional[str] = None
Attributes¤
description = Field(..., description='An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is implementing based on a requirement from a leveraged system.', title='Satisfied Control Implementation Responsibility Description') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsibility_uuid = Field(None, alias='responsibility-uuid', description='A machine-oriented identifier reference to a control implementation that satisfies a responsibility imposed by a leveraged system.', title='Responsibility UUID') class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this satisfied control implementation entry elsewhere in this or other OSCAL instances. The locally defined UUID of the control implementation can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='Satisfied Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
123
124
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SecurityImpactLevel ¤

Bases: OscalBaseModel

The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.

Source code in trestle/oscal/ssp.py
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
class SecurityImpactLevel(OscalBaseModel):
    """
    The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.
    """

    class Config:
        extra = Extra.forbid

    security_objective_confidentiality: constr(regex=r'^\S(.*\S)?$') = Field(
        ...,
        alias='security-objective-confidentiality',
        description=
        'A target-level of confidentiality for the system, based on the sensitivity of information within the system.',
        title='Security Objective: Confidentiality'
    )
    security_objective_integrity: constr(regex=r'^\S(.*\S)?$') = Field(
        ...,
        alias='security-objective-integrity',
        description=
        'A target-level of integrity for the system, based on the sensitivity of information within the system.',
        title='Security Objective: Integrity'
    )
    security_objective_availability: constr(regex=r'^\S(.*\S)?$') = Field(
        ...,
        alias='security-objective-availability',
        description=
        'A target-level of availability for the system, based on the sensitivity of information within the system.',
        title='Security Objective: Availability'
    )
Attributes¤
security_objective_availability = Field(..., alias='security-objective-availability', description='A target-level of availability for the system, based on the sensitivity of information within the system.', title='Security Objective: Availability') class-attribute instance-attribute ¤
security_objective_confidentiality = Field(..., alias='security-objective-confidentiality', description='A target-level of confidentiality for the system, based on the sensitivity of information within the system.', title='Security Objective: Confidentiality') class-attribute instance-attribute ¤
security_objective_integrity = Field(..., alias='security-objective-integrity', description='A target-level of integrity for the system, based on the sensitivity of information within the system.', title='Security Objective: Integrity') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
92
93
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Selected ¤

Bases: OscalBaseModel

Source code in trestle/oscal/ssp.py
79
80
81
82
83
84
class Selected(OscalBaseModel):
    __root__: constr(regex=r'^\S(.*\S)?$') = Field(
        ...,
        description='The selected (Confidentiality, Integrity, or Availability) security impact level.',
        title='Selected Level (Confidentiality, Integrity, or Availability)'
    )
Attributes¤
__root__ = Field(..., description='The selected (Confidentiality, Integrity, or Availability) security impact level.', title='Selected Level (Confidentiality, Integrity, or Availability)') class-attribute instance-attribute ¤

SetParameter ¤

Bases: OscalBaseModel

Identifies the parameter that will be set by the enclosed value.

Source code in trestle/oscal/ssp.py
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
class SetParameter(OscalBaseModel):
    """
    Identifies the parameter that will be set by the enclosed value.
    """

    class Config:
        extra = Extra.forbid

    param_id: constr(
        regex=
        r'^[_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-\.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$'
    ) = Field(
        ...,
        alias='param-id',
        description=
        "A human-oriented reference to a parameter within a control, who's catalog has been imported into the current implementation context.",
        title='Parameter ID'
    )
    values: List[constr(regex=r'^\S(.*\S)?$')] = Field(...)
    remarks: Optional[str] = None
Attributes¤
param_id = Field(..., alias='param-id', description="A human-oriented reference to a parameter within a control, who's catalog has been imported into the current implementation context.", title='Parameter ID') class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
values = Field(...) class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
62
63
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Statement ¤

Bases: OscalBaseModel

Identifies which statements within a control are addressed.

Source code in trestle/oscal/ssp.py
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
class Statement(OscalBaseModel):
    """
    Identifies which statements within a control are addressed.
    """

    class Config:
        extra = Extra.forbid

    statement_id: constr(
        regex=
        r'^[_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][_A-Za-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-\.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$'
    ) = Field(
        ...,
        alias='statement-id',
        description='A human-oriented identifier reference to a control statement.',
        title='Control Statement Reference'
    )
    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control statement elsewhere in this or other OSCAL instances. The UUID of the control statement in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).',
        title='Control Statement Reference Universally Unique Identifier'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
    by_components: Optional[List[ByComponent]] = Field(None, alias='by-components')
    remarks: Optional[str] = None
Attributes¤
by_components = Field(None, alias='by-components') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsible_roles = Field(None, alias='responsible-roles') class-attribute instance-attribute ¤
statement_id = Field(..., alias='statement-id', description='A human-oriented identifier reference to a control statement.', title='Control Statement Reference') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control statement elsewhere in this or other OSCAL instances. The UUID of the control statement in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).', title='Control Statement Reference Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
457
458
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Status1 ¤

Bases: OscalBaseModel

Describes the operational status of the system.

Source code in trestle/oscal/ssp.py
440
441
442
443
444
445
446
447
448
449
class Status1(OscalBaseModel):
    """
    Describes the operational status of the system.
    """

    class Config:
        extra = Extra.forbid

    state: OperationalStateValidValues = Field(..., description='The current operating status.', title='State')
    remarks: Optional[str] = None
Attributes¤
remarks = None class-attribute instance-attribute ¤
state = Field(..., description='The current operating status.', title='State') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
445
446
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

System ¤

Bases: Enum

Specifies the information type identification system used.

Source code in trestle/oscal/ssp.py
49
50
51
52
53
54
class System(Enum):
    """
    Specifies the information type identification system used.
    """

    http___doi_org_10_6028_NIST_SP_800_60v2r1 = 'http://doi.org/10.6028/NIST.SP.800-60v2r1'
Attributes¤
http___doi_org_10_6028_NIST_SP_800_60v2r1 = 'http://doi.org/10.6028/NIST.SP.800-60v2r1' class-attribute instance-attribute ¤

SystemCharacteristics ¤

Bases: OscalBaseModel

Contains the characteristics of the system, such as its name, purpose, and security impact level.

Source code in trestle/oscal/ssp.py
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
class SystemCharacteristics(OscalBaseModel):
    """
    Contains the characteristics of the system, such as its name, purpose, and security impact level.
    """

    class Config:
        extra = Extra.forbid

    system_ids: List[common.SystemId] = Field(..., alias='system-ids')
    system_name: constr(
        regex=r'^\S(.*\S)?$'
    ) = Field(..., alias='system-name', description='The full name of the system.', title='System Name - Full')
    system_name_short: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
        None,
        alias='system-name-short',
        description=
        'A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.',
        title='System Name - Short'
    )
    description: str = Field(..., description='A summary of the system.', title='System Description')
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    date_authorized: Optional[DateAuthorized] = Field(None, alias='date-authorized')
    security_sensitivity_level: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
        None,
        alias='security-sensitivity-level',
        description='The overall information system sensitivity categorization, such as defined by FIPS-199.',
        title='Security Sensitivity Level'
    )
    system_information: SystemInformation = Field(..., alias='system-information')
    security_impact_level: Optional[SecurityImpactLevel] = Field(None, alias='security-impact-level')
    status: Status1
    authorization_boundary: AuthorizationBoundary = Field(..., alias='authorization-boundary')
    network_architecture: Optional[NetworkArchitecture] = Field(None, alias='network-architecture')
    data_flow: Optional[DataFlow] = Field(None, alias='data-flow')
    responsible_parties: Optional[List[common.ResponsibleParty]] = Field(None, alias='responsible-parties')
    remarks: Optional[str] = None
Attributes¤
authorization_boundary = Field(..., alias='authorization-boundary') class-attribute instance-attribute ¤
data_flow = Field(None, alias='data-flow') class-attribute instance-attribute ¤
date_authorized = Field(None, alias='date-authorized') class-attribute instance-attribute ¤
description = Field(..., description='A summary of the system.', title='System Description') class-attribute instance-attribute ¤
network_architecture = Field(None, alias='network-architecture') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
responsible_parties = Field(None, alias='responsible-parties') class-attribute instance-attribute ¤
security_impact_level = Field(None, alias='security-impact-level') class-attribute instance-attribute ¤
security_sensitivity_level = Field(None, alias='security-sensitivity-level', description='The overall information system sensitivity categorization, such as defined by FIPS-199.', title='Security Sensitivity Level') class-attribute instance-attribute ¤
status instance-attribute ¤
system_ids = Field(..., alias='system-ids') class-attribute instance-attribute ¤
system_information = Field(..., alias='system-information') class-attribute instance-attribute ¤
system_name = Field(..., alias='system-name', description='The full name of the system.', title='System Name - Full') class-attribute instance-attribute ¤
system_name_short = Field(None, alias='system-name-short', description='A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.', title='System Name - Short') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
674
675
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SystemImplementation ¤

Bases: OscalBaseModel

Provides information as to how the system is implemented.

Source code in trestle/oscal/ssp.py
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
class SystemImplementation(OscalBaseModel):
    """
    Provides information as to how the system is implemented.
    """

    class Config:
        extra = Extra.forbid

    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    leveraged_authorizations: Optional[List[LeveragedAuthorization]] = Field(None, alias='leveraged-authorizations')
    users: List[common.SystemUser] = Field(...)
    components: List[common.SystemComponent] = Field(...)
    inventory_items: Optional[List[common.InventoryItem]] = Field(None, alias='inventory-items')
    remarks: Optional[str] = None
Attributes¤
components = Field(...) class-attribute instance-attribute ¤
inventory_items = Field(None, alias='inventory-items') class-attribute instance-attribute ¤
leveraged_authorizations = Field(None, alias='leveraged-authorizations') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
users = Field(...) class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
594
595
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SystemInformation ¤

Bases: OscalBaseModel

Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.

Source code in trestle/oscal/ssp.py
656
657
658
659
660
661
662
663
664
665
666
class SystemInformation(OscalBaseModel):
    """
    Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.
    """

    class Config:
        extra = Extra.forbid

    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    information_types: List[InformationType] = Field(..., alias='information-types')
Attributes¤
information_types = Field(..., alias='information-types') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
661
662
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SystemSecurityPlan ¤

Bases: OscalBaseModel

A system security plan, such as those described in NIST SP 800-18.

Source code in trestle/oscal/ssp.py
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
class SystemSecurityPlan(OscalBaseModel):
    """
    A system security plan, such as those described in NIST SP 800-18.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this system security plan (SSP) elsewhere in this or other OSCAL instances. The locally defined UUID of the SSP can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance).This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        title='System Security Plan Universally Unique Identifier',
    )
    metadata: common.Metadata
    import_profile: ImportProfile = Field(..., alias='import-profile')
    system_characteristics: SystemCharacteristics = Field(..., alias='system-characteristics')
    system_implementation: SystemImplementation = Field(..., alias='system-implementation')
    control_implementation: ControlImplementation = Field(..., alias='control-implementation')
    back_matter: Optional[common.BackMatter] = Field(None, alias='back-matter')
Attributes¤
back_matter = Field(None, alias='back-matter') class-attribute instance-attribute ¤
control_implementation = Field(..., alias='control-implementation') class-attribute instance-attribute ¤
import_profile = Field(..., alias='import-profile') class-attribute instance-attribute ¤
metadata instance-attribute ¤
system_characteristics = Field(..., alias='system-characteristics') class-attribute instance-attribute ¤
system_implementation = Field(..., alias='system-implementation') class-attribute instance-attribute ¤
uuid = Field(..., description='A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this system security plan (SSP) elsewhere in this or other OSCAL instances. The locally defined UUID of the SSP can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance).This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.', title='System Security Plan Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/ssp.py
713
714
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

handler: python