class IspModel {

  @Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof IspModel)) {
      return false;
    }
    IspModel ispInfo = (IspModel) o;
    return _asn == ispInfo._asn
        && _remotes.equals(ispInfo._remotes)
        && Objects.equals(_name, ispInfo._name)
        && _additionalPrefixesToInternet.equals(ispInfo._additionalPrefixesToInternet)
        && _trafficFiltering.equals(ispInfo._trafficFiltering);
  }

  private  IspModel(
      long asn,
      List<Remote> remotes,
      @Nullable String name,
      Set<Prefix> additionalPrefixesToInternet,
      IspTrafficFiltering trafficFiltering);

}