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.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
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.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
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