Skip to content

trestle.oscal.profile

trestle.oscal.profile ¤

Attributes¤

Import = Union[Import1, Import2] module-attribute ¤

InsertControls = Union[InsertControls1, InsertControls2] module-attribute ¤

Merge = Union[Merge1, Merge2, Merge3] module-attribute ¤

SetParameter = common.SetParameter module-attribute ¤

Classes¤

Add ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Add[Add]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Add
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Add href "" "trestle.oscal.profile.Add"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

Specifies contents to be added into controls, in resolution.

Source code in trestle/oscal/profile.py
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
class Add(OscalBaseModel):
    """
    Specifies contents to be added into controls, in resolution.
    """

    class Config:
        extra = Extra.forbid

    position: PositionValidValues | None = Field(None, description='Where to add the new content with respect to the targeted element (beside it or inside it).', title='Position')
    by_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]*$') | None = Field(None, alias='by-id', description='Target location of the addition.', title='Reference by ID')
    title: constr(regex=r'^[^\n]+$') | None = Field(None, description='A name given to the control, which may be used by a tool for display and navigation.', title='Title Change')
    params: list[common.Parameter] | None = Field(None)
    props: list[common.Property] | None = Field(None)
    links: list[common.Link] | None = Field(None)
    parts: list[common.Part] | None = Field(None)
Attributes¤
by_id = Field(None, alias='by-id', description='Target location of the addition.', title='Reference by ID') class-attribute instance-attribute ¤
params = Field(None) class-attribute instance-attribute ¤
parts = Field(None) class-attribute instance-attribute ¤
position = Field(None, description='Where to add the new content with respect to the targeted element (beside it or inside it).', title='Position') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
title = Field(None, description='A name given to the control, which may be used by a tool for display and navigation.', title='Title Change') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
137
138
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Alter ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Alter[Alter]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Alter
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Alter href "" "trestle.oscal.profile.Alter"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
347
348
349
350
351
352
353
354
355
356
357
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: list[Remove] | None = Field(None)
    adds: list[Add] | None = Field(None)
Attributes¤
adds = Field(None) class-attribute instance-attribute ¤
control_id = 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') class-attribute instance-attribute ¤
removes = Field(None) class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
352
353
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

BooleanDatatype ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.BooleanDatatype[BooleanDatatype]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.BooleanDatatype
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.BooleanDatatype href "" "trestle.oscal.profile.BooleanDatatype"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            
Source code in trestle/oscal/profile.py
42
43
class BooleanDatatype(OscalBaseModel):
    __root__: bool = Field(..., description='A binary value that is either: true or false.')
Attributes¤
__root__ = Field(..., description='A binary value that is either: true or false.') class-attribute instance-attribute ¤

Custom ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Custom[Custom]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Custom
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Custom href "" "trestle.oscal.profile.Custom"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
250
251
252
253
254
255
256
257
258
259
class Custom(OscalBaseModel):
    """
    Provides an alternate grouping structure that selected controls will be placed in.
    """

    class Config:
        extra = Extra.forbid

    groups: list[Group1|Cat_Group2] | None = Field(None)
    insert_controls: list[InsertControls] | None = Field(None, alias='insert-controls')
Attributes¤
groups = Field(None) class-attribute instance-attribute ¤
insert_controls = Field(None, alias='insert-controls') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
255
256
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Group1 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Group1[Group1]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Group1
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Group1 href "" "trestle.oscal.profile.Group1"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

A group of controls, or of groups of controls.

Source code in trestle/oscal/profile.py
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
class Group1(OscalBaseModel):
    """
    A group of controls, or of groups of controls.
    """

    class Config:
        extra = Extra.forbid

    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]*$') | None = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier')
    class_: 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]*$') | None = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class')
    title: constr(regex=r'^[^\n]+$') = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title')
    params: list[common.Parameter] | None = Field(None)
    props: list[common.Property] | None = Field(None)
    links: list[common.Link] | None = Field(None)
    parts: list[common.Part] | None = Field(None)
    groups: list[Group1|Cat_Group2] | None = Field(None)



    @classmethod
    def __get_validators__(cls):
        yield cls._smart_union_validator

    @classmethod
    def _smart_union_validator(cls, v):
        """Smart validator that chooses Group1 if data has groups, otherwise tries Group2."""
        if isinstance(v, dict):
            # If dict has 'groups' field, use Group1
            if 'groups' in v:
                return cls.parse_obj(v)
            # If dict has 'controls' field, use Group2
            elif 'controls' in v:
                return Group2.parse_obj(v)
        # For non-dict or ambiguous cases, try Group1 first (this class)
        try:
            return cls.parse_obj(v) if isinstance(v, dict) else v
        except Exception:
            # If Group1 fails, try Group2
            return Group2.parse_obj(v) if isinstance(v, dict) else v
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class') class-attribute instance-attribute ¤
groups = Field(None) class-attribute instance-attribute ¤
id = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier') class-attribute instance-attribute ¤
params = Field(None) class-attribute instance-attribute ¤
parts = Field(None) class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
title = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
267
268
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤
Functions¤
__get_validators__() classmethod ¤
Source code in trestle/oscal/profile.py
281
282
283
@classmethod
def __get_validators__(cls):
    yield cls._smart_union_validator

