Skip to content

profile

trestle.oscal.profile ¤

Classes¤

Add (OscalBaseModel) pydantic-model ¤

Specifies contents to be added into controls, in resolution.

Source code in trestle/oscal/profile.py
class Add(OscalBaseModel):
    """
    Specifies contents to be added into controls, in resolution.
    """

    class Config:
        extra = Extra.forbid

    position: Optional[PositionValidValues] = Field(
        None,
        description='Where to add the new content with respect to the targeted element (beside it or inside it).',
        title='Position'
    )
    by_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, alias='by-id', description='Target location of the addition.', title='Reference by ID'
    )
    title: Optional[str] = Field(
        None,
        description='A name given to the control, which may be used by a tool for display and navigation.',
        title='Title Change'
    )
    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)
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 ¤
by_id: ConstrainedStrValue pydantic-field ¤

Target location of the addition.

params: List[trestle.oscal.common.Parameter] pydantic-field ¤
parts: List[trestle.oscal.common.Part] pydantic-field ¤
position: PositionValidValues pydantic-field ¤

Where to add the new content with respect to the targeted element (beside it or inside it).

props: List[trestle.oscal.common.Property] pydantic-field ¤
title: str pydantic-field ¤

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

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

Alter (OscalBaseModel) pydantic-model ¤

Specifies changes to be made to an included control when a profile is resolved.

Source code in trestle/oscal/profile.py
class Alter(OscalBaseModel):
    """
    Specifies changes to be made to an included control when a profile is resolved.
    """

    class Config:
        extra = Extra.forbid

    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'
    )
    removes: Optional[List[Remove]] = Field(None)
    adds: Optional[List[Add]] = Field(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 ¤
adds: List[trestle.oscal.profile.Add] pydantic-field ¤
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).

removes: List[trestle.oscal.profile.Remove] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

BooleanDatatype (OscalBaseModel) pydantic-model ¤

Source code in trestle/oscal/profile.py
class BooleanDatatype(OscalBaseModel):
    __root__: bool = Field(..., description='A binary value that is either: true or false.')
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 ¤
__root__: bool pydantic-field required special ¤

A binary value that is either: true or false.

__schema_cache__ special ¤
__signature__ special ¤
__slots__: Tuple[str, ...] special ¤
__validators__ special ¤

CombinationMethodValidValues (Enum) ¤

An enumeration.

Source code in trestle/oscal/profile.py
class CombinationMethodValidValues(Enum):
    use_first = 'use-first'
    merge = 'merge'
    keep = 'keep'
keep ¤
merge ¤
use_first ¤

Combine (OscalBaseModel) pydantic-model ¤

A Combine element defines how to resolve duplicate instances of the same control (e.g., controls with the same ID).

Source code in trestle/oscal/profile.py
class Combine(OscalBaseModel):
    """
    A Combine element defines how to resolve duplicate instances of the same control (e.g., controls with the same ID).
    """

    class Config:
        extra = Extra.forbid

    method: Optional[CombinationMethodValidValues] = Field(
        None, description='Declare how clashing controls should be handled.', title='Combination Method'
    )
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 ¤
method: CombinationMethodValidValues pydantic-field ¤

Declare how clashing controls should be handled.

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

Custom (OscalBaseModel) pydantic-model ¤

Provides an alternate grouping structure that selected controls will be placed in.

Source code in trestle/oscal/profile.py
class Custom(OscalBaseModel):
    """
    Provides an alternate grouping structure that selected controls will be placed in.
    """

    class Config:
        extra = Extra.forbid

    groups: Optional[List[Group]] = Field(None)
    insert_controls: Optional[List[InsertControls]] = Field(None, alias='insert-controls')
__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 ¤
groups: List[trestle.oscal.profile.Group] pydantic-field ¤
insert_controls: List[trestle.oscal.profile.InsertControls] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

Group (OscalBaseModel) pydantic-model ¤

A group of (selected) controls or of groups of controls.

