static MetricTarget fromYamlMap()

in src/main/java/com/google/cloud/run/kafkascaler/scalingconfig/MetricTarget.java [53:81]


  static MetricTarget fromYamlMap(Map<String, Object> input, String resourcePath) {
    MetricTarget.Builder builder = new AutoValue_MetricTarget.Builder();

    Validation.checkKeyExists(input, "type", resourcePath);

    switch ((String) input.get("type")) {
      case "AverageValue":
        builder.type(Type.AVERAGE);
        Validation.checkKeyExists(input, "averageValue", resourcePath);
        builder.averageValue((int) input.get("averageValue"));
        break;
      case "Utilization":
        builder.type(Type.UTILIZATION);
        Validation.checkKeyExists(input, "averageUtilization", resourcePath);
        builder.averageUtilization((int) input.get("averageUtilization"));
        break;
      default:
        throw new IllegalArgumentException(
            String.format("Unsupported %s.metric.type: %s", resourcePath, input.get("type")));
    }

    return builder
        .activationThreshold(
            (int) input.getOrDefault("activationThreshold", DEFAULT_ACTIVATION_THRESHOLD))
        .tolerance((double) input.getOrDefault("tolerance", DEFAULT_SCALING_TOLERANCE))
        .windowSeconds(
            Duration.ofSeconds((int) input.getOrDefault("windowSeconds", DEFAULT_WINDOW_SECONDS)))
        .build();
  }