001package com.plivo.api.models.recording;
002
003import com.plivo.api.models.base.ListResponse;
004import com.plivo.api.models.base.VoiceLister;
005import com.plivo.api.util.PropertyFilter;
006import java.util.Date;
007import retrofit2.Call;
008
009public class RecordingLister extends VoiceLister<Recording> {
010
011  private String subaccount;
012  private String callUuid;
013  private String fromNumber;
014  private String toNumber;
015  private String conferenceName;
016  private String mpcName;
017  private String conferenceUuid;
018  private String mpcUuid;
019  private PropertyFilter<Date> addTime;
020  private PropertyFilter<Integer> recordingStorageDuration;
021
022  public String subaccount() {
023    return this.subaccount;
024  }
025
026  public String callUuid() {
027    return this.callUuid;
028  }
029
030  public String fromNumber() {
031    return this.fromNumber;
032  }
033
034  public String toNumber() {
035    return this.toNumber;
036  }
037
038  public String conferenceName() {
039    return this.conferenceName;
040  }
041
042  public String mpcName() {
043    return this.mpcName;
044  }
045
046  public String conferenceUuid() {
047    return this.conferenceUuid;
048  }
049
050  public String mpcUuid() {
051    return this.mpcUuid;
052  }
053
054  public PropertyFilter<Date> addTime() {
055    return this.addTime;
056  }
057
058  public PropertyFilter<Integer> recordingStorageDuration() {
059    return this.recordingStorageDuration;
060  }
061
062  /**
063   * @param subaccount auth_id of the subaccount. Lists only those recordings of the main accounts
064   * which are tied to the specified subaccount.
065   */
066  public RecordingLister subaccount(final String subaccount) {
067    this.subaccount = subaccount;
068    return this;
069  }
070
071  /**
072   * @param fromNumber Used to filter recordings for a specific fromNumber.
073   */
074  public RecordingLister fromNumber(final String fromNumber) {
075    this.fromNumber = fromNumber;
076    return this;
077  }
078
079  /**
080   * @param toNumber Used to filter recordings for a specific toNumber.
081   */
082  public RecordingLister toNumber(final String toNumber) {
083    this.toNumber = toNumber;
084    return this;
085  }
086
087  /**
088   * @param conferenceName Used to filter recordings for a specific conferenceName.
089   */
090  public RecordingLister conferenceName(final String conferenceName) {
091    this.conferenceName = conferenceName;
092    return this;
093  }
094
095  /**
096   * @param mpcName Used to filter recordings for a specific mpcName.
097   */
098  public RecordingLister mpcName(final String mpcName) {
099    this.mpcName = mpcName;
100    return this;
101  }
102
103  /**
104   * @param conferenceUuid Used to filter recordings for a specific conferenceUuid.
105   */
106  public RecordingLister conferenceUuid(final String conferenceUuid) {
107    this.conferenceUuid = conferenceUuid;
108    return this;
109  }
110
111  /**
112   * @param mpcUuid Used to filter recordings for a specific mpcUuid.
113   */
114  public RecordingLister mpcUuid(final String mpcUuid) {
115    this.mpcUuid = mpcUuid;
116    return this;
117  }
118
119  /**
120   * @param callUuid Used to filter recordings for a specific call.
121   */
122  public RecordingLister callUuid(final String callUuid) {
123    this.callUuid = callUuid;
124    return this;
125  }
126
127  /**
128   * @param addTime Used to filter out recordings according to the time they were added.
129   */
130  public RecordingLister addTime(final PropertyFilter<Date> addTime) {
131    this.addTime = addTime;
132    return this;
133  }
134
135  public RecordingLister recordingStorageDuration(final PropertyFilter<Integer> recordingStorageDuration) {
136    this.recordingStorageDuration = recordingStorageDuration;
137    return this;
138  }
139
140  @Override
141  protected Call<ListResponse<Recording>> obtainCall() {
142    return client().getVoiceApiService().recordingList(client().getAuthId(), toMap());
143  }
144
145  @Override
146  protected Call<ListResponse<Recording>> obtainFallback1Call() {
147    return client().getVoiceFallback1Service().recordingList(client().getAuthId(), toMap());
148  }
149
150  @Override
151  protected Call<ListResponse<Recording>> obtainFallback2Call() {
152    return client().getVoiceFallback2Service().recordingList(client().getAuthId(), toMap());
153  }
154}