Skip to content

interfaces

trestle.core.models.interfaces ¤

Interfaces for use within other trestle functions defined as pydantic data models.

Classes¤

OSCALAssembly (TrestleBaseModel) pydantic-model ¤

Data model to represent an assembled set of OSCAL objects.

Here the assembly represents the constraints as expected by the current OSCAL schema. At this point in time a 'flat' model has been chosen rather than an tree.

Source code in trestle/core/models/interfaces.py
class OSCALAssembly(TrestleBaseModel):
    """Data model to represent an assembled set of OSCAL objects.

    Here the assembly represents the constraints as expected by the current OSCAL
    schema. At this point in time a 'flat' model has been chosen rather than an tree.
    """

    poam: Optional[o_poam.PlanOfActionAndMilestones] = None
    sar: Optional[o_ar.AssessmentResults] = None
    sap: Optional[o_ap.AssessmentPlan] = None
    ssp: Optional[o_ssp.SystemSecurityPlan] = None
    profiles: Optional[Dict[str, o_profile.Profile]] = None
    catalogs: Optional[Dict[str, o_catalog.Catalog]] = None
    components: Optional[Dict[str, o_component.ComponentDefinition]] = None

    class Config:
        """Pydantic config overrides."""

        allow_population_by_field_name = True
        # Enforce strict schema
        extra = Extra.forbid
        # Validate on assignment of variables to ensure no escapes
        validate_assignment = True
catalogs: Dict[str, trestle.oscal.catalog.Catalog] pydantic-field ¤
components: Dict[str, trestle.oscal.component.ComponentDefinition] pydantic-field ¤
poam: PlanOfActionAndMilestones pydantic-field ¤
profiles: Dict[str, trestle.oscal.profile.Profile] pydantic-field ¤
sap: AssessmentPlan pydantic-field ¤
sar: AssessmentResults pydantic-field ¤
ssp: SystemSecurityPlan pydantic-field ¤
Classes¤
Config ¤

Pydantic config overrides.

Source code in trestle/core/models/interfaces.py
class Config:
    """Pydantic config overrides."""

    allow_population_by_field_name = True
    # Enforce strict schema
    extra = Extra.forbid
    # Validate on assignment of variables to ensure no escapes
    validate_assignment = True
allow_population_by_field_name ¤
extra ¤
validate_assignment ¤

handler: python