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[Position] = 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¤
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: Position 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 ¤

An Alter element specifies changes to be made to an included control when a profile is resolved.

Source code in trestle/oscal/profile.py
class Alter(OscalBaseModel):
    """
    An Alter element 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 human-oriented identifier 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¤
adds: List[trestle.oscal.profile.Add] pydantic-field ¤
control_id: ConstrainedStrValue pydantic-field required ¤

A human-oriented identifier 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

Combine (OscalBaseModel) pydantic-model ¤

A Combine element defines how to combine multiple (competing) versions of the same control.

Source code in trestle/oscal/profile.py
class Combine(OscalBaseModel):
    """
    A Combine element defines how to combine multiple (competing) versions of the same control.
    """

    class Config:
        extra = Extra.forbid

    method: Optional[Method] = Field(
        None,
        description='How clashing controls should be handled',
        title='Combination method',
    )
Attributes¤
method: Method pydantic-field ¤

How clashing controls should be handled

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

Custom (OscalBaseModel) pydantic-model ¤

A Custom element frames a structure for embedding represented controls in resolution.

Source code in trestle/oscal/profile.py
class Custom(OscalBaseModel):
    """
    A Custom element frames a structure for embedding represented controls in resolution.
    """

    class Config:
        extra = Extra.forbid

    groups: Optional[List[Group]] = Field(None)
    insert_controls: Optional[List[InsertControls]] = Field(None, alias='insert-controls')
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=
        'A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined group elsewhere in this or other OSCAL instances. When referenced from another OSCAL instance, this identifier must be referenced in the context of the containing resource (e.g., import-profile). 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
    insert_controls: Optional[List[InsertControls]] = Field(None, alias='insert-controls')
Attributes¤
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 ¤

A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined group elsewhere in this or other OSCAL instances. When referenced from another OSCAL instance, this identifier must be referenced in the context of the containing resource (e.g., import-profile). This id should be assigned per-subject, which means it should be consistently used to identify the same group across revisions of the document.

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 given to the group, which may be used by a tool for display and navigation.

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

Import (OscalBaseModel) pydantic-model ¤

The import designates a catalog or profile to be included (referenced and potentially modified) by this profile. The import also identifies which controls to select using the include-all, include-controls, and exclude-controls directives.

Source code in trestle/oscal/profile.py
class Import(OscalBaseModel):
    """
    The import designates a catalog or profile to be included (referenced and potentially modified) by this profile. The import also identifies which controls to select using the include-all, include-controls, and exclude-controls directives.
    """

    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[SelectControlById]] = Field(None, alias='include-controls')
    exclude_controls: Optional[List[SelectControlById]] = Field(None, alias='exclude-controls')
Attributes¤
exclude_controls: List[trestle.oscal.profile.SelectControlById] 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.SelectControlById] 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[Order] = 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[SelectControlById]] = Field(None, alias='include-controls')
    exclude_controls: Optional[List[SelectControlById]] = Field(None, alias='exclude-controls')
Attributes¤
exclude_controls: List[trestle.oscal.profile.SelectControlById] pydantic-field ¤
include_all: IncludeAll pydantic-field ¤
include_controls: List[trestle.oscal.profile.SelectControlById] pydantic-field ¤
order: Order 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

Matching (OscalBaseModel) pydantic-model ¤

Select controls by (regular expression) match on ID

Source code in trestle/oscal/profile.py
class Matching(OscalBaseModel):
    """
    Select controls by (regular expression) match on ID
    """

    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¤
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 ¤

A Merge element provides structuring directives that drive how controls are organized after resolution.

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

    class Config:
        extra = Extra.forbid

    combine: Optional[Combine] = Field(
        None,
        description='A Combine element defines how to combine multiple (competing) versions of the same control.',
        title='Combination rule',
    )
    flat: Optional[Dict[str, Any]] = Field(None, description='Use the flat structuring method.', title='Flat')
    as_is: Optional[bool] = Field(
        None,
        alias='as-is',
        description=
        'An As-is element indicates that the controls should be structured in resolution as they are structured in their source catalogs. It does not contain any elements or attributes.',
        title='As-Is Structuring Directive',
    )
    custom: Optional[Custom] = Field(
        None,
        description='A Custom element frames a structure for embedding represented controls in resolution.',
        title='Custom grouping',
    )
Attributes¤
as_is: bool pydantic-field ¤

An As-is element indicates that the controls should be structured in resolution as they are structured in their source catalogs. It does not contain any elements or attributes.

combine: Combine pydantic-field ¤

A Combine element defines how to combine multiple (competing) versions of the same control.

custom: Custom pydantic-field ¤

A Custom element frames a structure for embedding represented controls in resolution.

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

Use the flat structuring method.

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

Method (Enum) ¤

How clashing controls should be handled

Source code in trestle/oscal/profile.py
class Method(Enum):
    """
    How clashing controls should be handled
    """

    use_first = 'use-first'
    merge = 'merge'
    keep = 'keep'
keep ¤
merge ¤
use_first ¤

Model (OscalBaseModel) pydantic-model ¤

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

Order (Enum) ¤

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

Source code in trestle/oscal/profile.py
class Order(Enum):
    """
    A designation of how a selection of controls in a profile is to be ordered.
    """

    keep = 'keep'
    ascending = 'ascending'
    descending = 'descending'
ascending ¤
descending ¤
keep ¤

Position (Enum) ¤

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

Source code in trestle/oscal/profile.py
class Position(Enum):
    """
    Where to add the new content with respect to the targeted element (beside it or inside it)
    """

    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}-4[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 profile elsewhere in this or other OSCAL instances. The locally defined UUID of the profile can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance).This identifier should be assigned per-subject, which means it should be consistently used to identify the same profile across revisions of the document.',
        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¤
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 ¤

A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this profile elsewhere in this or other OSCAL instances. The locally defined UUID of the profile can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance).This identifier should be assigned per-subject, which means it should be consistently used to identify the same profile across revisions of the document.

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 to 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[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-item-name',
        description="Identify items to remove by the name of the item's information element 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¤
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: ConstrainedStrValue pydantic-field ¤

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

by_name: ConstrainedStrValue pydantic-field ¤

Identify items to 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

SelectControlById (OscalBaseModel) pydantic-model ¤

Call a control by its ID

Source code in trestle/oscal/profile.py
class SelectControlById(OscalBaseModel):
    """
    Call a control by its ID
    """

    class Config:
        extra = Extra.forbid

    with_child_controls: Optional[WithChildControls] = 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¤
matching: List[trestle.oscal.profile.Matching] pydantic-field ¤
with_child_controls: WithChildControls 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=
        'A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined parameter elsewhere in this or other OSCAL instances. When referenced from another OSCAL instance, this identifier must be referenced in the context of the containing resource (e.g., import-profile). This id should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
        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[common.ParameterValue]] = Field(None)
    select: Optional[common.ParameterSelection] = None
Attributes¤
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 ¤

A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined parameter elsewhere in this or other OSCAL instances. When referenced from another OSCAL instance, this identifier must be referenced in the context of the containing resource (e.g., import-profile). This id should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.

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[trestle.oscal.common.ParameterValue] pydantic-field ¤
Config ¤
Source code in trestle/oscal/profile.py
class Config:
    extra = Extra.forbid

WithChildControls (Enum) ¤

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

Source code in trestle/oscal/profile.py
class WithChildControls(Enum):
    """
    When a control is included, whether its child (dependent) controls are also included.
    """

    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='', title='Match Controls by Identifier')
__root__: ConstrainedStrValue pydantic-field required special ¤

handler: python