Group2 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Group2[Group2]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Group2
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Group2 href "" "trestle.oscal.profile.Group2"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

A group of controls, or of groups of controls.

Source code in trestle/oscal/profile.py
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
class Group2(OscalBaseModel):
    """
    A group of controls, or of groups of controls.
    """

    class Config:
        extra = Extra.forbid

    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]*$') | None = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier')
    class_: 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]*$') | None = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class')
    title: constr(regex=r'^[^\n]+$') = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title')
    params: list[common.Parameter] | None = Field(None)
    props: list[common.Property] | None = Field(None)
    links: list[common.Link] | None = Field(None)
    parts: list[common.Part] | None = Field(None)
    insert_controls: list[InsertControls] | None = Field(None, alias='insert-controls')



    @classmethod
    def __get_validators__(cls):
        yield cls._smart_union_validator

    @classmethod
    def _smart_union_validator(cls, v):
        """Smart validator that chooses Group2 if data has controls, otherwise tries Group1."""
        if isinstance(v, dict):
            # If dict has 'controls' field, use Group2
            if 'controls' in v:
                return cls.parse_obj(v)
            # If dict has 'groups' field, use Group1
            elif 'groups' in v:
                return Group1.parse_obj(v)
        # For non-dict or ambiguous cases, try Group2 first (this class)
        try:
            return cls.parse_obj(v) if isinstance(v, dict) else v
        except Exception:
            # If Group2 fails, try Group1
            return Group1.parse_obj(v) if isinstance(v, dict) else v
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a sub-type or characterization of the group.', title='Group Class') class-attribute instance-attribute ¤
id = Field(None, description='Identifies the group for the purpose of cross-linking within the defining instance or from other instances that reference the catalog.', title='Group Identifier') class-attribute instance-attribute ¤
insert_controls = Field(None, alias='insert-controls') class-attribute instance-attribute ¤
params = Field(None) class-attribute instance-attribute ¤
parts = Field(None) class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
title = Field(..., description='A name given to the group, which may be used by a tool for display and navigation.', title='Group Title') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
214
215
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤
Functions¤
__get_validators__() classmethod ¤
Source code in trestle/oscal/profile.py
228
229
230
@classmethod
def __get_validators__(cls):
    yield cls._smart_union_validator

