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();
}