spdx_tools.spdx3.model.security.ssvc_vuln_assessment_relationship

 1# SPDX-FileCopyrightText: 2023 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4from datetime import datetime
 5from enum import Enum, auto
 6
 7from beartype.typing import List, Optional
 8
 9from spdx_tools.common.typing.dataclass_with_properties import dataclass_with_properties
10from spdx_tools.common.typing.type_checks import check_types_and_set_values
11from spdx_tools.spdx3.model import (
12    CreationInfo,
13    ExternalIdentifier,
14    ExternalReference,
15    IntegrityMethod,
16    RelationshipCompleteness,
17)
18from spdx_tools.spdx3.model.security.vuln_assessment_relationship import VulnAssessmentRelationship
19from spdx_tools.spdx.model import RelationshipType
20
21
22class SsvcDecisionType(Enum):
23    ACT = auto()
24    ATTEND = auto()
25    TRACK = auto()
26    TRACK_STAR = auto()
27
28
29@dataclass_with_properties
30class SsvcVulnAssessmentRelationship(VulnAssessmentRelationship):
31    decision_type: SsvcDecisionType = None
32
33    def __init__(
34        self,
35        spdx_id: str,
36        from_element: str,
37        relationship_type: RelationshipType,
38        to: List[str],
39        decision_type: SsvcDecisionType,
40        creation_info: Optional[CreationInfo] = None,
41        name: Optional[str] = None,
42        summary: Optional[str] = None,
43        description: Optional[str] = None,
44        comment: Optional[str] = None,
45        verified_using: List[IntegrityMethod] = None,
46        external_reference: List[ExternalReference] = None,
47        external_identifier: List[ExternalIdentifier] = None,
48        extension: Optional[str] = None,
49        completeness: Optional[RelationshipCompleteness] = None,
50        start_time: Optional[datetime] = None,
51        end_time: Optional[datetime] = None,
52        assessed_element: Optional[str] = None,
53        published_time: Optional[datetime] = None,
54        supplied_by: Optional[str] = None,
55        modified_time: Optional[datetime] = None,
56        withdrawn_time: Optional[datetime] = None,
57    ):
58        verified_using = [] if verified_using is None else verified_using
59        external_reference = [] if external_reference is None else external_reference
60        external_identifier = [] if external_identifier is None else external_identifier
61        check_types_and_set_values(self, locals())
class SsvcDecisionType(enum.Enum):
23class SsvcDecisionType(Enum):
24    ACT = auto()
25    ATTEND = auto()
26    TRACK = auto()
27    TRACK_STAR = auto()
ATTEND = <SsvcDecisionType.ATTEND: 2>
TRACK = <SsvcDecisionType.TRACK: 3>
TRACK_STAR = <SsvcDecisionType.TRACK_STAR: 4>
Inherited Members
enum.Enum
name
value
@dataclass_with_properties
class SsvcVulnAssessmentRelationship(spdx_tools.spdx3.model.security.vuln_assessment_relationship.VulnAssessmentRelationship):
30@dataclass_with_properties
31class SsvcVulnAssessmentRelationship(VulnAssessmentRelationship):
32    decision_type: SsvcDecisionType = None
33
34    def __init__(
35        self,
36        spdx_id: str,
37        from_element: str,
38        relationship_type: RelationshipType,
39        to: List[str],
40        decision_type: SsvcDecisionType,
41        creation_info: Optional[CreationInfo] = None,
42        name: Optional[str] = None,
43        summary: Optional[str] = None,
44        description: Optional[str] = None,
45        comment: Optional[str] = None,
46        verified_using: List[IntegrityMethod] = None,
47        external_reference: List[ExternalReference] = None,
48        external_identifier: List[ExternalIdentifier] = None,
49        extension: Optional[str] = None,
50        completeness: Optional[RelationshipCompleteness] = None,
51        start_time: Optional[datetime] = None,
52        end_time: Optional[datetime] = None,
53        assessed_element: Optional[str] = None,
54        published_time: Optional[datetime] = None,
55        supplied_by: Optional[str] = None,
56        modified_time: Optional[datetime] = None,
57        withdrawn_time: Optional[datetime] = None,
58    ):
59        verified_using = [] if verified_using is None else verified_using
60        external_reference = [] if external_reference is None else external_reference
61        external_identifier = [] if external_identifier is None else external_identifier
62        check_types_and_set_values(self, locals())
SsvcVulnAssessmentRelationship( spdx_id: str, from_element: str, relationship_type: spdx_tools.spdx.model.relationship.RelationshipType, to: list[str], decision_type: SsvcDecisionType, creation_info: Optional[spdx_tools.spdx3.model.creation_info.CreationInfo] = None, name: Optional[str] = None, summary: Optional[str] = None, description: Optional[str] = None, comment: Optional[str] = None, verified_using: list[spdx_tools.spdx3.model.integrity_method.IntegrityMethod] = None, external_reference: list[spdx_tools.spdx3.model.external_reference.ExternalReference] = None, external_identifier: list[spdx_tools.spdx3.model.external_identifier.ExternalIdentifier] = None, extension: Optional[str] = None, completeness: Optional[spdx_tools.spdx3.model.relationship.RelationshipCompleteness] = None, start_time: Optional[datetime.datetime] = None, end_time: Optional[datetime.datetime] = None, assessed_element: Optional[str] = None, published_time: Optional[datetime.datetime] = None, supplied_by: Optional[str] = None, modified_time: Optional[datetime.datetime] = None, withdrawn_time: Optional[datetime.datetime] = None)
34    def __init__(
35        self,
36        spdx_id: str,
37        from_element: str,
38        relationship_type: RelationshipType,
39        to: List[str],
40        decision_type: SsvcDecisionType,
41        creation_info: Optional[CreationInfo] = None,
42        name: Optional[str] = None,
43        summary: Optional[str] = None,
44        description: Optional[str] = None,
45        comment: Optional[str] = None,
46        verified_using: List[IntegrityMethod] = None,
47        external_reference: List[ExternalReference] = None,
48        external_identifier: List[ExternalIdentifier] = None,
49        extension: Optional[str] = None,
50        completeness: Optional[RelationshipCompleteness] = None,
51        start_time: Optional[datetime] = None,
52        end_time: Optional[datetime] = None,
53        assessed_element: Optional[str] = None,
54        published_time: Optional[datetime] = None,
55        supplied_by: Optional[str] = None,
56        modified_time: Optional[datetime] = None,
57        withdrawn_time: Optional[datetime] = None,
58    ):
59        verified_using = [] if verified_using is None else verified_using
60        external_reference = [] if external_reference is None else external_reference
61        external_identifier = [] if external_identifier is None else external_identifier
62        check_types_and_set_values(self, locals())
decision_type: SsvcDecisionType
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")