001package com.plivo.api.models.conference;
002
003import com.fasterxml.jackson.annotation.JsonIgnore;
004import com.plivo.api.PlivoClient;
005import com.plivo.api.exceptions.PlivoRestException;
006import com.plivo.api.models.base.VoiceCreator;
007import java.io.IOException;
008import retrofit2.Call;
009
010public class ConferenceRecordCreator extends VoiceCreator<ConferenceRecordCreateResponse> {
011
012  @JsonIgnore
013  private final String conferenceName;
014  private Integer timeLimit;
015  private String fileFormat;
016  private String transcriptionType;
017  private String transcriptionUrl;
018  private String transcriptionMethod;
019  private String callbackUrl;
020  private String callbackMethod;
021
022  public ConferenceRecordCreator(String conferenceName) {
023    this.conferenceName = conferenceName;
024  }
025
026  public Integer timeLimit() {
027    return this.timeLimit;
028  }
029
030  public String fileFormat() {
031    return this.fileFormat;
032  }
033
034  public String transcriptionType() {
035    return this.transcriptionType;
036  }
037
038  public String transcriptionUrl() {
039    return this.transcriptionUrl;
040  }
041
042  public String transcriptionMethod() {
043    return this.transcriptionMethod;
044  }
045
046  public String callbackUrl() {
047    return this.callbackUrl;
048  }
049
050  public String callbackMethod() {
051    return this.callbackMethod;
052  }
053
054  public ConferenceRecordCreator timeLimit(Integer timeLimit) {
055    this.timeLimit = timeLimit;
056    return this;
057  }
058
059  public ConferenceRecordCreator fileFormat(final String fileFormat) {
060    this.fileFormat = fileFormat;
061    return this;
062  }
063
064  public ConferenceRecordCreator transcriptionType(final String transcriptionType) {
065    this.transcriptionType = transcriptionType;
066    return this;
067  }
068
069  public ConferenceRecordCreator transcriptionUrl(final String transcriptionUrl) {
070    this.transcriptionUrl = transcriptionUrl;
071    return this;
072  }
073
074  public ConferenceRecordCreator transcriptionMethod(final String transcriptionMethod) {
075    this.transcriptionMethod = transcriptionMethod;
076    return this;
077  }
078
079  public ConferenceRecordCreator callbackUrl(final String callbackUrl) {
080    this.callbackUrl = callbackUrl;
081    return this;
082  }
083
084  public ConferenceRecordCreator callbackMethod(final String callbackMethod) {
085    this.callbackMethod = callbackMethod;
086    return this;
087  }
088
089  @Override
090  protected Call<ConferenceRecordCreateResponse> obtainCall() {
091    return client().getVoiceApiService().conferenceRecordCreate(client().getAuthId(), conferenceName);
092  }
093
094  @Override
095  protected Call<ConferenceRecordCreateResponse> obtainFallback1Call() {
096    return client().getVoiceFallback1Service().conferenceRecordCreate(client().getAuthId(), conferenceName);
097  }
098
099  @Override
100  protected Call<ConferenceRecordCreateResponse> obtainFallback2Call() {
101    return client().getVoiceFallback2Service().conferenceRecordCreate(client().getAuthId(), conferenceName);
102  }
103
104  public ConferenceRecordCreateResponse record() throws IOException, PlivoRestException {
105    return create();
106  }
107
108  @Override
109  public ConferenceRecordCreator client(final PlivoClient plivoClient) {
110    this.plivoClient = plivoClient;
111    return this;
112  }
113
114
115}