001package com.plivo.api.models.number;
002
003import com.plivo.api.models.base.Updater;
004import com.plivo.api.util.Utils;
005import retrofit2.Call;
006
007public class NumberUpdater extends Updater<NumberUpdateResponse> {
008
009  private String appId;
010  private String subaccount;
011  private String alias;
012  private String cnamLookup;
013
014  NumberUpdater(final String number) {
015    super(number);
016  }
017
018  public String appId() {
019    return this.appId;
020  }
021
022  public String subaccount() {
023    return this.subaccount;
024  }
025
026  public String alias() {
027    return this.alias;
028  }
029
030  public String cnamLookup() {
031    return this.cnamLookup;
032  }
033
034  public NumberUpdater appId(final String appId) {
035    this.appId = appId;
036    return this;
037  }
038
039  public NumberUpdater subaccount(final String subaccount) {
040    this.subaccount = subaccount;
041    return this;
042  }
043
044  public NumberUpdater alias(final String alias) {
045    this.alias = alias;
046    return this;
047  }
048  public NumberUpdater cnamLookup(final String cnamLookup) {
049    this.cnamLookup = cnamLookup;
050    return this;
051  }
052
053  @Override
054  protected void validate() {
055    if (!Utils.anyNotNull(alias, subaccount, appId, cnamLookup)) {
056      throw new IllegalStateException("one of alias, subaccount, appId, cnamLookup must be non-null");
057    }
058    super.validate();
059  }
060
061  @Override
062  protected Call<NumberUpdateResponse> obtainCall() {
063    return client().getApiService().numberUpdate(client().getAuthId(), id, this);
064  }
065}