Import1 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Import1[Import1]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Import1
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Import1 href "" "trestle.oscal.profile.Import1"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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
149
150
151
152
153
154
155
156
157
158
159
class Import1(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 | None = Field(None, description='A resolvable URL reference to the base catalog or profile that this profile is tailoring.', title='Catalog or Profile Reference')
    include_all: common.IncludeAll = Field(..., alias='include-all')
    exclude_controls: list[SelectControl] | None = Field(None, alias='exclude-controls')
Attributes¤
exclude_controls = Field(None, alias='exclude-controls') class-attribute instance-attribute ¤
href = Field(None, description='A resolvable URL reference to the base catalog or profile that this profile is tailoring.', title='Catalog or Profile Reference') class-attribute instance-attribute ¤
include_all = Field(..., alias='include-all') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
154
155
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Import2 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Import2[Import2]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Import2
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Import2 href "" "trestle.oscal.profile.Import2"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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
162
163
164
165
166
167
168
169
170
171
172
class Import2(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 | None = Field(None, description='A resolvable URL reference to the base catalog or profile that this profile is tailoring.', title='Catalog or Profile Reference')
    include_controls: list[SelectControl] = Field(..., alias='include-controls')
    exclude_controls: list[SelectControl] | None = Field(None, alias='exclude-controls')
Attributes¤
exclude_controls = Field(None, alias='exclude-controls') class-attribute instance-attribute ¤
href = Field(None, description='A resolvable URL reference to the base catalog or profile that this profile is tailoring.', title='Catalog or Profile Reference') class-attribute instance-attribute ¤
include_controls = Field(..., alias='include-controls') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
167
168
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

InsertControls1 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.InsertControls1[InsertControls1]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.InsertControls1
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.InsertControls1 href "" "trestle.oscal.profile.InsertControls1"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

Specifies which controls to use in the containing context.

Source code in trestle/oscal/profile.py
179
180
181
182
183
184
185
186
187
188
189
class InsertControls1(OscalBaseModel):
    """
    Specifies which controls to use in the containing context.
    """

    class Config:
        extra = Extra.forbid

    order: 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]*$') | None = Field(None, description='A designation of how a selection of controls in a profile is to be ordered.', title='Order')
    include_all: common.IncludeAll = Field(..., alias='include-all')
    exclude_controls: list[SelectControl] | None = Field(None, alias='exclude-controls')
Attributes¤
exclude_controls = Field(None, alias='exclude-controls') class-attribute instance-attribute ¤
include_all = Field(..., alias='include-all') class-attribute instance-attribute ¤
order = Field(None, description='A designation of how a selection of controls in a profile is to be ordered.', title='Order') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
184
185
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

InsertControls2 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.InsertControls2[InsertControls2]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.InsertControls2
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.InsertControls2 href "" "trestle.oscal.profile.InsertControls2"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

Specifies which controls to use in the containing context.

Source code in trestle/oscal/profile.py
192
193
194
195
196
197
198
199
200
201
202
class InsertControls2(OscalBaseModel):
    """
    Specifies which controls to use in the containing context.
    """

    class Config:
        extra = Extra.forbid

    order: 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]*$') | None = Field(None, description='A designation of how a selection of controls in a profile is to be ordered.', title='Order')
    include_controls: list[SelectControl] = Field(..., alias='include-controls')
    exclude_controls: list[SelectControl] | None = Field(None, alias='exclude-controls')
Attributes¤
exclude_controls = Field(None, alias='exclude-controls') class-attribute instance-attribute ¤
include_controls = Field(..., alias='include-controls') class-attribute instance-attribute ¤
order = Field(None, description='A designation of how a selection of controls in a profile is to be ordered.', title='Order') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
197
198
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

ItemNameValidValues ¤

Bases: Enum


              flowchart TD
              trestle.oscal.profile.ItemNameValidValues[ItemNameValidValues]

              

              click trestle.oscal.profile.ItemNameValidValues href "" "trestle.oscal.profile.ItemNameValidValues"
            
Source code in trestle/oscal/profile.py
46
47
48
49
50
51
52
class ItemNameValidValues(Enum):
    param = 'param'
    prop = 'prop'
    link = 'link'
    part = 'part'
    mapping = 'mapping'
    map = 'map'
Attributes¤
map = 'map' class-attribute instance-attribute ¤
mapping = 'mapping' class-attribute instance-attribute ¤
param = 'param' class-attribute instance-attribute ¤
part = 'part' class-attribute instance-attribute ¤
prop = 'prop' class-attribute instance-attribute ¤

Merge1 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Merge1[Merge1]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Merge1
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Merge1 href "" "trestle.oscal.profile.Merge1"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
55
56
57
58
59
60
61
62
63
64
class Merge1(OscalBaseModel):
    """
    Provides structuring directives that instruct how controls are organized after profile resolution.
    """

    class Config:
        extra = Extra.forbid

    combine: dict[str, Any] | None = 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: dict[str, Any] = Field(..., description='Directs that controls appear without any grouping structure.', title='Flat Without Grouping')
Attributes¤
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') class-attribute instance-attribute ¤
flat = Field(..., description='Directs that controls appear without any grouping structure.', title='Flat Without Grouping') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
60
61
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Merge2 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Merge2[Merge2]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Merge2
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Merge2 href "" "trestle.oscal.profile.Merge2"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
303
304
305
306
307
308
309
310
311
312
class Merge2(OscalBaseModel):
    """
    Provides structuring directives that instruct how controls are organized after profile resolution.
    """

    class Config:
        extra = Extra.forbid

    combine: dict[str, Any] | None = 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')
    as_is: BooleanDatatype = Field(..., alias='as-is', description='Indicates that the controls selected should retain their original grouping as defined in the import source.', title='Group As-Is')
Attributes¤
as_is = Field(..., alias='as-is', description='Indicates that the controls selected should retain their original grouping as defined in the import source.', title='Group As-Is') class-attribute instance-attribute ¤
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') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
308
309
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Merge3 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Merge3[Merge3]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Merge3
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Merge3 href "" "trestle.oscal.profile.Merge3"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
315
316
317
318
319
320
321
322
323
324
class Merge3(OscalBaseModel):
    """
    Provides structuring directives that instruct how controls are organized after profile resolution.
    """

    class Config:
        extra = Extra.forbid

    combine: dict[str, Any] | None = 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')
    custom: Custom = Field(..., description='Provides an alternate grouping structure that selected controls will be placed in.', title='Custom Grouping')
