static Spec fromYamlMap()

in src/main/java/com/google/cloud/run/kafkascaler/scalingconfig/Spec.java [37:64]


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

    Validation.checkKeyExists(input, "scaleTargetRef", resourcePath);
    Validation.checkKeyExists(input, "metrics", resourcePath);

    builder =
        builder.scaleTargetRef(
            ScaleTargetRef.fromYamlMap(
                (Map<String, Object>) input.get("scaleTargetRef"),
                resourcePath + ".scaleTargetRef"));

    List<Metric> metrics = new ArrayList<>();
    for (Map<String, Object> metric : (List<Map<String, Object>>) input.get("metrics")) {
      metrics.add(Metric.fromYamlMap(metric, resourcePath + ".metrics"));
    }

    builder = builder.metrics(ImmutableList.copyOf(metrics));

    if (input.containsKey("behavior")) {
      builder =
          builder.behavior(
              Behavior.fromYamlMap(
                  (Map<String, Object>) input.get("behavior"), resourcePath + ".behavior"));
    }

    return builder.build();
  }