public void validate(
      final Logger logger, final CommandLine commandLine, final Predicate<String> configuredApis) {

    if (!rpcHttpApis.stream().allMatch(configuredApis)) {
      final List<String> invalidHttpApis = new ArrayList<>(rpcHttpApis);
      invalidHttpApis.removeAll(VALID_APIS);
      throw new CommandLine.ParameterException(
          commandLine,
          "Invalid value for option '--rpc-http-api': invalid entries found " + invalidHttpApis);
    }

    final boolean validHttpApiMethods =
        rpcHttpApiMethodsNoAuth.stream().allMatch(RpcMethod::rpcMethodExists);

    if (!validHttpApiMethods) {
      throw new CommandLine.ParameterException(
          commandLine,
          "Invalid value for option '--rpc-http-api-methods-no-auth', options must be valid RPC methods");
    }

    if (isRpcHttpAuthenticationEnabled) {
      CommandLineUtils.checkOptionDependencies(
          logger,
          commandLine,
          "--rpc-http-authentication-public-key-file",
          rpcHttpAuthenticationPublicKeyFile == null,
          List.of("--rpc-http-authentication-jwt-algorithm"));
    }

    if (isRpcHttpAuthenticationEnabled
        && rpcHttpAuthenticationCredentialsFile(commandLine) == null
        && rpcHttpAuthenticationPublicKeyFile == null) {
      throw new CommandLine.ParameterException(
          commandLine,
          "Unable to authenticate JSON-RPC HTTP endpoint without a supplied credentials file or authentication public key file");
    }

    checkDependencies(logger, commandLine);

    if (isRpcTlsConfigurationRequired()) {
      validateTls(commandLine);
    }
  }
Validates the Rpc Http options.

@param logger Logger instance
@param commandLine CommandLine instance
@param configuredApis Predicate for configured APIs
app/src/main/java/org/hyperledger/besu/cli/options/JsonRpcHttpOptions.java