Skip to content

catalog

trestle.oscal.catalog ¤

Classes¤

Catalog (OscalBaseModel) pydantic-model ¤

A collection of controls.

Source code in trestle/oscal/catalog.py
class Catalog(OscalBaseModel):
    """
    A collection of controls.
    """

    class Config:
        extra = Extra.forbid

    uuid: constr(
        regex=r'^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$'
    ) = Field(
        ...,
        description=
        'A globally unique identifier with cross-instance scope for this catalog instance. This UUID should be changed when this document is revised.',
        title='Catalog Universally Unique Identifier',
    )
    metadata: common.Metadata
    params: Optional[List[common.Parameter]] = Field(None)
    controls: Optional[List[Control]] = Field(None)
    groups: Optional[List[Group]] = Field(None)
    back_matter: Optional[common.BackMatter] = Field(None, alias='back-matter')
Attributes¤
back_matter: BackMatter pydantic-field ¤
controls: List[trestle.oscal.catalog.Control] pydantic-field ¤
groups: List[trestle.oscal.catalog.Group] pydantic-field ¤
metadata: Metadata pydantic-field required ¤
params: List[trestle.oscal.common.Parameter] pydantic-field ¤
uuid: ConstrainedStrValue pydantic-field required ¤

A globally unique identifier with cross-instance scope for this catalog instance. This UUID should be changed when this document is revised.

Config ¤
Source code in trestle/oscal/catalog.py
class Config:
    extra = Extra.forbid

Control (OscalBaseModel) pydantic-model ¤

A structured information object representing a security or privacy control. Each security or privacy control within the Catalog is defined by a distinct control instance.

Source code in trestle/oscal/catalog.py
class Control(OscalBaseModel):
    """
    A structured information object representing a security or privacy control. Each security or privacy control within the Catalog is defined by a distinct control instance.
    """

    class Config:
        extra = Extra.forbid

    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(
        ...,
        description=
        'A human-oriented, locally unique identifier with instance scope that can be used to reference this control elsewhere in this and other OSCAL instances (e.g., profiles). This id should be assigned per-subject, which means it should be consistently used to identify the same control across revisions of the document.',
        title='Control Identifier',
    )
    class_: Optional[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(
        None,
        alias='class',
        description='A textual label that provides a sub-type or characterization of the control.',
        title='Control Class',
    )
    title: str = Field(
        ...,
        description='A name given to the control, which may be used by a tool for display and navigation.',
        title='Control Title',
    )
    params: Optional[List[common.Parameter]] = Field(None)
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    parts: Optional[List[common.Part]] = Field(None)
    controls: Optional[List[Control]] = None
Attributes¤
class_: ConstrainedStrValue pydantic-field ¤

A textual label that provides a sub-type or characterization of the control.

controls: List[trestle.oscal.catalog.Control] pydantic-field ¤
id: ConstrainedStrValue pydantic-field required ¤

A human-oriented, locally unique identifier with instance scope that can be used to reference this control elsewhere in this and other OSCAL instances (e.g., profiles). This id should be assigned per-subject, which means it should be consistently used to identify the same control across revisions of the document.

params: List[trestle.oscal.common.Parameter] pydantic-field ¤
parts: List[trestle.oscal.common.Part] pydantic-field ¤
props: List[trestle.oscal.common.Property] pydantic-field ¤
title: str pydantic-field required ¤

A name given to the control, which may be used by a tool for display and navigation.

Config ¤
Source code in trestle/oscal/catalog.py
class Config:
    extra = Extra.forbid

Group (OscalBaseModel) pydantic-model ¤

A group of controls, or of groups of controls.

Source code in trestle/oscal/catalog.py
class Group(OscalBaseModel):
    """
    A group of controls, or of groups of controls.
    """

    class Config:
        extra = Extra.forbid

    id: Optional[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(
        None,
        description=
        'A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined group elsewhere in in this and other OSCAL instances (e.g., profiles). This id should be assigned per-subject, which means it should be consistently used to identify the same group across revisions of the document.',
        title='Group Identifier',
    )
    class_: Optional[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(
        None,
        alias='class',
        description='A textual label that provides a sub-type or characterization of the group.',
        title='Group Class',
    )
    title: str = Field(
        ...,
        description='A name given to the group, which may be used by a tool for display and navigation.',
        title='Group Title',
    )
    params: Optional[List[common.Parameter]] = Field(None)
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    parts: Optional[List[common.Part]] = Field(None)
    groups: Optional[List[Group]] = None
    controls: Optional[List[Control]] = Field(None)
Attributes¤
class_: ConstrainedStrValue pydantic-field ¤

A textual label that provides a sub-type or characterization of the group.

controls: List[trestle.oscal.catalog.Control] pydantic-field ¤
groups: List[trestle.oscal.catalog.Group] pydantic-field ¤
id: ConstrainedStrValue pydantic-field ¤

A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined group elsewhere in in this and other OSCAL instances (e.g., profiles). This id should be assigned per-subject, which means it should be consistently used to identify the same group across revisions of the document.

params: List[trestle.oscal.common.Parameter] pydantic-field ¤
parts: List[trestle.oscal.common.Part] pydantic-field ¤
props: List[trestle.oscal.common.Property] pydantic-field ¤
title: str pydantic-field required ¤

A name given to the group, which may be used by a tool for display and navigation.

Config ¤
Source code in trestle/oscal/catalog.py
class Config:
    extra = Extra.forbid

Model (OscalBaseModel) pydantic-model ¤

Source code in trestle/oscal/catalog.py
class Model(OscalBaseModel):
    catalog: Catalog
catalog: Catalog pydantic-field required ¤

handler: python