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

from __future__ import annotations
from nabla_py.types import BaseModel
import pydantic
from typing import Literal, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


AssessTerraformStateFormat = Literal[
    "oscal",
    "yaml",
    "json",
]
r"""Output format for the assessment"""


class AssessTerraformStateRequestTypedDict(TypedDict):
    name: str
    r"""Name for the evidence assessment"""
    format_: AssessTerraformStateFormat
    r"""Output format for the assessment"""
    content_base64: str
    r"""Base64-encoded Terraform state file (JSON)"""
    include_diagram: NotRequired[bool]
    r"""Include Mermaid architecture diagram in artifacts"""


class AssessTerraformStateRequest(BaseModel):
    name: str
    r"""Name for the evidence assessment"""

    format_: Annotated[AssessTerraformStateFormat, pydantic.Field(alias="format")]
    r"""Output format for the assessment"""

    content_base64: str
    r"""Base64-encoded Terraform state file (JSON)"""

    include_diagram: Optional[bool] = False
    r"""Include Mermaid architecture diagram in artifacts"""
