common
trestle.oscal.common
¤
Classes¤
AddrLine (OscalBaseModel)
pydantic-model
¤
Address (OscalBaseModel)
pydantic-model
¤
A postal address for the location.
Source code in trestle/oscal/common.py
class Address(OscalBaseModel):
"""
A postal address for the location.
"""
class Config:
extra = Extra.forbid
type: 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='Indicates the type of address.', title='Address Type'
)
addr_lines: Optional[List[AddrLine]] = Field(None, alias='addr-lines')
city: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
description='City, town or geographical region for the mailing address.',
title='City',
)
state: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
description='State, province or analogous geographical region for mailing address',
title='State',
)
postal_code: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='postal-code',
description='Postal or ZIP code for mailing address',
title='Postal Code',
)
country: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
description='The ISO 3166-1 alpha-2 country code for the mailing address.',
title='Country Code',
)
Attributes¤
addr_lines: List[trestle.oscal.common.AddrLine]
pydantic-field
¤
city: ConstrainedStrValue
pydantic-field
¤
City, town or geographical region for the mailing address.
country: ConstrainedStrValue
pydantic-field
¤
The ISO 3166-1 alpha-2 country code for the mailing address.
postal_code: ConstrainedStrValue
pydantic-field
¤
Postal or ZIP code for mailing address
state: ConstrainedStrValue
pydantic-field
¤
State, province or analogous geographical region for mailing address
type: ConstrainedStrValue
pydantic-field
¤
Indicates the type of address.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
AssessmentPart (OscalBaseModel)
pydantic-model
¤
A partition of an assessment plan or results or a child of another part.
Source code in trestle/oscal/common.py
class AssessmentPart(OscalBaseModel):
"""
A partition of an assessment plan or results or a child of another part.
"""
class Config:
extra = Extra.forbid
uuid: Optional[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(
None,
description=
'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this part elsewhere in this or other OSCAL instances. The locally defined UUID of the part can be used to reference the data item locally or globally (e.g., in an ported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Part Identifier',
)
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]*$'
) = Field(
...,
description="A textual label that uniquely identifies the part's semantic type.",
title='Part Name',
)
ns: Optional[AnyUrl] = Field(
None,
description=
"A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.",
title='Part Namespace',
)
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 part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.",
title='Part Class',
)
title: Optional[str] = Field(
None,
description='A name given to the part, which may be used by a tool for display and navigation.',
title='Part Title',
)
props: Optional[List[Property]] = Field(None)
prose: Optional[str] = Field(
None,
description='Permits multiple paragraphs, lists, tables etc.',
title='Part Text',
)
parts: Optional[List[AssessmentPart]] = None
links: Optional[List[Link]] = Field(None)
Attributes¤
class_: ConstrainedStrValue
pydantic-field
¤
A textual label that provides a sub-type or characterization of the part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
name: ConstrainedStrValue
pydantic-field
required
¤
A textual label that uniquely identifies the part's semantic type.
ns: AnyUrl
pydantic-field
¤
A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.
parts: List[trestle.oscal.common.AssessmentPart]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
prose: str
pydantic-field
¤
Permits multiple paragraphs, lists, tables etc.
title: str
pydantic-field
¤
A name given to the part, which may be used by a tool for display and navigation.
uuid: ConstrainedStrValue
pydantic-field
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this part elsewhere in this or other OSCAL instances. The locally defined UUID of the part can be used to reference the data item locally or globally (e.g., in an ported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
AssessmentPlatform (OscalBaseModel)
pydantic-model
¤
Used to represent the toolset used to perform aspects of the assessment.
Source code in trestle/oscal/common.py
class AssessmentPlatform(OscalBaseModel):
"""
Used to represent the toolset used to perform aspects of the assessment.
"""
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 assessment platform elsewhere in this or other OSCAL instances. The locally defined UUID of the assessment platform can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Assessment Platform Universally Unique Identifier',
)
title: Optional[str] = Field(
None,
description='The title or name for the assessment platform.',
title='Assessment Platform Title',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
uses_components: Optional[List[UsesComponent]] = Field(None, alias='uses-components')
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
title: str
pydantic-field
¤
The title or name for the assessment platform.
uses_components: List[trestle.oscal.common.UsesComponent]
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this assessment platform elsewhere in this or other OSCAL instances. The locally defined UUID of the assessment platform can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
AssessmentSubject (OscalBaseModel)
pydantic-model
¤
Identifies system elements being assessed, such as components, inventory items, and locations. In the assessment plan, this identifies a planned assessment subject. In the assessment results this is an actual assessment subject, and reflects any changes from the plan. exactly what will be the focus of this assessment. Any subjects not identified in this way are out-of-scope.
Source code in trestle/oscal/common.py
class AssessmentSubject(OscalBaseModel):
"""
Identifies system elements being assessed, such as components, inventory items, and locations. In the assessment plan, this identifies a planned assessment subject. In the assessment results this is an actual assessment subject, and reflects any changes from the plan. exactly what will be the focus of this assessment. Any subjects not identified in this way are out-of-scope.
"""
class Config:
extra = Extra.forbid
type: 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=
'Indicates the type of assessment subject, such as a component, inventory, item, location, or party represented by this selection statement.',
title='Subject Type',
)
description: Optional[str] = Field(
None,
description='A human-readable description of the collection of subjects being included in this assessment.',
title='Include Subjects Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
include_all: Optional[IncludeAll] = Field(None, alias='include-all')
include_subjects: Optional[List[SelectSubjectById]] = Field(None, alias='include-subjects')
exclude_subjects: Optional[List[SelectSubjectById]] = Field(None, alias='exclude-subjects')
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
¤
A human-readable description of the collection of subjects being included in this assessment.
exclude_subjects: List[trestle.oscal.common.SelectSubjectById]
pydantic-field
¤
include_all: IncludeAll
pydantic-field
¤
include_subjects: List[trestle.oscal.common.SelectSubjectById]
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
type: ConstrainedStrValue
pydantic-field
required
¤
Indicates the type of assessment subject, such as a component, inventory, item, location, or party represented by this selection statement.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
AssessmentSubjectPlaceholder (OscalBaseModel)
pydantic-model
¤
Used when the assessment subjects will be determined as part of one or more other assessment activities. These assessment subjects will be recorded in the assessment results in the assessment log.
Source code in trestle/oscal/common.py
class AssessmentSubjectPlaceholder(OscalBaseModel):
"""
Used when the assessment subjects will be determined as part of one or more other assessment activities. These assessment subjects will be recorded in the assessment results in the assessment log.
"""
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 for a set of assessment subjects that will be identified by a task or an activity that is part of a task. The locally defined UUID of the assessment subject placeholder can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Assessment Subject Placeholder Universally Unique Identifier',
)
description: Optional[str] = Field(
None,
description='A human-readable description of intent of this assessment subject placeholder.',
title='Assessment Subject Placeholder Description',
)
sources: List[Source] = Field(...)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
¤
A human-readable description of intent of this assessment subject placeholder.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
sources: List[trestle.oscal.common.Source]
pydantic-field
required
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier for a set of assessment subjects that will be identified by a task or an activity that is part of a task. The locally defined UUID of the assessment subject placeholder can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
AssociatedActivity (OscalBaseModel)
pydantic-model
¤
Identifies an individual activity to be performed as part of a task.
Source code in trestle/oscal/common.py
class AssociatedActivity(OscalBaseModel):
"""
Identifies an individual activity to be performed as part of a task.
"""
class Config:
extra = Extra.forbid
activity_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(
...,
alias='activity-uuid',
description='A machine-oriented identifier reference to an activity defined in the list of activities.',
title='Activity Universally Unique Identifier Reference',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
responsible_roles: Optional[List[ResponsibleRole]] = Field(None, alias='responsible-roles')
subjects: List[AssessmentSubject] = Field(...)
remarks: Optional[Remarks] = None
Attributes¤
activity_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to an activity defined in the list of activities.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_roles: List[trestle.oscal.common.ResponsibleRole]
pydantic-field
¤
subjects: List[trestle.oscal.common.AssessmentSubject]
pydantic-field
required
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
AtFrequency (OscalBaseModel)
pydantic-model
¤
The task is intended to occur at the specified frequency.
Source code in trestle/oscal/common.py
class AtFrequency(OscalBaseModel):
"""
The task is intended to occur at the specified frequency.
"""
class Config:
extra = Extra.forbid
period: conint(
ge=1, multiple_of=1
) = Field(
...,
description='The task must occur after the specified period has elapsed.',
title='Period',
)
unit: Unit = Field(..., description='The unit of time for the period.', title='Time Unit')
AuthorizedPrivilege (OscalBaseModel)
pydantic-model
¤
Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.
Source code in trestle/oscal/common.py
class AuthorizedPrivilege(OscalBaseModel):
"""
Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.
"""
class Config:
extra = Extra.forbid
title: str = Field(
...,
description='A human readable name for the privilege.',
title='Privilege Title',
)
description: Optional[str] = Field(
None,
description="A summary of the privilege's purpose within the system.",
title='Privilege Description',
)
functions_performed: List[FunctionPerformed] = Field(..., alias='functions-performed')
Attributes¤
description: str
pydantic-field
¤
A summary of the privilege's purpose within the system.
functions_performed: List[trestle.oscal.common.FunctionPerformed]
pydantic-field
required
¤
title: str
pydantic-field
required
¤
A human readable name for the privilege.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
BackMatter (OscalBaseModel)
pydantic-model
¤
A collection of resources, which may be included directly or by reference.
Source code in trestle/oscal/common.py
class BackMatter(OscalBaseModel):
"""
A collection of resources, which may be included directly or by reference.
"""
class Config:
extra = Extra.forbid
resources: Optional[List[Resource]] = Field(None)
Base64 (OscalBaseModel)
pydantic-model
¤
The Base64 alphabet in RFC 2045 - aligned with XSD.
Source code in trestle/oscal/common.py
class Base64(OscalBaseModel):
"""
The Base64 alphabet in RFC 2045 - aligned with XSD.
"""
class Config:
extra = Extra.forbid
filename: Optional[str] = Field(
None,
description=
'Name of the file before it was encoded as Base64 to be embedded in a resource. This is the name that will be assigned to the file when the file is decoded.',
title='File Name',
)
media_type: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='media-type',
description=
'Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.',
title='Media Type',
)
value: str
Attributes¤
filename: str
pydantic-field
¤
Name of the file before it was encoded as Base64 to be embedded in a resource. This is the name that will be assigned to the file when the file is decoded.
media_type: ConstrainedStrValue
pydantic-field
¤
Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.
value: str
pydantic-field
required
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Citation (OscalBaseModel)
pydantic-model
¤
A citation consisting of end note text and optional structured bibliographic data.
Source code in trestle/oscal/common.py
class Citation(OscalBaseModel):
"""
A citation consisting of end note text and optional structured bibliographic data.
"""
class Config:
extra = Extra.forbid
text: str = Field(..., description='A line of citation text.', title='Citation Text')
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
ControlObjectiveSelection (OscalBaseModel)
pydantic-model
¤
Identifies the control objectives of the assessment. In the assessment plan, these are the planned objectives. In the assessment results, these are the assessed objectives, and reflects any changes from the plan.
Source code in trestle/oscal/common.py
class ControlObjectiveSelection(OscalBaseModel):
"""
Identifies the control objectives of the assessment. In the assessment plan, these are the planned objectives. In the assessment results, these are the assessed objectives, and reflects any changes from the plan.
"""
class Config:
extra = Extra.forbid
description: Optional[str] = Field(
None,
description='A human-readable description of this collection of control objectives.',
title='Control Objectives Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
include_all: Optional[IncludeAll] = Field(None, alias='include-all')
include_objectives: Optional[List[SelectObjectiveById]] = Field(None, alias='include-objectives')
exclude_objectives: Optional[List[SelectObjectiveById]] = Field(None, alias='exclude-objectives')
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
¤
A human-readable description of this collection of control objectives.
exclude_objectives: List[trestle.oscal.common.SelectObjectiveById]
pydantic-field
¤
include_all: IncludeAll
pydantic-field
¤
include_objectives: List[trestle.oscal.common.SelectObjectiveById]
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Dependency (OscalBaseModel)
pydantic-model
¤
Used to indicate that a task is dependent on another task.
Source code in trestle/oscal/common.py
class Dependency(OscalBaseModel):
"""
Used to indicate that a task is dependent on another task.
"""
class Config:
extra = Extra.forbid
task_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(
...,
alias='task-uuid',
description='A machine-oriented identifier reference to a unique task.',
title='Task Universally Unique Identifier Reference',
)
remarks: Optional[Remarks] = None
DocumentId (OscalBaseModel)
pydantic-model
¤
A document identifier qualified by an identifier scheme. A document identifier provides a globally unique identifier with a cross-instance scope that is used for a group of documents that are to be treated as different versions of the same document. If this element does not appear, or if the value of this element is empty, the value of "document-id" is equal to the value of the "uuid" flag of the top-level root element.
Source code in trestle/oscal/common.py
class DocumentId(OscalBaseModel):
"""
A document identifier qualified by an identifier scheme. A document identifier provides a globally unique identifier with a cross-instance scope that is used for a group of documents that are to be treated as different versions of the same document. If this element does not appear, or if the value of this element is empty, the value of "document-id" is equal to the value of the "uuid" flag of the top-level root element.
"""
class Config:
extra = Extra.forbid
scheme: Optional[AnyUrl] = Field(
None,
description=
'Qualifies the kind of document identifier using a URI. If the scheme is not provided the value of the element will be interpreted as a string of characters.',
title='Document Identification Scheme',
)
identifier: str
Attributes¤
identifier: str
pydantic-field
required
¤
scheme: AnyUrl
pydantic-field
¤
Qualifies the kind of document identifier using a URI. If the scheme is not provided the value of the element will be interpreted as a string of characters.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
EmailAddress (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class EmailAddress(OscalBaseModel):
__root__: EmailStr = Field(
...,
description='An email address as defined by RFC 5322 Section 3.4.1.',
title='Email Address',
)
ExternalId (OscalBaseModel)
pydantic-model
¤
An identifier for a person or organization using a designated scheme. e.g. an Open Researcher and Contributor ID (ORCID)
Source code in trestle/oscal/common.py
class ExternalId(OscalBaseModel):
"""
An identifier for a person or organization using a designated scheme. e.g. an Open Researcher and Contributor ID (ORCID)
"""
class Config:
extra = Extra.forbid
scheme: AnyUrl = Field(
...,
description='Indicates the type of external identifier.',
title='External Identifier Schema',
)
id: str
Facet (OscalBaseModel)
pydantic-model
¤
An individual characteristic that is part of a larger set produced by the same actor.
Source code in trestle/oscal/common.py
class Facet(OscalBaseModel):
"""
An individual characteristic that is part of a larger set produced by the same actor.
"""
class Config:
extra = Extra.forbid
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]*$'
) = Field(
...,
description='The name of the risk metric within the specified system.',
title='Facet Name',
)
system: AnyUrl = Field(
...,
description=
'Specifies the naming system under which this risk metric is organized, which allows for the same names to be used in different systems controlled by different parties. This avoids the potential of a name clash.',
title='Naming System',
)
value: constr(regex=r'^\S(.*\S)?$'
) = Field(..., description='Indicates the value of the facet.', title='Facet Value')
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
name: ConstrainedStrValue
pydantic-field
required
¤
The name of the risk metric within the specified system.
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
system: AnyUrl
pydantic-field
required
¤
Specifies the naming system under which this risk metric is organized, which allows for the same names to be used in different systems controlled by different parties. This avoids the potential of a name clash.
value: ConstrainedStrValue
pydantic-field
required
¤
Indicates the value of the facet.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
FunctionPerformed (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class FunctionPerformed(OscalBaseModel):
__root__: constr(regex=r'^\S(.*\S)?$') = Field(
...,
description='Describes a function performed for a given authorized privilege by this user class.',
title='Functions Performed',
)
Hash (OscalBaseModel)
pydantic-model
¤
A representation of a cryptographic digest generated over a resource using a specified hash algorithm.
Source code in trestle/oscal/common.py
class Hash(OscalBaseModel):
"""
A representation of a cryptographic digest generated over a resource using a specified hash algorithm.
"""
class Config:
extra = Extra.forbid
algorithm: constr(regex=r'^\S(.*\S)?$'
) = Field(..., description='Method by which a hash is derived', title='Hash algorithm')
value: str
HowMany (Enum)
¤
Describes the number of selections that must occur. Without this setting, only one value should be assumed to be permitted.
Source code in trestle/oscal/common.py
class HowMany(Enum):
"""
Describes the number of selections that must occur. Without this setting, only one value should be assumed to be permitted.
"""
one = 'one'
one_or_more = 'one-or-more'
IdentifiedSubject (OscalBaseModel)
pydantic-model
¤
Used to detail assessment subjects that were identfied by this task.
Source code in trestle/oscal/common.py
class IdentifiedSubject(OscalBaseModel):
"""
Used to detail assessment subjects that were identfied by this task.
"""
class Config:
extra = Extra.forbid
subject_placeholder_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(
...,
alias='subject-placeholder-uuid',
description=
'A machine-oriented identifier reference to a unique assessment subject placeholder defined by this task.',
title='Assessment Subject Placeholder Universally Unique Identifier Reference',
)
subjects: List[AssessmentSubject] = Field(...)
Attributes¤
subject_placeholder_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a unique assessment subject placeholder defined by this task.
subjects: List[trestle.oscal.common.AssessmentSubject]
pydantic-field
required
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
ImplementationStatus (OscalBaseModel)
pydantic-model
¤
Indicates the degree to which the a given control is implemented.
Source code in trestle/oscal/common.py
class ImplementationStatus(OscalBaseModel):
"""
Indicates the degree to which the a given control is implemented.
"""
class Config:
extra = Extra.forbid
state: 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='Identifies the implementation status of the control or control objective.',
title='Implementation State',
)
remarks: Optional[Remarks] = None
ImplementedComponent (OscalBaseModel)
pydantic-model
¤
The set of components that are implemented in a given system inventory item.
Source code in trestle/oscal/common.py
class ImplementedComponent(OscalBaseModel):
"""
The set of components that are implemented in a given system inventory item.
"""
class Config:
extra = Extra.forbid
component_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(
...,
alias='component-uuid',
description=
'A machine-oriented identifier reference to a component that is implemented as part of an inventory item.',
title='Component Universally Unique Identifier Reference',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
responsible_parties: Optional[List[ResponsibleParty]] = Field(None, alias='responsible-parties')
remarks: Optional[Remarks] = None
Attributes¤
component_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a component that is implemented as part of an inventory item.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_parties: List[trestle.oscal.common.ResponsibleParty]
pydantic-field
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
ImportSsp (OscalBaseModel)
pydantic-model
¤
Used by the assessment plan and POA&M to import information about the system.
Source code in trestle/oscal/common.py
class ImportSsp(OscalBaseModel):
"""
Used by the assessment plan and POA&M to import information about the system.
"""
class Config:
extra = Extra.forbid
href: str = Field(
...,
description='A resolvable URL reference to the system security plan for the system being assessed.',
title='System Security Plan Reference',
)
remarks: Optional[Remarks] = None
IncludeAll (OscalBaseModel)
pydantic-model
¤
Include all controls from the imported catalog or profile resources.
Source code in trestle/oscal/common.py
class IncludeAll(OscalBaseModel):
"""
Include all controls from the imported catalog or profile resources.
"""
pass
class Config:
extra = Extra.forbid
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
InventoryItem (OscalBaseModel)
pydantic-model
¤
A single managed inventory item within the system.
Source code in trestle/oscal/common.py
class InventoryItem(OscalBaseModel):
"""
A single managed inventory item within the system.
"""
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 inventory item elsewhere in this or other OSCAL instances. The locally defined UUID of the inventory item can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Inventory Item Universally Unique Identifier',
)
description: str = Field(
...,
description='A summary of the inventory item stating its purpose within the system.',
title='Inventory Item Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
responsible_parties: Optional[List[ResponsibleParty]] = Field(None, alias='responsible-parties')
implemented_components: Optional[List[ImplementedComponent]] = Field(None, alias='implemented-components')
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
required
¤
A summary of the inventory item stating its purpose within the system.
implemented_components: List[trestle.oscal.common.ImplementedComponent]
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_parties: List[trestle.oscal.common.ResponsibleParty]
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this inventory item elsewhere in this or other OSCAL instances. The locally defined UUID of the inventory item can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
LastModified (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class LastModified(OscalBaseModel):
__root__: datetime = Field(
...,
description=
'The date and time the document was last modified. The date-time value must be formatted according to RFC 3339 with full time and time zone included.',
title='Last Modified Timestamp',
)
Link (OscalBaseModel)
pydantic-model
¤
A reference to a local or remote resource
Source code in trestle/oscal/common.py
class Link(OscalBaseModel):
"""
A reference to a local or remote resource
"""
class Config:
extra = Extra.forbid
href: str = Field(
...,
description='A resolvable URL reference to a resource.',
title='Hypertext Reference',
)
rel: 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=
"Describes the type of relationship provided by the link. This can be an indicator of the link's purpose.",
title='Relation',
)
media_type: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='media-type',
description=
'Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.',
title='Media Type',
)
text: Optional[str] = Field(
None,
description='A textual label to associate with the link, which may be used for presentation in a tool.',
title='Link Text',
)
Attributes¤
href: str
pydantic-field
required
¤
A resolvable URL reference to a resource.
media_type: ConstrainedStrValue
pydantic-field
¤
Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.
rel: ConstrainedStrValue
pydantic-field
¤
Describes the type of relationship provided by the link. This can be an indicator of the link's purpose.
text: str
pydantic-field
¤
A textual label to associate with the link, which may be used for presentation in a tool.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
LocalObjective (OscalBaseModel)
pydantic-model
¤
A local definition of a control objective for this assessment. Uses catalog syntax for control objective and assessment actions.
Source code in trestle/oscal/common.py
class LocalObjective(OscalBaseModel):
"""
A local definition of a control objective for this assessment. Uses catalog syntax for control objective and assessment actions.
"""
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',
)
description: Optional[str] = Field(
None,
description='A human-readable description of this control objective.',
title='Objective Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
parts: List[Part] = Field(...)
remarks: Optional[Remarks] = None
Attributes¤
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).
description: str
pydantic-field
¤
A human-readable description of this control objective.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
parts: List[trestle.oscal.common.Part]
pydantic-field
required
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Location (OscalBaseModel)
pydantic-model
¤
A location, with associated metadata that can be referenced.
Source code in trestle/oscal/common.py
class Location(OscalBaseModel):
"""
A location, with associated metadata that can be referenced.
"""
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 defined location elsewhere in this or other OSCAL instances. The locally defined UUID of the location can be used to reference the data item locally or globally (e.g., from an importing OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Location Universally Unique Identifier',
)
title: Optional[str] = Field(
None,
description='A name given to the location, which may be used by a tool for display and navigation.',
title='Location Title',
)
address: Address
email_addresses: Optional[List[EmailAddress]] = Field(None, alias='email-addresses')
telephone_numbers: Optional[List[TelephoneNumber]] = Field(None, alias='telephone-numbers')
urls: Optional[List[AnyUrl]] = Field(None)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
address: Address
pydantic-field
required
¤
email_addresses: List[trestle.oscal.common.EmailAddress]
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
telephone_numbers: List[trestle.oscal.common.TelephoneNumber]
pydantic-field
¤
title: str
pydantic-field
¤
A name given to the location, which may be used by a tool for display and navigation.
urls: List[pydantic.networks.AnyUrl]
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this defined location elsewhere in this or other OSCAL instances. The locally defined UUID of the location can be used to reference the data item locally or globally (e.g., from an importing OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
LocationUuid (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class LocationUuid(OscalBaseModel):
__root__: 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 identifier reference to a location defined in the metadata section of this or another OSCAL instance. The UUID of the location in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).',
title='Location Reference',
)
Attributes¤
__root__: ConstrainedStrValue
pydantic-field
required
special
¤
A machine-oriented identifier reference to a location defined in the metadata section of this or another OSCAL instance. The UUID of the location in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).
LoggedBy (OscalBaseModel)
pydantic-model
¤
Used to indicate who created a log entry in what role.
Source code in trestle/oscal/common.py
class LoggedBy(OscalBaseModel):
"""
Used to indicate who created a log entry in what role.
"""
class Config:
extra = Extra.forbid
party_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(
...,
alias='party-uuid',
description='A machine-oriented identifier reference to the party who is making the log entry.',
title='Party UUID Reference',
)
role_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='role-id',
description='A point to the role-id of the role in which the party is making the log entry.',
title='Actor Role',
)
Attributes¤
party_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to the party who is making the log entry.
role_id: ConstrainedStrValue
pydantic-field
¤
A point to the role-id of the role in which the party is making the log entry.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
MemberOfOrganization (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class MemberOfOrganization(OscalBaseModel):
__root__: 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 identifier reference to another party (person or organization) that this subject is associated with. The UUID of the party in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).',
title='Organizational Affiliation',
)
Attributes¤
__root__: ConstrainedStrValue
pydantic-field
required
special
¤
A machine-oriented identifier reference to another party (person or organization) that this subject is associated with. The UUID of the party in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).
Metadata (OscalBaseModel)
pydantic-model
¤
Provides information about the publication and availability of the containing document.
Source code in trestle/oscal/common.py
class Metadata(OscalBaseModel):
"""
Provides information about the publication and availability of the containing document.
"""
class Config:
extra = Extra.forbid
title: str = Field(
...,
description='A name given to the document, which may be used by a tool for display and navigation.',
title='Document Title',
)
published: Optional[Published] = None
last_modified: LastModified = Field(..., alias='last-modified')
version: Version
oscal_version: OscalVersion = Field(..., alias='oscal-version')
revisions: Optional[List[Revision]] = Field(None)
document_ids: Optional[List[DocumentId]] = Field(None, alias='document-ids')
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
roles: Optional[List[Role]] = Field(None)
locations: Optional[List[Location]] = Field(None)
parties: Optional[List[Party]] = Field(None)
responsible_parties: Optional[List[ResponsibleParty]] = Field(None, alias='responsible-parties')
remarks: Optional[Remarks] = None
Attributes¤
document_ids: List[trestle.oscal.common.DocumentId]
pydantic-field
¤
last_modified: LastModified
pydantic-field
required
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
locations: List[trestle.oscal.common.Location]
pydantic-field
¤
oscal_version: OscalVersion
pydantic-field
required
¤
parties: List[trestle.oscal.common.Party]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
published: Published
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_parties: List[trestle.oscal.common.ResponsibleParty]
pydantic-field
¤
revisions: List[trestle.oscal.common.Revision]
pydantic-field
¤
roles: List[trestle.oscal.common.Role]
pydantic-field
¤
title: str
pydantic-field
required
¤
A name given to the document, which may be used by a tool for display and navigation.
version: Version
pydantic-field
required
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
MitigatingFactor (OscalBaseModel)
pydantic-model
¤
Describes an existing mitigating factor that may affect the overall determination of the risk, with an optional link to an implementation statement in the SSP.
Source code in trestle/oscal/common.py
class MitigatingFactor(OscalBaseModel):
"""
Describes an existing mitigating factor that may affect the overall determination of the risk, with an optional link to an implementation statement in the SSP.
"""
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 mitigating factor elsewhere in this or other OSCAL instances. The locally defined UUID of the mitigating factor can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Mitigating Factor Universally Unique Identifier',
)
implementation_uuid: Optional[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(
None,
alias='implementation-uuid',
description=
'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this implementation statement elsewhere in this or other OSCAL instancess. The locally defined UUID of the implementation statement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Implementation UUID',
)
description: str = Field(
...,
description='A human-readable description of this mitigating factor.',
title='Mitigating Factor Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
subjects: Optional[List[SubjectReference]] = Field(None)
Attributes¤
description: str
pydantic-field
required
¤
A human-readable description of this mitigating factor.
implementation_uuid: ConstrainedStrValue
pydantic-field
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this implementation statement elsewhere in this or other OSCAL instancess. The locally defined UUID of the implementation statement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
subjects: List[trestle.oscal.common.SubjectReference]
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this mitigating factor elsewhere in this or other OSCAL instances. The locally defined UUID of the mitigating factor can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
OnDate (OscalBaseModel)
pydantic-model
¤
The task is intended to occur on the specified date.
Source code in trestle/oscal/common.py
class OnDate(OscalBaseModel):
"""
The task is intended to occur on the specified date.
"""
class Config:
extra = Extra.forbid
date: datetime = Field(
...,
description='The task must occur on the specified date.',
title='On Date Condition',
)
OriginActor (OscalBaseModel)
pydantic-model
¤
The actor that produces an observation, a finding, or a risk. One or more actor type can be used to specify a person that is using a tool.
Source code in trestle/oscal/common.py
class OriginActor(OscalBaseModel):
"""
The actor that produces an observation, a finding, or a risk. One or more actor type can be used to specify a person that is using a tool.
"""
class Config:
extra = Extra.forbid
type: Type3 = Field(..., description='The kind of actor.', title='Actor Type')
actor_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(
...,
alias='actor-uuid',
description='A machine-oriented identifier reference to the tool or person based on the associated type.',
title='Actor Universally Unique Identifier Reference',
)
role_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='role-id',
description='For a party, this can optionally be used to specify the role the actor was performing.',
title='Actor Role',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
Attributes¤
actor_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to the tool or person based on the associated type.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
role_id: ConstrainedStrValue
pydantic-field
¤
For a party, this can optionally be used to specify the role the actor was performing.
type: Type3
pydantic-field
required
¤
The kind of actor.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
OscalVersion (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class OscalVersion(OscalBaseModel):
__root__: constr(regex=r'^\S(.*\S)?$') = Field(
...,
description='The OSCAL model version the document was authored against.',
title='OSCAL version',
)
@validator('__root__')
def oscal_version_is_valid(cls, v):
p = re.compile(OSCAL_VERSION_REGEX)
matched = p.match(v)
if matched is None:
raise ValueError(f'OSCAL version: {v} is not supported, use {OSCAL_VERSION} instead.')
return v
Attributes¤
__root__: ConstrainedStrValue
pydantic-field
required
special
¤
The OSCAL model version the document was authored against.
oscal_version_is_valid(v)
classmethod
¤
Source code in trestle/oscal/common.py
@validator('__root__')
def oscal_version_is_valid(cls, v):
p = re.compile(OSCAL_VERSION_REGEX)
matched = p.match(v)
if matched is None:
raise ValueError(f'OSCAL version: {v} is not supported, use {OSCAL_VERSION} instead.')
return v
Parameter (OscalBaseModel)
pydantic-model
¤
Parameters provide a mechanism for the dynamic assignment of value(s) in a control.
Source code in trestle/oscal/common.py
class Parameter(OscalBaseModel):
"""
Parameters provide a mechanism for the dynamic assignment of value(s) in a control.
"""
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]*$'
) = Field(
...,
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 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 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[Property]] = Field(None)
links: Optional[List[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[ParameterConstraint]] = Field(None)
guidelines: Optional[List[ParameterGuideline]] = Field(None)
values: Optional[List[ParameterValue]] = Field(None)
select: Optional[ParameterSelection] = None
remarks: Optional[Remarks] = 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
¤
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.
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
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
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/common.py
class Config:
extra = Extra.forbid
ParameterConstraint (OscalBaseModel)
pydantic-model
¤
A formal or informal expression of a constraint or test
Source code in trestle/oscal/common.py
class ParameterConstraint(OscalBaseModel):
"""
A formal or informal expression of a constraint or test
"""
class Config:
extra = Extra.forbid
description: Optional[str] = Field(
None,
description='A textual summary of the constraint to be applied.',
title='Constraint Description',
)
tests: Optional[List[Test]] = Field(None)
ParameterGuideline (OscalBaseModel)
pydantic-model
¤
A prose statement that provides a recommendation for the use of a parameter.
Source code in trestle/oscal/common.py
class ParameterGuideline(OscalBaseModel):
"""
A prose statement that provides a recommendation for the use of a parameter.
"""
class Config:
extra = Extra.forbid
prose: str = Field(
...,
description='Prose permits multiple paragraphs, lists, tables etc.',
title='Guideline Text',
)
ParameterSelection (OscalBaseModel)
pydantic-model
¤
Presenting a choice among alternatives
Source code in trestle/oscal/common.py
class ParameterSelection(OscalBaseModel):
"""
Presenting a choice among alternatives
"""
class Config:
extra = Extra.forbid
how_many: Optional[HowMany] = Field(
None,
alias='how-many',
description=
'Describes the number of selections that must occur. Without this setting, only one value should be assumed to be permitted.',
title='Parameter Cardinality',
)
choice: Optional[List[str]] = Field(None)
ParameterValue (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class ParameterValue(OscalBaseModel):
__root__: constr(regex=r'^\S(.*\S)?$'
) = Field(..., description='A parameter value or set of values.', title='Parameter Value')
Part (OscalBaseModel)
pydantic-model
¤
A partition of a control's definition or a child of another part.
Source code in trestle/oscal/common.py
class Part(OscalBaseModel):
"""
A partition of a control's definition or a child of another part.
"""
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 part 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='Part Identifier',
)
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]*$'
) = Field(
...,
description="A textual label that uniquely identifies the part's semantic type.",
title='Part Name',
)
ns: Optional[AnyUrl] = Field(
None,
description=
"A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.",
title='Part Namespace',
)
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 part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.",
title='Part Class',
)
title: Optional[str] = Field(
None,
description='A name given to the part, which may be used by a tool for display and navigation.',
title='Part Title',
)
props: Optional[List[Property]] = Field(None)
prose: Optional[str] = Field(
None,
description='Permits multiple paragraphs, lists, tables etc.',
title='Part Text',
)
parts: Optional[List[Part]] = None
links: Optional[List[Link]] = Field(None)
Attributes¤
class_: ConstrainedStrValue
pydantic-field
¤
A textual label that provides a sub-type or characterization of the part's name. This can be used to further distinguish or discriminate between the semantics of multiple parts of the same control with the same name and ns.
id: ConstrainedStrValue
pydantic-field
¤
A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined part 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.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
name: ConstrainedStrValue
pydantic-field
required
¤
A textual label that uniquely identifies the part's semantic type.
ns: AnyUrl
pydantic-field
¤
A namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.
parts: List[trestle.oscal.common.Part]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
prose: str
pydantic-field
¤
Permits multiple paragraphs, lists, tables etc.
title: str
pydantic-field
¤
A name given to the part, which may be used by a tool for display and navigation.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Party (OscalBaseModel)
pydantic-model
¤
A responsible entity which is either a person or an organization.
Source code in trestle/oscal/common.py
class Party(OscalBaseModel):
"""
A responsible entity which is either a person or an organization.
"""
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 defined party elsewhere in this or other OSCAL instances. The locally defined UUID of the party can be used to reference the data item locally or globally (e.g., from an importing OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Party Universally Unique Identifier',
)
type: Type = Field(
...,
description='A category describing the kind of party the object describes.',
title='Party Type',
)
name: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
description='The full name of the party. This is typically the legal name associated with the party.',
title='Party Name',
)
short_name: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='short-name',
description='A short common name, abbreviation, or acronym for the party.',
title='Party Short Name',
)
external_ids: Optional[List[ExternalId]] = Field(None, alias='external-ids')
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
email_addresses: Optional[List[EmailAddress]] = Field(None, alias='email-addresses')
telephone_numbers: Optional[List[TelephoneNumber]] = Field(None, alias='telephone-numbers')
addresses: Optional[List[Address]] = Field(None)
location_uuids: Optional[List[LocationUuid]] = Field(None, alias='location-uuids')
member_of_organizations: Optional[List[MemberOfOrganization]] = Field(None, alias='member-of-organizations')
remarks: Optional[Remarks] = None
Attributes¤
addresses: List[trestle.oscal.common.Address]
pydantic-field
¤
email_addresses: List[trestle.oscal.common.EmailAddress]
pydantic-field
¤
external_ids: List[trestle.oscal.common.ExternalId]
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
location_uuids: List[trestle.oscal.common.LocationUuid]
pydantic-field
¤
member_of_organizations: List[trestle.oscal.common.MemberOfOrganization]
pydantic-field
¤
name: ConstrainedStrValue
pydantic-field
¤
The full name of the party. This is typically the legal name associated with the party.
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
short_name: ConstrainedStrValue
pydantic-field
¤
A short common name, abbreviation, or acronym for the party.
telephone_numbers: List[trestle.oscal.common.TelephoneNumber]
pydantic-field
¤
type: Type
pydantic-field
required
¤
A category describing the kind of party the object describes.
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this defined party elsewhere in this or other OSCAL instances. The locally defined UUID of the party can be used to reference the data item locally or globally (e.g., from an importing OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
PartyUuid (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class PartyUuid(OscalBaseModel):
__root__: 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 identifier reference to another party defined in metadata. The UUID of the party in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).',
title='Party Reference',
)
Attributes¤
__root__: ConstrainedStrValue
pydantic-field
required
special
¤
A machine-oriented identifier reference to another party defined in metadata. The UUID of the party in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).
PortRange (OscalBaseModel)
pydantic-model
¤
Where applicable this is the IPv4 port range on which the service operates.
Source code in trestle/oscal/common.py
class PortRange(OscalBaseModel):
"""
Where applicable this is the IPv4 port range on which the service operates.
"""
class Config:
extra = Extra.forbid
start: Optional[conint(ge=0, multiple_of=1)] = Field(
None,
description='Indicates the starting port number in a port range',
title='Start',
)
end: Optional[conint(ge=0, multiple_of=1)] = Field(
None,
description='Indicates the ending port number in a port range',
title='End',
)
transport: Optional[Transport] = Field(None, description='Indicates the transport type.', title='Transport')
Attributes¤
end: ConstrainedIntValue
pydantic-field
¤
Indicates the ending port number in a port range
start: ConstrainedIntValue
pydantic-field
¤
Indicates the starting port number in a port range
transport: Transport
pydantic-field
¤
Indicates the transport type.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Property (OscalBaseModel)
pydantic-model
¤
An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair. The value of a property is a simple scalar value, which may be expressed as a list of values.
Source code in trestle/oscal/common.py
class Property(OscalBaseModel):
"""
An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair. The value of a property is a simple scalar value, which may be expressed as a list of values.
"""
class Config:
extra = Extra.forbid
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]*$'
) = Field(
...,
description=
"A textual label that uniquely identifies a specific attribute, characteristic, or quality of the property's containing object.",
title='Property Name',
)
uuid: Optional[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(
None,
description=
'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this defined property elsewhere in this or other OSCAL instances. This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Property Universally Unique Identifier',
)
ns: Optional[AnyUrl] = Field(
None,
description=
"A namespace qualifying the property's name. This allows different organizations to associate distinct semantics with the same name.",
title='Property Namespace',
)
value: constr(regex=r'^\S(.*\S)?$') = Field(
...,
description='Indicates the value of the attribute, characteristic, or quality.',
title='Property Value',
)
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 property's name. This can be used to further distinguish or discriminate between the semantics of multiple properties of the same object with the same name and ns.",
title='Property Class',
)
remarks: Optional[Remarks] = None
Attributes¤
class_: ConstrainedStrValue
pydantic-field
¤
A textual label that provides a sub-type or characterization of the property's name. This can be used to further distinguish or discriminate between the semantics of multiple properties of the same object with the same name and ns.
name: ConstrainedStrValue
pydantic-field
required
¤
A textual label that uniquely identifies a specific attribute, characteristic, or quality of the property's containing object.
ns: AnyUrl
pydantic-field
¤
A namespace qualifying the property's name. This allows different organizations to associate distinct semantics with the same name.
remarks: Remarks
pydantic-field
¤
uuid: ConstrainedStrValue
pydantic-field
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this defined property elsewhere in this or other OSCAL instances. This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
value: ConstrainedStrValue
pydantic-field
required
¤
Indicates the value of the attribute, characteristic, or quality.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Protocol (OscalBaseModel)
pydantic-model
¤
Information about the protocol used to provide a service.
Source code in trestle/oscal/common.py
class Protocol(OscalBaseModel):
"""
Information about the protocol used to provide a service.
"""
class Config:
extra = Extra.forbid
uuid: Optional[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(
None,
description=
'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this service protocol information elsewhere in this or other OSCAL instances. The locally defined UUID of the service protocol can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Service Protocol Information Universally Unique Identifier',
)
name: constr(regex=r'^\S(.*\S)?$') = Field(
...,
description=
'The common name of the protocol, which should be the appropriate "service name" from the IANA Service Name and Transport Protocol Port Number Registry.',
title='Protocol Name',
)
title: Optional[str] = Field(
None,
description='A human readable name for the protocol (e.g., Transport Layer Security).',
title='Protocol Title',
)
port_ranges: Optional[List[PortRange]] = Field(None, alias='port-ranges')
Attributes¤
name: ConstrainedStrValue
pydantic-field
required
¤
The common name of the protocol, which should be the appropriate "service name" from the IANA Service Name and Transport Protocol Port Number Registry.
port_ranges: List[trestle.oscal.common.PortRange]
pydantic-field
¤
title: str
pydantic-field
¤
A human readable name for the protocol (e.g., Transport Layer Security).
uuid: ConstrainedStrValue
pydantic-field
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this service protocol information elsewhere in this or other OSCAL instances. The locally defined UUID of the service protocol can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Published (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class Published(OscalBaseModel):
__root__: datetime = Field(
...,
description=
'The date and time the document was published. The date-time value must be formatted according to RFC 3339 with full time and time zone included.',
title='Publication Timestamp',
)
RelatedObservation1 (OscalBaseModel)
pydantic-model
¤
Relates the finding to a set of referenced observations that were used to determine the finding.
Source code in trestle/oscal/common.py
class RelatedObservation1(OscalBaseModel):
"""
Relates the finding to a set of referenced observations that were used to determine the finding.
"""
class Config:
extra = Extra.forbid
observation_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(
...,
alias='observation-uuid',
description='A machine-oriented identifier reference to an observation defined in the list of observations.',
title='Observation Universally Unique Identifier Reference',
)
RelatedResponse (OscalBaseModel)
pydantic-model
¤
Identifies an individual risk response that this log entry is for.
Source code in trestle/oscal/common.py
class RelatedResponse(OscalBaseModel):
"""
Identifies an individual risk response that this log entry is for.
"""
class Config:
extra = Extra.forbid
response_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(
...,
alias='response-uuid',
description='A machine-oriented identifier reference to a unique risk response.',
title='Response Universally Unique Identifier Reference',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
related_tasks: Optional[List[RelatedTask]] = Field(None, alias='related-tasks')
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
related_tasks: List[trestle.oscal.common.RelatedTask]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
response_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a unique risk response.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
RelatedRisk (OscalBaseModel)
pydantic-model
¤
Relates the finding to a set of referenced risks that were used to determine the finding.
Source code in trestle/oscal/common.py
class RelatedRisk(OscalBaseModel):
"""
Relates the finding to a set of referenced risks that were used to determine the finding.
"""
class Config:
extra = Extra.forbid
risk_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(
...,
alias='risk-uuid',
description='A machine-oriented identifier reference to a risk defined in the list of risks.',
title='Risk Universally Unique Identifier Reference',
)
RelatedTask (OscalBaseModel)
pydantic-model
¤
Identifies an individual task for which the containing object is a consequence of.
Source code in trestle/oscal/common.py
class RelatedTask(OscalBaseModel):
"""
Identifies an individual task for which the containing object is a consequence of.
"""
class Config:
extra = Extra.forbid
task_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(
...,
alias='task-uuid',
description='A machine-oriented identifier reference to a unique task.',
title='Task Universally Unique Identifier Reference',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
responsible_parties: Optional[List[ResponsibleParty]] = Field(None, alias='responsible-parties')
subjects: Optional[List[AssessmentSubject]] = Field(None)
identified_subject: Optional[IdentifiedSubject] = Field(
None,
alias='identified-subject',
description='Used to detail assessment subjects that were identfied by this task.',
title='Identified Subject',
)
remarks: Optional[Remarks] = None
Attributes¤
identified_subject: IdentifiedSubject
pydantic-field
¤
Used to detail assessment subjects that were identfied by this task.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_parties: List[trestle.oscal.common.ResponsibleParty]
pydantic-field
¤
subjects: List[trestle.oscal.common.AssessmentSubject]
pydantic-field
¤
task_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a unique task.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
RelevantEvidence (OscalBaseModel)
pydantic-model
¤
Links this observation to relevant evidence.
Source code in trestle/oscal/common.py
class RelevantEvidence(OscalBaseModel):
"""
Links this observation to relevant evidence.
"""
class Config:
extra = Extra.forbid
href: Optional[str] = Field(
None,
description='A resolvable URL reference to relevant evidence.',
title='Relevant Evidence Reference',
)
description: str = Field(
...,
description='A human-readable description of this evidence.',
title='Relevant Evidence Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
required
¤
A human-readable description of this evidence.
href: str
pydantic-field
¤
A resolvable URL reference to relevant evidence.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Remarks (OscalBaseModel)
pydantic-model
¤
RequiredAsset (OscalBaseModel)
pydantic-model
¤
Identifies an asset required to achieve remediation.
Source code in trestle/oscal/common.py
class RequiredAsset(OscalBaseModel):
"""
Identifies an asset required to achieve remediation.
"""
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 required asset elsewhere in this or other OSCAL instances. The locally defined UUID of the asset can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Required Universally Unique Identifier',
)
subjects: Optional[List[SubjectReference]] = Field(None)
title: Optional[str] = Field(
None,
description='The title for this required asset.',
title='Title for Required Asset',
)
description: str = Field(
...,
description='A human-readable description of this required asset.',
title='Description of Required Asset',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
required
¤
A human-readable description of this required asset.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
subjects: List[trestle.oscal.common.SubjectReference]
pydantic-field
¤
title: str
pydantic-field
¤
The title for this required asset.
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this required asset elsewhere in this or other OSCAL instances. The locally defined UUID of the asset can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Resource (OscalBaseModel)
pydantic-model
¤
A resource associated with content in the containing document. A resource may be directly included in the document base64 encoded or may point to one or more equivalent internet resources.
Source code in trestle/oscal/common.py
class Resource(OscalBaseModel):
"""
A resource associated with content in the containing document. A resource may be directly included in the document base64 encoded or may point to one or more equivalent internet resources.
"""
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 defined resource elsewhere in this or other OSCAL instances. This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Resource Universally Unique Identifier',
)
title: Optional[str] = Field(
None,
description='A name given to the resource, which may be used by a tool for display and navigation.',
title='Resource Title',
)
description: Optional[str] = Field(
None,
description='A short summary of the resource used to indicate the purpose of the resource.',
title='Resource Description',
)
props: Optional[List[Property]] = Field(None)
document_ids: Optional[List[DocumentId]] = Field(None, alias='document-ids')
citation: Optional[Citation] = Field(
None,
description='A citation consisting of end note text and optional structured bibliographic data.',
title='Citation',
)
rlinks: Optional[List[Rlink]] = Field(None)
base64: Optional[Base64] = Field(
None,
description='The Base64 alphabet in RFC 2045 - aligned with XSD.',
title='Base64',
)
remarks: Optional[Remarks] = None
Attributes¤
base64: Base64
pydantic-field
¤
The Base64 alphabet in RFC 2045 - aligned with XSD.
citation: Citation
pydantic-field
¤
A citation consisting of end note text and optional structured bibliographic data.
description: str
pydantic-field
¤
A short summary of the resource used to indicate the purpose of the resource.
document_ids: List[trestle.oscal.common.DocumentId]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
rlinks: List[trestle.oscal.common.Rlink]
pydantic-field
¤
title: str
pydantic-field
¤
A name given to the resource, which may be used by a tool for display and navigation.
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this defined resource elsewhere in this or other OSCAL instances. This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
ResponsibleParty (OscalBaseModel)
pydantic-model
¤
A reference to a set of organizations or persons that have responsibility for performing a referenced role in the context of the containing object.
Source code in trestle/oscal/common.py
class ResponsibleParty(OscalBaseModel):
"""
A reference to a set of organizations or persons that have responsibility for performing a referenced role in the context of the containing object.
"""
class Config:
extra = Extra.forbid
role_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='role-id',
description='A human-oriented identifier reference to roles served by the user.',
title='Responsible Role',
)
party_uuids: List[PartyUuid] = Field(..., alias='party-uuids')
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
party_uuids: List[trestle.oscal.common.PartyUuid]
pydantic-field
required
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
role_id: ConstrainedStrValue
pydantic-field
required
¤
A human-oriented identifier reference to roles served by the user.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
ResponsibleRole (OscalBaseModel)
pydantic-model
¤
A reference to one or more roles with responsibility for performing a function relative to the containing object.
Source code in trestle/oscal/common.py
class ResponsibleRole(OscalBaseModel):
"""
A reference to one or more roles with responsibility for performing a function relative to the containing object.
"""
class Config:
extra = Extra.forbid
role_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='role-id',
description='A human-oriented identifier reference to roles responsible for the business function.',
title='Responsible Role ID',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
party_uuids: Optional[List[PartyUuid]] = Field(None, alias='party-uuids')
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
party_uuids: List[trestle.oscal.common.PartyUuid]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
role_id: ConstrainedStrValue
pydantic-field
required
¤
A human-oriented identifier reference to roles responsible for the business function.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Revision (OscalBaseModel)
pydantic-model
¤
An entry in a sequential list of revisions to the containing document in reverse chronological order (i.e., most recent previous revision first).
Source code in trestle/oscal/common.py
class Revision(OscalBaseModel):
"""
An entry in a sequential list of revisions to the containing document in reverse chronological order (i.e., most recent previous revision first).
"""
class Config:
extra = Extra.forbid
title: Optional[str] = Field(
None,
description='A name given to the document revision, which may be used by a tool for display and navigation.',
title='Document Title',
)
published: Optional[Published] = None
last_modified: Optional[LastModified] = Field(None, alias='last-modified')
version: Version
oscal_version: Optional[OscalVersion] = Field(None, alias='oscal-version')
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
last_modified: LastModified
pydantic-field
¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
oscal_version: OscalVersion
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
published: Published
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
title: str
pydantic-field
¤
A name given to the document revision, which may be used by a tool for display and navigation.
version: Version
pydantic-field
required
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
RiskStatus (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class RiskStatus(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='Describes the status of the associated risk.',
title='Risk Status',
)
Rlink (OscalBaseModel)
pydantic-model
¤
A pointer to an external resource with an optional hash for verification and change detection.
Source code in trestle/oscal/common.py
class Rlink(OscalBaseModel):
"""
A pointer to an external resource with an optional hash for verification and change detection.
"""
class Config:
extra = Extra.forbid
href: str = Field(
...,
description='A resolvable URI reference to a resource.',
title='Hypertext Reference',
)
media_type: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='media-type',
description=
'Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.',
title='Media Type',
)
hashes: Optional[List[Hash]] = Field(None)
Attributes¤
hashes: List[trestle.oscal.common.Hash]
pydantic-field
¤
href: str
pydantic-field
required
¤
A resolvable URI reference to a resource.
media_type: ConstrainedStrValue
pydantic-field
¤
Specifies a media type as defined by the Internet Assigned Numbers Authority (IANA) Media Types Registry.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Role (OscalBaseModel)
pydantic-model
¤
Defines a function assumed or expected to be assumed by a party in a specific situation.
Source code in trestle/oscal/common.py
class Role(OscalBaseModel):
"""
Defines a function assumed or expected to be assumed by a party in a specific situation.
"""
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]*$'
) = Field(
...,
description=
'A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined role elsewhere in this or other OSCAL instances. When referenced from another OSCAL instance, the locally defined ID of the Role from the imported OSCAL instance must be referenced in the context of the containing resource (e.g., import, import-component-definition, import-profile, import-ssp or import-ap). 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='Role Identifier',
)
title: str = Field(
...,
description='A name given to the role, which may be used by a tool for display and navigation.',
title='Role Title',
)
short_name: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='short-name',
description='A short common name, abbreviation, or acronym for the role.',
title='Role Short Name',
)
description: Optional[str] = Field(
None,
description="A summary of the role's purpose and associated responsibilities.",
title='Role Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
description: str
pydantic-field
¤
A summary of the role's purpose and associated responsibilities.
id: ConstrainedStrValue
pydantic-field
required
¤
A human-oriented, locally unique identifier with cross-instance scope that can be used to reference this defined role elsewhere in this or other OSCAL instances. When referenced from another OSCAL instance, the locally defined ID of the Role from the imported OSCAL instance must be referenced in the context of the containing resource (e.g., import, import-component-definition, import-profile, import-ssp or import-ap). This ID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
short_name: ConstrainedStrValue
pydantic-field
¤
A short common name, abbreviation, or acronym for the role.
title: str
pydantic-field
required
¤
A name given to the role, which may be used by a tool for display and navigation.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
RoleId (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class RoleId(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='A human-oriented identifier reference to roles served by the user.',
title='Role Identifier Reference',
)
SelectObjectiveById (OscalBaseModel)
pydantic-model
¤
Used to select a control objective for inclusion/exclusion based on the control objective's identifier.
Source code in trestle/oscal/common.py
class SelectObjectiveById(OscalBaseModel):
"""
Used to select a control objective for inclusion/exclusion based on the control objective's identifier.
"""
class Config:
extra = Extra.forbid
objective_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='objective-id',
description='Points to an assessment objective.',
title='Objective ID',
)
SelectSubjectById (OscalBaseModel)
pydantic-model
¤
Identifies a set of assessment subjects to include/exclude by UUID.
Source code in trestle/oscal/common.py
class SelectSubjectById(OscalBaseModel):
"""
Identifies a set of assessment subjects to include/exclude by UUID.
"""
class Config:
extra = Extra.forbid
subject_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(
...,
alias='subject-uuid',
description=
"A machine-oriented identifier reference to a component, inventory-item, location, party, user, or resource using it's UUID.",
title='Subject Universally Unique Identifier Reference',
)
type: 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='Used to indicate the type of object pointed to by the uuid-ref within a subject.',
title='Subject Universally Unique Identifier Reference Type',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
subject_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a component, inventory-item, location, party, user, or resource using it's UUID.
type: ConstrainedStrValue
pydantic-field
required
¤
Used to indicate the type of object pointed to by the uuid-ref within a subject.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Source (OscalBaseModel)
pydantic-model
¤
Assessment subjects will be identified while conducting the referenced activity-instance.
Source code in trestle/oscal/common.py
class Source(OscalBaseModel):
"""
Assessment subjects will be identified while conducting the referenced activity-instance.
"""
class Config:
extra = Extra.forbid
task_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(
...,
alias='task-uuid',
description=
'A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference (in this or other OSCAL instances) an assessment activity to be performed as part of the event. The locally defined UUID of the task can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Task Universally Unique Identifier',
)
Attributes¤
task_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference (in this or other OSCAL instances) an assessment activity to be performed as part of the event. The locally defined UUID of the task can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
StatementId (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class StatementId(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='Used to constrain the selection to only specificity identified statements.',
title='Include Specific Statements',
)
SubjectReference (OscalBaseModel)
pydantic-model
¤
A human-oriented identifier reference to a resource. Use type to indicate whether the identified resource is a component, inventory item, location, user, or something else.
Source code in trestle/oscal/common.py
class SubjectReference(OscalBaseModel):
"""
A human-oriented identifier reference to a resource. Use type to indicate whether the identified resource is a component, inventory item, location, user, or something else.
"""
class Config:
extra = Extra.forbid
subject_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(
...,
alias='subject-uuid',
description=
"A machine-oriented identifier reference to a component, inventory-item, location, party, user, or resource using it's UUID.",
title='Subject Universally Unique Identifier Reference',
)
type: 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='Used to indicate the type of object pointed to by the uuid-ref within a subject.',
title='Subject Universally Unique Identifier Reference Type',
)
title: Optional[str] = Field(
None,
description='The title or name for the referenced subject.',
title='Subject Reference Title',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
remarks: Optional[Remarks] = None
Attributes¤
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
subject_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a component, inventory-item, location, party, user, or resource using it's UUID.
title: str
pydantic-field
¤
The title or name for the referenced subject.
type: ConstrainedStrValue
pydantic-field
required
¤
Used to indicate the type of object pointed to by the uuid-ref within a subject.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
SystemId (OscalBaseModel)
pydantic-model
¤
A human-oriented, globally unique identifier with cross-instance scope that can be used to reference this system identification property elsewhere in this or other OSCAL instances. When referencing an externally defined system identification, the system identification must be used in the context of the external / imported OSCAL instance (e.g., uri-reference). This string should be assigned per-subject, which means it should be consistently used to identify the same system across revisions of the document.
Source code in trestle/oscal/common.py
class SystemId(OscalBaseModel):
"""
A human-oriented, globally unique identifier with cross-instance scope that can be used to reference this system identification property elsewhere in this or other OSCAL instances. When referencing an externally defined system identification, the system identification must be used in the context of the external / imported OSCAL instance (e.g., uri-reference). This string should be assigned per-subject, which means it should be consistently used to identify the same system across revisions of the document.
"""
class Config:
extra = Extra.forbid
identifier_type: Optional[AnyUrl] = Field(
None,
alias='identifier-type',
description='Identifies the identification system from which the provided identifier was assigned.',
title='Identification System Type',
)
id: str
SystemUser (OscalBaseModel)
pydantic-model
¤
A type of user that interacts with the system based on an associated role.
Source code in trestle/oscal/common.py
class SystemUser(OscalBaseModel):
"""
A type of user that interacts with the system based on an associated role.
"""
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 user class elsewhere in this or other OSCAL instances. The locally defined UUID of the system user can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='User Universally Unique Identifier',
)
title: Optional[str] = Field(
None,
description='A name given to the user, which may be used by a tool for display and navigation.',
title='User Title',
)
short_name: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None,
alias='short-name',
description='A short common name, abbreviation, or acronym for the user.',
title='User Short Name',
)
description: Optional[str] = Field(
None,
description="A summary of the user's purpose within the system.",
title='User Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
role_ids: Optional[List[RoleId]] = Field(None, alias='role-ids')
authorized_privileges: Optional[List[AuthorizedPrivilege]] = Field(None, alias='authorized-privileges')
remarks: Optional[Remarks] = None
Attributes¤
authorized_privileges: List[trestle.oscal.common.AuthorizedPrivilege]
pydantic-field
¤
description: str
pydantic-field
¤
A summary of the user's purpose within the system.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
role_ids: List[trestle.oscal.common.RoleId]
pydantic-field
¤
short_name: ConstrainedStrValue
pydantic-field
¤
A short common name, abbreviation, or acronym for the user.
title: str
pydantic-field
¤
A name given to the user, which may be used by a tool for display and navigation.
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this user class elsewhere in this or other OSCAL instances. The locally defined UUID of the system user can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Task (OscalBaseModel)
pydantic-model
¤
Represents a scheduled event or milestone, which may be associated with a series of assessment actions.
Source code in trestle/oscal/common.py
class Task(OscalBaseModel):
"""
Represents a scheduled event or milestone, which may be associated with a series of assessment actions.
"""
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 task elsewhere in this or other OSCAL instances. The locally defined UUID of the task can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.',
title='Task Universally Unique Identifier',
)
type: 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='The type of task.', title='Task Type')
title: str = Field(..., description='The title for this task.', title='Task Title')
description: Optional[str] = Field(
None,
description='A human-readable description of this task.',
title='Task Description',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
timing: Optional[Timing] = Field(
None,
description='The timing under which the task is intended to occur.',
title='Event Timing',
)
dependencies: Optional[List[Dependency]] = Field(None)
tasks: Optional[List[Task]] = None
associated_activities: Optional[List[AssociatedActivity]] = Field(None, alias='associated-activities')
subjects: Optional[List[AssessmentSubject]] = Field(None)
responsible_roles: Optional[List[ResponsibleRole]] = Field(None, alias='responsible-roles')
remarks: Optional[Remarks] = None
Attributes¤
associated_activities: List[trestle.oscal.common.AssociatedActivity]
pydantic-field
¤
dependencies: List[trestle.oscal.common.Dependency]
pydantic-field
¤
description: str
pydantic-field
¤
A human-readable description of this task.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_roles: List[trestle.oscal.common.ResponsibleRole]
pydantic-field
¤
subjects: List[trestle.oscal.common.AssessmentSubject]
pydantic-field
¤
tasks: List[trestle.oscal.common.Task]
pydantic-field
¤
timing: Timing
pydantic-field
¤
The timing under which the task is intended to occur.
title: str
pydantic-field
required
¤
The title for this task.
type: ConstrainedStrValue
pydantic-field
required
¤
The type of task.
uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this task elsewhere in this or other OSCAL instances. The locally defined UUID of the task can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
TelephoneNumber (OscalBaseModel)
pydantic-model
¤
Contact number by telephone.
Source code in trestle/oscal/common.py
class TelephoneNumber(OscalBaseModel):
"""
Contact number by telephone.
"""
class Config:
extra = Extra.forbid
type: Optional[constr(regex=r'^\S(.*\S)?$')] = Field(
None, description='Indicates the type of phone number.', title='type flag'
)
number: str
Test (OscalBaseModel)
pydantic-model
¤
A test expression which is expected to be evaluated by a tool.
Source code in trestle/oscal/common.py
class Test(OscalBaseModel):
"""
A test expression which is expected to be evaluated by a tool.
"""
class Config:
extra = Extra.forbid
expression: constr(regex=r'^\S(.*\S)?$') = Field(
...,
description='A formal (executable) expression of a constraint',
title='Constraint test',
)
remarks: Optional[Remarks] = None
ThreatId (OscalBaseModel)
pydantic-model
¤
A pointer, by ID, to an externally-defined threat.
Source code in trestle/oscal/common.py
class ThreatId(OscalBaseModel):
"""
A pointer, by ID, to an externally-defined threat.
"""
class Config:
extra = Extra.forbid
system: AnyUrl = Field(
...,
description='Specifies the source of the threat information.',
title='Threat Type Identification System',
)
href: Optional[str] = Field(
None,
description='An optional location for the threat data, from which this ID originates.',
title='Threat Information Resource Reference',
)
id: str
Attributes¤
href: str
pydantic-field
¤
An optional location for the threat data, from which this ID originates.
id: str
pydantic-field
required
¤
system: AnyUrl
pydantic-field
required
¤
Specifies the source of the threat information.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Timing (OscalBaseModel)
pydantic-model
¤
The timing under which the task is intended to occur.
Source code in trestle/oscal/common.py
class Timing(OscalBaseModel):
"""
The timing under which the task is intended to occur.
"""
class Config:
extra = Extra.forbid
on_date: Optional[OnDate] = Field(
None,
alias='on-date',
description='The task is intended to occur on the specified date.',
title='On Date Condition',
)
within_date_range: Optional[WithinDateRange] = Field(
None,
alias='within-date-range',
description='The task is intended to occur within the specified date range.',
title='On Date Range Condition',
)
at_frequency: Optional[AtFrequency] = Field(
None,
alias='at-frequency',
description='The task is intended to occur at the specified frequency.',
title='Frequency Condition',
)
Attributes¤
at_frequency: AtFrequency
pydantic-field
¤
The task is intended to occur at the specified frequency.
on_date: OnDate
pydantic-field
¤
The task is intended to occur on the specified date.
within_date_range: WithinDateRange
pydantic-field
¤
The task is intended to occur within the specified date range.
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Transport (Enum)
¤
Type (Enum)
¤
Type1 (Enum)
¤
Type2 (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class Type2(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=
'Identifies the nature of the observation. More than one may be used to further qualify and enable filtering.',
title='Observation Type',
)
Type3 (Enum)
¤
Unit (Enum)
¤
UsesComponent (OscalBaseModel)
pydantic-model
¤
The set of components that are used by the assessment platform.
Source code in trestle/oscal/common.py
class UsesComponent(OscalBaseModel):
"""
The set of components that are used by the assessment platform.
"""
class Config:
extra = Extra.forbid
component_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(
...,
alias='component-uuid',
description=
'A machine-oriented identifier reference to a component that is implemented as part of an inventory item.',
title='Component Universally Unique Identifier Reference',
)
props: Optional[List[Property]] = Field(None)
links: Optional[List[Link]] = Field(None)
responsible_parties: Optional[List[ResponsibleParty]] = Field(None, alias='responsible-parties')
remarks: Optional[Remarks] = None
Attributes¤
component_uuid: ConstrainedStrValue
pydantic-field
required
¤
A machine-oriented identifier reference to a component that is implemented as part of an inventory item.
links: List[trestle.oscal.common.Link]
pydantic-field
¤
props: List[trestle.oscal.common.Property]
pydantic-field
¤
remarks: Remarks
pydantic-field
¤
responsible_parties: List[trestle.oscal.common.ResponsibleParty]
pydantic-field
¤
Config
¤
Source code in trestle/oscal/common.py
class Config:
extra = Extra.forbid
Value (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class Value(OscalBaseModel):
__root__: constr(regex=r'^\S(.*\S)?$'
) = Field(..., description='A parameter value or set of values.', title='Parameter Value')
Version (OscalBaseModel)
pydantic-model
¤
Source code in trestle/oscal/common.py
class Version(OscalBaseModel):
__root__: constr(regex=r'^\S(.*\S)?$') = Field(
...,
description=
'A string used to distinguish the current version of the document from other previous (and future) versions.',
title='Document Version',
)
WithinDateRange (OscalBaseModel)
pydantic-model
¤
The task is intended to occur within the specified date range.
Source code in trestle/oscal/common.py
class WithinDateRange(OscalBaseModel):
"""
The task is intended to occur within the specified date range.
"""
class Config:
extra = Extra.forbid
start: datetime = Field(
...,
description='The task must occur on or after the specified date.',
title='Start Date Condition',
)
end: datetime = Field(
...,
description='The task must occur on or before the specified date.',
title='End Date Condition',
)
handler: python