component
trestle.oscal.component
¤
Classes¤
Capability (OscalBaseModel)
pydantic-model
¤
A grouping of other components and/or capabilities.
Source code in trestle/oscal/component.py
class Capability(OscalBaseModel):
"""
A grouping of other components and/or capabilities.
"""
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='Provides a globally unique means to identify a given capability.',
title='Capability Identifier'
)
name: constr(regex=r'^\S(.*\S)?$'
) = Field(..., description="The capability's human-readable name.", title='Capability Name')
description: str = Field(..., description='A summary of the capability.', title='Capability Description')
props: Optional[List[common.Property]] = Field(None)
links: Optional[List[common.Link]] = Field(None)
incorporates_components: Optional[List[IncorporatesComponent]] = Field(None, alias='incorporates-components')
control_implementations: Optional[List[ControlImplementation]] = Field(None, alias='control-implementations')
remarks: Optional[str] = None
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
control_implementations: List[trestle.oscal.component.ControlImplementation]
pydantic-field
¤
description: str
pydantic-field
required
¤
A summary of the capability.
incorporates_components: List[trestle.oscal.component.IncorporatesComponent]
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
name: ConstrainedStrValue
pydantic-field
required
¤
The capability's human-readable name.
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: str
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
Provides a globally unique means to identify a given capability.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
ComponentDefinition (OscalBaseModel)
pydantic-model
¤
A collection of component descriptions, which may optionally be grouped by capability.
Source code in trestle/oscal/component.py
class ComponentDefinition(OscalBaseModel):
"""
A collection of component descriptions, which may optionally be grouped by capability.
"""
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='Provides a globally unique means to identify a given component definition instance.',
title='Component Definition Universally Unique Identifier'
)
metadata: common.Metadata
import_component_definitions: Optional[List[ImportComponentDefinition]] = Field(
None, alias='import-component-definitions'
)
components: Optional[List[DefinedComponent]] = Field(None)
capabilities: Optional[List[Capability]] = Field(None)
back_matter: Optional[common.BackMatter] = Field(None, alias='back-matter')
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
back_matter: BackMatter
pydantic-field
¤
capabilities: List[trestle.oscal.component.Capability]
pydantic-field
¤
components: List[trestle.oscal.component.DefinedComponent]
pydantic-field
¤
import_component_definitions: List[trestle.oscal.component.ImportComponentDefinition]
pydantic-field
¤
metadata: Metadata
pydantic-field
required
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
Provides a globally unique means to identify a given component definition instance.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
ControlImplementation (OscalBaseModel)
pydantic-model
¤
Defines how the component or capability supports a set of controls.
Source code in trestle/oscal/component.py
class ControlImplementation(OscalBaseModel):
"""
Defines how the component or capability supports a set of controls.
"""
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=
'Provides a means to identify a set of control implementations that are supported by a given component or capability.',
title='Control Implementation Set Identifier'
)
source: str = Field(
...,
description=
'A reference to an OSCAL catalog or profile providing the referenced control or subcontrol definition.',
title='Source Resource Reference'
)
description: str = Field(
...,
description=
'A description of how the specified set of controls are implemented for the containing component or capability.',
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')
implemented_requirements: List[ImplementedRequirement] = Field(..., alias='implemented-requirements')
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
description: str
pydantic-field
required
¤
A description of how the specified set of controls are implemented for the containing component or capability.
implemented_requirements: List[trestle.oscal.component.ImplementedRequirement]
pydantic-field
required
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
set_parameters: List[trestle.oscal.component.SetParameter]
pydantic-field
¤
source: str
pydantic-field
required
¤
A reference to an OSCAL catalog or profile providing the referenced control or subcontrol definition.
uuid: ConstrainedStrValue
pydantic-field
required
¤
Provides a means to identify a set of control implementations that are supported by a given component or capability.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
DefinedComponent (OscalBaseModel)
pydantic-model
¤
A defined component that can be part of an implemented system.
Source code in trestle/oscal/component.py
class DefinedComponent(OscalBaseModel):
"""
A defined component that can be part of an implemented 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='Provides a globally unique means to identify a given component.',
title='Component Identifier'
)
type: Union[constr(regex=r'^\S(.*\S)?$'), DefinedComponentTypeValidValues] = Field(
..., description='A category describing the purpose of the component.', title='Component Type'
)
title: str = Field(..., description='A human readable name for the component.', title='Component Title')
description: str = Field(
...,
description='A description of the component, including information about its function.',
title='Component Description'
)
purpose: Optional[str] = Field(
None, description='A summary of the technological or business purpose of the component.', title='Purpose'
)
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')
protocols: Optional[List[common.Protocol]] = Field(None)
control_implementations: Optional[List[ControlImplementation]] = Field(None, alias='control-implementations')
remarks: Optional[str] = None
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
control_implementations: List[trestle.oscal.component.ControlImplementation]
pydantic-field
¤
description: str
pydantic-field
required
¤
A description of the component, including information about its function.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
protocols: List[trestle.oscal.common.Protocol]
pydantic-field
¤
purpose: str
pydantic-field
¤
A summary of the technological or business purpose of the component.
remarks: str
pydantic-field
¤
responsible_roles: List[trestle.oscal.common.ResponsibleRole]
pydantic-field
¤
title: str
pydantic-field
required
¤
A human readable name for the component.
type: Union[pydantic.v1.types.ConstrainedStrValue, trestle.oscal.component.DefinedComponentTypeValidValues]
pydantic-field
required
¤
A category describing the purpose of the component.
uuid: ConstrainedStrValue
pydantic-field
required
¤
Provides a globally unique means to identify a given component.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
DefinedComponentTypeValidValues (Enum)
¤
An enumeration.
Source code in trestle/oscal/component.py
class DefinedComponentTypeValidValues(Enum):
interconnection = 'interconnection'
software = 'software'
hardware = 'hardware'
service = 'service'
policy = 'policy'
physical = 'physical'
process_procedure = 'process-procedure'
plan = 'plan'
guidance = 'guidance'
standard = 'standard'
validation = 'validation'
ImplementedRequirement (OscalBaseModel)
pydantic-model
¤
Describes how the containing component or capability implements an individual control.
Source code in trestle/oscal/component.py
class ImplementedRequirement(OscalBaseModel):
"""
Describes how the containing component or capability implements 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='Provides a globally unique means to identify a given control implementation by a component.',
title='Control Implementation 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'
)
description: str = Field(
...,
description=
'A suggestion from the supplier (e.g., component vendor or author) for how the specified control may be implemented if the containing component or capability is instantiated in a system security plan.',
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')
responsible_roles: Optional[List[common.ResponsibleRole]] = Field(None, alias='responsible-roles')
statements: Optional[List[Statement]] = Field(None)
remarks: Optional[str] = None
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
control_id: ConstrainedStrValue
pydantic-field
required
¤
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).
description: str
pydantic-field
required
¤
A suggestion from the supplier (e.g., component vendor or author) for how the specified control may be implemented if the containing component or capability is instantiated in a system security plan.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: str
pydantic-field
¤
responsible_roles: List[trestle.oscal.common.ResponsibleRole]
pydantic-field
¤
set_parameters: List[trestle.oscal.component.SetParameter]
pydantic-field
¤
statements: List[trestle.oscal.component.Statement]
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
Provides a globally unique means to identify a given control implementation by a component.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
ImportComponentDefinition (OscalBaseModel)
pydantic-model
¤
Loads a component definition from another resource.
Source code in trestle/oscal/component.py
class ImportComponentDefinition(OscalBaseModel):
"""
Loads a component definition from another resource.
"""
class Config:
extra = Extra.forbid
href: str = Field(
...,
description=
'A link to a resource that defines a set of components and/or capabilities to import into this collection.',
title='Hyperlink Reference'
)
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
href: str
pydantic-field
required
¤
A link to a resource that defines a set of components and/or capabilities to import into this collection.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
IncorporatesComponent (OscalBaseModel)
pydantic-model
¤
The collection of components comprising this capability.
Source code in trestle/oscal/component.py
class IncorporatesComponent(OscalBaseModel):
"""
The collection of components comprising this capability.
"""
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 a component.',
title='Component Reference'
)
description: str = Field(
...,
description='A description of the component, including information about its function.',
title='Component Description'
)
Attributes¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
component_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a component.
description: str
pydantic-field
required
¤
A description of the component, including information about its function.
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
Model (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/component.py
class Model(OscalBaseModel):
component_definition: ComponentDefinition = Field(..., alias='component-definition')
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
component_definition: ComponentDefinition
pydantic-field
required
¤
SetParameter (OscalBaseModel)
pydantic-model
¤
Identifies the parameter that will be set by the enclosed value.
Source code in trestle/oscal/component.py
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¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
param_id: ConstrainedStrValue
pydantic-field
required
¤
A human-oriented reference to a parameter within a control, who's catalog has been imported into the current implementation context.
remarks: str
pydantic-field
¤
values: List[pydantic.v1.types.ConstrainedStrValue]
pydantic-field
required
¤
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
Statement (OscalBaseModel)
pydantic-model
¤
Identifies which statements within a control are addressed.
Source code in trestle/oscal/component.py
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'
)
description: str = Field(
...,
description='A summary of how the containing control statement is implemented by the component or capability.',
title='Statement 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¤
__class_vars__
special
¤
__custom_root_type__
special
¤
__doc__
special
¤
__exclude_fields__
special
¤
__fields__
special
¤
__include_fields__
special
¤
__post_root_validators__
special
¤
__pre_root_validators__
special
¤
__private_attributes__
special
¤
__schema_cache__
special
¤
__signature__
special
¤
__slots__: Tuple[str, ...]
special
¤
__validators__
special
¤
description: str
pydantic-field
required
¤
A summary of how the containing control statement is implemented by the component or capability.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: str
pydantic-field
¤
responsible_roles: List[trestle.oscal.common.ResponsibleRole]
pydantic-field
¤
statement_id: ConstrainedStrValue
pydantic-field
required
¤
A human-oriented identifier reference to a control statement.
uuid: ConstrainedStrValue
pydantic-field
required
¤
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).
Config
¤
Source code in trestle/oscal/component.py
class Config:
extra = Extra.forbid
handler: python