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

from typing import Union
from .utils.json_map import JsonMap
from .base import BaseModel
from .base import OneOfBaseModel


class ContractTemplateIdGuard(OneOfBaseModel):
    class_list = {"float": float, "str": str}


ContractTemplateId = Union[float, str]


@JsonMap({})
class ContractSignatureToCreate(BaseModel):
    """ContractSignatureToCreate

    :param client_signature: Signature of client.
    :type client_signature: str
    :param contract_template_id: Please use null to use default Deel contract template; otherwise you can use the template you created and customized. If template ID is not in payload, template stays unchanged., defaults to None
    :type contract_template_id: ContractTemplateId, optional
    """

    def __init__(
        self, client_signature: str, contract_template_id: ContractTemplateId = None
    ):
        self.client_signature = client_signature
        if contract_template_id is not None:
            self.contract_template_id = ContractTemplateIdGuard.return_one_of(
                contract_template_id
            )
