# This file was generated by liblab | https://liblab.com/

from __future__ import annotations
from typing import Union
from .base import OneOfBaseModel
from .contract_to_create_pay_as_you_go_time_based import (
    ContractToCreatePayAsYouGoTimeBased,
)
from .contract_to_create_payg_tasks import ContractToCreatePaygTasks
from .contract_to_create_payg_milestones import ContractToCreatePaygMilestones
from .contract_to_create_ongoing_time_based import ContractToCreateOngoingTimeBased


class ContractToCreateGuard(OneOfBaseModel):
    class_list = {
        "ContractToCreatePayAsYouGoTimeBased": ContractToCreatePayAsYouGoTimeBased,
        "ContractToCreatePaygTasks": ContractToCreatePaygTasks,
        "ContractToCreatePaygMilestones": ContractToCreatePaygMilestones,
        "ContractToCreateOngoingTimeBased": ContractToCreateOngoingTimeBased,
    }


ContractToCreate = Union[
    ContractToCreatePayAsYouGoTimeBased,
    ContractToCreatePaygTasks,
    ContractToCreatePaygMilestones,
    ContractToCreateOngoingTimeBased,
]
