static Scaling fromYamlMap()

in src/main/java/com/google/cloud/run/kafkascaler/scalingconfig/Scaling.java [61:96]


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

    if (input.containsKey("stabilizationWindowSeconds")) {
      builder =
          builder.stabilizationWindowSeconds(
              Duration.ofSeconds((int) input.get("stabilizationWindowSeconds")));
    }

    if (input.containsKey("policies")) {
      List<Policy> policies = new ArrayList<>();
      for (Map<String, Object> policy : (List<Map<String, Object>>) input.get("policies")) {
        policies.add(Policy.fromYamlMap(policy, resourcePath + ".policies"));
      }
      builder = builder.policies(ImmutableList.copyOf(policies));
    }

    if (input.containsKey("selectPolicy")) {
      switch ((String) input.get("selectPolicy")) {
        case "Max":
          builder = builder.selectPolicy(SelectPolicy.MAX);
          break;
        case "Min":
          builder = builder.selectPolicy(SelectPolicy.MIN);
          break;
        case "Disabled":
          builder = builder.selectPolicy(SelectPolicy.DISABLED);
          break;
        default:
          throw new IllegalArgumentException(
              "Unsupported select policy: " + input.get("selectPolicy"));
      }
    }

    return builder.build();
  }