001package com.plivo.api.models.multipartycall;
002
003import com.plivo.api.exceptions.PlivoValidationException;
004import com.plivo.api.exceptions.PlivoRestException;
005import com.plivo.api.models.base.BaseResponse;
006import com.plivo.api.models.base.SecondaryResource;
007
008import java.io.IOException;
009
010public class MultiPartyCallParticipant extends SecondaryResource {
011
012  private String billedAmount;
013  private Long billedDuration;
014  private String callUuid;
015  private Boolean coachMode;
016  private Long duration;
017  private Boolean endMpcOnExit;
018  private String exitCause;
019  private String exitTime;
020  private Boolean hold;
021  private String joinTime;
022  private String memberId;
023  private String memberAddress;
024  private String mpcUuid;
025  private Boolean mute;
026  private String resourceUri;
027  private String role;
028  private Boolean startMpcOnEnter;
029
030  public static MultiPartyCallParticipantGet getter(String mpcId, String participantId) {
031    return new MultiPartyCallParticipantGet(mpcId, participantId);
032  }
033
034  public MultiPartyCallParticipant get() throws IOException, PlivoRestException, PlivoValidationException {
035    MultiPartyCallParticipantGet getter = new MultiPartyCallParticipantGet(getId(), getSecondaryId());
036    return getter.get();
037  }
038
039  public static MultiPartyCallParticipantUpdate updater(String mpcId, String participantId) {
040    return new MultiPartyCallParticipantUpdate(mpcId, participantId);
041  }
042
043  public MultiPartyCallParticipantUpdate update() throws PlivoValidationException {
044    return new MultiPartyCallParticipantUpdate(getId(), getSecondaryId());
045  }
046
047  public static MultiPartyCallParticipantKick kicker(String mpcId, String participantId) {
048    return new MultiPartyCallParticipantKick(mpcId, participantId);
049  }
050
051  public void kick() throws PlivoRestException, IOException, PlivoValidationException {
052    MultiPartyCallParticipantKick kicker = new MultiPartyCallParticipantKick(getId(), getSecondaryId());
053    kicker.delete();
054  }
055
056  public static MultiPartyCallParticipantRecordingStart recordStarter(String mpcId, String participantId) {
057    return new MultiPartyCallParticipantRecordingStart(mpcId, participantId);
058  }
059
060  public MultiPartyCallParticipantRecordingStart recordStarter(String participantId) throws PlivoValidationException {
061    return new MultiPartyCallParticipantRecordingStart(getId(), getSecondaryId());
062  }
063
064  public static MultiPartyCallParticipantRecordingStop recordStopper(String mpcId, String participantId) {
065    return new MultiPartyCallParticipantRecordingStop(mpcId, participantId);
066  }
067
068  public void recordStop(String participantId) throws IOException, PlivoRestException, PlivoValidationException {
069    MultiPartyCallParticipantRecordingStop recordStopper = new MultiPartyCallParticipantRecordingStop(getId(), getSecondaryId());
070    recordStopper.delete();
071  }
072
073  public static MultiPartyCallParticipantRecordingPause recordPause(String mpcId, String participantId) {
074    return new MultiPartyCallParticipantRecordingPause(mpcId, participantId);
075  }
076
077  public BaseResponse recordPause(String participantId) throws IOException, PlivoRestException, PlivoValidationException {
078    return new MultiPartyCallParticipantRecordingPause(getId(), getSecondaryId()).update();
079  }
080
081  public static MultiPartyCallParticipantRecordingResume recordResume(String mpcId, String participantId) {
082    return new MultiPartyCallParticipantRecordingResume(mpcId, participantId);
083  }
084
085  public BaseResponse recordResume(String participantId) throws IOException, PlivoRestException, PlivoValidationException {
086    return new MultiPartyCallParticipantRecordingPause(getId(), getSecondaryId()).update();
087  }
088
089  public String getBilledAmount() {
090    return billedAmount;
091  }
092
093  public Long getBilledDuration() {
094    return billedDuration;
095  }
096
097  public String getCallUuid() {
098    return callUuid;
099  }
100
101  public Boolean getCoachMode() {
102    return coachMode;
103  }
104
105  public Long getDuration() {
106    return duration;
107  }
108
109  public Boolean getEndMpcOnExit() {
110    return endMpcOnExit;
111  }
112
113  public String getExitCause() {
114    return exitCause;
115  }
116
117  public String getExitTime() {
118    return exitTime;
119  }
120
121  public Boolean getHold() {
122    return hold;
123  }
124
125  public String getJoinTime() {
126    return joinTime;
127  }
128
129  public String getMemberId() {
130    return memberId;
131  }
132  public String getmemberAddress() { return memberAddress; }
133
134  public String getMpcUuid() {
135    return mpcUuid;
136  }
137
138  public Boolean getMute() {
139    return mute;
140  }
141
142  public String getResourceUri() {
143    return resourceUri;
144  }
145
146  public String getRole() {
147    return role;
148  }
149
150  public Boolean getStartMpcOnEnter() {
151    return startMpcOnEnter;
152  }
153
154  @Override
155  public String getSecondaryId() {
156    return getMemberId();
157  }
158
159  @Override
160  public String getId() throws PlivoValidationException {
161    return MultiPartyCallUtils.mpcUuid(getMpcUuid());
162  }
163}