Attributes¤
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') class-attribute instance-attribute ¤
custom = Field(..., description='Provides an alternate grouping structure that selected controls will be placed in.', title='Custom Grouping') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
320
321
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Model ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Model[Model]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Model
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Model href "" "trestle.oscal.profile.Model"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            
Source code in trestle/oscal/profile.py
393
394
class Model(OscalBaseModel):
    profile: Profile
Attributes¤
profile instance-attribute ¤

Modify ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Modify[Modify]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Modify
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Modify href "" "trestle.oscal.profile.Modify"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

Set parameters or amend controls in resolution.

Source code in trestle/oscal/profile.py
360
361
362
363
364
365
366
367
368
369
class Modify(OscalBaseModel):
    """
    Set parameters or amend controls in resolution.
    """

    class Config:
        extra = Extra.forbid

    set_parameters: list[SetParameters | SetParameters1] | None = Field(None, alias='set-parameters')
    alters: list[Alter] | None = Field(None)
Attributes¤
alters = Field(None) class-attribute instance-attribute ¤
set_parameters = Field(None, alias='set-parameters') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
365
366
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

PositionValidValues ¤

Bases: Enum


              flowchart TD
              trestle.oscal.profile.PositionValidValues[PositionValidValues]

              

              click trestle.oscal.profile.PositionValidValues href "" "trestle.oscal.profile.PositionValidValues"
            
Source code in trestle/oscal/profile.py
67
68
69
70
71
class PositionValidValues(Enum):
    before = 'before'
    after = 'after'
    starting = 'starting'
    ending = 'ending'
Attributes¤
after = 'after' class-attribute instance-attribute ¤
before = 'before' class-attribute instance-attribute ¤
ending = 'ending' class-attribute instance-attribute ¤
starting = 'starting' class-attribute instance-attribute ¤

Profile ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Profile[Profile]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Profile
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Profile href "" "trestle.oscal.profile.Profile"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

Each OSCAL profile is defined by a profile element.

Source code in trestle/oscal/profile.py
372
373
374
375
376
377
378
379
380
381
382
383
384
385
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: Merge | None = None
    modify: Modify | None = None
    back_matter: common.BackMatter | None = Field(None, alias='back-matter')
Attributes¤
back_matter = Field(None, alias='back-matter') class-attribute instance-attribute ¤
imports = Field(...) class-attribute instance-attribute ¤
merge = None class-attribute instance-attribute ¤
metadata instance-attribute ¤
modify = None class-attribute instance-attribute ¤
uuid = Field(..., description='Provides a globally unique means to identify a given profile instance.', title='Profile Universally Unique Identifier') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
377
378
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

Remove ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.Remove[Remove]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.Remove
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.Remove href "" "trestle.oscal.profile.Remove"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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
331
332
333
334
335
336
337
338
339
340
341
342
343
344
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: 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]*$') | None = Field(None, alias='by-name', description='Identify items remove by matching their assigned name.', title='Reference by (assigned) name')
    by_class: 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]*$') | None = Field(None, alias='by-class', description='Identify items to remove by matching their class.', title='Reference by class')
    by_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]*$') | None = Field(None, alias='by-id', description='Identify items to remove indicated by their id.', title='Reference by ID')
    by_item_name: ItemNameValidValues | None = 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: AnyUrl | None = 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')
    remarks: str | None = None
Attributes¤
by_class = Field(None, alias='by-class', description='Identify items to remove by matching their class.', title='Reference by class') class-attribute instance-attribute ¤
by_id = Field(None, alias='by-id', description='Identify items to remove indicated by their id.', title='Reference by ID') class-attribute instance-attribute ¤
by_item_name = 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') class-attribute instance-attribute ¤
by_name = Field(None, alias='by-name', description='Identify items remove by matching their assigned name.', title='Reference by (assigned) name') class-attribute instance-attribute ¤
by_ns = 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') class-attribute instance-attribute ¤
remarks = None class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
336
337
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SelectControl ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.SelectControl[SelectControl]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.SelectControl
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.SelectControl href "" "trestle.oscal.profile.SelectControl"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

Select a control or controls from an imported control set.

Source code in trestle/oscal/profile.py
74
75
76
77
78
79
80
81
82
83
84
class SelectControl(OscalBaseModel):
    """
    Select a control or controls from an imported control set.
    """

    class Config:
        extra = Extra.forbid

    with_child_controls: 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]*$') | None = 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: list[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]*$')] | None = Field(None, alias='with-ids')
    matching: list[common.Matching] | None = Field(None)
