001/*
002 * Copyright (c) 2011-2017 Nexmo Inc
003 *
004 * Permission is hereby granted, free of charge, to any person obtaining a copy
005 * of this software and associated documentation files (the "Software"), to deal
006 * in the Software without restriction, including without limitation the rights
007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
008 * copies of the Software, and to permit persons to whom the Software is
009 * furnished to do so, subject to the following conditions:
010 *
011 * The above copyright notice and this permission notice shall be included in
012 * all copies or substantial portions of the Software.
013 *
014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
020 * THE SOFTWARE.
021 */
022package com.nexmo.client.voice;
023
024import com.fasterxml.jackson.annotation.JsonCreator;
025import com.fasterxml.jackson.annotation.JsonValue;
026import org.apache.commons.lang3.StringUtils;
027
028/**
029 * Voice used to deliver text to a {@link Call} in a {@link TalkRequest}.
030 */
031
032public enum VoiceName {
033    SALLI,
034    JOEY,
035    NAJA,
036    MADS,
037    MARLENE,
038    HANS,
039    NICOLE,
040    RUSSELL,
041    AMY,
042    BRIAN,
043    EMMA,
044    GWYNETH,
045    GERAINT,
046    RAVEENA,
047    CHIPMUNK,
048    ERIC,
049    IVY,
050    JENNIFER,
051    JUSTIN,
052    KENDRA,
053    KIMBERLY,
054    CONCHITA,
055    ENRIQUE,
056    PENELOPE,
057    MIGUEL,
058    CHANTAL,
059    CELINE,
060    MATHIEU,
061    DORA,
062    KARL,
063    CARLA,
064    GIORGIO,
065    LIV,
066    LOTTE,
067    RUBEN,
068    AGNIESZKA,
069    JACEK,
070    EWA,
071    JAN,
072    MAJA,
073    VITORIA,
074    RICARDO,
075    CRISTIANO,
076    INES,
077    CARMEN,
078    MAXIM,
079    TATYANA,
080    ASTRID,
081    FILIZ;
082
083    @JsonValue
084    @Override
085    public String toString() {
086        //API requires voice_name to be sent with first character upper cased
087        return StringUtils.capitalize(name().toLowerCase());
088    }
089
090    @JsonCreator
091    public static VoiceName fromString(String name) {
092        return VoiceName.valueOf(name.toUpperCase());
093    }
094
095}