@UnstableApi
    public ClientFactoryBuilder idleTimeoutMillis(long idleTimeoutMillis, boolean keepAliveOnPing) {
        checkArgument(idleTimeoutMillis >= 0, "idleTimeoutMillis: %s (expected: >= 0)", idleTimeoutMillis);
        option(ClientFactoryOptions.IDLE_TIMEOUT_MILLIS, idleTimeoutMillis);
        option(ClientFactoryOptions.KEEP_ALIVE_ON_PING, keepAliveOnPing);
        return this;
    }
Sets the idle timeout of a socket connection. The connection is closed if there is no request in
progress for the given amount of time. If {@code keepAliveOnPing} is true, the idle timeout is reset
when an HTTP/2 PING frame or the response of {@code "OPTIONS * HTTP/1.1"} is received.
core/src/main/java/com/linecorp/armeria/client/ClientFactoryBuilder.java