# Code generated by Lark OpenAPI.

from typing import Any, Optional, Union, Dict, List, Set, IO, Callable, Type
from lark_oapi.core.construct import init


class AppSlashCommandI18n(object):
    _types = {
        "zh_cn": str,
        "en_us": str,
        "ja_jp": str,
        "zh_hk": str,
        "zh_tw": str,
        "de_de": str,
        "es_es": str,
        "fr_fr": str,
        "hi_in": str,
        "id_id": str,
        "it_it": str,
        "ko_kr": str,
        "pt_br": str,
        "ru_ru": str,
        "th_th": str,
        "vi_vn": str,
    }

    def __init__(self, d=None):
        self.zh_cn: Optional[str] = None
        self.en_us: Optional[str] = None
        self.ja_jp: Optional[str] = None
        self.zh_hk: Optional[str] = None
        self.zh_tw: Optional[str] = None
        self.de_de: Optional[str] = None
        self.es_es: Optional[str] = None
        self.fr_fr: Optional[str] = None
        self.hi_in: Optional[str] = None
        self.id_id: Optional[str] = None
        self.it_it: Optional[str] = None
        self.ko_kr: Optional[str] = None
        self.pt_br: Optional[str] = None
        self.ru_ru: Optional[str] = None
        self.th_th: Optional[str] = None
        self.vi_vn: Optional[str] = None
        init(self, d, self._types)

    @staticmethod
    def builder() -> "AppSlashCommandI18nBuilder":
        return AppSlashCommandI18nBuilder()


class AppSlashCommandI18nBuilder(object):
    def __init__(self) -> None:
        self._app_slash_command_i18n = AppSlashCommandI18n()

    def zh_cn(self, zh_cn: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.zh_cn = zh_cn
        return self

    def en_us(self, en_us: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.en_us = en_us
        return self

    def ja_jp(self, ja_jp: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.ja_jp = ja_jp
        return self

    def zh_hk(self, zh_hk: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.zh_hk = zh_hk
        return self

    def zh_tw(self, zh_tw: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.zh_tw = zh_tw
        return self

    def de_de(self, de_de: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.de_de = de_de
        return self

    def es_es(self, es_es: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.es_es = es_es
        return self

    def fr_fr(self, fr_fr: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.fr_fr = fr_fr
        return self

    def hi_in(self, hi_in: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.hi_in = hi_in
        return self

    def id_id(self, id_id: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.id_id = id_id
        return self

    def it_it(self, it_it: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.it_it = it_it
        return self

    def ko_kr(self, ko_kr: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.ko_kr = ko_kr
        return self

    def pt_br(self, pt_br: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.pt_br = pt_br
        return self

    def ru_ru(self, ru_ru: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.ru_ru = ru_ru
        return self

    def th_th(self, th_th: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.th_th = th_th
        return self

    def vi_vn(self, vi_vn: str) -> "AppSlashCommandI18nBuilder":
        self._app_slash_command_i18n.vi_vn = vi_vn
        return self

    def build(self) -> "AppSlashCommandI18n":
        return self._app_slash_command_i18n