Attributes¤
matching = Field(None) class-attribute instance-attribute ¤
with_child_controls = 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') class-attribute instance-attribute ¤
with_ids = Field(None, alias='with-ids') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
79
80
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SetParameters ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.SetParameters[SetParameters]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.SetParameters
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.SetParameters href "" "trestle.oscal.profile.SetParameters"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
class SetParameters(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]*$') | None = Field(None, alias='param-id', description='An identifier for the parameter.', title='Parameter ID')
    class_: 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]*$') | None = Field(None, alias='class', description='A textual label that provides a characterization of the parameter.', title='Parameter Class')
    depends_on: 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]*$') | None = 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: list[common.Property] | None = Field(None)
    links: list[common.Link] | None = Field(None)
    label: constr(regex=r'^[^\n]+$') | None = 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: str | None = Field(None, description='Describes the purpose and use of a parameter.', title='Parameter Usage Description')
    constraints: list[common.ParameterConstraint] | None = Field(None)
    guidelines: list[common.ParameterGuideline] | None = Field(None)
    values: list[constr(regex=r'^\S(.*\S)?$')] | None = Field(None)
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a characterization of the parameter.', title='Parameter Class') class-attribute instance-attribute ¤
constraints = Field(None) class-attribute instance-attribute ¤
depends_on = 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') class-attribute instance-attribute ¤
guidelines = Field(None) class-attribute instance-attribute ¤
label = 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') class-attribute instance-attribute ¤
param_id = Field(None, alias='param-id', description='An identifier for the parameter.', title='Parameter ID') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
usage = Field(None, description='Describes the purpose and use of a parameter.', title='Parameter Usage Description') class-attribute instance-attribute ¤
values = Field(None) class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
92
93
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

SetParameters1 ¤

Bases: OscalBaseModel


              flowchart TD
              trestle.oscal.profile.SetParameters1[SetParameters1]
              trestle.core.base_model.OscalBaseModel[OscalBaseModel]
              trestle.core.trestle_base_model.TrestleBaseModel[TrestleBaseModel]

                              trestle.core.base_model.OscalBaseModel --> trestle.oscal.profile.SetParameters1
                                trestle.core.trestle_base_model.TrestleBaseModel --> trestle.core.base_model.OscalBaseModel
                



              click trestle.oscal.profile.SetParameters1 href "" "trestle.oscal.profile.SetParameters1"
              click trestle.core.base_model.OscalBaseModel href "" "trestle.core.base_model.OscalBaseModel"
              click trestle.core.trestle_base_model.TrestleBaseModel href "" "trestle.core.trestle_base_model.TrestleBaseModel"
            

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

Source code in trestle/oscal/profile.py
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
class SetParameters1(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]*$') | None = Field(None, alias='param-id', description='An identifier for the parameter.', title='Parameter ID')
    class_: 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]*$') | None = Field(None, alias='class', description='A textual label that provides a characterization of the parameter.', title='Parameter Class')
    depends_on: 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]*$') | None = 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: list[common.Property] | None = Field(None)
    links: list[common.Link] | None = Field(None)
    label: constr(regex=r'^[^\n]+$') | None = 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: str | None = Field(None, description='Describes the purpose and use of a parameter.', title='Parameter Usage Description')
    constraints: list[common.ParameterConstraint] | None = Field(None)
    guidelines: list[common.ParameterGuideline] | None = Field(None)
    select: common.ParameterSelection | None = None
Attributes¤
class_ = Field(None, alias='class', description='A textual label that provides a characterization of the parameter.', title='Parameter Class') class-attribute instance-attribute ¤
constraints = Field(None) class-attribute instance-attribute ¤
depends_on = 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') class-attribute instance-attribute ¤
guidelines = Field(None) class-attribute instance-attribute ¤
label = 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') class-attribute instance-attribute ¤
param_id = Field(None, alias='param-id', description='An identifier for the parameter.', title='Parameter ID') class-attribute instance-attribute ¤
props = Field(None) class-attribute instance-attribute ¤
select = None class-attribute instance-attribute ¤
usage = Field(None, description='Describes the purpose and use of a parameter.', title='Parameter Usage Description') class-attribute instance-attribute ¤
Classes¤
Config ¤
Source code in trestle/oscal/profile.py
112
113
class Config:
    extra = Extra.forbid
Attributes¤
extra = Extra.forbid class-attribute instance-attribute ¤

handler: python