presto-resource-group-managers/src/main/java/io/prestosql/plugin/resourcegroups/ManagerSpec.java/ManagerSpec/ManagerSpec
class ManagerSpec:    @JsonCreator
    public ManagerSpec(
            @JsonProperty("rootGroups") List<ResourceGroupSpec> rootGroups,
            @JsonProperty("selectors") List<SelectorSpec> selectors,
            @JsonProperty("cpuQuotaPeriod") Optional<Duration> cpuQuotaPeriod)
    {
        this.rootGroups = ImmutableList.copyOf(requireNonNull(rootGroups, "rootGroups is null"));
        this.selectors = ImmutableList.copyOf(requireNonNull(selectors, "selectors is null"));
        this.cpuQuotaPeriod = requireNonNull(cpuQuotaPeriod, "cpuQuotaPeriod is null");
        Set<ResourceGroupNameTemplate> names = new HashSet<>();
        for (ResourceGroupSpec group : rootGroups) {
            checkArgument(!names.contains(group.getName()), "Duplicated root group: %s", group.getName());
            names.add(group.getName());
        }
    }