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}