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

from __future__ import annotations

import typing

from .test_suite_test_case_created_bulk_result import TestSuiteTestCaseCreatedBulkResult
from .test_suite_test_case_deleted_bulk_result import TestSuiteTestCaseDeletedBulkResult
from .test_suite_test_case_rejected_bulk_result import TestSuiteTestCaseRejectedBulkResult
from .test_suite_test_case_replaced_bulk_result import TestSuiteTestCaseReplacedBulkResult


class TestSuiteTestCaseBulkResult_Created(TestSuiteTestCaseCreatedBulkResult):
    type: typing.Literal["CREATED"] = "CREATED"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


class TestSuiteTestCaseBulkResult_Replaced(TestSuiteTestCaseReplacedBulkResult):
    type: typing.Literal["REPLACED"] = "REPLACED"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


class TestSuiteTestCaseBulkResult_Deleted(TestSuiteTestCaseDeletedBulkResult):
    type: typing.Literal["DELETED"] = "DELETED"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


class TestSuiteTestCaseBulkResult_Rejected(TestSuiteTestCaseRejectedBulkResult):
    type: typing.Literal["REJECTED"] = "REJECTED"

    class Config:
        frozen = True
        smart_union = True
        allow_population_by_field_name = True
        populate_by_name = True


TestSuiteTestCaseBulkResult = typing.Union[
    TestSuiteTestCaseBulkResult_Created,
    TestSuiteTestCaseBulkResult_Replaced,
    TestSuiteTestCaseBulkResult_Deleted,
    TestSuiteTestCaseBulkResult_Rejected,
]
