001/*
002 *   Copyright 2024 Vonage
003 *
004 *   Licensed under the Apache License, Version 2.0 (the "License");
005 *   you may not use this file except in compliance with the License.
006 *   You may obtain a copy of the License at
007 *
008 *        http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *   Unless required by applicable law or agreed to in writing, software
011 *   distributed under the License is distributed on an "AS IS" BASIS,
012 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *   See the License for the specific language governing permissions and
014 *   limitations under the License.
015 */
016package com.vonage.client.voice;
017
018import com.fasterxml.jackson.annotation.JsonEnumDefaultValue;
019import com.fasterxml.jackson.annotation.JsonValue;
020
021/**
022 * Enum representing the available TTS language options. See
023 * <a href=https://developer.vonage.com/voice/voice-api/guides/text-to-speech#supported-languages>
024 * the documentation</a> for previews and valid styles.
025 */
026public enum TextToSpeechLanguage {
027    AFRIKAANS("af-ZA"),
028    ARABIC("ar"),
029    BULGARIAN("bg-BG"),
030    BENGALI("bn-IN"),
031    SPANISH_CATALAN("ca-ES"),
032    CHINESE_MANDARIN("cmn-CN"),
033    TAIWANESE_MANDARIN("cmn-TW"),
034    CZECH("cs-CZ"),
035    WELSH("cy-GB"),
036    DANISH("da-DK"),
037    AUSTRIAN_GERMAN("de-AT"),
038    GERMAN("de-DE"),
039    GREEK("el-GR"),
040    AUSTRALIAN_ENGLISH("en-AU"),
041    UNITED_KINGDOM_ENGLISH("en-GB"),
042    SCOTTISH_ENGLISH("en-GB-SCT"),
043    WELSH_ENGLISH("en-GB-WLS"),
044    IRISH_ENGLISH("en-IE"),
045    INDIAN_ENGLISH("en-IN"),
046    NEW_ZEALAND_ENGLISH("en-NZ"),
047    AMERICAN_ENGLISH("en-US"),
048    SOUTH_AFRICAN_ENGLISH("en-ZA"),
049    COLOMBIAN_SPANISH("es-CO"),
050    SPANISH("es-ES"),
051    MEXICAN_SPANISH("es-MX"),
052    AMERICAN_SPANISH("es-US"),
053    BASQUE("eu-ES"),
054    FINISH("fi-FI"),
055    FILIPINO("fil-PH"),
056    CANADIAN_FRENCH("fr-CA"),
057    FRENCH("fr-FR"),
058    SPANISH_GALICIAN("gl-ES"),
059    GUJARATI("gu-IN"),
060    HEBREW("he-IL"),
061    HINDI("hi-IN"),
062    HUNGARIAN("hu-HU"),
063    INDONESIAN("id-ID"),
064    ICELANDIC("is-IS"),
065    ITALIAN("it-IT"),
066    JAPANESE("ja-JP"),
067    KANNADA("kn-IN"),
068    KOREAN("ko-KR"),
069    LATVIAN("lv-LV"),
070    MALAYALAM("ml-IN"),
071    MALAY("ms-MY"),
072    NORWEGIAN("no-NO"),
073    NORWEGIAN_BOKMAL("nb-NO"),
074    BELGIAN_DUTCH("nl-BE"),
075    DUTCH("nl-NL"),
076    PUNJABI("pa-IN"),
077    POLISH("pl-PL"),
078    BRAZILIAN_PORTUGUESE("pt-BR"),
079    PORTUGUESE("pt-PT"),
080    ROMANIAN("ro-RO"),
081    RUSSIAN("ru-RU"),
082    SLOVAK("sk-SK"),
083    SERBIAN("sr-RS"),
084    SWEDISH("sv-SE"),
085    TAMIL("ta-IN"),
086    TELUGU("te-IN"),
087    THAI("th-TH"),
088    TURKISH("tr-TR"),
089    UKRAINIAN("uk-UA"),
090    VIETNAMESE("vi-VN"),
091    CHINESE_YUE("yue-CN"),
092
093    @JsonEnumDefaultValue
094    UNKNOWN("Unknown");
095
096    private final String language;
097
098    TextToSpeechLanguage(String language) {
099        this.language = language;
100    }
101
102    @JsonValue
103    public String getLanguage() {
104        return this.language;
105    }
106}