# This file was auto-generated by Fern from our API Definition.

from ...core.unchecked_base_model import UncheckedBaseModel
from ...ocsf.v_1_3_0.securityfinding.classes.types.severity_id import SeverityId
import typing
from .vulnerability_severity_filter_value import VulnerabilitySeverityFilterValue
import pydantic
from .vulnerability_state_filter_value import VulnerabilityStateFilterValue
from .provider_specific_finding_state import ProviderSpecificFindingState
from ...core.pydantic_utilities import IS_PYDANTIC_V2


class UpdateFindingRequest(UncheckedBaseModel):
    severity_id: SeverityId
    severity: typing.Optional[VulnerabilitySeverityFilterValue] = pydantic.Field(
        default=None
    )
    """
    severity of the finding
    """

    state: typing.Optional[VulnerabilityStateFilterValue] = pydantic.Field(default=None)
    """
    state of the finding
    """

    unmapped: typing.Optional[ProviderSpecificFindingState] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
            extra="allow"
        )  # type: ignore # Pydantic v2
    else:

        class Config:
            smart_union = True
            extra = pydantic.Extra.allow
