"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from nabla_py.types import BaseModel
from typing import List, Literal
from typing_extensions import TypedDict


ControlAssessmentStatus = Literal[
    "satisfied",
    "not-satisfied",
    "not-applicable",
]
r"""Control satisfaction status"""


class ControlAssessmentTypedDict(TypedDict):
    control_id: str
    r"""Control identifier"""
    title: str
    r"""Control title"""
    status: ControlAssessmentStatus
    r"""Control satisfaction status"""
    findings: List[str]
    r"""List of findings or issues"""
    evidence: List[str]
    r"""Evidence supporting the assessment"""


class ControlAssessment(BaseModel):
    control_id: str
    r"""Control identifier"""

    title: str
    r"""Control title"""

    status: ControlAssessmentStatus
    r"""Control satisfaction status"""

    findings: List[str]
    r"""List of findings or issues"""

    evidence: List[str]
    r"""Evidence supporting the assessment"""
