"""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
from typing_extensions import Annotated, TypedDict


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


class GenerateFipsAssessmentRequestTypedDict(TypedDict):
    name: str
    r"""Name for the FIPS assessment"""
    format_: GenerateFipsAssessmentFormat
    r"""Output format for the assessment"""
    zip_content: str
    r"""Base64-encoded ZIP archive. Supported file types: sbom.json/spdx.json (SBOM), *.tfstate (Terraform), *.yaml/manifest.yaml (Kubernetes), playbook.yaml (Ansible), package-lock.json/Cargo.lock/go.mod/poetry.lock (package managers), system_info.json/openssl.json (system crypto info)"""


class GenerateFipsAssessmentRequest(BaseModel):
    name: str
    r"""Name for the FIPS assessment"""

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

    zip_content: str
    r"""Base64-encoded ZIP archive. Supported file types: sbom.json/spdx.json (SBOM), *.tfstate (Terraform), *.yaml/manifest.yaml (Kubernetes), playbook.yaml (Ansible), package-lock.json/Cargo.lock/go.mod/poetry.lock (package managers), system_info.json/openssl.json (system crypto info)"""
