spdx_tools.spdx3.model.security.vex_not_affected_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.vex_vuln_assessment_relationship import VexVulnAssessmentRelationship
19from spdx_tools.spdx.model import RelationshipType
20
21
22class VexJustificationType(Enum):
23    COMPONENT_NOT_PRESENT = auto()
24    VULNERABLE_CODE_NOT_PRESENT = auto()
25    VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY = auto()
26    VULNERABLE_CODE_NOT_IN_EXECUTE_PATH = auto()
27    INLINE_MITIGATIONS_ALREADY_EXIST = auto()
28
29
30@dataclass_with_properties
31class VexNotAffectedVulnAssessmentRelationship(VexVulnAssessmentRelationship):
32    justification_type: Optional[VexJustificationType] = None
33    impact_statement: Optional[str] = None
34    impact_statement_time: Optional[datetime] = None
35
36    def __init__(
37        self,
38        spdx_id: str,
39        from_element: str,
40        relationship_type: RelationshipType,
41        to: List[str],
42        creation_info: Optional[CreationInfo] = None,
43        name: Optional[str] = None,
44        summary: Optional[str] = None,
45        description: Optional[str] = None,
46        comment: Optional[str] = None,
47        verified_using: List[IntegrityMethod] = None,
48        external_reference: List[ExternalReference] = None,
49        external_identifier: List[ExternalIdentifier] = None,
50        extension: Optional[str] = None,
51        completeness: Optional[RelationshipCompleteness] = None,
52        start_time: Optional[datetime] = None,
53        end_time: Optional[datetime] = None,
54        assessed_element: Optional[str] = None,
55        published_time: Optional[datetime] = None,
56        supplied_by: Optional[str] = None,
57        modified_time: Optional[datetime] = None,
58        withdrawn_time: Optional[datetime] = None,
59        vex_version: Optional[str] = None,
60        status_notes: Optional[str] = None,
61        justification_type: Optional[VexJustificationType] = None,
62        impact_statement: Optional[str] = None,
63        impact_statement_time: Optional[datetime] = None,
64    ):
65        verified_using = [] if verified_using is None else verified_using
66        external_reference = [] if external_reference is None else external_reference
67        external_identifier = [] if external_identifier is None else external_identifier
68        check_types_and_set_values(self, locals())
class VexJustificationType(enum.Enum):
23class VexJustificationType(Enum):
24    COMPONENT_NOT_PRESENT = auto()
25    VULNERABLE_CODE_NOT_PRESENT = auto()
26    VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY = auto()
27    VULNERABLE_CODE_NOT_IN_EXECUTE_PATH = auto()
28    INLINE_MITIGATIONS_ALREADY_EXIST = auto()
COMPONENT_NOT_PRESENT = <VexJustificationType.COMPONENT_NOT_PRESENT: 1>
VULNERABLE_CODE_NOT_PRESENT = <VexJustificationType.VULNERABLE_CODE_NOT_PRESENT: 2>
VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY = <VexJustificationType.VULNERABLE_CODE_CANNOT_BE_CONTROLLED_BY_ADVERSARY: 3>
VULNERABLE_CODE_NOT_IN_EXECUTE_PATH = <VexJustificationType.VULNERABLE_CODE_NOT_IN_EXECUTE_PATH: 4>
INLINE_MITIGATIONS_ALREADY_EXIST = <VexJustificationType.INLINE_MITIGATIONS_ALREADY_EXIST: 5>
Inherited Members
enum.Enum
name
value
@dataclass_with_properties
class VexNotAffectedVulnAssessmentRelationship(spdx_tools.spdx3.model.security.vex_vuln_assessment_relationship.VexVulnAssessmentRelationship):
31@dataclass_with_properties
32class VexNotAffectedVulnAssessmentRelationship(VexVulnAssessmentRelationship):
33    justification_type: Optional[VexJustificationType] = None
34    impact_statement: Optional[str] = None
35    impact_statement_time: Optional[datetime] = None
36
37    def __init__(
38        self,
39        spdx_id: str,
40        from_element: str,
41        relationship_type: RelationshipType,
42        to: List[str],
43        creation_info: Optional[CreationInfo] = None,
44        name: Optional[str] = None,
45        summary: Optional[str] = None,
46        description: Optional[str] = None,
47        comment: Optional[str] = None,
48        verified_using: List[IntegrityMethod] = None,
49        external_reference: List[ExternalReference] = None,
50        external_identifier: List[ExternalIdentifier] = None,
51        extension: Optional[str] = None,
52        completeness: Optional[RelationshipCompleteness] = None,
53        start_time: Optional[datetime] = None,
54        end_time: Optional[datetime] = None,
55        assessed_element: Optional[str] = None,
56        published_time: Optional[datetime] = None,
57        supplied_by: Optional[str] = None,
58        modified_time: Optional[datetime] = None,
59        withdrawn_time: Optional[datetime] = None,
60        vex_version: Optional[str] = None,
61        status_notes: Optional[str] = None,
62        justification_type: Optional[VexJustificationType] = None,
63        impact_statement: Optional[str] = None,
64        impact_statement_time: Optional[datetime] = None,
65    ):
66        verified_using = [] if verified_using is None else verified_using
67        external_reference = [] if external_reference is None else external_reference
68        external_identifier = [] if external_identifier is None else external_identifier
69        check_types_and_set_values(self, locals())
VexNotAffectedVulnAssessmentRelationship( spdx_id: str, from_element: str, relationship_type: spdx_tools.spdx.model.relationship.RelationshipType, to: list[str], 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, vex_version: Optional[str] = None, status_notes: Optional[str] = None, justification_type: Optional[VexJustificationType] = None, impact_statement: Optional[str] = None, impact_statement_time: Optional[datetime.datetime] = None)
37    def __init__(
38        self,
39        spdx_id: str,
40        from_element: str,
41        relationship_type: RelationshipType,
42        to: List[str],
43        creation_info: Optional[CreationInfo] = None,
44        name: Optional[str] = None,
45        summary: Optional[str] = None,
46        description: Optional[str] = None,
47        comment: Optional[str] = None,
48        verified_using: List[IntegrityMethod] = None,
49        external_reference: List[ExternalReference] = None,
50        external_identifier: List[ExternalIdentifier] = None,
51        extension: Optional[str] = None,
52        completeness: Optional[RelationshipCompleteness] = None,
53        start_time: Optional[datetime] = None,
54        end_time: Optional[datetime] = None,
55        assessed_element: Optional[str] = None,
56        published_time: Optional[datetime] = None,
57        supplied_by: Optional[str] = None,
58        modified_time: Optional[datetime] = None,
59        withdrawn_time: Optional[datetime] = None,
60        vex_version: Optional[str] = None,
61        status_notes: Optional[str] = None,
62        justification_type: Optional[VexJustificationType] = None,
63        impact_statement: Optional[str] = None,
64        impact_statement_time: Optional[datetime] = None,
65    ):
66        verified_using = [] if verified_using is None else verified_using
67        external_reference = [] if external_reference is None else external_reference
68        external_identifier = [] if external_identifier is None else external_identifier
69        check_types_and_set_values(self, locals())
justification_type: Optional[VexJustificationType]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
impact_statement: Optional[str]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")
impact_statement_time: Optional[datetime.datetime]
47    def get_field(self) -> field_type:
48        return getattr(self, f"_{field_name}")