class BgpSessionProperties {

  @Override
  public boolean equals(@Nullable Object o) {
    if (this == o) {
      return true;
    }
    if (!(o instanceof BgpSessionProperties)) {
      return false;
    }
    BgpSessionProperties that = (BgpSessionProperties) o;
    return _headAs == that._headAs
        && _tailAs == that._tailAs
        && _headIp.equals(that._headIp)
        && _tailIp.equals(that._tailIp)
        && _sessionType == that._sessionType
        && _routeExchangeSettings.equals(that._routeExchangeSettings)
        && _addressFamilies.equals(that._addressFamilies)
        && _confedSessionType == that._confedSessionType;
  }

  private  BgpSessionProperties(
      Collection<Type> addressFamilies,
      Map<Type, RouteExchange> routeExchangeSettings,
      long tailAs,
      long headAs,
      Ip tailIp,
      Ip headIp,
      SessionType sessionType,
      ConfedSessionType confedType);

}