docs: private static Options constructOptions() {
      Options options = new Options();
  
      Option cluster = Option.builder("c")
          .desc("Cluster name in which the topology needs to run on")
          .longOpt("cluster")
          .hasArgs()
          .argName("cluster")
          .required()
          .build();
  
      Option role = Option.builder("r")
          .desc("Role under which the topology needs to run")
          .longOpt("role")
          .hasArgs()
          .argName("role")
          .required()
          .build();
  
      Option environment = Option.builder("e")
          .desc("Environment under which the topology needs to run")
          .longOpt("environment")
          .hasArgs()
          .argName("environment")
          .required()
          .build();
  
      Option masterPort = Option.builder("m")
          .desc("Master port to accept the metric/exception messages from sinks")
          .longOpt("master_port")
          .hasArgs()
          .argName("master port")
          .required()
          .build();
  
      Option statsPort = Option.builder("s")
          .desc("Stats port to respond the queries on metrics/exceptions")
          .longOpt("stats_port")
          .hasArgs()
          .argName("stats port")
          .required()
          .build();
  
      Option systemConfig = Option.builder("y")
          .desc("System configuration file path")
          .longOpt("system_config_file")
          .hasArgs()
          .argName("system config file")
          .build();
  
      Option overrideConfig = Option.builder("o")
          .desc("Override configuration file path")
          .longOpt("override_config_file")
          .hasArgs()
          .argName("override config file")
          .build();
  
      Option sinkConfig = Option.builder("i")
          .desc("Sink configuration file path")
          .longOpt("sink_config_file")
          .hasArgs()
          .argName("sink config file")
          .build();
  
      Option topologyName = Option.builder("n")
          .desc("The topology name")
          .longOpt("topology_name")
          .hasArgs()
          .argName("topology name")
          .required()
          .build();
  
      Option topologyId = Option.builder("t")
          .desc("The topology id")
          .longOpt("topology_id")
          .hasArgs()
          .argName("topology id")
          .required()
          .build();
  
      Option metricsCacheId = Option.builder("r")
          .desc("The MetricsCache id")
          .longOpt("metricscache_id")
          .hasArgs()
          .argName("metricscache id")
          .required()
          .build();
  
      Option verbose = Option.builder("v")
          .desc("Enable debug logs")
          .longOpt("verbose")
          .build();
  
      options.addOption(cluster);
      options.addOption(role);
      options.addOption(environment);
      options.addOption(masterPort);
      options.addOption(statsPort);
      options.addOption(systemConfig);
      options.addOption(overrideConfig);
      options.addOption(sinkConfig);
      options.addOption(topologyName);
      options.addOption(topologyId);
      options.addOption(metricsCacheId);
      options.addOption(verbose);
  
      return options;
    }