code: public final B sslSession(SSLSession sslSession) {
          this.sslSession = requireNonNull(sslSession, "sslSession");
          switch (sessionProtocol) {
              case HTTP:
                  sessionProtocol(SessionProtocol.HTTPS);
                  break;
              case H1C:
                  sessionProtocol(SessionProtocol.H1);
                  break;
              case H2C:
                  sessionProtocol(SessionProtocol.H2);
                  break;
          }
          return self();
      }
docs: Sets the {@link SSLSession} of the connection. If the current {@link SessionProtocol} is not TLS,
  the TLS version of the current {@link SessionProtocol} will be set automatically. For example,
  {@link SessionProtocol#H2C} will be automatically upgraded to {@link SessionProtocol#H2}.
  Note that upgrading the current {@link SessionProtocol} may trigger an {@link IllegalArgumentException},
  as described in {@link #sessionProtocol(SessionProtocol)}.