class OspfInterfaceSettings implements Serializable {

  @Override
  public boolean equals(Object o) {
    if (o == this) {
      return true;
    } else if (!(o instanceof OspfInterfaceSettings)) {
      return false;
    }
    OspfInterfaceSettings other = (OspfInterfaceSettings) o;
    return Objects.equals(_ospfAreaName, other._ospfAreaName)
        && Objects.equals(_ospfCost, other._ospfCost)
        && _ospfDeadInterval == other._ospfDeadInterval
        && _ospfEnabled == other._ospfEnabled
        && _ospfHelloInterval == other._ospfHelloInterval
        && Objects.equals(_ospfHelloMultiplier, other._ospfHelloMultiplier)
        && Objects.equals(_ospfInboundDistributeListPolicy, other._ospfInboundDistributeListPolicy)
        && Objects.equals(_ospfNbmaNeighbors, other._ospfNbmaNeighbors)
        && Objects.equals(_ospfNetworkType, other._ospfNetworkType)
        && _ospfPassive == other._ospfPassive
        && Objects.equals(_ospfProcess, other._ospfProcess);
  }

  private  OspfInterfaceSettings(
      @Nullable Long area,
      @Nullable Integer cost,
      int deadInterval,
      boolean enabled,
      int helloInterval,
      @Nullable Integer helloMultiplier,
      @Nullable String inboundDistributeListPolicy,
      @Nonnull Set<Ip> nbmaNeighbors,
      @Nullable OspfNetworkType networkType,
      boolean passive,
      @Nullable String process);

}