001package com.plivo.api.models.conference;
002
003import com.plivo.api.PlivoClient;
004import com.plivo.api.exceptions.PlivoRestException;
005import java.io.IOException;
006import retrofit2.Call;
007
008public class ConferenceMemberSpeakCreator extends
009  ConferenceMemberCreatorAction<ConferenceMemberActionResponse> {
010
011  private final String text;
012  private String voice;
013  private String language;
014
015  public ConferenceMemberSpeakCreator(String conferenceName, String memberId, String text) {
016    super(conferenceName, memberId);
017    this.text = text;
018  }
019
020  public String text() {
021    return this.text;
022  }
023
024  public String voice() {
025    return this.voice;
026  }
027
028  public String language() {
029    return this.language;
030  }
031
032  public ConferenceMemberSpeakCreator voice(final String voice) {
033    this.voice = voice;
034    return this;
035  }
036
037  public ConferenceMemberSpeakCreator language(final String language) {
038    this.language = language;
039    return this;
040  }
041
042
043  @Override
044  protected Call<ConferenceMemberActionResponse> obtainCall() {
045    return client().getVoiceApiService()
046      .conferenceMemberSpeakCreate(client().getAuthId(), conferenceName, memberId, this);
047  }
048
049  @Override
050  protected Call<ConferenceMemberActionResponse> obtainFallback1Call() {
051    return client().getVoiceFallback1Service()
052      .conferenceMemberSpeakCreate(client().getAuthId(), conferenceName, memberId, this);
053  }
054
055  @Override
056  protected Call<ConferenceMemberActionResponse> obtainFallback2Call() {
057    return client().getVoiceFallback2Service()
058      .conferenceMemberSpeakCreate(client().getAuthId(), conferenceName, memberId, this);
059  }
060
061  public ConferenceMemberActionResponse speak() throws IOException, PlivoRestException {
062    return create();
063  }
064
065  @Override
066  public ConferenceMemberSpeakCreator client(final PlivoClient plivoClient) {
067    this.plivoClient = plivoClient;
068    return this;
069  }
070
071}