Skip to content

trestle.oscal.catalog

trestle.oscal.catalog ¤

Attributes¤

Group = Union[Group1, Group2] module-attribute ¤

Classes¤

Catalog ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.catalog.Catalog[Catalog]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.catalog.Catalog
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.catalog.Catalog href "" "trestle.oscal.catalog.Catalog"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

A structured, organized collection of control information.

Source code in trestle/oscal/catalog.py
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
class Catalog(OscalBaseModel):
    """
    A structured, organized collection of control information.
    """

    model_config = ConfigDict(
        extra='forbid',
    )
    uuid: constr(pattern=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='Provides a globally unique means to identify a given catalog instance.', title='Catalog Universally Unique Identifier')
    metadata: common.Metadata
    params: list[common.Parameter] | None = Field(None, min_length=1)
    controls: list[Control] | None = Field(None, min_length=1)
    groups: list[Group] | None = Field(None, min_length=1)
    back_matter: common.BackMatter | None = Field(None, alias='back-matter')
Attributes¤
back_matter = Field(None, alias='back-matter') class-attribute instance-attribute ¤
controls = Field(None, min_length=1) class-attribute instance-attribute ¤
groups = Field(None, min_length=1) class-attribute instance-attribute ¤
metadata instance-attribute ¤
model_config = ConfigDict(extra='forbid') class-attribute instance-attribute ¤
params = Field(None, min_length=1) class-attribute instance-attribute ¤
uuid = Field(..., description='Provides a globally unique means to identify a given catalog instance.', title='Catalog Universally Unique Identifier') class-attribute instance-attribute ¤

Control ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.catalog.Control[Control]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.catalog.Control
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.catalog.Control href "" "trestle.oscal.catalog.Control"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

A structured object representing a requirement or guideline, which when implemented will reduce an aspect of risk related to an information system and its information.

Source code in trestle/oscal/catalog.py
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class Control(OscalBaseModel):
    """
    A structured object representing a requirement or guideline, which when implemented will reduce an aspect of risk related to an information system and its information.
    """

    model_config = ConfigDict(
        extra='forbid',
    )
    id: constr(pattern=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(..., description='Identifies a control such that it can be referenced in the defining catalog and other OSCAL instances (e.g., profiles).', title='Control Identifier')
    class_: constr(pattern=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]*$') | None = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the control.', title='Control Class')
    title: constr(pattern=r'^[^\n]+$') = Field(..., description='A name given to the control, which may be used by a tool for display and navigation.', title='Control Title')
    params: list[common.Parameter] | None = Field(None, min_length=1)
    props: list[common.Property] | None = Field(None, min_length=1)
    links: list[common.Link] | None = Field(None, min_length=1)
    parts: list[common.Part] | None = Field(None, min_length=1)
    controls: list[Control] | None = None
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the control.', title='Control Class') class-attribute instance-attribute ¤
controls = None class-attribute instance-attribute ¤
id = Field(..., description='Identifies a control such that it can be referenced in the defining catalog and other OSCAL instances (e.g., profiles).', title='Control Identifier') class-attribute instance-attribute ¤
model_config = ConfigDict(extra='forbid') class-attribute instance-attribute ¤
params = Field(None, min_length=1) class-attribute instance-attribute ¤
parts = Field(None, min_length=1) class-attribute instance-attribute ¤
props = Field(None, min_length=1) class-attribute instance-attribute ¤
title = Field(..., description='A name given to the control, which may be used by a tool for display and navigation.', title='Control Title') class-attribute instance-attribute ¤

Group1 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.catalog.Group1[Group1]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.catalog.Group1
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.catalog.Group1 href "" "trestle.oscal.catalog.Group1"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

A group of controls, or of groups of controls.

Source code in trestle/oscal/catalog.py
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
class Group1(OscalBaseModel):
    """
    A group of controls, or of groups of controls.
    """

    model_config = ConfigDict(
        extra='forbid',
    )
    id: constr(pattern=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]*$') | None = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier')
    class_: constr(pattern=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]*$') | None = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class')
    title: constr(pattern=r'^[^\n]+$') = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title')
    params: list[common.Parameter] | None = Field(None, min_length=1)
    props: list[common.Property] | None = Field(None, min_length=1)
    links: list[common.Link] | None = Field(None, min_length=1)
    parts: list[common.Part] | None = Field(None, min_length=1)
    groups: list[Group1|Group2] | None = Field(None, min_length=1)
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class') class-attribute instance-attribute ¤
groups = Field(None, min_length=1) class-attribute instance-attribute ¤
id = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier') class-attribute instance-attribute ¤
model_config = ConfigDict(extra='forbid') class-attribute instance-attribute ¤
params = Field(None, min_length=1) class-attribute instance-attribute ¤
parts = Field(None, min_length=1) class-attribute instance-attribute ¤
props = Field(None, min_length=1) class-attribute instance-attribute ¤
title = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title') class-attribute instance-attribute ¤

Group2 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.catalog.Group2[Group2]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.catalog.Group2
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.catalog.Group2 href "" "trestle.oscal.catalog.Group2"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

A group of controls, or of groups of controls.

Source code in trestle/oscal/catalog.py
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
class Group2(OscalBaseModel):
    """
    A group of controls, or of groups of controls.
    """

    model_config = ConfigDict(
        extra='forbid',
    )
    id: constr(pattern=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]*$') | None = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier')
    class_: constr(pattern=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]*$') | None = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class')
    title: constr(pattern=r'^[^\n]+$') = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title')
    params: list[common.Parameter] | None = Field(None, min_length=1)
    props: list[common.Property] | None = Field(None, min_length=1)
    links: list[common.Link] | None = Field(None, min_length=1)
    parts: list[common.Part] | None = Field(None, min_length=1)
    controls: list[Control] | None = Field(None, min_length=1)
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class') class-attribute instance-attribute ¤
controls = Field(None, min_length=1) class-attribute instance-attribute ¤
id = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier') class-attribute instance-attribute ¤
model_config = ConfigDict(extra='forbid') class-attribute instance-attribute ¤
params = Field(None, min_length=1) class-attribute instance-attribute ¤
parts = Field(None, min_length=1) class-attribute instance-attribute ¤
props = Field(None, min_length=1) class-attribute instance-attribute ¤
title = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title') class-attribute instance-attribute ¤

Model ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.catalog.Model[Model]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.catalog.Model
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.catalog.Model href "" "trestle.oscal.catalog.Model"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            
Source code in trestle/oscal/catalog.py
115
116
class Model(OscalBaseModel):
    catalog: Catalog
Attributes¤
catalog instance-attribute ¤

handler: python