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

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


PutAssessmentPackagesRequestBodyType = Literal[
    "BEHAVIORAL",
    "VIDEO_INTERVIEW",
    "SKILLS_TEST",
    "BACKGROUND_CHECK",
    "REFERENCE_CHECK",
]


class PutAssessmentPackagesRequestBodyPackageTypedDict(TypedDict):
    id: str
    r"""A unique identifier for the assessment package."""
    type: PutAssessmentPackagesRequestBodyType
    name: str
    r"""The name of the assessment package."""
    description: str
    r"""Description about the package. Some ATSs will display this in their UI."""


class PutAssessmentPackagesRequestBodyPackage(BaseModel):
    id: str
    r"""A unique identifier for the assessment package."""

    type: PutAssessmentPackagesRequestBodyType

    name: str
    r"""The name of the assessment package."""

    description: str
    r"""Description about the package. Some ATSs will display this in their UI."""


class PutAssessmentPackagesRequestBodyTypedDict(TypedDict):
    packages: List[PutAssessmentPackagesRequestBodyPackageTypedDict]


class PutAssessmentPackagesRequestBody(BaseModel):
    packages: List[PutAssessmentPackagesRequestBodyPackage]
