001package com.plivo.api.models.multipartycall; 002 003import com.plivo.api.exceptions.PlivoValidationException; 004import com.plivo.api.models.base.ListResponse; 005import com.plivo.api.models.base.VoiceLister; 006import com.plivo.api.util.PropertyFilter; 007import com.plivo.api.validators.OneOf; 008import com.plivo.api.validators.SubAccount; 009import com.plivo.api.validators.Validate; 010import retrofit2.Call; 011 012public class MultiPartyCallList extends VoiceLister<MultiPartyCall> { 013 014 @SubAccount 015 private String subAccount; 016 private String friendlyName; 017 @OneOf(message = "should be one of [initialized, active, ended]", options = {"initialized", "active", "ended"}) 018 private String status; 019 private Integer terminationCauseCode; 020 private PropertyFilter<String> creationTime; 021 private PropertyFilter<String> endTime; 022 023 public String subAccount() { 024 return subAccount; 025 } 026 027 public String friendlyName() { 028 return friendlyName; 029 } 030 031 public String status() { 032 return status; 033 } 034 035 public Integer terminationCauseCode() { 036 return terminationCauseCode; 037 } 038 039 public PropertyFilter<String> creationTime() { 040 return creationTime; 041 } 042 043 public PropertyFilter<String> endTime() { 044 return endTime; 045 } 046 047 public MultiPartyCallList subAccount(String subAccount) { 048 this.subAccount = subAccount; 049 return this; 050 } 051 052 public MultiPartyCallList friendlyName(String friendlyName) { 053 this.friendlyName = friendlyName; 054 return this; 055 } 056 057 public MultiPartyCallList status(String status) { 058 this.status = status; 059 return this; 060 } 061 062 public MultiPartyCallList terminationCauseCode(Integer terminationCauseCode) { 063 this.terminationCauseCode = terminationCauseCode; 064 return this; 065 } 066 067 public MultiPartyCallList creationTime(PropertyFilter<String> creationTime) throws PlivoValidationException { 068 MultiPartyCallUtils.validMultiPartyTime("creationTime", creationTime); 069 this.creationTime = creationTime; 070 return this; 071 } 072 073 public MultiPartyCallList endTime(PropertyFilter<String> endTime) throws PlivoValidationException { 074 MultiPartyCallUtils.validMultiPartyTime("endTime", endTime); 075 this.endTime = endTime; 076 return this; 077 } 078 079 @Override 080 protected Call<ListResponse<MultiPartyCall>> obtainCall() throws PlivoValidationException { 081 Validate.check(this); 082 return client().getVoiceApiService().mpcList(client().getAuthId(), toMap()); 083 } 084 085 @Override 086 protected Call<ListResponse<MultiPartyCall>> obtainFallback1Call() throws PlivoValidationException { 087 Validate.check(this); 088 return client().getVoiceFallback1Service().mpcList(client().getAuthId(), toMap()); 089 } 090 091 @Override 092 protected Call<ListResponse<MultiPartyCall>> obtainFallback2Call() throws PlivoValidationException { 093 Validate.check(this); 094 return client().getVoiceFallback2Service().mpcList(client().getAuthId(), toMap()); 095 } 096}