001package com.plivo.api.models.multipartycall;
002
003import com.plivo.api.exceptions.PlivoValidationException;
004import com.plivo.api.models.base.VoiceUpdater;
005import com.plivo.api.validators.OneOf;
006import com.plivo.api.validators.UrlValues;
007import com.plivo.api.validators.Validate;
008import retrofit2.Call;
009
010public class MultiPartyCallRecordingStart extends VoiceUpdater<MultiPartyCallRecordingStartResponse> {
011
012  @OneOf(message = "should be one of [mp3, wav]", options = {"mp3", "wav"})
013  private String fileFormat = "mp3";
014  @UrlValues
015  private String recordingCallbackUrl;
016  @OneOf(message = "should be one of [GET, POST]", options = {"GET", "POST"})
017  private String recordingCallbackMethod = "POST";
018
019  public MultiPartyCallRecordingStart(String mpcId) {
020    super(mpcId);
021  }
022
023  public String fileFormat() {
024    return fileFormat;
025  }
026
027  public String recordingCallbackUrl() {
028    return recordingCallbackUrl;
029  }
030
031  public String recordingCallbackMethod() {
032    return recordingCallbackMethod;
033  }
034
035  public MultiPartyCallRecordingStart fileFormat(String fileFormat) {
036    this.fileFormat = fileFormat;
037    return this;
038  }
039
040  public MultiPartyCallRecordingStart recordingCallbackUrl(String recordingCallbackUrl) {
041    this.recordingCallbackUrl = recordingCallbackUrl;
042    return this;
043  }
044
045  public MultiPartyCallRecordingStart recordingCallbackMethod(String recordingCallbackMethod) {
046    this.recordingCallbackMethod = recordingCallbackMethod;
047    return this;
048  }
049
050  @Override
051  protected Call<MultiPartyCallRecordingStartResponse> obtainCall() throws PlivoValidationException {
052    MultiPartyCallUtils.validMultiPartyCallId(id);
053    Validate.check(this);
054    return client().getVoiceApiService().mpcStartRecording(client().getAuthId(), id, this);
055  }
056
057  @Override
058  protected Call<MultiPartyCallRecordingStartResponse> obtainFallback1Call() throws PlivoValidationException {
059    MultiPartyCallUtils.validMultiPartyCallId(id);
060    Validate.check(this);
061    return client().getVoiceFallback1Service().mpcStartRecording(client().getAuthId(), id, this);
062  }
063
064  @Override
065  protected Call<MultiPartyCallRecordingStartResponse> obtainFallback2Call() throws PlivoValidationException {
066    MultiPartyCallUtils.validMultiPartyCallId(id);
067    Validate.check(this);
068    return client().getVoiceFallback2Service().mpcStartRecording(client().getAuthId(), id, this);
069  }
070}