001package com.plivo.api.models.call.actions;
002
003import com.plivo.api.PlivoClient;
004import com.plivo.api.exceptions.PlivoRestException;
005import com.plivo.api.models.base.VoiceCreator;
006import com.plivo.api.models.call.LegSpecifier;
007import java.io.IOException;
008import retrofit2.Call;
009
010public class CallSpeakCreator extends VoiceCreator<CallSpeakCreateResponse> {
011
012  private final String id;
013  private final String text;
014  private final String type;
015  private String voice;
016  private String language;
017  private LegSpecifier legs;
018  private Boolean loop;
019  private Boolean mix;
020
021  public CallSpeakCreator(String id, String text) {
022    this.id = id;
023    this.text = text;
024    this.type = "text";
025  }
026
027  public CallSpeakCreator(String id, String text, String type) {
028    this.id = id;
029    this.text = text;
030    this.type = type;
031  }
032
033  @Override
034  protected Call<CallSpeakCreateResponse> obtainCall() {
035    return client().getVoiceApiService().callSpeakCreate(client().getAuthId(), id, this);
036  }
037
038  @Override
039  protected Call<CallSpeakCreateResponse> obtainFallback1Call() {
040    return client().getVoiceFallback1Service().callSpeakCreate(client().getAuthId(), id, this);
041  }
042
043  @Override
044  protected Call<CallSpeakCreateResponse> obtainFallback2Call() {
045    return client().getVoiceFallback2Service().callSpeakCreate(client().getAuthId(), id, this);
046  }
047
048  public CallSpeakCreateResponse speak() throws IOException, PlivoRestException {
049    return create();
050  }
051
052  @Override
053  public CallSpeakCreator client(final PlivoClient plivoClient) {
054    this.plivoClient = plivoClient;
055    return this;
056  }
057
058
059}