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