Source code in trestle/oscal/profile.py
class Group(OscalBaseModel):
    """
    A group of (selected) 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='Identifies the group.', 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 to be given to the group for use in display.', 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
    insert_controls: Optional[List[InsertControls]] = Field(None, alias='insert-controls')
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 ¤
class_: ConstrainedStrValue pydantic-field ¤

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

groups: List[trestle.oscal.profile.Group] pydantic-field ¤
id: ConstrainedStrValue pydantic-field ¤

Identifies the group.

insert_controls: List[trestle.oscal.profile.InsertControls] 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 to be given to the group for use in display.

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

Import (OscalBaseModel) pydantic-model ¤

Designates a referenced source catalog or profile that provides a source of control information for use in creating a new overlay or baseline.

Source code in trestle/oscal/profile.py
class Import(OscalBaseModel):
    """
    Designates a referenced source catalog or profile that provides a source of control information for use in creating a new overlay or baseline.
    """

    class Config:
        extra = Extra.forbid

    href: str = Field(
        ...,
        description='A resolvable URL reference to the base catalog or profile that this profile is tailoring.',
        title='Catalog or Profile Reference'
    )
    include_all: Optional[common.IncludeAll] = Field(None, alias='include-all')
    include_controls: Optional[List[SelectControl]] = Field(None, alias='include-controls')
    exclude_controls: Optional[List[SelectControl]] = Field(None, alias='exclude-controls')
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 ¤
exclude_controls: List[trestle.oscal.profile.SelectControl] pydantic-field ¤
href: str pydantic-field required ¤

A resolvable URL reference to the base catalog or profile that this profile is tailoring.

include_all: IncludeAll pydantic-field ¤
include_controls: List[trestle.oscal.profile.SelectControl] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

InsertControls (OscalBaseModel) pydantic-model ¤

Specifies which controls to use in the containing context.

Source code in trestle/oscal/profile.py
class InsertControls(OscalBaseModel):
    """
    Specifies which controls to use in the containing context.
    """

    class Config:
        extra = Extra.forbid

    order: Optional[OrderValidValues] = Field(
        None, description='A designation of how a selection of controls in a profile is to be ordered.', title='Order'
    )
    include_all: Optional[common.IncludeAll] = Field(None, alias='include-all')
    include_controls: Optional[List[SelectControl]] = Field(None, alias='include-controls')
    exclude_controls: Optional[List[SelectControl]] = Field(None, alias='exclude-controls')
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 ¤
exclude_controls: List[trestle.oscal.profile.SelectControl] pydantic-field ¤
include_all: IncludeAll pydantic-field ¤
include_controls: List[trestle.oscal.profile.SelectControl] pydantic-field ¤
order: OrderValidValues pydantic-field ¤

A designation of how a selection of controls in a profile is to be ordered.

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

ItemNameValidValues (Enum) ¤

An enumeration.

Source code in trestle/oscal/profile.py
class ItemNameValidValues(Enum):
    param = 'param'
    prop = 'prop'
    link = 'link'
    part = 'part'
    mapping = 'mapping'
    map = 'map'
map ¤
mapping ¤
param ¤
part ¤
prop ¤

Matching (OscalBaseModel) pydantic-model ¤

Selecting a set of controls by matching their IDs with a wildcard pattern.

Source code in trestle/oscal/profile.py
class Matching(OscalBaseModel):
    """
    Selecting a set of controls by matching their IDs with a wildcard pattern.
    """

    class Config:
        extra = Extra.forbid

    pattern: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
        None, description='A glob expression matching the IDs of one or more controls to be selected.', title='Pattern'
    )
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 ¤
pattern: ConstrainedStrValue pydantic-field ¤

A glob expression matching the IDs of one or more controls to be selected.

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

Merge (OscalBaseModel) pydantic-model ¤

Provides structuring directives that instruct how controls are organized after profile resolution.

Source code in trestle/oscal/profile.py
class Merge(OscalBaseModel):
    """
    Provides structuring directives that instruct how controls are organized after profile resolution.
    """

    class Config:
        extra = Extra.forbid

    combine: Optional[Combine] = Field(
        None,
        description=
        'A Combine element defines how to resolve duplicate instances of the same control (e.g., controls with the same ID).',
        title='Combination Rule'
    )
    flat: Optional[Dict[str, Any]] = Field(
        None, description='Directs that controls appear without any grouping structure.', title='Flat Without Grouping'
    )
    as_is: Optional[BooleanDatatype] = Field(
        None,
        alias='as-is',
        description=
        'Indicates that the controls selected should retain their original grouping as defined in the import source.',
        title='Group As-Is'
    )
    custom: Optional[Custom] = Field(
        None,
        description='Provides an alternate grouping structure that selected controls will be placed in.',
        title='Custom Grouping'
    )
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 ¤
as_is: BooleanDatatype pydantic-field ¤

Indicates that the controls selected should retain their original grouping as defined in the import source.

combine: Combine pydantic-field ¤

A Combine element defines how to resolve duplicate instances of the same control (e.g., controls with the same ID).

custom: Custom pydantic-field ¤

Provides an alternate grouping structure that selected controls will be placed in.

flat: Dict[str, Any] pydantic-field ¤

Directs that controls appear without any grouping structure.

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

Model (OscalBaseModel) pydantic-model ¤

Source code in trestle/oscal/profile.py
class Model(OscalBaseModel):
    profile: Profile
__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 ¤
profile: Profile pydantic-field required ¤

Modify (OscalBaseModel) pydantic-model ¤

Set parameters or amend controls in resolution.

Source code in trestle/oscal/profile.py
class Modify(OscalBaseModel):
    """
    Set parameters or amend controls in resolution.
    """

    class Config:
        extra = Extra.forbid

    set_parameters: Optional[List[SetParameter]] = Field(None, alias='set-parameters')
    alters: Optional[List[Alter]] = Field(None)
__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 ¤
alters: List[trestle.oscal.profile.Alter] pydantic-field ¤
set_parameters: List[trestle.oscal.profile.SetParameter] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

OrderValidValues (Enum) ¤

An enumeration.

Source code in trestle/oscal/profile.py
class OrderValidValues(Enum):
    keep = 'keep'
    ascending = 'ascending'
    descending = 'descending'
ascending ¤
descending ¤
keep ¤

PositionValidValues (Enum) ¤

An enumeration.

Source code in trestle/oscal/profile.py
class PositionValidValues(Enum):
    before = 'before'
    after = 'after'
    starting = 'starting'
    ending = 'ending'
after ¤
before ¤
ending ¤
starting ¤

Profile (OscalBaseModel) pydantic-model ¤

Each OSCAL profile is defined by a profile element.

Source code in trestle/oscal/profile.py
class Profile(OscalBaseModel):
    """
    Each OSCAL profile is defined by a profile element.
    """

    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 profile instance.',
                     title='Profile Universally Unique Identifier'
                 )
    metadata: common.Metadata
    imports: List[Import] = Field(...)
    merge: Optional[Merge] = None
    modify: Optional[Modify] = 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 ¤
imports: List[trestle.oscal.profile.Import] pydantic-field required ¤
merge: Merge pydantic-field ¤
metadata: Metadata pydantic-field required ¤
modify: Modify pydantic-field ¤
uuid: ConstrainedStrValue pydantic-field required ¤

Provides a globally unique means to identify a given profile instance.

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

Remove (OscalBaseModel) pydantic-model ¤

Specifies objects to be removed from a control based on specific aspects of the object that must all match.

Source code in trestle/oscal/profile.py
class Remove(OscalBaseModel):
    """
    Specifies objects to be removed from a control based on specific aspects of the object that must all match.
    """

    class Config:
        extra = Extra.forbid

    by_name: 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='by-name',
        description='Identify items remove by matching their assigned name.',
        title='Reference by (assigned) name'
    )
    by_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='by-class',
        description='Identify items to remove by matching their class.',
        title='Reference by class'
    )
    by_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, alias='by-id', description='Identify items to remove indicated by their id.', title='Reference by ID'
    )
    by_item_name: Optional[ItemNameValidValues] = Field(
        None,
        alias='by-item-name',
        description="Identify items to remove by the name of the item's information object name, e.g. title or prop.",
        title='Item Name Reference'
    )
    by_ns: 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='by-ns',
        description="Identify items to remove by the item's ns, which is the namespace associated with a part, or prop.",
        title='Item Namespace 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 ¤
by_class: ConstrainedStrValue pydantic-field ¤

Identify items to remove by matching their class.

by_id: ConstrainedStrValue pydantic-field ¤

Identify items to remove indicated by their id.

by_item_name: ItemNameValidValues pydantic-field ¤

Identify items to remove by the name of the item's information object name, e.g. title or prop.

by_name: ConstrainedStrValue pydantic-field ¤

Identify items remove by matching their assigned name.

by_ns: ConstrainedStrValue pydantic-field ¤

Identify items to remove by the item's ns, which is the namespace associated with a part, or prop.

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

SelectControl (OscalBaseModel) pydantic-model ¤

Select a control or controls from an imported control set.

Source code in trestle/oscal/profile.py
class SelectControl(OscalBaseModel):
    """
    Select a control or controls from an imported control set.
    """

    class Config:
        extra = Extra.forbid

    with_child_controls: Optional[WithChildControlsValidValues] = Field(
        None,
        alias='with-child-controls',
        description='When a control is included, whether its child (dependent) controls are also included.',
        title='Include Contained Controls with Control'
    )
    with_ids: Optional[List[WithId]] = Field(None, alias='with-ids')
    matching: Optional[List[Matching]] = Field(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 ¤
matching: List[trestle.oscal.profile.Matching] pydantic-field ¤
with_child_controls: WithChildControlsValidValues pydantic-field ¤

When a control is included, whether its child (dependent) controls are also included.

with_ids: List[trestle.oscal.profile.WithId] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

SetParameter (OscalBaseModel) pydantic-model ¤

A parameter setting, to be propagated to points of insertion.

Source code in trestle/oscal/profile.py
class SetParameter(OscalBaseModel):
    """
    A parameter setting, to be propagated to points of insertion.
    """

    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='An identifier for the parameter.', title='Parameter ID')
    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 characterization of the parameter.',
        title='Parameter Class'
    )
    depends_on: 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='depends-on',
        description=
        '**(deprecated)** Another parameter invoking this one. This construct has been deprecated and should not be used.',
        title='Depends On'
    )
    props: Optional[List[common.Property]] = Field(None)
    links: Optional[List[common.Link]] = Field(None)
    label: Optional[str] = Field(
        None,
        description=
        'A short, placeholder name for the parameter, which can be used as a substitute for a value if no value is assigned.',
        title='Parameter Label'
    )
    usage: Optional[str] = Field(
        None, description='Describes the purpose and use of a parameter.', title='Parameter Usage Description'
    )
    constraints: Optional[List[common.ParameterConstraint]] = Field(None)
    guidelines: Optional[List[common.ParameterGuideline]] = Field(None)
    values: Optional[List[constr(regex=r'^\S(.*\S)?$')]] = Field(None)
    select: Optional[common.ParameterSelection] = 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 ¤
class_: ConstrainedStrValue pydantic-field ¤

A textual label that provides a characterization of the parameter.

constraints: List[trestle.oscal.common.ParameterConstraint] pydantic-field ¤
depends_on: ConstrainedStrValue pydantic-field ¤

(deprecated) Another parameter invoking this one. This construct has been deprecated and should not be used.

guidelines: List[trestle.oscal.common.ParameterGuideline] pydantic-field ¤
label: str pydantic-field ¤

A short, placeholder name for the parameter, which can be used as a substitute for a value if no value is assigned.

param_id: ConstrainedStrValue pydantic-field required ¤

An identifier for the parameter.

props: List[trestle.oscal.common.Property] pydantic-field ¤
select: ParameterSelection pydantic-field ¤
usage: str pydantic-field ¤

Describes the purpose and use of a parameter.

values: List[pydantic.v1.types.ConstrainedStrValue] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

WithChildControlsValidValues (Enum) ¤

An enumeration.

Source code in trestle/oscal/profile.py
class WithChildControlsValidValues(Enum):
    yes = 'yes'
    no = 'no'
no ¤
yes ¤

WithId (OscalBaseModel) pydantic-model ¤

Source code in trestle/oscal/profile.py
class WithId(OscalBaseModel):
    __root__: 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='Selecting a control by its ID given as a literal.', title='Match Controls by Identifier'
    )
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 ¤
__root__: ConstrainedStrValue pydantic-field required special ¤

Selecting a control by its ID given as a literal.

__schema_cache__ special ¤
__signature__ special ¤
__slots__: Tuple[str, ...] special ¤
__validators__ special ¤

handler: python